summaryrefslogtreecommitdiffstats
path: root/modules-available/locationinfo/exchange-includes/jamesiarmes
diff options
context:
space:
mode:
authorroot2019-02-19 18:53:50 +0100
committerroot2019-02-19 18:53:50 +0100
commit0ad4c0f8196b61699754762aacbaab0223478ab9 (patch)
treede434c4aea8d07ecd01cd3badd48d057d62c2d1b /modules-available/locationinfo/exchange-includes/jamesiarmes
parent[usb-lock-off] Edit rule cleanup and fix of the dropdown boxes. (diff)
parent[statistics] Fix RAM change warning to handle increase too (diff)
downloadslx-admin-usb-lock-off.tar.gz
slx-admin-usb-lock-off.tar.xz
slx-admin-usb-lock-off.zip
Merge branch 'master' into usb-lock-offusb-lock-off
Diffstat (limited to 'modules-available/locationinfo/exchange-includes/jamesiarmes')
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAppManifestsType.php28
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAppsType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfArraysOfTrackingPropertiesType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAttachmentsType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAttendeeConflictData.php59
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBaseItemIdsType.php28
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBinaryType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBodyContentAttributedValuesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfCalendarEvent.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfCalendarPermissionsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfContextProperty.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfConversationNodesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfConversationsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDLExpansionType.php76
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDelegateUserResponseMessageType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDelegateUserType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDiscoverySearchConfigurationType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEmailAddressAttributedValuesType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEmailAddressesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEncryptedSharedFolderDataType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfExtendedAttributesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfExtendedPropertyAttributedValueType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFailedSearchMailboxesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFindMessageTrackingSearchResultType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFolderIdType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFoldersType.php61
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFreeBusyResponse.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfGroupedItemsType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfImGroupType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfInvalidRecipientsType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfItemClassType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfKeywordStatisticsSearchResultsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailTipsResponseMessageType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailboxData.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailboxHoldStatusType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfNonIndexableItemDetailsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfNonIndexableItemStatisticsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfOccurrenceRangesType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPeopleQuerySource.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPeopleType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPermissionsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPersonaAttributionsType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPhoneNumberAttributedValuesType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPostalAddressAttributedValuesType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPrivateCatalogAddInsType.php29
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfProtectionRulesType.php29
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRealItemsType.php115
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRecipientTrackingEventType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRecipientsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRemindersType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfResolutionType.php76
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfResponseMessagesType.php504
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRetentionPolicyTagsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRoomsType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleOperationErrorsType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleOperationsType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleValidationErrorsType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRulesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchItemKindsType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchPreviewItemsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchableMailboxesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfServiceConfigurationResponseMessageType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfServiceConfigurationType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSmtpAddressType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringArrayAttributedValuesType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringAttributedValuesType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringsType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSuggestion.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSuggestionDayResult.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTimeZoneDefinitionType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTrackingPropertiesType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTransitionsGroupsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTransitionsType.php53
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUnknownEntriesType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUserIdType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUserMailboxesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfValueAttributionsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfWorkingPeriod.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAllItemsType.php217
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAlternateIdsType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfApplyConversationActionType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAttachmentsType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAttendeesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfBaseFolderIdsType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfBaseItemIdsType.php56
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfClientAccessTokenRequestsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfDeletedOccurrencesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfExtendedFieldURIs.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfExtendedPropertyType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFieldOrdersType.php30
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderChangeDescriptionsType.php49
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderChangesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderNamesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFoldersType.php61
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfGroupIdentifiersType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfInternetHeadersType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemChangeDescriptionsType.php47
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemChangesType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemIdsType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfMailboxQueriesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfMailboxSearchScopesType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfNotificationEventTypesType.php29
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfNotificationsType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfOccurrenceInfoType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPathsToElementType.php44
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPeriodsType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPropertyValuesType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfReminderItemActionType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfRequestAttachmentIdsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfResponseObjectsType.php128
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfRestrictedGroupIdentifiersType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfSubscriptionIdsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfTimeZoneIdType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfUploadItemsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayofLegacyDNsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Autodiscover.php896
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ClassMap.php684
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Client.php1702
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AddInStateType.php84
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AffectedTaskOccurrencesType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AggregateType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AppointmentState.php63
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AvailabilityProxyRequestType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/BodyTypeResponseType.php50
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/BodyTypeType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemCreateOrDeleteOperationType.php46
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemTypeType.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemUpdateOperationType.php67
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarPermissionLevelType.php33
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarPermissionReadAccessType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ClientAccessTokenTypeType.php76
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConferenceType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConflictResolutionType.php44
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConnectionFailureCauseType.php61
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConnectionStatusType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContactSourceType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContainmentComparisonType.php92
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContainmentModeType.php64
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationActionTypeType.php96
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationNodeSortOrder.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationQueryTraversalType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CreateActionType.php53
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DateTimePrecisionType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DayOfWeekIndexType.php61
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DayOfWeekType.php106
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DaysOfWeekType.php21
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DefaultShapeNamesType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DelegateFolderPermissionLevelType.php61
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DeliverMeetingRequestsType.php57
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DictionaryURIType.php106
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DisableReasonType.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DisposalType.php44
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedFolderIdNameType.php394
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedPropertySetType.php106
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedUserType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ElcFolderType.php187
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/EmailAddressKeyType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExceptionPropertyURIType.php97
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExchangeVersionType.php98
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExternalAudience.php47
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FileAsMappingType.php178
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FlagStatusType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FlaggedForActionType.php116
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FolderQueryTraversalType.php46
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FreeBusyViewType.php98
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/HoldActionType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/HoldStatusType.php61
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/IdFormatType.php76
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ImAddressKeyType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ImportanceChoicesType.php44
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/IndexBasePointType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/InvalidRecipientResponseCodeType.php65
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ItemClassType.php291
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ItemQueryTraversalType.php47
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/LegacyFreeBusyType.php71
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/LocationSourceType.php71
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailTipTypes.php107
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailboxSearchLocationType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailboxTypeType.php79
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MapiPropertyTypeType.php273
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MeetingAttendeeType.php61
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MeetingRequestTypeType.php84
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MemberStatusType.php44
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageDispositionType.php66
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingDeliveryStatusType.php63
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingEventDescriptionType.php254
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingReportTemplateType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MonthNamesType.php124
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/NotificationEventTypeType.php79
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/Occurrence.php96
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/OofState.php44
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionActionType.php47
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionLevelType.php116
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionReadAccessType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhoneCallStateType.php88
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhoneNumberKeyType.php187
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhysicalAddressIndexType.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhysicalAddressKeyType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PreviewItemBaseShapeType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ReminderActionType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ReminderGroup.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResolveNamesSearchScopeType.php55
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseClassType.php63
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseCodeType.php4866
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseTypeType.php70
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RetentionActionType.php79
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RoutingType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RuleFieldURIType.php826
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RuleValidationErrorCodeType.php233
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/Scope.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchFolderTraversalType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchItemKindType.php124
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchPageDirectionType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchResultType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SensitivityChoicesType.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ServiceConfigurationType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SharingDataType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SortDirectionType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/StandardGroupByType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SubscriptionStatusType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SuggestionQuality.php53
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SyncFolderItemsScopeType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TaskDelegateStateType.php76
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TaskStatusType.php61
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TransitionTargetKindType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UnindexedFieldURIType.php2941
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserConfigurationDictionaryObjectTypesType.php106
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserConfigurationPropertyType.php62
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserPhotoSizeType.php115
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserPhotoTypeType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ViewFilterType.php106
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddDelegateType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddDistributionGroupToImListType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddImContactToGroup.php33
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddImGroupType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddNewImContactToGroup.php44
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddNewTelUriContactToGroupType.php53
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ApplyConversationActionType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ArchiveItemType.php33
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseDelegateType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseMoveCopyFolderType.php32
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseMoveCopyItemType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseRequestType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ConvertIdType.php40
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CopyFolderType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CopyItemType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateAttachmentType.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateFolderPathType.php33
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateFolderType.php32
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateItemType.php65
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateManagedFolderRequestType.php32
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateUserConfigurationType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteAttachmentType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteFolderType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteItemType.php84
-rwxr-xr-xmodules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteUserConfigurationType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DisableAppType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DisconnectPhoneCallType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/EmptyFolderType.php49
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ExpandDLType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ExportItemsType.php24
-rwxr-xr-xmodules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindConversationType.php113
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindFolderType.php81
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindItemType.php149
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindMailboxStatisticsByKeywordsType.php118
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindMessageTrackingReportRequestType.php141
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindPeopleType.php113
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAppManifestsType.php100
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAppMarketplaceUrl.php16
-rwxr-xr-xmodules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAttachmentType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetClientAccessTokenType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetConversationItemsType.php79
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetDelegateType.php33
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetDiscoverySearchConfigurationType.php42
-rwxr-xr-xmodules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetEventsType.php39
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetFolderType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetHoldOnMailboxesType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetImItemListType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetImItemsType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetInboxRulesRequestType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetItemType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetMailTipsType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetMessageTrackingReportRequestType.php96
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetNonIndexableItemDetailsType.php62
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetNonIndexableItemStatisticsType.php32
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPasswordExpirationDateType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPersonaType.php67
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPhoneCallInformationType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRemindersType.php58
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRoomListsType.php17
-rwxr-xr-xmodules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRoomsType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSearchableMailboxesType.php33
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetServerTimeZonesType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetServiceConfigurationType.php44
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSharingFolderType.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSharingMetadataType.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetStreamingEventsType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserAvailabilityRequestType.php53
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserConfigurationType.php38
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserOofSettingsRequest.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserPhotoType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserRetentionPolicyTagsType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/InstallAppType.php67
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MarkAllItemsAsRead.php42
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MarkAsJunkType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MoveFolderType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MoveItemType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/PerformReminderActionType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/PlayOnPhoneType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RefreshSharingFolderType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveContactFromImListType.php24
-rwxr-xr-xmodules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveDelegateType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveDistributionGroupFromImListType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveImContactFromGroupType.php33
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveImGroupType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ResolveNamesType.php82
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SearchMailboxesType.php104
-rwxr-xr-xmodules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SendItemType.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetHoldOnMailboxesType.php98
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetImGroupType.php32
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetUserOofSettingsRequest.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SubscribeType.php41
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SyncFolderHierarchyType.php47
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SyncFolderItemsType.php88
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UninstallAppType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UnsubscribeType.php23
-rwxr-xr-xmodules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateDelegateType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateFolderType.php24
-rwxr-xr-xmodules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateInboxRulesRequestType.php42
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateItemType.php93
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateUserConfigurationType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UploadItemsType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddDelegateResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddDistributionGroupToImListResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddImContactToGroupResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddImGroupResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddNewImContactToGroupResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddNewTelUriContactToGroupResponse.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ApplyConversationActionResponseMessageType.php19
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ApplyConversationActionResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ArchiveItemResponse.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AttachmentInfoResponseMessageType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/BaseDelegateResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/BaseResponseMessageType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ConvertIdResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ConvertIdResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CopyFolderResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CopyItemResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateAttachmentResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateFolderPathResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateFolderResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateItemResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateManagedFolderResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateUserConfigurationResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DelegateUserResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteAttachmentResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteAttachmentResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteFolderResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteItemResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteUserConfigurationResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DisableAppResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DisconnectPhoneCallResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/EmptyFolderResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExpandDLResponseMessageType.php76
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExpandDLResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExportItemsResponseMessageType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExportItemsResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindConversationResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindFolderResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindFolderResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindItemResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindItemResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMailboxStatisticsByKeywordsResponseMessageType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMailboxStatisticsByKeywordsResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMessageTrackingReportResponseMessageType.php62
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindPeopleResponseMessageType.php60
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FolderInfoResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAppManifestsResponseType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAppMarketplaceUrlResponseMessageType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAttachmentResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetClientAccessTokenResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetClientAccessTokenResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetConversationItemsResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetConversationItemsResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetDelegateResponseMessageType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetDiscoverySearchConfigurationResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetEventsResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetEventsResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetFolderResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetHoldOnMailboxesResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetImItemListResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetImItemsResponse.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetInboxRulesResponseType.php33
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetItemResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetMailTipsResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetMessageTrackingReportResponseMessageType.php53
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetNonIndexableItemDetailsResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetNonIndexableItemStatisticsResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPasswordExpirationDateResponseMessageType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPersonaResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPhoneCallInformationResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRemindersResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRoomListsResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRoomsResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSearchableMailboxesResponseMessageType.php32
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServerTimeZonesResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServerTimeZonesResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServiceConfigurationResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSharingFolderResponseMessageType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSharingMetadataResponseMessageType.php33
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetStreamingEventsResponseMessageType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetStreamingEventsResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserAvailabilityResponseType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserConfigurationResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserConfigurationResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserOofSettingsResponse.php46
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserPhotoResponseMessageType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserPhotoResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserRetentionPolicyTagsResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/InstallAppResponseType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ItemInfoResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MailTipsResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAllItemsAsReadResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAsJunkResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAsJunkResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MoveFolderResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MoveItemResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/PerformReminderActionResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/PlayOnPhoneResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RefreshSharingFolderResponseMessageType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveContactFromImListResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveDelegateResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveDistributionGroupFromImListResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveImContactFromGroupResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveImGroupResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResolveNamesResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResolveNamesResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResponseMessageType.php70
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SearchMailboxesResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SearchMailboxesResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendItemResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendNotificationResponseMessageType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendNotificationResponseType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ServiceConfigurationResponseMessageType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetHoldOnMailboxesResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetImGroupResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetUserOofSettingsResponse.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SubscribeResponseMessageType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SubscribeResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderHierarchyResponseMessageType.php48
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderHierarchyResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderItemsResponseMessageType.php48
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderItemsResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UninstallAppResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UnsubscribeResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateDelegateResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateFolderResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateInboxRulesResponseType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateItemResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateItemResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateUserConfigurationResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UploadItemsResponseMessageType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UploadItemsResponseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteDateTransitionType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteMonthlyRecurrencePatternType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteYearlyRecurrencePatternType.php38
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AcceptItemType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AcceptSharingInvitationType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AddressListIdType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AggregateOnType.php60
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternateIdBaseType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternateIdType.php47
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternatePublicFolderIdType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternatePublicFolderItemIdType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AndType.php20
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppMetadata.php163
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppendToFolderFieldType.php60
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppendToItemFieldType.php105
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentIdType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentResponseShapeType.php65
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentType.php96
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttendeeConflictData.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttendeeType.php49
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseEmailAddressType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseFolderIdType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseFolderType.php103
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseGroupByType.php28
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseItemIdType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseNotificationEventType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseObjectChangedEventType.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePagingType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePathToElementType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePermissionType.php92
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseSubscriptionRequestType.php65
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyContentAttributedValueType.php38
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyContentType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarEvent.php66
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarEventDetails.php90
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarFolderType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarItemType.php447
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarPermissionSetType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarPermissionType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarViewType.php55
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CancelCalendarItemType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ChangeDescriptionType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ClientAccessTokenRequestType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ClientAccessTokenType.php54
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CompleteNameType.php108
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConflictResultsType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConnectingSIDType.php67
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConstantValueType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactItemType.php413
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactsFolderType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactsViewType.php51
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContainsExpressionType.php46
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContextPropertyType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationActionType.php131
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationNodeType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationResponseType.php54
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationShape.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationType.php310
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CreateRuleOperationType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DailyRecurrencePatternType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DailyRegeneratingPatternType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeclineItemType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DelegatePermissionsType.php82
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DelegateUserType.php55
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteFolderFieldType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteItemFieldType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteRuleOperationType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeletedOccurrenceInfoType.php28
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DirectoryEntryType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DiscoverySearchConfigurationType.php73
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistinguishedFolderIdType.php51
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistinguishedGroupByType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistributionListType.php53
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/Duration.php38
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EffectiveRightsType.php86
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressAttributedValueType.php35
-rwxr-xr-xmodules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressDictionaryEntryType.php76
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressDictionaryType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressType.php64
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EncryptedSharedFolderDataType.php40
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EndDateRecurrenceRangeType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExchangeImpersonationType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExcludesType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExcludesValueType.php40
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExistsType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedAttributeType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedPropertyAttributedValueType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedPropertyType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FailedSearchMailboxType.php52
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FieldOrderType.php55
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FieldURIOrConstantType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FileAttachmentType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindFolderParentType.php77
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindItemParentType.php88
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindMessageTrackingSearchResultType.php103
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderChangeDescriptionType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderChangeType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderIdType.php39
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderResponseShapeType.php39
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderType.php32
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ForwardItemType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FractionalPageViewType.php41
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyResponseType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyView.php57
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyViewOptionsType.php46
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupAttendeeConflictData.php64
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupByType.php51
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupedItemsType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImAddressDictionaryEntryType.php39
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImAddressDictionaryType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImGroupType.php74
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImItemListType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IndexedPageViewType.php48
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IndividualAttendeeConflictData.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InstalledAppType.php173
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InternetHeaderType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IntervalRecurrencePatternBaseType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InvalidRecipientType.php53
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsEqualToType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsGreaterThanOrEqualToType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsGreaterThanType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsLessThanOrEqualToType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsLessThanType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsNotEqualToType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemAttachmentType.php104
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemChangeDescriptionType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemChangeType.php66
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemIdType.php47
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemResponseShapeType.php77
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemType.php443
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/KeywordStatisticsSearchResultType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailTips.php120
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailTipsServiceConfiguration.php85
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxData.php49
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxHoldResultType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxHoldStatusType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxQueryType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxSearchScopeType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxStatisticsSearchResultType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ManagedFolderInformationType.php108
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingCancellationMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingMessageType.php94
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingRequestMessageType.php423
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingResponseMessageType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MemberType.php51
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MembersListType.php28
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MessageTrackingReportType.php82
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MessageType.php148
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MimeContentType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ModifiedEventType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MonthlyRegeneratingPatternType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MovedCopiedEventType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MultipleOperandBooleanExpressionType.php143
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NoEndRecurrenceRangeType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemDetailResultType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemDetailType.php102
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemStatisticType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NotType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NotificationType.php120
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NumberedRecurrenceRangeType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrenceInfoType.php62
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrenceItemIdType.php50
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrencesRangeType.php57
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OpenAsAdminOrSystemServiceType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OrType.php20
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OutOfOfficeMailTip.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToExtendedFieldType.php134
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToIndexedFieldType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToUnindexedFieldType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PeriodType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PermissionSetType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PermissionType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaAttributionType.php85
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaPhoneNumberType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaPostalAddressType.php158
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaResponseShapeType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaType.php972
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneCallIdType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneCallInformationType.php64
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberAttributedValueType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberDictionaryEntryType.php39
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberDictionaryType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhysicalAddressDictionaryEntryType.php75
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhysicalAddressDictionaryType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostItemType.php99
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostReplyItemBaseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostReplyItemType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostalAddressAttributedValueType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PreviewItemMailboxType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PreviewItemResponseShapeType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PrivateCatalogAddInsType.php53
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProposeNewTimeType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleActionType.php40
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleAndType.php65
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleArgumentType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleConditionType.php69
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleRecipientIsType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleSenderDepartmentsType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleType.php69
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRulesServiceConfiguration.php50
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PullSubscriptionRequestType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PushSubscriptionRequestType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/QueryStringType.php56
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecipientTrackingEventType.php130
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrencePatternBaseType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrenceRangeBaseType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrenceType.php113
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringDateTransitionType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringDayTransitionType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringMasterItemIdRanges.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringMasterItemIdType.php41
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringTimeTransitionType.php33
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReferenceItemResponseType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RegeneratingPatternBaseType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RelativeMonthlyRecurrencePatternType.php38
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RelativeYearlyRecurrencePatternType.php48
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReminderItemActionType.php49
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReminderType.php105
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RemoveItemType.php19
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyAllToItemType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyBody.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyToItemType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RequestAttachmentIdType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RequestServerVersion.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResolutionType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResponseObjectCoreType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResponseObjectType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RestrictionType.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RetentionPolicyTagType.php101
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RoomType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RootItemIdType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleActionsType.php140
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleOperationErrorType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleOperationType.php13
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicateDateRangeType.php41
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicateSizeRangeType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicatesType.php369
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleType.php100
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleValidationErrorType.php58
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchExpressionType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchFolderType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchMailboxesResultType.php117
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchParametersType.php47
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchPreviewItemType.php221
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchableMailboxType.php81
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SeekToConditionPageViewType.php53
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SendNotificationResultType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializableTimeZone.php54
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializableTimeZoneTime.php97
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializedSecurityContextType.php54
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ServerVersionInfo.php61
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ServiceConfiguration.php19
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetFolderFieldType.php60
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetItemFieldType.php114
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetRuleOperationType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SidAndAttributesType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SingleRecipientType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmartResponseBaseType.php122
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmartResponseType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmtpDomain.php39
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmtpDomainList.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StreamingSubscriptionRequest.php48
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringArrayAttributedValueType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringAttributedValueType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringType.php23
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/Suggestion.php58
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionDayResult.php48
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionsResponseType.php35
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionsViewOptionsType.php100
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuppressReadReceiptType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyChangesType.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyCreateOrUpdateType.php61
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyDeleteType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsChangesType.php57
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsCreateOrUpdateType.php115
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsDeleteType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsReadFlagType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TargetFolderIdType.php43
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TaskRecurrenceType.php57
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TaskType.php243
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TasksFolderType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TentativelyAcceptItemType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeChangeType.php71
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneContextType.php27
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneDefinitionType.php62
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneType.php54
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TooBigGroupAttendeeConflictData.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TrackingPropertyType.php37
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TransitionTargetType.php28
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TransitionType.php28
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TwoOperandExpressionType.php24
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UnifiedMessageServiceConfiguration.php48
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UnknownAttendeeConflictData.php17
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UploadItemType.php73
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryEntryType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryObjectType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryType.php25
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationNameType.php26
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationType.php68
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserIdType.php67
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserMailboxType.php34
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserOofSettings.php71
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WeeklyRecurrencePatternType.php36
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WeeklyRegeneratingPatternType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WellKnownResponseObjectType.php18
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WorkingHours.php42
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WorkingPeriod.php45
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/YearlyRegeneratingPatternType.php16
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/messages.xsd4523
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/services.wsdl3624
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/types.xsd9779
-rw-r--r--modules-available/locationinfo/exchange-includes/jamesiarmes/PhpNtlm/SoapClient.php226
782 files changed, 67709 insertions, 0 deletions
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 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType.
+ */
+
+namespace jamesiarmes\PhpEws;
+
+/**
+ * Base class for Exchange Web Service requests.
+ *
+ * @package php-ews\Array
+ */
+abstract class ArrayType extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAppManifestsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAppManifestsType.php
new file mode 100644
index 00000000..b1f105f6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAppManifestsType.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfAppManifestsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a collection of base64-encoded app manifests that are installed for a
+ * email account.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfAppManifestsType extends ArrayType
+{
+ /**
+ * Contains the base64-encoded app manifest file.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var string[]
+ *
+ * @todo Create a base64 class?
+ */
+ public $Manifest = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAppsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAppsType.php
new file mode 100644
index 00000000..ba27c9be
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAppsType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfAppsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines information about all the XML manifest files for apps installed in a
+ * mailbox.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfAppsType extends ArrayType
+{
+ /**
+ * Contains information about an XML manifest file for a mail app that is
+ * installed in a mailbox.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\AppType[]
+ */
+ public $App = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfArraysOfTrackingPropertiesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfArraysOfTrackingPropertiesType.php
new file mode 100644
index 00000000..0491f1da
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfArraysOfTrackingPropertiesType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfArraysOfTrackingPropertiesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a property bag to store errors that are returned through the Web
+ * service.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfArraysOfTrackingPropertiesType extends ArrayType
+{
+ /**
+ * Contains a list of one or more tracking properties.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTrackingPropertiesType[]
+ */
+ public $Properties = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAttachmentsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAttachmentsType.php
new file mode 100644
index 00000000..76bd0b59
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAttachmentsType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfAttachmentsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Contains the items or files that are attached to an item in the Exchange
+ * store.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Figure out how to handle array classes.
+ */
+class ArrayOfAttachmentsType extends ArrayType
+{
+ /**
+ * Represents a file that is attached to an item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FileAttachmentType[]
+ */
+ public $FileAttachment;
+
+ /**
+ * Represents an Exchange item that is attached to another Exchange item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemAttachmentType[]
+ */
+ public $ItemAttachment;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAttendeeConflictData.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAttendeeConflictData.php
new file mode 100644
index 00000000..fc17e6ef
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfAttendeeConflictData.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfAttendeeConflictData.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of conflict data.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfAttendeeConflictData extends ArrayType
+{
+ /**
+ * Contains aggregate conflict information about the number of users
+ * available, the number of users who have conflicts, and the number of
+ * users who do not have availability information in a distribution list for
+ * a suggested meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\GroupAttendeeConflictData[]
+ */
+ public $GroupAttendeeConflictData = array();
+
+ /**
+ * Contains a user's or contact's free/busy status for a time window that
+ * occurs at the same time as the suggested meeting time identified in the
+ * Suggestion element.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\IndividualAttendeeConflictData[]
+ */
+ public $IndividualAttendeeConflictData = array();
+
+ /**
+ * Represents an attendee that resolved as a distribution list that was too
+ * large to expand.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TooBigGroupAttendeeConflictData[]
+ */
+ public $TooBigGroupAttendeeConflictData = array();
+
+ /**
+ * Represents an unresolvable attendee or an attendee that is not a user,
+ * distribution list, or contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\UnknownAttendeeConflictData[]
+ */
+ public $UnknownAttendeeConflictData = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBaseItemIdsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBaseItemIdsType.php
new file mode 100644
index 00000000..e2a42014
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBaseItemIdsType.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfBaseItemIdsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines the unique identities of items, occurrence items, and recurring
+ * master items that are used to delete, send, get, move, or copy items in the
+ * Exchange store.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfBaseItemIdsType extends ArrayType
+{
+ /**
+ * Contains the unique identifier and change key of an item in the Exchange
+ * store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType[]
+ */
+ public $ItemId = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBinaryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBinaryType.php
new file mode 100644
index 00000000..32cf354c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBinaryType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfBinaryType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a value that encodes a contact's certificate.
+ *
+ * @package php-ews\Type
+ */
+class ArrayOfBinaryType extends ArrayType
+{
+ /**
+ * Contains a Base64-encoded value.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $Base64Binary;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBodyContentAttributedValuesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBodyContentAttributedValuesType.php
new file mode 100644
index 00000000..c1980fc6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfBodyContentAttributedValuesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfBodyContentAttributedValuesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of BodyContentAttributedValue elements.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfBodyContentAttributedValuesType extends ArrayType
+{
+ /**
+ * Specifies the body content of an item.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\BodyContentAttributedValueType[]
+ */
+ public $BodyContentAttributedValue = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfCalendarEvent.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfCalendarEvent.php
new file mode 100644
index 00000000..e32a7cb6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfCalendarEvent.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfCalendarEvent.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a set of unique calendar item occurrences that represent the
+ * requested user's availability.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfCalendarEvent extends ArrayType
+{
+ /**
+ * Represents a unique calendar item occurrence.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarEvent[]
+ */
+ public $CalendarEvent = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfCalendarPermissionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfCalendarPermissionsType.php
new file mode 100644
index 00000000..32994050
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfCalendarPermissionsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfCalendarPermissionsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of calendar permissions for a folder.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfCalendarPermissionsType extends ArrayType
+{
+ /**
+ * Defines the access that a delegate user has to a calendar folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarPermissionType[]
+ */
+ public $CalendarPermission = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfContextProperty.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfContextProperty.php
new file mode 100644
index 00000000..ebafb93d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfContextProperty.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfContextProperty.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a set of context properties for an item.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfContextProperty extends ArrayType
+{
+ /**
+ * Specifies the context of an item.
+ *
+ * @since Exchange 2016
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContextPropertyType[]
+ */
+ public $ContextProperty = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfConversationNodesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfConversationNodesType.php
new file mode 100644
index 00000000..5c0149c9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfConversationNodesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfConversationNodesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a collection of conversation nodes.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfConversationNodesType extends ArrayType
+{
+ /**
+ * Specifies a node in a conversation.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ConversationNodeType
+ */
+ public $ConversationNode = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfConversationsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfConversationsType.php
new file mode 100644
index 00000000..a21c7a23
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfConversationsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfConversationsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of conversations.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfConversationsType extends ArrayType
+{
+ /**
+ * Represents a single conversation.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\ConversationType[]
+ */
+ public $Conversation = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDLExpansionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDLExpansionType.php
new file mode 100644
index 00000000..ed6ee3ba
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDLExpansionType.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfDLExpansionType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of mailboxes that are contained in a distribution list.
+ *
+ * @package php-ews\Array
+ *
+ * @todo Implement FindResponsePagingAttributes trait.
+ */
+class ArrayOfDLExpansionType extends ArrayType
+{
+ /**
+ * Represents the next denominator to use for the next request when you are
+ * using fraction page views.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $AbsoluteDenominator = array();
+
+ /**
+ * Indicates whether the current results contain the last item in the query
+ * so that additional paging is not needed.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IncludesLastItemInRange = array();
+
+ /**
+ * Represents the next index that should be used for the next request when
+ * you are using an indexed page view.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $IndexedPagingOffset = array();
+
+ /**
+ * Identifies a mail-enabled Active Directory directory service object.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType[]
+ */
+ public $Mailbox = array();
+
+ /**
+ * Represents the new numerator value to use for the next request when you
+ * are using fraction page views.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $NumeratorOffset = array();
+
+ /**
+ * Represents the total number of items in the view.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $TotalItemsInView = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDelegateUserResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDelegateUserResponseMessageType.php
new file mode 100644
index 00000000..31cc534c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDelegateUserResponseMessageType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfDelegateUserResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Contains the response messages for an Exchange Web Services delegate
+ * management request.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfDelegateUserResponseMessageType extends ArrayType
+{
+ /**
+ * Contains response messages for delegate management operations.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Response\DelegateUserResponseMessageType[]
+ */
+ public $DelegateUserResponseMessageType = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDelegateUserType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDelegateUserType.php
new file mode 100644
index 00000000..94fc105a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDelegateUserType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfDelegateUserType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Contains the identities of delegates to add to or update in a mailbox.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfDelegateUserType extends ArrayType
+{
+ /**
+ * Identifies a single delegate to add to or update in a mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\DelegateUserType[]
+ */
+ public $DelegateUser = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDiscoverySearchConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDiscoverySearchConfigurationType.php
new file mode 100644
index 00000000..33e92963
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfDiscoverySearchConfigurationType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfDiscoverySearchConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of DiscoverySearchConfiguration elements.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfDiscoverySearchConfigurationType extends ArrayType
+{
+ /**
+ * Specifies the configuration for eDiscovery search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\DiscoverySearchConfigurationType[]
+ */
+ public $DiscoverySearchConfiguration = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEmailAddressAttributedValuesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEmailAddressAttributedValuesType.php
new file mode 100644
index 00000000..3a68d266
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEmailAddressAttributedValuesType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressAttributedValuesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of EmailAddressAttributedValue values and the identifiers of
+ * their source attributions.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfEmailAddressAttributedValuesType extends ArrayType
+{
+ /**
+ * Specifies an instance of an array of email addresses and their associated
+ * attributions.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressAttributedValueType[]
+ */
+ public $EmailAddressAttributedValue = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEmailAddressesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEmailAddressesType.php
new file mode 100644
index 00000000..4a6e1701
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEmailAddressesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Specifies an array of all email addresses of an associated persona.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfEmailAddressesType extends ArrayType
+{
+ /**
+ * Represents a fully resolved e-mail address.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType[]
+ */
+ public $Address = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEncryptedSharedFolderDataType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEncryptedSharedFolderDataType.php
new file mode 100644
index 00000000..bd86516d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfEncryptedSharedFolderDataType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfEncryptedSharedFolderDataType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of data structures that a client can use to authorize
+ * the sharing of its calendar or contact data with other clients.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfEncryptedSharedFolderDataType extends ArrayType
+{
+ /**
+ * Contains the encrypted data that a client can use to authorize the
+ * sharing of its calendar or contact data with other clients.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EncryptedSharedFolderDataType[]
+ */
+ public $EncryptedSharedFolderData = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfExtendedAttributesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfExtendedAttributesType.php
new file mode 100644
index 00000000..e9b6cc45
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfExtendedAttributesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfExtendedAttributesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Internal use only.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfExtendedAttributesType extends ArrayType
+{
+ /**
+ * Internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ExtendedAttributeType[]
+ */
+ public $ExtendedAttribute = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfExtendedPropertyAttributedValueType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfExtendedPropertyAttributedValueType.php
new file mode 100644
index 00000000..77611cd3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfExtendedPropertyAttributedValueType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfExtendedPropertyAttributedValueType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines the extended properties used for a persona.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfExtendedPropertyAttributedValueType extends ArrayType
+{
+ /**
+ * Specifies extended properties for a persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ExtendedPropertyAttributedValueType[]
+ */
+ public $ExtendedPropertyAttributedValue = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFailedSearchMailboxesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFailedSearchMailboxesType.php
new file mode 100644
index 00000000..3d13b635
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFailedSearchMailboxesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfFailedSearchMailboxesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of mailboxes that failed on search.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfFailedSearchMailboxesType extends ArrayType
+{
+ /**
+ * Specifies the error message for a mailbox that failed on search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\FailedSearchMailboxType[]
+ */
+ public $FailedMailbox = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFindMessageTrackingSearchResultType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFindMessageTrackingSearchResultType.php
new file mode 100644
index 00000000..19a0ab83
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFindMessageTrackingSearchResultType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfFindMessageTrackingSearchResultType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a list of records that match the search criteria.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfFindMessageTrackingSearchResultType extends ArrayType
+{
+ /**
+ * Contains a single message result for a FindMessageTrackingReportResponse
+ * element.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\FindMessageTrackingSearchResultType[]
+ */
+ public $MessageTrackingSearchResult = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFolderIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFolderIdType.php
new file mode 100644
index 00000000..c14019b0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFolderIdType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfFolderIdType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a list of folder identifiers.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfFolderIdType extends ArrayType
+{
+ /**
+ * Contains the identifier and change key of a folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType[]
+ */
+ public $FolderId = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFoldersType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFoldersType.php
new file mode 100644
index 00000000..340a89e3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFoldersType.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfFoldersType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of folders that are used in folder operations.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfFoldersType extends ArrayType
+{
+ /**
+ * Represents a folder that primarily contains calendar items.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarFolderType[]
+ */
+ public $CalendarFolder = array();
+
+ /**
+ * Represents a Contacts folder in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactsFolderType[]
+ */
+ public $ContactsFolder = array();
+
+ /**
+ * Identifies a folder to create, get, find, synchronize, or update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderType[]
+ */
+ public $Folder = array();
+
+ /**
+ * Represents a Search folder contained in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SearchFolderType[]
+ */
+ public $SearchFolder = array();
+
+ /**
+ * Represents a Tasks folder in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TasksFolderType[]
+ */
+ public $TasksFolder = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFreeBusyResponse.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFreeBusyResponse.php
new file mode 100644
index 00000000..4226b894
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfFreeBusyResponse.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfFreeBusyResponse.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents the requested users' availability information and the response
+ * status.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfFreeBusyResponse extends ArrayType
+{
+ /**
+ * Contains the free/busy information for a single mailbox user and the
+ * response status.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FreeBusyResponseType[]
+ */
+ public $FreeBusyResponse = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfGroupedItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfGroupedItemsType.php
new file mode 100644
index 00000000..dabdc358
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfGroupedItemsType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfGroupedItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of groups that are found with the search and
+ * aggregation criteria that is identified in the FindItem operation request.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfGroupedItemsType extends ArrayType
+{
+ /**
+ * Represents a collection of items that are the result of a grouped
+ * FindItem operation call.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\GroupedItemsType[]
+ */
+ public $GroupedItems = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfImGroupType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfImGroupType.php
new file mode 100644
index 00000000..1eed588c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfImGroupType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfImGroupType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of instant messaging (IM) groups.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfImGroupType extends ArrayType
+{
+ /**
+ * Represents an instant messaging group.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ImGroupType[]
+ */
+ public $ImGroup = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfInvalidRecipientsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfInvalidRecipientsType.php
new file mode 100644
index 00000000..0789a4df
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfInvalidRecipientsType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfInvalidRecipientsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents the recipients of a folder sharing request that are invalid.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfInvalidRecipientsType extends ArrayType
+{
+ /**
+ * Contains the SMTP address of the invalid recipient and information about
+ * why the recipient is invalid.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\InvalidRecipientType[]
+ */
+ public $InvalidRecipient = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfItemClassType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfItemClassType.php
new file mode 100644
index 00000000..41c8e267
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfItemClassType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfItemClassType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a list of item classes.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfItemClassType extends ArrayType
+{
+ /**
+ * Represents the message class of an item.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string[]
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ItemClassType[]
+ */
+ public $ItemClass = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfKeywordStatisticsSearchResultsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfKeywordStatisticsSearchResultsType.php
new file mode 100644
index 00000000..44efc1bb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfKeywordStatisticsSearchResultsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfKeywordStatisticsSearchResultsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a list of one or more KeywordStat elements.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfKeywordStatisticsSearchResultsType extends ArrayType
+{
+ /**
+ * Specifies keyword statistic information.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\KeywordStatisticsSearchResultType[]
+ */
+ public $KeywordStat = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailTipsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailTipsResponseMessageType.php
new file mode 100644
index 00000000..84842a49
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailTipsResponseMessageType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfMailTipsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a list of mail tips response messages.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfMailTipsResponseMessageType extends ArrayType
+{
+ /**
+ * Represents mail tips settings.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\MailTipsResponseMessageType[]
+ */
+ public $MailTipsResponseMessageType = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailboxData.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailboxData.php
new file mode 100644
index 00000000..81534153
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailboxData.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfMailboxData.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a list of mailboxes to query for availability information.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfMailboxData extends ArrayType
+{
+ /**
+ * Represents an individual mailbox user and options for the type of data to
+ * be returned about the mailbox user.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MailboxData[]
+ */
+ public $MailboxData = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailboxHoldStatusType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailboxHoldStatusType.php
new file mode 100644
index 00000000..bc6acff9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfMailboxHoldStatusType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfMailboxHoldStatusType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a list of one or more mailbox hold statuses.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfMailboxHoldStatusType extends ArrayType
+{
+ /**
+ * Specifies the hold status of the mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\MailboxHoldStatusType[]
+ */
+ public $MailboxHoldStatus = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfNonIndexableItemDetailsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfNonIndexableItemDetailsType.php
new file mode 100644
index 00000000..846b753b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfNonIndexableItemDetailsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfNonIndexableItemDetailsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of item details for non-indexable items.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfNonIndexableItemDetailsType extends ArrayType
+{
+ /**
+ * Specifies detail information about an item that cannot be indexed.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\NonIndexableItemDetailType[]
+ */
+ public $NonIndexableItemDetail = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfNonIndexableItemStatisticsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfNonIndexableItemStatisticsType.php
new file mode 100644
index 00000000..63164972
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfNonIndexableItemStatisticsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfNonIndexableItemStatisticsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of statistics for items that could not be indexed.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfNonIndexableItemStatisticsType extends ArrayType
+{
+ /**
+ * Contains a single statistic for an item that could not be indexed.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\NonIndexableItemStatisticType[]
+ */
+ public $NonIndexableItemStatistic = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfOccurrenceRangesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfOccurrenceRangesType.php
new file mode 100644
index 00000000..7b61e4e4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfOccurrenceRangesType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfOccurrenceRangesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of recurrence ranges.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfOccurrenceRangesType extends ArrayType
+{
+ /**
+ * Specifies a range of calendar item occurrences for a repeating calendar
+ * item.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\OccurrencesRangeType[]
+ */
+ public $Range = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPeopleQuerySource.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPeopleQuerySource.php
new file mode 100644
index 00000000..d6b954be
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPeopleQuerySource.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfPeopleQuerySource.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines the source data for a persona query.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfPeopleQuerySource extends ArrayType
+{
+ /**
+ * Source data for the persona query.
+ *
+ * @since Exchange 2016
+ *
+ * @var string[]
+ */
+ public $Source = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPeopleType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPeopleType.php
new file mode 100644
index 00000000..db68ba81
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPeopleType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfPeopleType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of persona data.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfPeopleType extends ArrayType
+{
+ /**
+ * Specifies a set of persona data.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PersonaType[]
+ */
+ public $Persona = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPermissionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPermissionsType.php
new file mode 100644
index 00000000..d92db08b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPermissionsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfPermissionsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Contains the collection of permissions for a folder.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfPermissionsType extends ArrayType
+{
+ /**
+ * Defines the access that a delegate has to a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\PermissionType[]
+ */
+ public $Permission = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPersonaAttributionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPersonaAttributionsType.php
new file mode 100644
index 00000000..1b1f870b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPersonaAttributionsType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfPersonaAttributionsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Specifies an array of attribution information for one or more of the contacts
+ * or Active Directory recipients aggregated into the associated persona.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfPersonaAttributionsType extends ArrayType
+{
+ /**
+ * Specifies an instance in an array of attributes for a Persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PersonaAttributionType[]
+ */
+ public $Attribution = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPhoneNumberAttributedValuesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPhoneNumberAttributedValuesType.php
new file mode 100644
index 00000000..1ebced35
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPhoneNumberAttributedValuesType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of phone numbers and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfPhoneNumberAttributedValuesType extends ArrayType
+{
+ /**
+ * Specifies an instance of an array of phone numbers and their associated
+ * attributions.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PhoneNumberAttributedValueType[]
+ */
+ public $PhoneNumberAttributedValue = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPostalAddressAttributedValuesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPostalAddressAttributedValuesType.php
new file mode 100644
index 00000000..731ad9ca
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPostalAddressAttributedValuesType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfPostalAddressAttributedValuesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of business addresses and the identifiers of their source
+ * attributions.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfPostalAddressAttributedValuesType extends ArrayType
+{
+ /**
+ * Specifies an instance of an array of postal addresses and their
+ * associated attributions.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PostalAddressAttributedValueType[]
+ */
+ public $PostalAddressAttributedValue = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPrivateCatalogAddInsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPrivateCatalogAddInsType.php
new file mode 100644
index 00000000..d31414cc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfPrivateCatalogAddInsType.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfPrivateCatalogAddInsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Undocumented.
+ *
+ * @package php-ews\Array
+ *
+ * @todo Update once documentation exists.
+ */
+class ArrayOfPrivateCatalogAddInsType extends ArrayType
+{
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var \jamesiarmes\PhpEws\Type\PrivateCatalogAddInsType[]
+ *
+ * @todo Update once documentation exists.
+ */
+ public $AddIn = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfProtectionRulesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfProtectionRulesType.php
new file mode 100644
index 00000000..8d4e6123
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfProtectionRulesType.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfProtectionRulesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of protection rules.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfProtectionRulesType extends ArrayType
+{
+ /**
+ * Contains a single protection rule.
+ *
+ * This element can occur zero or more times. This element occurs zero times
+ * when no protection rules are defined by the organization. It occurs one
+ * or more times if at least one rule is defined by the organization.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRuleType[]
+ */
+ public $Rule = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRealItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRealItemsType.php
new file mode 100644
index 00000000..be59f020
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRealItemsType.php
@@ -0,0 +1,115 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfRealItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of items.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfRealItemsType extends ArrayType
+{
+ /**
+ * Represents an Exchange calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarItemType[]
+ */
+ public $CalendarItem = array();
+
+ /**
+ * Represents an Exchange contact item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactItemType[]
+ */
+ public $Contact = array();
+
+ /**
+ * Represents a distribution list.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DistributionListType[]
+ */
+ public $DistributionList = array();
+
+ /**
+ * Represents an item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemType[]
+ */
+ public $Item = array();
+
+ /**
+ * Represents a meeting cancellation in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingCancellationMessageType[]
+ */
+ public $MeetingCancellation = array();
+
+ /**
+ * Represents a meeting message in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingMessageType[]
+ */
+ public $MeetingMessage = array();
+
+ /**
+ * Represents a meeting request in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingRequestMessageType[]
+ */
+ public $MeetingRequest = array();
+
+ /**
+ * Represents a meeting response in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingResponseMessageType[]
+ */
+ public $MeetingResponse = array();
+
+ /**
+ * Represents an Exchange e-mail message.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MessageType[]
+ */
+ public $Message = array();
+
+ /**
+ * Represents a post item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PostItemType[]
+ */
+ public $PostItem = array();
+
+ /**
+ * Represents a task in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TaskType[]
+ */
+ public $Task = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRecipientTrackingEventType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRecipientTrackingEventType.php
new file mode 100644
index 00000000..033e22e5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRecipientTrackingEventType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientTrackingEventType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of one or more events for a message.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfRecipientTrackingEventType extends ArrayType
+{
+ /**
+ * Contains details for a specific event in the tracking report.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RecipientTrackingEventType[]
+ */
+ public $RecipientTrackingEvent = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRecipientsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRecipientsType.php
new file mode 100644
index 00000000..56edcf92
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRecipientsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of recipients of an item.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfRecipientsType extends ArrayType
+{
+ /**
+ * Identifies a mail-enabled Active Directory directory service object.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType[]
+ */
+ public $Mailbox = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRemindersType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRemindersType.php
new file mode 100644
index 00000000..fd8ebf92
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRemindersType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfRemindersType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents the reminders returned in the response to a GetReminders request.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfRemindersType extends ArrayType
+{
+ /**
+ * Specifies a reminder for a task or a calendar item.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ReminderType[]
+ */
+ public $Reminder = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfResolutionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfResolutionType.php
new file mode 100644
index 00000000..326caa90
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfResolutionType.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfResolutionType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of resolutions for an ambiguous name.
+ *
+ * @package php-ews\Array
+ *
+ * @todo Implement FindResponsePagingAttributes trait.
+ */
+class ArrayOfResolutionType extends ArrayType
+{
+ /**
+ * Represents the next denominator to use for the next request when you are
+ * using fraction page views.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $AbsoluteDenominator = array();
+
+ /**
+ * This attribute will be true if the current results contain the last item
+ * in the query, so that additional paging is not needed.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IncludesLastItemInRange = array();
+
+ /**
+ * Represents the next index that should be used for the next request when
+ * you are using an indexed page view.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $IndexedPagingOffset = array();
+
+ /**
+ * Represents the new numerator value to use for the next request when you
+ * are using fraction page views.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $NumeratorOffset = array();
+
+ /**
+ * Contains a single resolved entity.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ResolutionType[]
+ */
+ public $Resolution = array();
+
+ /**
+ * Represents the total number of items in the view.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $TotalItemsInView = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfResponseMessagesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfResponseMessagesType.php
new file mode 100644
index 00000000..7ca32e85
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfResponseMessagesType.php
@@ -0,0 +1,504 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfResponseMessagesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents the response messages for an Exchange Web Services request.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfResponseMessagesType extends ArrayType
+{
+ /**
+ * Contains the status and results of an ApplyConversationAction Operation
+ * request.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Response\ApplyConversationActionResponseMessageType[]
+ */
+ public $ApplyConversationActionResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single ArchiveItem request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\ItemInfoResponseMessageType[]
+ */
+ public $ArchiveItemResponseMessage = array();
+
+ /**
+ * Contains the status and result of a ConvertId request.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Response\ConvertIdResponseMessageType[]
+ */
+ public $ConvertIdResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single CopyFolder request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\FolderInfoResponseMessageType[]
+ */
+ public $CopyFolderResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single CopyItem request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ItemInfoResponseMessageType[]
+ */
+ public $CopyItemResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single CreateAttachment request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\AttachmentInfoResponseMessageType[]
+ */
+ public $CreateAttachmentResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single CreateFolder request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\FolderInfoResponseMessageType[]
+ */
+ public $CreateFolderResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single CreateItem request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ItemInfoResponseMessageType[]
+ */
+ public $CreateItemResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single CreateManagedFolder request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\FolderInfoResponseMessageType[]
+ */
+ public $CreateManagedFolderResponseMessage = array();
+
+ /**
+ * Contains the status and results of a CreateUserConfiguration request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType[]
+ */
+ public $CreateUserConfigurationResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single DeleteAttachment request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\DeleteAttachmentResponseMessageType[]
+ */
+ public $DeleteAttachmentResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single DeleteFolder request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType[]
+ */
+ public $DeleteFolderResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single DeleteItem request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType[]
+ */
+ public $DeleteItemResponseMessage = array();
+
+ /**
+ * Contains the status and results of a DeleteUserConfiguration request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType[]
+ */
+ public $DeleteUserConfigurationResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single EmptyFolder request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType[]
+ */
+ public $EmptyFolderResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single ExpandDL request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ExpandDLResponseMessageType[]
+ */
+ public $ExpandDLResponseMessage = array();
+
+ /**
+ * Contains the status and results of a single ExportItems request.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Response\ExportItemsResponseMessageType[]
+ */
+ public $ExportItemsResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single FindFolder request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\FindFolderResponseMessageType[]
+ */
+ public $FindFolderResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single FindItem request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\FindItemResponseMessageType[]
+ */
+ public $FindItemResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single FindMailboxStatisticsByKeyword
+ * request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\FindMailboxStatisticsByKeywordsResponseMessageType[]
+ */
+ public $FindMailboxStatisticsByKeywordsResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single GetAttachment request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\AttachmentInfoResponseMessageType[]
+ */
+ public $GetAttachmentResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single GetClientAccessToken request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetClientAccessTokenResponseMessageType[]
+ */
+ public $GetClientAccessTokenResponseMessage = array();
+
+ /**
+ * Specifies the response message for a GetConversationItems request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetConversationItemsResponseMessageType[]
+ */
+ public $GetConversationItemsResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single GetEvents request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetEventsResponseMessageType[]
+ */
+ public $GetEventsResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single GetFolder request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\FolderInfoResponseMessageType[]
+ */
+ public $GetFolderResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single GetItem request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ItemInfoResponseMessageType[]
+ */
+ public $GetItemResponseMessage = array();
+
+ /**
+ * Contains the status and results of a GetReminders request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetRemindersResponseMessageType[]
+ */
+ public $GetRemindersResponse = array();
+
+ /**
+ * Contains the status and results of a GetRoomLists request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetRoomListsResponseMessageType[]
+ */
+ public $GetRoomListsResponse = array();
+
+ /**
+ * Contains the status and results of a GetRooms request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetRoomsResponseMessageType[]
+ */
+ public $GetRoomsResponse = array();
+
+ /**
+ * Contains the status and result of a single GetServerTimeZones request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetServerTimeZonesResponseMessageType[]
+ */
+ public $GetServerTimeZonesResponseMessage = array();
+
+ /**
+ * Contains the status and results of a GetSharingFolder request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetSharingFolderResponseMessageType[]
+ */
+ public $GetSharingFolderResponseMessage = array();
+
+ /**
+ * Contains the status and results of a GetSharingMetadata request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetSharingMetadataResponseMessageType[]
+ */
+ public $GetSharingMetadataResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single GetStreamingEvents request.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetStreamingEventsResponseMessageType[]
+ */
+ public $GetStreamingEventsResponseMessage = array();
+
+ /**
+ * Contains the status and results of a GetUserConfiguration request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetUserConfigurationResponseMessageType[]
+ */
+ public $GetUserConfigurationResponseMessage = array();
+
+ /**
+ * Contains the status and results of a GetUserPhoto request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\GetUserPhotoResponseMessageType[]
+ */
+ public $GetUserPhotoResponseMessage = array();
+
+ /**
+ * Defines a response message for a MarkAllItemsAsRead request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType
+ */
+ public $MarkAllItemsAsReadResponseMessage = array();
+
+ /**
+ * Defines a response message for a MarkAsJunk request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\MarkAsJunkResponseMessageType
+ */
+ public $MarkAsJunkResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single MoveFolder request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\FolderInfoResponseMessageType[]
+ */
+ public $MoveFolderResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single MoveItem request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ItemInfoResponseMessageType[]
+ */
+ public $MoveItemResponseMessage = array();
+
+ /**
+ * Contains the status and results of a PerformReminderAction request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\PerformReminderActionResponseMessageType[]
+ */
+ public $PerformReminderActionResponse = array();
+
+ /**
+ * Contains the status and results of a RefreshSharingFolder request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\RefreshSharingFolderResponseMessageType[]
+ */
+ public $RefreshSharingFolderResponseMessage = array();
+
+ /**
+ * Contains the status and result of a ResolveNames request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResolveNamesResponseMessageType[]
+ */
+ public $ResolveNamesResponseMessage = array();
+
+ /**
+ * Contains the status and result of a SearchMailboxes request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\SearchMailboxesResponseMessageType[]
+ */
+ public $SearchMailboxesResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single SendItem request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType[]
+ */
+ public $SendItemResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single SendNotification request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\SendNotificationResponseMessageType[]
+ */
+ public $SendNotificationResponseMessage = array();
+
+ /**
+ * Contains the status and result of a SetHoldOnMailboxes request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Response\SetHoldOnMailboxesResponseMessageType[]
+ */
+ public $SetHoldOnMailboxesResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single Subscribe request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\SubscribeResponseMessageType[]
+ */
+ public $SubscribeResponseMessage = array();
+
+ /**
+ * Contains the status and result of a SyncFolderHierarchy request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\SyncFolderHierarchyResponseMessageType[]
+ */
+ public $SyncFolderHierarchyResponseMessage = array();
+
+ /**
+ * Contains the status and result of a SyncFolderItems request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\SyncFolderItemsResponseMessageType[]
+ */
+ public $SyncFolderItemsResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single Unsubscribe request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType[]
+ */
+ public $UnsubscribeResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single UpdateFolder request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\FolderInfoResponseMessageType[]
+ */
+ public $UpdateFolderResponseMessage = array();
+
+ /**
+ * Contains the status and result of a single UpdateItem request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\UpdateItemResponseMessageType[]
+ */
+ public $UpdateItemResponseMessage = array();
+
+ /**
+ * Contains the status and results of an UpdateUserConfiguration request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType[]
+ */
+ public $UpdateUserConfigurationResponseMessage = array();
+
+ /**
+ * Contains the status and results of a single UploadItems request.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Response\UploadItemsResponseMessageType[]
+ */
+ public $UploadItemsResponseMessage = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRetentionPolicyTagsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRetentionPolicyTagsType.php
new file mode 100644
index 00000000..abd55f5c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRetentionPolicyTagsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfRetentionPolicyTagsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a list of retention tags.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfRetentionPolicyTagsType extends ArrayType
+{
+ /**
+ * Specifies the retention policy for a mailbox item.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\RetentionPolicyTagType[]
+ */
+ public $RetentionPolicyTag = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRoomsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRoomsType.php
new file mode 100644
index 00000000..963f1d65
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRoomsType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfRoomsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents one or more meeting rooms.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfRoomsType extends ArrayType
+{
+ /**
+ * Defines an e-mail address and display name that represents a meeting
+ * room.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RoomType[]
+ */
+ public $Room = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleOperationErrorsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleOperationErrorsType.php
new file mode 100644
index 00000000..48bad16f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleOperationErrorsType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfRuleOperationErrorsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of rule validation errors on each rule field that has an
+ * error.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfRuleOperationErrorsType extends ArrayType
+{
+ /**
+ * Represents a rule operation error.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RuleOperationErrorType[]
+ */
+ public $RuleOperationError = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleOperationsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleOperationsType.php
new file mode 100644
index 00000000..cb7ebd40
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleOperationsType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfRuleOperationsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of rule operations that can be performed on an Inbox.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfRuleOperationsType extends ArrayType
+{
+ /**
+ * Represents an operation to create a new Inbox rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\CreateRuleOperationType[]
+ */
+ public $CreateRuleOperation = array();
+
+ /**
+ * Represents an operation to delete an Inbox rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\DeleteRuleOperationType[]
+ */
+ public $DeleteRuleOperation = array();
+
+ /**
+ * Represents an operation to update an Inbox rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\SetRuleOperationType[]
+ */
+ public $SetRuleOperation = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleValidationErrorsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleValidationErrorsType.php
new file mode 100644
index 00000000..f5db0717
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRuleValidationErrorsType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfRuleValidationErrorsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of rule validation errors on each rule field that has an
+ * error.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfRuleValidationErrorsType extends ArrayType
+{
+ /**
+ * Represents a single validation error on a particular rule property value,
+ * predicate property value, or action property value.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RuleValidationErrorType[]
+ */
+ public $Error = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRulesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRulesType.php
new file mode 100644
index 00000000..850bfd80
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfRulesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfRulesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of rules in the user's mailbox.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfRulesType extends ArrayType
+{
+ /**
+ * Contains a single rule and represents a rule in the user's mailbox.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RuleType[]
+ */
+ public $Rule = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchItemKindsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchItemKindsType.php
new file mode 100644
index 00000000..355a783b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchItemKindsType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfSearchItemKindsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of messages to search.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfSearchItemKindsType extends ArrayType
+{
+ /**
+ * Indicates an item type to be searched.
+ *
+ * @since Exchange 2013
+ *
+ * @var string[]
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SearchItemKindType[]
+ */
+ public $SearchItemKind = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchPreviewItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchPreviewItemsType.php
new file mode 100644
index 00000000..03bdb61b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchPreviewItemsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfSearchPreviewItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a list of items available for preview.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfSearchPreviewItemsType extends ArrayType
+{
+ /**
+ * Specifies an item preview for a discovery search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\SearchPreviewItemType[]
+ */
+ public $SearchPreviewItem = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchableMailboxesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchableMailboxesType.php
new file mode 100644
index 00000000..974dbeea
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSearchableMailboxesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfSearchableMailboxesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of mailboxes that can be searched.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfSearchableMailboxesType extends ArrayType
+{
+ /**
+ * Specifies a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\SearchableMailboxType[]
+ */
+ public $SearchableMailbox = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfServiceConfigurationResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfServiceConfigurationResponseMessageType.php
new file mode 100644
index 00000000..66a18d2f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfServiceConfigurationResponseMessageType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfServiceConfigurationResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of service configuration response messages.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfServiceConfigurationResponseMessageType extends ArrayType
+{
+ /**
+ * Contains service configuration settings.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Response\ServiceConfigurationResponseMessageType[]
+ */
+ public $ServiceConfigurationResponseMessageType = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfServiceConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfServiceConfigurationType.php
new file mode 100644
index 00000000..76c0cf82
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfServiceConfigurationType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfServiceConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents service configurations.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfServiceConfigurationType extends ArrayType
+{
+ /**
+ * Specifies the requested service configurations by name.
+ *
+ * @since Exchange 2010
+ *
+ * @var string[]
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ServiceConfigurationType[]
+ */
+ public $ConfigurationName = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSmtpAddressType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSmtpAddressType.php
new file mode 100644
index 00000000..0ae49cf6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSmtpAddressType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfSmtpAddressType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of recipients of a message.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfSmtpAddressType extends ArrayType
+{
+ /**
+ * Represents the Simple Mail Transfer Protocol (SMTP) recipient address of
+ * a calendar or contact sharing request.
+ *
+ * @since Exchange 2010
+ *
+ * @var string[]
+ */
+ public $SmtpAddress = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringArrayAttributedValuesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringArrayAttributedValuesType.php
new file mode 100644
index 00000000..e3718171
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringArrayAttributedValuesType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfStringArrayAttributedValuesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Specifies an array of string data and identifiers of their source
+ * attributions.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfStringArrayAttributedValuesType extends ArrayType
+{
+ /**
+ * Specifies an instance of an array of string data.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\StringArrayAttributedValueType[]
+ */
+ public $StringArrayAttributedValue = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringAttributedValuesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringAttributedValuesType.php
new file mode 100644
index 00000000..09676b04
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringAttributedValuesType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of names and the identifiers of their source attributions
+ * for the associated persona.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfStringAttributedValuesType extends ArrayType
+{
+ /**
+ * Specifies an instance in an array of attributes associated with a persona
+ * element.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\StringAttributedValueType[]
+ */
+ public $StringAttributedValue = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringsType.php
new file mode 100644
index 00000000..6443d31d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfStringsType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of strings.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfStringsType extends ArrayType
+{
+ /**
+ * Contains a single string.
+ *
+ * @since Exchange 2007
+ *
+ * @var string[]
+ */
+ public $String = array();
+
+ /**
+ * Properly converts the value of this type to a string.
+ *
+ * @return string
+ *
+ * @todo Determine if this is needed.
+ */
+ public function __toString()
+ {
+ return $this->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 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfSuggestion.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of meeting suggestions.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfSuggestion extends ArrayType
+{
+ /**
+ * Represents a single meeting suggestion.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\Suggestion[]
+ */
+ public $Suggestion = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSuggestionDayResult.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSuggestionDayResult.php
new file mode 100644
index 00000000..c5b09ade
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfSuggestionDayResult.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfSuggestionDayResult.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of meeting suggestions organized by date.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfSuggestionDayResult extends ArrayType
+{
+ /**
+ * Represents a single day that contains suggested meeting times.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SuggestionDayResult[]
+ */
+ public $SuggestionDayResult = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTimeZoneDefinitionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTimeZoneDefinitionType.php
new file mode 100644
index 00000000..2fceb0ea
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTimeZoneDefinitionType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfTimeZoneDefinitionType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of time zone definitions.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfTimeZoneDefinitionType extends ArrayType
+{
+ /**
+ * Specifies the periods and transitions that define a time zone.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeZoneDefinitionType[]
+ */
+ public $TimeZoneDefinition = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTrackingPropertiesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTrackingPropertiesType.php
new file mode 100644
index 00000000..598690d2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTrackingPropertiesType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfTrackingPropertiesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a list of one or more tracking properties.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfTrackingPropertiesType extends ArrayType
+{
+ /**
+ * Represents a name and value pair of strings that is used to create
+ * properties for message tracking reports.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\TrackingPropertyType[]
+ */
+ public $TrackingPropertyType = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTransitionsGroupsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTransitionsGroupsType.php
new file mode 100644
index 00000000..0b7c49e1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTransitionsGroupsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfTransitionsGroupsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of time zone transition groups.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfTransitionsGroupsType extends ArrayType
+{
+ /**
+ * Represents an array of time zone transitions.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTransitionsType[]
+ */
+ public $TransitionsGroup = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTransitionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTransitionsType.php
new file mode 100644
index 00000000..4c0802e8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfTransitionsType.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfTransitionsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of time zone transitions.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfTransitionsType extends ArrayType
+{
+ /**
+ * A time zone transition that occurs on a specific date and at a specific
+ * time.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\AbsoluteDateTransitionType[]
+ */
+ public $AbsoluteDateTransition = array();
+
+ /**
+ * The unique identifier of the transitions group.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Id = array();
+
+ /**
+ * A time zone transition that occurs on a specified day of the year.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RecurringDateTransitionType[]
+ */
+ public $RecurringDateTransition = array();
+
+ /**
+ * A time zone transition that occurs on the same day each year.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RecurringDayTransitionType[]
+ */
+ public $RecurringDayTransition = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUnknownEntriesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUnknownEntriesType.php
new file mode 100644
index 00000000..1f43f6b5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUnknownEntriesType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfUnknownEntriesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Contains an array of unknown permission entries that cannot be resolved
+ * against the Active Directory directory service.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfUnknownEntriesType extends ArrayType
+{
+ /**
+ * Represents a single unknown permission entry that cannot be resolved
+ * against Active Directory.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string[]
+ */
+ public $UnknownEntry = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUserIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUserIdType.php
new file mode 100644
index 00000000..8394447d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUserIdType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfUserIdType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of delegate users to get or remove from a principal's
+ * mailbox.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfUserIdType extends ArrayType
+{
+ /**
+ * Identifies a delegate to get or remove from a principal's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserIdType[]
+ */
+ public $UserId = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUserMailboxesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUserMailboxesType.php
new file mode 100644
index 00000000..0c82725b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfUserMailboxesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfUserMailboxesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of mailboxes.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfUserMailboxesType extends ArrayType
+{
+ /**
+ * Identifies a single user's mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserMailboxType[]
+ */
+ public $UserMailbox = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfValueAttributionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfValueAttributionsType.php
new file mode 100644
index 00000000..fbd3759c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfValueAttributionsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfValueAttributionsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of attributions for an associated Value element.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfValueAttributionsType extends ArrayType
+{
+ /**
+ * Specifies a string used to identify an attribute.
+ *
+ * @since Exchange 2013
+ *
+ * @var string[]
+ */
+ public $Attribution = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfWorkingPeriod.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfWorkingPeriod.php
new file mode 100644
index 00000000..b2b0a518
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/ArrayOfWorkingPeriod.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\ArrayOfWorkingPeriod.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents working period information for the mailbox user.
+ *
+ * @package php-ews\Array
+ */
+class ArrayOfWorkingPeriod extends ArrayType
+{
+ /**
+ * Contains the work week days and hours of the mailbox user.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\WorkingPeriod[]
+ */
+ public $WorkingPeriod = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAllItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAllItemsType.php
new file mode 100644
index 00000000..1f13499b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAllItemsType.php
@@ -0,0 +1,217 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAllItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Identifies items of any type for numerous requests.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfAllItemsType extends ArrayType
+{
+ /**
+ * Represents an Accept reply to a meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AcceptItemType[]
+ */
+ public $AcceptItem = array();
+
+ /**
+ * Used to accept an invitation that allows access to another user’s
+ * calendar or contacts data.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\AcceptSharingInvitationType[]
+ */
+ public $AcceptSharingInvitation = array();
+
+ /**
+ * Represents an Exchange calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarItemType[]
+ */
+ public $CalendarItem = array();
+
+ /**
+ * Represents the response object that is used to cancel a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CancelCalendarItemType[]
+ */
+ public $CancelCalendarItem = array();
+
+ /**
+ * Represents an Exchange contact item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactItemType[]
+ */
+ public $Contact = array();
+
+ /**
+ * Represents a Decline reply to a meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DeclineItemType[]
+ */
+ public $DeclineItem = array();
+
+ /**
+ * Represents a distribution list.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DistributionListType[]
+ */
+ public $DistributionList = array();
+
+ /**
+ * Contains an Exchange store item to forward to recipients.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ForwardItemType[]
+ */
+ public $ForwardItem = array();
+
+ /**
+ * Represents an item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemType[]
+ */
+ public $Item = array();
+
+ /**
+ * Represents a meeting cancellation in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingCancellationMessageType[]
+ */
+ public $MeetingCancellation = array();
+
+ /**
+ * Represents a meeting message in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingMessageType[]
+ */
+ public $MeetingMessage = array();
+
+ /**
+ * Represents a meeting request in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingRequestMessageType[]
+ */
+ public $MeetingRequest = array();
+
+ /**
+ * Represents a meeting response in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingResponseMessageType[]
+ */
+ public $MeetingResponse = array();
+
+ /**
+ * Represents an Exchange e-mail message.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MessageType[]
+ */
+ public $Message = array();
+
+ /**
+ * Contains a post item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PostItemType[]
+ */
+ public $PostItem = array();
+
+ /**
+ * Contains a reply to a post item.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\PostReplyItemType[]
+ */
+ public $PostReplyItem = array();
+
+ /**
+ * Represents a response object that is used to remove a meeting item when a
+ * MeetingCancellation message is received.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RemoveItemType[]
+ */
+ public $RemoveItem = array();
+
+ /**
+ * Contains a reply to the sender and all identified recipients of an item
+ * in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ReplyAllToItemType[]
+ */
+ public $ReplyAllToItem = array();
+
+ /**
+ * Contains a reply to the sender of an item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ReplyToItemType[]
+ */
+ public $ReplyToItem = array();
+
+ /**
+ * Used to suppress read receipts.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SuppressReadReceiptType[]
+ */
+ public $SuppressReadReceipt = array();
+
+ /**
+ * Represents a task in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TaskType[]
+ */
+ public $Task = array();
+
+ /**
+ * Represents a Tentative reply to a meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TentativelyAcceptItemType[]
+ */
+ public $TentativelyAcceptItem = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAlternateIdsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAlternateIdsType.php
new file mode 100644
index 00000000..369145f8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAlternateIdsType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAlternateIdsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines the source identifiers to convert.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfAlternateIdsType extends ArrayType
+{
+ /**
+ * Describes an item or folder identifier to convert.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\AlternateIdType[]
+ */
+ public $AlternateId = array();
+
+ /**
+ * Describes a public folder identifier to convert.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\AlternatePublicFolderIdType[]
+ */
+ public $AlternatePublicFolderId = array();
+
+ /**
+ * Describes a public folder item identifier to convert.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\AlternatePublicFolderItemIdType[]
+ */
+ public $AlternatePublicFolderItemId = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfApplyConversationActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfApplyConversationActionType.php
new file mode 100644
index 00000000..5992e66f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfApplyConversationActionType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfApplyConversationActionType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a request to apply actions to items in a conversation.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfApplyConversationActionType extends ArrayType
+{
+ /**
+ * Contains a single action to be applied to a single conversation.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\ConversationActionType[]
+ */
+ public $ConversationAction = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAttachmentsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAttachmentsType.php
new file mode 100644
index 00000000..a5ca1c66
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAttachmentsType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAttachmentsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Contains the items or files that are attached to an item in the Exchange
+ * store.
+ *
+ * @package php-ews\Type
+ */
+class NonEmptyArrayOfAttachmentsType extends ArrayOfAttachmentsType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAttendeesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAttendeesType.php
new file mode 100644
index 00000000..de0f4abc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfAttendeesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAttendeesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents attendees who are not required to attend a meeting.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfAttendeesType extends ArrayType
+{
+ /**
+ * Represents attendees and resources for a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AttendeeType[]
+ */
+ public $Attendee = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfBaseFolderIdsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfBaseFolderIdsType.php
new file mode 100644
index 00000000..e20b336c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfBaseFolderIdsType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents the collection of folders that will be mined to determine the
+ * contents of a search folder.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfBaseFolderIdsType extends ArrayType
+{
+ /**
+ * Identifies MicrosoftExchange Server 2007 folders that can be referenced
+ * by name.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DistinguishedFolderIdType[]
+ */
+ public $DistinguishedFolderId = array();
+
+ /**
+ * Contains the identifier and change key of a folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType[]
+ */
+ public $FolderId = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfBaseItemIdsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfBaseItemIdsType.php
new file mode 100644
index 00000000..70a29c38
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfBaseItemIdsType.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents the unique identities of items, occurrence items, and recurring
+ * master items that are used to delete, send, get, move, or copy items in the
+ * Exchange store.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfBaseItemIdsType extends ArrayType
+{
+ /**
+ * Contains the unique identifier and change key of an item in the Exchange
+ * store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType[]
+ */
+ public $ItemId = array();
+
+ /**
+ * Identifies a single occurrence of a recurring item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\OccurrenceItemIdType[]
+ */
+ public $OccurrenceItemId = array();
+
+ /**
+ * Identifies a recurrence master item by identifying one of its related
+ * occurrence items' identifiers.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RecurringMasterItemIdType[]
+ */
+ public $RecurringMasterItemId = array();
+
+ /**
+ * Specifies an array of occurrence ranges.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\RecurringMasterItemIdRanges[]
+ */
+ public $RecurringMasterItemIdRanges = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfClientAccessTokenRequestsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfClientAccessTokenRequestsType.php
new file mode 100644
index 00000000..79164a0c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfClientAccessTokenRequestsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfClientAccessTokenRequestsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of token requests.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfClientAccessTokenRequestsType extends ArrayType
+{
+ /**
+ * Specifies a single token request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ClientAccessTokenRequestType
+ */
+ public $TokenRequest = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfDeletedOccurrencesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfDeletedOccurrencesType.php
new file mode 100644
index 00000000..4aa80c09
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfDeletedOccurrencesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfDeletedOccurrencesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of deleted occurrences of a recurring calendar item.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfDeletedOccurrencesType extends ArrayType
+{
+ /**
+ * Represents a deleted occurrence of a recurring calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DeletedOccurrenceInfoType[]
+ */
+ public $DeletedOccurrence = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfExtendedFieldURIs.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfExtendedFieldURIs.php
new file mode 100644
index 00000000..c250edae
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfExtendedFieldURIs.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfExtendedFieldURIs.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines the extended properties used for a request.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfExtendedFieldURIs extends ArrayType
+{
+ /**
+ * Specifies an extended property for the Unified Contact Store.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToExtendedFieldType[]
+ */
+ public $ExtendedProperty = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfExtendedPropertyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfExtendedPropertyType.php
new file mode 100644
index 00000000..16639272
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfExtendedPropertyType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfExtendedPropertyType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * An array of additional properties.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfExtendedPropertyType extends ArrayType
+{
+ /**
+ * Identifies extended MAPI properties on folders and items.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ExtendedPropertyType[]
+ */
+ public $ExtendedProperty = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFieldOrdersType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFieldOrdersType.php
new file mode 100644
index 00000000..44aa4cbc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFieldOrdersType.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFieldOrdersType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines how items are sorted in a FindItem or FindConversation request.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfFieldOrdersType extends ArrayType
+{
+ /**
+ * Represents a single field by which to sort results and indicates the
+ * direction for the sort.
+ *
+ * One or more of these elements may be included.
+ *
+ * FieldOrder elements are applied in the order specified for sorting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FieldOrderType[]
+ */
+ public $FieldOrder = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderChangeDescriptionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderChangeDescriptionsType.php
new file mode 100644
index 00000000..0ef7d1e3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderChangeDescriptionsType.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFolderChangeDescriptionsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a set of elements that define append, set, and delete changes to
+ * folder properties.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfFolderChangeDescriptionsType extends ArrayType
+{
+ /**
+ * Represents data to append to a folder property during an UpdateFolder
+ * operation.
+ *
+ * This property is not implemented and should not be used.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AppendToFolderFieldType[]
+ */
+ public $AppendToFolderField = array();
+
+ /**
+ * Represents an operation to delete a given property from a folder during
+ * an UpdateFolder operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DeleteFolderFieldType[]
+ */
+ public $DeleteFolderField = array();
+
+ /**
+ * Represents an update to a single property on a folder in an UpdateFolder
+ * operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SetFolderFieldType[]
+ */
+ public $SetFolderField = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderChangesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderChangesType.php
new file mode 100644
index 00000000..eff585c4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderChangesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFolderChangesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of changes for a folder.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfFolderChangesType extends ArrayType
+{
+ /**
+ * Represents a single change to be performed on a single folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderChangeType[]
+ */
+ public $FolderChange = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderNamesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderNamesType.php
new file mode 100644
index 00000000..03c7672d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFolderNamesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFolderNamesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of named managed folders to add to a mailbox.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfFolderNamesType extends ArrayType
+{
+ /**
+ * Identifies a single managed folder to add to mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string[]
+ */
+ public $FolderName = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFoldersType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFoldersType.php
new file mode 100644
index 00000000..5a46a5f3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfFoldersType.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFoldersType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of folders that are used in folder operations.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfFoldersType extends ArrayType
+{
+ /**
+ * Represents a folder that primarily contains calendar items.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarFolderType[]
+ */
+ public $CalendarFolder = array();
+
+ /**
+ * Represents a Contacts folder in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactsFolderType[]
+ */
+ public $ContactsFolder = array();
+
+ /**
+ * Identifies a folder to create, get, find, synchronize, or update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderType[]
+ */
+ public $Folder = array();
+
+ /**
+ * Represents a Search folder contained in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SearchFolderType[]
+ */
+ public $SearchFolder = array();
+
+ /**
+ * Represents a Tasks folder in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TasksFolderType[]
+ */
+ public $TasksFolder = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfGroupIdentifiersType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfGroupIdentifiersType.php
new file mode 100644
index 00000000..48e52c09
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfGroupIdentifiersType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfGroupIdentifiersType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of Active Directory directory service group object
+ * security identifiers.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfGroupIdentifiersType extends ArrayType
+{
+ /**
+ * Represents a single security identifier and attribute for an Active
+ * Directory object group of which the account is a member.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SidAndAttributesType[]
+ */
+ public $GroupIdentifier = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfInternetHeadersType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfInternetHeadersType.php
new file mode 100644
index 00000000..ee45cbc2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfInternetHeadersType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfInternetHeadersType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of some of the Internet message headers that are
+ * contained in an item in a mailbox.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfInternetHeadersType extends ArrayType
+{
+ /**
+ * Represents the Internet message header for a given header within the
+ * headers collection.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\InternetHeaderType[]
+ */
+ public $InternetMessageHeader = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemChangeDescriptionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemChangeDescriptionsType.php
new file mode 100644
index 00000000..6793af26
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemChangeDescriptionsType.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfItemChangeDescriptionsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a set of elements that define append, set, and delete changes to
+ * item properties.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfItemChangeDescriptionsType extends ArrayType
+{
+ /**
+ * Represents data to append to a single property of an item during an
+ * UpdateItem operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AppendToItemFieldType[]
+ */
+ public $AppendToItemField = array();
+
+ /**
+ * Represents an operation to delete a given property from an item during an
+ * UpdateItem operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DeleteItemFieldType[]
+ */
+ public $DeleteItemField = array();
+
+ /**
+ * Represents an update to a single property of an item in an UpdateItem
+ * operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SetItemFieldType[]
+ */
+ public $SetItemField = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemChangesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemChangesType.php
new file mode 100644
index 00000000..7def9f1c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemChangesType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfItemChangesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of ItemChange elements that identify items and the
+ * updates to apply to the items.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfItemChangesType extends ArrayType
+{
+ /**
+ * Contains an item identifier and the updates to apply to the item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemChangeType[]
+ */
+ public $ItemChange = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemIdsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemIdsType.php
new file mode 100644
index 00000000..7073a1f4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfItemIdsType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfItemIdsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of item ids.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfItemIdsType extends ArrayType
+{
+ /**
+ * Specifies the unique identifier and change key of an item in the Exchange
+ * store.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType[]
+ */
+ public $ItemId = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfMailboxQueriesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfMailboxQueriesType.php
new file mode 100644
index 00000000..09723310
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfMailboxQueriesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfMailboxQueriesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a list of mailboxes and associated queries for discovery search.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfMailboxQueriesType extends ArrayType
+{
+ /**
+ * Specifies a query and the scope of a discovery search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\MailboxQueryType[]
+ */
+ public $MailboxQuery = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfMailboxSearchScopesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfMailboxSearchScopesType.php
new file mode 100644
index 00000000..f6a53bb1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfMailboxSearchScopesType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfMailboxSearchScopesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines a list of one or more mailboxes and associated search scopes for a
+ * discovery search.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfMailboxSearchScopesType extends ArrayType
+{
+ /**
+ * Specifies a mailbox and a search scope for a discovery search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\MailboxSearchScopeType[]
+ */
+ public $MailboxSearchScope = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfNotificationEventTypesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfNotificationEventTypesType.php
new file mode 100644
index 00000000..3ae4182b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfNotificationEventTypesType.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfNotificationEventTypesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of event notification types that are used to create a
+ * subscription.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfNotificationEventTypesType extends ArrayType
+{
+ /**
+ * Represents a requested event notification type that is used to create a
+ * subscription.
+ *
+ * @since Exchange 2007
+ *
+ * @var string[]
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\NotificationEventTypeType[]
+ */
+ public $EventType = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfNotificationsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfNotificationsType.php
new file mode 100644
index 00000000..6461aba8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfNotificationsType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfNotificationsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of information about the subscription and the events that
+ * have occurred since the last notification.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfNotificationsType extends ArrayType
+{
+ /**
+ * Contains information about the subscription and the events that have
+ * occurred since the last notification.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\NotificationType[]
+ */
+ public $Notification = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfOccurrenceInfoType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfOccurrenceInfoType.php
new file mode 100644
index 00000000..8368750d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfOccurrenceInfoType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfOccurrenceInfoType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of recurring calendar item occurrences that have been
+ * modified so that they are different than the recurrence master item.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfOccurrenceInfoType extends ArrayType
+{
+ /**
+ * Represents a single modified occurrence of a recurring calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\OccurrenceInfoType[]
+ */
+ public $Occurrence = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPathsToElementType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPathsToElementType.php
new file mode 100644
index 00000000..e27760de
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPathsToElementType.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPathsToElementType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines additional properties for use in GetItem, UpdateItem, CreateItem,
+ * FindItem, or FindFolder requests.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfPathsToElementType extends ArrayType
+{
+ /**
+ * Identifies extended MAPI properties to get, set, or create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToExtendedFieldType[]
+ */
+ public $ExtendedFieldURI = array();
+
+ /**
+ * Identifies frequently referenced properties by URI.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToUnindexedFieldType[]
+ */
+ public $FieldURI = array();
+
+ /**
+ * Identifies frequently referenced dictionary properties by URI.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToIndexedFieldType[]
+ */
+ public $IndexedFieldURI = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPeriodsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPeriodsType.php
new file mode 100644
index 00000000..ae1e8a97
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPeriodsType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPeriodsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of periods that define the time offset at different
+ * stages of a time zone.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfPeriodsType extends ArrayType
+{
+ /**
+ * The name, time offset, and unique identifier for a specific stage of a
+ * time zone.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\PeriodType[]
+ */
+ public $Period = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPropertyValuesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPropertyValuesType.php
new file mode 100644
index 00000000..8d5e7284
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfPropertyValuesType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPropertyValuesType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of values for an extended property.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfPropertyValuesType extends ArrayType
+{
+ /**
+ * Contains a value of an extended property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string[]
+ */
+ public $Value = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfReminderItemActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfReminderItemActionType.php
new file mode 100644
index 00000000..c4803c82
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfReminderItemActionType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfReminderItemActionType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines the actions for reminder items.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfReminderItemActionType extends ArrayType
+{
+ /**
+ * Specifies the action for a reminder item.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ReminderItemActionType
+ */
+ public $ReminderItemAction = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfRequestAttachmentIdsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfRequestAttachmentIdsType.php
new file mode 100644
index 00000000..3a89c9fc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfRequestAttachmentIdsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfRequestAttachmentIdsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of attachment identifiers.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfRequestAttachmentIdsType extends ArrayType
+{
+ /**
+ * The element that identifies a single attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RequestAttachmentIdType[]
+ */
+ public $AttachmentId = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfResponseObjectsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfResponseObjectsType.php
new file mode 100644
index 00000000..e047392e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfResponseObjectsType.php
@@ -0,0 +1,128 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfResponseObjectsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of all the response objects that are associated with
+ * an item in the Exchange store.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfResponseObjectsType extends ArrayType
+{
+ /**
+ * Represents an Accept reply to a meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AcceptItemType[]
+ */
+ public $AcceptItem = array();
+
+ /**
+ * Used to accept an invitation that allows access to another user’s
+ * calendar or contacts data.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\AcceptSharingInvitationType[]
+ */
+ public $AcceptSharingInvitation = array();
+
+ /**
+ * Represents the response object used to cancel a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarItemType[]
+ */
+ public $CancelCalendarItem = array();
+
+ /**
+ * Represents a Decline reply to a meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DeclineItemType[]
+ */
+ public $DeclineItem = array();
+
+ /**
+ * Contains an Exchange store item to forward to recipients.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ForwardItemType[]
+ */
+ public $ForwardItem = array();
+
+ /**
+ * Contains a reply to a post item.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\PostReplyItemType[]
+ */
+ public $PostReplyItem = array();
+
+ /**
+ * Specifies a response object that indicates that the meeting attendee can
+ * propose a new meeting time.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProposeNewTimeType[]
+ */
+ public $ProposeNewTime = array();
+
+ /**
+ * Removes an item from the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RemoveItemType[]
+ */
+ public $RemoveItem = array();
+
+ /**
+ * Contains a reply to all identified recipients of an item in the Exchange
+ * store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ReplyAllToItemType[]
+ */
+ public $ReplyAllToItem = array();
+
+ /**
+ * Contains a reply to the creator of an item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ReplyToItemType[]
+ */
+ public $ReplyToItem = array();
+
+ /**
+ * Used to suppress read receipt requests.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SuppressReadReceiptType[]
+ */
+ public $SuppressReadReceipt = array();
+
+ /**
+ * Represents a Tentative reply to a meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TentativelyAcceptItemType[]
+ */
+ public $TentativelyAcceptItem = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfRestrictedGroupIdentifiersType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfRestrictedGroupIdentifiersType.php
new file mode 100644
index 00000000..7d819c96
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfRestrictedGroupIdentifiersType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfRestrictedGroupIdentifiersType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents a collection of restricted groups from a user's token.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfRestrictedGroupIdentifiersType extends ArrayType
+{
+ /**
+ * Represents the group security identifier (SID) and attributes for a
+ * restricted group.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SidAndAttributesType[]
+ */
+ public $RestrictedGroupIdentifier = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfSubscriptionIdsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfSubscriptionIdsType.php
new file mode 100644
index 00000000..2e3db551
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfSubscriptionIdsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfSubscriptionIdsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of invalid subscription IDs.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfSubscriptionIdsType extends ArrayType
+{
+ /**
+ * Represents the identifier for a subscription.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string[]
+ */
+ public $SubscriptionId = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfTimeZoneIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfTimeZoneIdType.php
new file mode 100644
index 00000000..fb8ec2ec
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfTimeZoneIdType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfTimeZoneIdType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of time zone definition identifiers.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfTimeZoneIdType extends ArrayType
+{
+ /**
+ * The element that identifies a single time zone definition.
+ *
+ * @since Exchange 2010
+ *
+ * @var string[]
+ */
+ public $Id = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfUploadItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfUploadItemsType.php
new file mode 100644
index 00000000..d1978f3d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayOfUploadItemsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfUploadItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Represents an array of items to upload into a mailbox.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayOfUploadItemsType extends ArrayType
+{
+ /**
+ * Represents a single item to upload into a mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\UploadItemType[]
+ */
+ public $Item = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayofLegacyDNsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayofLegacyDNsType.php
new file mode 100644
index 00000000..34833cea
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/ArrayType/NonEmptyArrayofLegacyDNsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayofLegacyDNsType.
+ */
+
+namespace jamesiarmes\PhpEws\ArrayType;
+
+use \jamesiarmes\PhpEws\ArrayType;
+
+/**
+ * Defines an array of mailboxes identified by legacy distinguished name.
+ *
+ * @package php-ews\Array
+ */
+class NonEmptyArrayofLegacyDNsType extends ArrayType
+{
+ /**
+ * Identifies a mailbox by its legacy distinguished name.
+ *
+ * @since Exchange 2013
+ *
+ * @var string[]
+ */
+ public $LegacyDN = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Autodiscover.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Autodiscover.php
new file mode 100644
index 00000000..8198137d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Autodiscover.php
@@ -0,0 +1,896 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Autodiscover.
+ */
+
+namespace jamesiarmes\PhpEws;
+
+/**
+ * Exchange Web Services Autodiscover implementation
+ *
+ * This class supports POX (Plain Old XML), which is deprecated but functional
+ * in Exchange 2010. It may make sense for you to combine your Autodiscovery
+ * efforts with a SOAP Autodiscover request as well.
+ *
+ * USAGE:
+ *
+ * (after any auto-loading class incantation)
+ *
+ * $ews = EWSAutodiscover::getEWS($email, $password);
+ *
+ * -- OR --
+ *
+ * If there are issues with your cURL installation that require you to specify
+ * a path to a valid Certificate Authority, you can configure that manually.
+ *
+ * $auto = new EWSAutodiscover($email, $password);
+ * $auto->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) !== '<?xml') {
+ return false;
+ }
+
+ $response = $this->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 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ClassMap.
+ *
+ * This class is generated using the build-classmap.php script. To make changes
+ * to this file should be made there or in the ClassMap.mustache template.
+ *
+ * Last updated on: 2017-03-03 00:53:44 UTC
+ */
+
+namespace jamesiarmes\PhpEws;
+
+/**
+ * Mapping of complex types to class implementations.
+ *
+ * @package php-ews\ClassMap
+ */
+class ClassMap {
+ public static function getMap() {
+ return array(
+ // Map for ArrayType classes.
+ 'ArrayOfRecipientTrackingEventType' => '\\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 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Client.
+ */
+
+namespace jamesiarmes\PhpEws;
+
+use \jamesiarmes\PhpNtlm\SoapClient;
+
+/**
+ * Base class of the Exchange Web Services application.
+ *
+ * @package php-ews\Client
+ */
+class Client
+{
+ /**
+ * Microsoft Exchange 2007
+ *
+ * @var string
+ */
+ const VERSION_2007 = 'Exchange2007';
+
+ /**
+ * Microsoft Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const VERSION_2007_SP1 = 'Exchange2007_SP1';
+
+ /**
+ * Microsoft Exchange 2007 SP2
+ *
+ * @var string
+ */
+ const VERSION_2009 = 'Exchange2009';
+
+ /**
+ * Microsoft Exchange 2010
+ *
+ * @var string
+ */
+ const VERSION_2010 = 'Exchange2010';
+
+ /**
+ * Microsoft Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const VERSION_2010_SP1 = 'Exchange2010_SP1';
+
+ /**
+ * Microsoft Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const VERSION_2010_SP2 = 'Exchange2010_SP2';
+
+ /**
+ * Microsoft Exchange 2013.
+ *
+ * @var string
+ */
+ const VERSION_2013 = 'Exchange2013';
+
+ /**
+ * Microsoft Exchange 2013 SP1.
+ *
+ * @var string
+ */
+ const VERSION_2013_SP1 = 'Exchange2013_SP1';
+
+ /**
+ * Microsoft Exchange 2016.
+ *
+ * @var string
+ */
+ const VERSION_2016 = 'Exchange2016';
+
+ /**
+ * cURL options to be passed to the SOAP client.
+ *
+ * @var array
+ */
+ protected $curl_options = array();
+
+ /**
+ * SOAP headers used for requests.
+ *
+ * @var \SoapHeader[]
+ */
+ protected $headers = array();
+
+ /**
+ * Password to use when connecting to the Exchange server.
+ *
+ * @var string
+ */
+ protected $password;
+
+ /**
+ * Location of the Exchange server.
+ *
+ * @var string
+ */
+ protected $server;
+
+ /**
+ * SOAP client used to make the request
+ *
+ * @var \jamesiarmes\PhpNtlm\SoapClient
+ */
+ protected $soap;
+
+ /**
+ * Timezone to be used for all requests.
+ *
+ * @var string
+ */
+ protected $timezone;
+
+ /**
+ * Username to use when connecting to the Exchange server.
+ *
+ * @var string
+ */
+ protected $username;
+
+ /**
+ * Exchange impersonation
+ *
+ * @var \jamesiarmes\PhpEws\Type\ExchangeImpersonationType
+ */
+ protected $impersonation;
+
+ /**
+ * Microsoft Exchange version that we are going to connect to
+ *
+ * @var string
+ *
+ * @see Client::VERSION_2007
+ * @see Client::VERSION_2007_SP1
+ * @see Client::VERSION_2007_SP2
+ * @see Client::VERSION_2007_SP3
+ * @see Client::VERSION_2010
+ * @see Client::VERSION_2010_SP1
+ * @see Client::VERSION_2010_SP2
+ */
+ protected $version;
+
+ /**
+ * Constructor for the ExchangeWebServices class
+ *
+ * @param string $server
+ * @param string $username
+ * @param string $password
+ * @param string $version
+ * One of the Client::VERSION_* constants.
+ */
+ public function __construct(
+ $server = null,
+ $username = null,
+ $password = null,
+ $version = self::VERSION_2013
+ ) {
+ // Set the object properties.
+ $this->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 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration.
+ */
+
+namespace jamesiarmes\PhpEws;
+
+/**
+ * Base class for Exchange Web Service Enumerations.
+ *
+ * @package php-ews\Enumeration
+ */
+class Enumeration extends Type
+{
+ /**
+ * Element value.
+ *
+ * @deprecated 1.0.0
+ * This property will be removed in a future release and should not be
+ * used. Instead, you should reference the constants implemented in the
+ * class directly.
+ *
+ * @var string
+ */
+ public $_;
+
+ /**
+ * Returns the value of this enumeration as a string..
+ *
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->_;
+ }
+}
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 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\AddInStateType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Undocumented.
+ *
+ * @package php-ews\Enumeration
+ *
+ * @todo Update once documentation exists.
+ */
+class AddInStateType extends Enumeration
+{
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ const FLAGGED = 'Flagged';
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ const OK = 'OK';
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ const REMOVED = 'Removed';
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ const UNDEFINED = 'Undefined';
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ const WITHDRAWING_SOON = 'WithdrawingSoon';
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ const WITHDRAWN = 'Withdrawn';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AffectedTaskOccurrencesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AffectedTaskOccurrencesType.php
new file mode 100644
index 00000000..402253d5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AffectedTaskOccurrencesType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\AffectedTaskOccurrencesType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines whether a task instance or a task master is deleted by a DeleteItem
+ * operation.
+ *
+ * @package php-ews\Enumeration
+ */
+class AffectedTaskOccurrencesType extends Enumeration
+{
+ /**
+ * A delete item request deletes the master task, and therefore all
+ * recurring tasks that are associated with the master task.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ALL = 'AllOccurrences';
+
+ /**
+ * A delete item request deletes only specific occurrences of a task.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SPECIFIED = 'SpecifiedOccurrenceOnly';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AggregateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AggregateType.php
new file mode 100644
index 00000000..ff4a73cd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AggregateType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\AggregateType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Indicates the maximum or minimum value of a property that is used for
+ * ordering groups of items.
+ *
+ * @package php-ews\Enumeration
+ */
+class AggregateType extends Enumeration
+{
+ /**
+ * Indicates that a maximum aggregation should be used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAXIMUM = 'Maximum';
+
+ /**
+ * Indicates that a minimum aggregation should be used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MINIMUM = 'Minimum';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AppointmentState.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AppointmentState.php
new file mode 100644
index 00000000..0321142f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AppointmentState.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\AppointmentState.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Specifies the status of the appointment.
+ *
+ * @package php-ews\Enumeration
+ */
+class AppointmentState extends Enumeration
+{
+ /**
+ * This appointment has been canceled.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANCELED = 4;
+
+ /**
+ * This appointment was forwarded.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FORWARD = 8;
+
+ /**
+ * This appointment is a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING = 1;
+
+ /**
+ * No flags have been set.
+ *
+ * This is only used for an appointment that does not include attendees.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NONE = 0;
+
+ /**
+ * This appointment has been received.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECEIVED = 2;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AvailabilityProxyRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AvailabilityProxyRequestType.php
new file mode 100644
index 00000000..bc3754d3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/AvailabilityProxyRequestType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\AvailabilityProxyRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines whether a proxy request is a cross-site or a cross-forest request.
+ *
+ * @package php-ews\Enumeration
+ */
+class AvailabilityProxyRequestType extends Enumeration
+{
+ /**
+ * Indicates that this request is cross-forest.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CROSS_FOREST = 'CrossForest';
+
+ /**
+ * Indicates that this request is cross-site.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CROSS_SITE = 'CrossSite';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/BodyTypeResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/BodyTypeResponseType.php
new file mode 100644
index 00000000..50548348
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/BodyTypeResponseType.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\BodyTypeResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines how the body text is formatted in the response.
+ *
+ * @package php-ews\Enumeration
+ */
+class BodyTypeResponseType extends Enumeration
+{
+ /**
+ * The response will return the richest available content of body text.
+ *
+ * This is useful if it is unknown whether the content is text or HTML. The
+ * returned body will be text if the stored body is plain text. Otherwise,
+ * the response will return HTML if the stored body is in either HTML or RTF
+ * format.
+ *
+ * This is the default value.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BEST = 'Best';
+
+ /**
+ * The response will return an item body as HTML.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const HTML = 'HTML';
+
+ /**
+ * The response will return an item body as plain text.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TEXT = 'Text';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/BodyTypeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/BodyTypeType.php
new file mode 100644
index 00000000..0aa92b38
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/BodyTypeType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\BodyTypeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Specifies the type of an item body.
+ *
+ * @package php-ews\Enumeration
+ */
+class BodyTypeType extends Enumeration
+{
+ /**
+ * Indicates that the body is in HTML.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const HTML = 'HTML';
+
+ /**
+ * Indicates that the body is in text.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TEXT = 'Text';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemCreateOrDeleteOperationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemCreateOrDeleteOperationType.php
new file mode 100644
index 00000000..cc0c3099
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemCreateOrDeleteOperationType.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\CalendarItemCreateOrDeleteOperationType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Describes how meeting requests are handled after they are created.
+ *
+ * @package php-ews\Enumeration
+ */
+class CalendarItemCreateOrDeleteOperationType extends Enumeration
+{
+ /**
+ * The meeting request is sent to all attendees but is not saved in the Sent
+ * Items folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_ONLY_TO_ALL = 'SendOnlyToAll';
+
+ /**
+ * The meeting request is sent to all attendees and a copy is saved in the
+ * folder that is identified by the SavedItemFolderId element.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_TO_ALL_AND_SAVE_COPY = 'SendToAllAndSaveCopy';
+
+ /**
+ * If the item is a meeting request, it is saved as a calendar item but not
+ * sent.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_TO_NONE = 'SendToNone';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemTypeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemTypeType.php
new file mode 100644
index 00000000..99f4c7b2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemTypeType.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\CalendarItemTypeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of a calendar item.
+ *
+ * @package php-ews\Enumeration
+ */
+class CalendarItemTypeType extends Enumeration
+{
+ /**
+ * The item is an exception to a recurring calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EXCEPTION = 'Exception';
+
+ /**
+ * The item is an occurrence of a recurring calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OCCURRENCE = 'Occurrence';
+
+ /**
+ * The item is master for a set of recurring calendar items.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECURRING_MASTER = 'RecurringMaster';
+
+ /**
+ * The item is not associated with a recurring calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SINGLE = 'Single';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemUpdateOperationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemUpdateOperationType.php
new file mode 100644
index 00000000..60689f51
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarItemUpdateOperationType.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\CalendarItemUpdateOperationType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines how meeting updates are communicated after a calendar item is
+ * updated.
+ *
+ * @package php-ews\Enumeration
+ */
+class CalendarItemUpdateOperationType extends Enumeration
+{
+ /**
+ * The calendar item is updated and the meeting update is sent to all
+ * attendees but is not saved in the Sent Items folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_ONLY_TO_ALL = 'SendOnlyToAll';
+
+ /**
+ * The calendar item is updated and the meeting update is sent only to
+ * attendees that are affected by the change in the meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_ONLY_TO_CHANGED = 'SendOnlyToChanged';
+
+ /**
+ * The calendar item is updated, the meeting update is sent to all
+ * attendees, and a copy is saved in the Sent Items folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_TO_ALL_AND_SAVE_COPY = 'SendToAllAndSaveCopy';
+
+ /**
+ * The calendar item is updated, the meeting update is sent to all attendees
+ * that are affected by the change in the meeting, and a copy is saved in
+ * the Sent Items folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_TO_CHANGED_AND_SAVE_COPY = 'SendToChangedAndSaveCopy';
+
+ /**
+ * The calendar item is updated but updates are not sent to attendees.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_TO_NONE = 'SendToNone';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarPermissionLevelType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarPermissionLevelType.php
new file mode 100644
index 00000000..8331e546
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarPermissionLevelType.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\CalendarPermissionLevelType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the permission level that a user has on a Calendar folder.
+ *
+ * @package php-ews\Enumeration
+ */
+class CalendarPermissionLevelType extends PermissionLevelType
+{
+ /**
+ * Indicates that the user can view only free/busy time within the calendar.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const FREE_BUSY_ONLY = 'FreeBusyTimeOnly';
+
+ /**
+ * Indicates that the user can view free/busy time within the calendar and
+ * the subject and location of appointments.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const FREE_BUSY_SUBJECT_AND_LOCATION = 'FreeBusyTimeAndSubjectAndLocation';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarPermissionReadAccessType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarPermissionReadAccessType.php
new file mode 100644
index 00000000..4d6317e6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CalendarPermissionReadAccessType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\CalendarPermissionReadAccessType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Indicates whether a user has permission to read items within a Calendar
+ * folder.
+ *
+ * @package php-ews\Enumeration
+ */
+class CalendarPermissionReadAccessType extends PermissionReadAccessType
+{
+ /**
+ * Indicates that the user has permission to view only free/busy time in the\
+ * calendar.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const TIME_ONLY = 'TimeOnly';
+
+ /**
+ * Indicates that the user has permission to view free/busy time in the
+ * calendar and the subject and location of appointments.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const TIME_SUBJECT_AND_LOCATION = 'TimeAndSubjectAndLocation';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ClientAccessTokenTypeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ClientAccessTokenTypeType.php
new file mode 100644
index 00000000..a802580d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ClientAccessTokenTypeType.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ClientAccessTokenTypeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of a client access token.
+ *
+ * @package php-ews\Enumeration
+ */
+class ClientAccessTokenTypeType extends Enumeration
+{
+ /**
+ * A caller identity client access token.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CALLER_IDENTITY = 'CallerIdentity';
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ const CONNECTORS = 'Connectors';
+
+ /**
+ * An extension callback client access token.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const EXTENSION_CALLBACK = 'ExtensionCallback';
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ const EXTENSION_REST_API_CALLBACK = 'ExtensionRestApiCallback';
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ const LOKI = 'Loki';
+
+ /**
+ * Indicates that the client access token is a scoped token.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const SCOPED_TOKEN = 'ScopedToken';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConferenceType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConferenceType.php
new file mode 100644
index 00000000..42c129c7
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConferenceType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ConferenceType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of conferencing that is performed with a calendar item.
+ *
+ * @package php-ews\Enumeration
+ */
+class ConferenceType extends Enumeration
+{
+ /**
+ * The meeting is offline.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ const CHAT = 2;
+
+ /**
+ * The meeting is an Internet meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ const NET_MEETING = 0;
+
+ /**
+ * The meeting is an Internet show (such as a webinar).
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ const NET_SHOW = 1;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConflictResolutionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConflictResolutionType.php
new file mode 100644
index 00000000..f792ab62
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConflictResolutionType.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ConflictResolutionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of conflict resolution to try during an update.
+ *
+ * @package php-ews\Enumeration
+ */
+class ConflictResolutionType extends Enumeration
+{
+ /**
+ * If there is a conflict, the update operation will overwrite information.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ALWAYS_OVERWRITE = 'AlwaysOverwrite';
+
+ /**
+ * The update operation automatically resolves any conflict.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const AUTO_RESOLVE = 'AutoResolve';
+
+ /**
+ * If there is a conflict, the update operation fails and an error is
+ * returned.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NEVER_OVERWRITE = 'NeverOverwrite';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConnectionFailureCauseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConnectionFailureCauseType.php
new file mode 100644
index 00000000..e2e8d537
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConnectionFailureCauseType.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\EnumerationConnectionFailureCauseType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Specifies the reason for a disconnection from a telephone call.
+ *
+ * @package php-ews\Enumeration
+ */
+class ConnectionFailureCauseType extends Enumeration
+{
+ /**
+ * The called party did not answer.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NO_ANSWER = 'NoAnswer';
+
+ /**
+ * Call state is not disconnected or the disconnect reason is not known.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NONE = 'None';
+
+ /**
+ * Catch-all for other disconnect reasons.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const OTHER = 'Other';
+
+ /**
+ * The called party number was not available.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNAVAILABLE = 'Unavailable';
+
+ /**
+ * The called party line was busy.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const USER_BUSY = 'UserBusy';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConnectionStatusType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConnectionStatusType.php
new file mode 100644
index 00000000..e1f536eb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConnectionStatusType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ConnectionStatusType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Provides a text description of the status of a streaming subscription.
+ *
+ * @package php-ews\Enumeration
+ */
+class ConnectionStatusType extends Enumeration
+{
+ /**
+ * Specifies that the connection has been closed.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CLOSED = 'Closed';
+
+ /**
+ * Specifies that the connection is open.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const OK = 'OK';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContactSourceType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContactSourceType.php
new file mode 100644
index 00000000..45aa6b20
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContactSourceType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ContactSourceType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Describes whether the contact is located in the Exchange store or Active
+ * Directory Domain Services (AD DS).
+ *
+ * @package php-ews\Enumeration
+ */
+class ContactSourceType extends Enumeration
+{
+ /**
+ * Indicates that the contact is stored in Active Directory.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ACTIVE_DIRECTORY = 'ActiveDirectory';
+
+ /**
+ * Indicates that the contact is stored in the Exchange Store.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EXCHANGE_STORE = 'Store';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContainmentComparisonType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContainmentComparisonType.php
new file mode 100644
index 00000000..45e485c0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContainmentComparisonType.php
@@ -0,0 +1,92 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ContainmentComparisonType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Determines whether a search ignores cases and spaces.
+ *
+ * @package php-ews\Enumeration
+ */
+class ContainmentComparisonType extends Enumeration
+{
+ /**
+ * The comparison must be exact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EXACT = 'Exact';
+
+ /**
+ * The comparison ignores casing.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IGNORE_CASE = 'IgnoreCase';
+
+ /**
+ * The comparison ignores non-spacing characters.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IGNORE_CASE_AND_NON_SPACING_CHARS = 'IgnoreCaseAndNonSpacingCharacters';
+
+ /**
+ * The comparison ignores casing and non-spacing characters.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IGNORE_NON_SPACING_CHARS = 'IgnoreNonSpacingCharacters';
+
+ /**
+ * To be removed.
+ *
+ * @since Exchange 2007
+ * @deprecated Exchange 2007
+ *
+ * @var string
+ */
+ const LOOSE = 'Loose';
+
+ /**
+ * To be removed.
+ *
+ * @since Exchange 2007
+ * @deprecated Exchange 2007
+ *
+ * @var string
+ */
+ const LOOSE_AND_IGNORE_CASE = 'LooseAndIgnoreCase';
+
+ /**
+ * To be removed.
+ *
+ * @since Exchange 2007
+ * @deprecated Exchange 2007
+ *
+ * @var string
+ */
+ const LOOSE_AND_IGNORE_CASE_AND_IGNORE_NON_SPACING_CARS = 'LooseAndIgnoreCaseAndIgnoreNonSpace';
+
+ /**
+ * To be removed.
+ *
+ * @since Exchange 2007
+ * @deprecated Exchange 2007
+ *
+ * @var string
+ */
+ const LOOSE_AND_IGNORE_NON_SPACING_CHARS = 'LooseAndIgnoreNonSpace';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContainmentModeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContainmentModeType.php
new file mode 100644
index 00000000..d67b612f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ContainmentModeType.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ContainmentModeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Identifies the boundaries of a search.
+ *
+ * @package php-ews\Enumeration
+ */
+class ContainmentModeType extends Enumeration
+{
+ /**
+ * The comparison is between an exact phrase in the string and the constant.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EXACT_PHRASE = 'ExactPhrase';
+
+ /**
+ * The comparison is between the full string and the constant.
+ *
+ * The property value and the supplied constant are precisely the same.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FULL_STRING = 'FullString';
+
+ /**
+ * The comparison is between a prefix on individual words in the string and
+ * the constant.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PREFIX_ON_WORDS = 'PrefixOnWords';
+
+ /**
+ * The comparison is between the string prefix and the constant.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PREFIXED = 'Prefixed';
+
+ /**
+ * The comparison is between a substring of the string and the constant.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SUBSTRING = 'Substring';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationActionTypeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationActionTypeType.php
new file mode 100644
index 00000000..9dc9eb90
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationActionTypeType.php
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ConversationActionTypeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Contains the action to perform on a conversation specified by a
+ * ConversationId.
+ *
+ * @package php-ews\Enumeration
+ */
+class ConversationActionTypeType extends Enumeration
+{
+ /**
+ * The current items and new items in the conversation will automatically be
+ * set with the categories identified by the Categories property.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const ALWAYS_CATEGORIZE = 'AlwaysCategorize';
+
+ /**
+ * The current items and new items in the conversation will automatically be
+ * deleted.
+ *
+ * The deletion mode is set by the DeleteType property.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const ALWAYS_DELETE = 'AlwaysDelete';
+
+ /**
+ * The current items and new items in the conversation will automatically be
+ * moved to the folder identified by the DestinationFolderId property.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const ALWAYS_MOVE = 'AlwaysMove';
+
+ /**
+ * The current items in the conversation will be copied to the folder
+ * identified by the DestinationFolderId property.
+ *
+ * Subsequent items in the conversation will not be copied.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const COPY = 'Copy';
+
+ /**
+ * The current items in the conversation will be deleted.
+ *
+ * Subsequent items in the conversation will not be deleted. The deletion
+ * mode is set by the DeleteType property.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const DELETE = 'Delete';
+
+ /**
+ * The current items in the conversation will be moved to the folder
+ * identified by the DestinationFolderId property.
+ *
+ * Subsequent items in the conversation will not be moved.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const MOVE = 'Move';
+
+ /**
+ * The current items in the conversation will have their read state set.
+ *
+ * The read state is set by the IsRead property.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const SET_READ_STATE = 'SetReadState';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationNodeSortOrder.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationNodeSortOrder.php
new file mode 100644
index 00000000..3b7320f8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationNodeSortOrder.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ConversationNodeSortOrder.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the sort order used for the result of a GetConversationItems request.
+ *
+ * @package php-ews\Enumeration
+ */
+class ConversationNodeSortOrder extends Enumeration
+{
+ /**
+ * Order the conversations by their date in ascending order.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DATE_ORDER_ASC = 'DateOrderAscending';
+
+ /**
+ * Order the conversations by their date in descending order.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DATE_ORDER_DESC = 'DateOrderDescending';
+
+ /**
+ * Returns the conversations according to the tree in ascending order.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TREE_ORDER_ASC = 'TreeOrderAscending';
+
+ /**
+ * Returns the conversations according to the tree in descending order.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TREE_ORDER_DESC = 'TreeOrderDescending';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationQueryTraversalType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationQueryTraversalType.php
new file mode 100644
index 00000000..634c2fcc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ConversationQueryTraversalType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ConversationQueryTraversalType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of traversal to use for a folder.
+ *
+ * @package php-ews\Enumeration
+ */
+class ConversationQueryTraversalType extends Enumeration
+{
+ /**
+ * Consider both direct children as well as all children contained within
+ * those children as well as the children's children, etc.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DEEP = 'Deep';
+
+ /**
+ * Consider only direct children of the parent in question.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const SHALLOW = 'Shallow';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CreateActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CreateActionType.php
new file mode 100644
index 00000000..29dd5d0c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/CreateActionType.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\CreateActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the action for uploading an item into a mailbox.
+ *
+ * @package php-ews\Enumeration
+ */
+class CreateActionType extends Enumeration
+{
+ /**
+ * Indicates that a new copy of the original item is uploaded to the
+ * mailbox.
+ *
+ * The ItemId element must not be present if the CreateNew value is used.
+ * The new item identifier is returned in the response.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const CREATE = 'CreateNew';
+
+ /**
+ * Specifies that the item indicated by the ItemId element will be updated.
+ *
+ * An error is returned if the ItemId element is not present or if the item
+ * does not exist in the folder identified by the ParentFolderId element.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const UPDATE = 'Update';
+
+ /**
+ * Indicates that an attempt is first made to update the item.
+ *
+ * If the item does not exist in the folder specified by the ParentFolderId
+ * element, a new item is created.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const UPDATE_OR_CREATE = 'UpdateOrCreate';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DateTimePrecisionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DateTimePrecisionType.php
new file mode 100644
index 00000000..b5f6924a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DateTimePrecisionType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DateTimePrecisionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Specifies the precision for returned date/time values.
+ *
+ * @package php-ews\Enumeration
+ */
+class DateTimePrecisionType extends Enumeration
+{
+ /**
+ * Indicates that date/time values should be precise to the millisecond.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const MILLISECONDS = 'Milliseconds';
+
+ /**
+ * Indicates that date/time values should be precise to the second.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const SECONDS = 'Seconds';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DayOfWeekIndexType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DayOfWeekIndexType.php
new file mode 100644
index 00000000..911ccb2a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DayOfWeekIndexType.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DayOfWeekIndexType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of a calendar item.
+ *
+ * @package php-ews\Enumeration
+ */
+class DayOfWeekIndexType extends Enumeration
+{
+ /**
+ * Represents the first day of a week.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FIRST = 'First';
+
+ /**
+ * Represents the fourth day of a week.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOURTH = 'Fourth';
+
+ /**
+ * Represents the last day of a week.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LAST = 'Last';
+
+ /**
+ * Represents the second day of a week.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SECOND = 'Second';
+
+ /**
+ * Represents the Third day of a week.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const THIRD = 'Third';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DayOfWeekType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DayOfWeekType.php
new file mode 100644
index 00000000..a40c78f7
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DayOfWeekType.php
@@ -0,0 +1,106 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DayOfWeekType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents a day of the week.
+ *
+ * @package php-ews\Enumeration
+ */
+class DayOfWeekType extends Enumeration
+{
+ /**
+ * Represents a day of the week.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DAY = 'Day';
+
+ /**
+ * Represents Friday.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FRIDAY = 'Friday';
+
+ /**
+ * Represents Monday.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MONDAY = 'Monday';
+
+ /**
+ * Represents Saturday.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SATURDAY = 'Saturday';
+
+ /**
+ * Represents Sunday.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SUNDAY = 'Sunday';
+
+ /**
+ * Represents Thursday.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const THURSDAY = 'Thursday';
+
+ /**
+ * Represents Tuesday.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TUESDAY = 'Tuesday';
+
+ /**
+ * Represents Wednesday.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const WEDNESDAY = 'Wednesday';
+
+ /**
+ * Represents a weekday.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const WEEKDAY = 'Weekday';
+
+ /**
+ * Represents a weekend day.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const WEEKEND_DAY = 'WeekendDay';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DaysOfWeekType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DaysOfWeekType.php
new file mode 100644
index 00000000..bb81fe25
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DaysOfWeekType.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DaysOfWeekType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents days of the week that are used in item recurrence patterns.
+ *
+ * @package php-ews\Enumeration
+ *
+ * @todo Make this an array type that separates values by space in the
+ * __toString() method.
+ */
+class DaysOfWeekType extends DayOfWeekType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DefaultShapeNamesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DefaultShapeNamesType.php
new file mode 100644
index 00000000..b36fb6b0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DefaultShapeNamesType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DefaultShapeNamesType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the set of properties to return in an item or folder response.
+ *
+ * @package php-ews\Enumeration
+ */
+class DefaultShapeNamesType extends Enumeration
+{
+ /**
+ * Returns all the properties used by the Exchange Business Logic layer to
+ * construct a folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ALL_PROPERTIES = 'AllProperties';
+
+ /**
+ * Returns a set of properties that are defined as the default for the item
+ * or folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DEFAULT_PROPERTIES = 'Default';
+
+ /**
+ * Returns only the item or folder ID.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ID_ONLY = 'IdOnly';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DelegateFolderPermissionLevelType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DelegateFolderPermissionLevelType.php
new file mode 100644
index 00000000..b98d23ca
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DelegateFolderPermissionLevelType.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DelegateFolderPermissionLevelType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Contains the permissions for a default folder.
+ *
+ * @package php-ews\Enumeration
+ */
+class DelegateFolderPermissionLevelType extends Enumeration
+{
+ /**
+ * The delegate user can read and create items in the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const AUTHOR = 'Author';
+
+ /**
+ * The delegate user has custom access permissions to the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const CUSTOM = 'Custom';
+
+ /**
+ * The delegate user can read, create, and modify items in the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const EDITOR = 'Editor';
+
+ /**
+ * The delegate user has no access permissions to the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const NONE = 'None';
+
+ /**
+ * The delegate user can read items in the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const REVIEWER = 'Reviewer';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DeliverMeetingRequestsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DeliverMeetingRequestsType.php
new file mode 100644
index 00000000..cf7649bf
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DeliverMeetingRequestsType.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DeliverMeetingRequestsType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines how meeting requests are handled between the delegate and the
+ * principal.
+ *
+ * @package php-ews\Enumeration
+ */
+class DeliverMeetingRequestsType extends Enumeration
+{
+ /**
+ * Meeting requests are forwarded to the delegate and remain in the Inbox
+ * folder in the principal's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const DELEGATES_AND_ME = 'DelegatesAndMe';
+
+ /**
+ * Meeting requests are forwarded to the delegate and remain in the Inbox
+ * folder in the principal's mailbox, but the Accept, Tentative, and Decline
+ * buttons do not appear in the Microsoft Office Outlook reading pane.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const DELEGATES_AND_SEND_INFO_TO_ME = 'DelegatesAndSendInformationToMe';
+
+ /**
+ * Meeting requests are forwarded to the delegate and moved to the Deleted
+ * Items folder in the principal's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const DELEGATES_ONLY = 'DelegatesOnly';
+
+ /**
+ * Meeting requests are not forwarded to the delegate.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NO_FORWARD = 'NoForward';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DictionaryURIType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DictionaryURIType.php
new file mode 100644
index 00000000..15dafbf9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DictionaryURIType.php
@@ -0,0 +1,106 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DictionaryURIType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Identifies the dictionary that contains the member to return.
+ *
+ * @package php-ews\Enumeration
+ */
+class DictionaryURIType extends Enumeration
+{
+ /**
+ * Represents the e-mail address of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_EMAIL_ADDRESS = 'contacts:EmailAddress';
+
+ /**
+ * Represents the instant messaging address of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_IM_ADDRESS = 'contacts:ImAddress';
+
+ /**
+ * Represents the phone number of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_PHONE_NUMBER = 'contacts:PhoneNumber';
+
+ /**
+ * Represents the city of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_PHYSICAL_ADDRESS_CITY = 'contacts:PhysicalAddress:City';
+
+ /**
+ * Represents the country of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_PHYSICAL_ADDRESS_COUNTRY = 'contacts:PhysicalAddress:Country';
+
+ /**
+ * Represents the postal code of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_PHYSICAL_ADDRESS_POSTAL_CODE = 'contacts:PhysicalAddress:PostalCode';
+
+ /**
+ * Represents the state of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_PHYSICAL_ADDRESS_STATE = 'contacts:PhysicalAddress:State';
+
+ /**
+ * Represents the street address of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_PHYSICAL_ADDRESS_STREET = 'contacts:PhysicalAddress:Street';
+
+ /**
+ * Represents a member of a distribution list.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DISTRIBUTION_LIST_MEMBERS_MEMBER = 'distributionlist:Members:Member';
+
+ /**
+ * Represents the message header of an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_INTERNET_MESSAGE_HEADER = 'item:InternetMessageHeader';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DisableReasonType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DisableReasonType.php
new file mode 100644
index 00000000..d399c877
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DisableReasonType.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DisableReasonType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Specifies the reason for disabling an app.
+ *
+ * @package php-ews\Enumeration
+ */
+class DisableReasonType extends Enumeration
+{
+ /**
+ * To improve mobile client performance.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MOBILE_CLIENT_PERFORMANCE = 'MobileClientPerformance';
+
+ /**
+ * No reason given.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const NO_REASON = 'NoReason';
+
+ /**
+ * To improve email client performance.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const OUTLOOK_CLIENT_PERFORMANCE = 'OutlookClientPerformance';
+
+ /**
+ * To improve Web app client performance.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const OWA_CLIENT_PERFORMANCE = 'OWAClientPerformance';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DisposalType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DisposalType.php
new file mode 100644
index 00000000..87297890
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DisposalType.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DisposalType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Indicates how items are deleted.
+ *
+ * @package php-ews\Enumeration
+ */
+class DisposalType extends Enumeration
+{
+ /**
+ * Indicates that items are permanently removed from the database.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const HARD_DELETE = 'HardDelete';
+
+ /**
+ * Indicates that items are moved to the Deleted Items folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const MOVE_TO_DELETED_ITEMS = 'MoveToDeletedItems';
+
+ /**
+ * Indicates that items are moved to the dumpster if the dumpster is
+ * enabled.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const SOFT_DELETE = 'SoftDelete';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedFolderIdNameType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedFolderIdNameType.php
new file mode 100644
index 00000000..1c458e56
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedFolderIdNameType.php
@@ -0,0 +1,394 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DistinguishedFolderIdNameType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents default calendar ids.
+ *
+ * @package php-ews\Enumeration
+ */
+class DistinguishedFolderIdNameType extends Enumeration
+{
+ /**
+ * Represents the admin audit logs folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ADMIN_AUDIT_LOGS = 'adminauditlogs';
+
+ /**
+ * Represents the archive deleted items folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ARCHIVE_DELETED = 'archivedeleteditems';
+
+ /**
+ * Represents the archive Inbox folder.
+ *
+ * @since Exchange 2013 CU5
+ *
+ * @var string
+ */
+ const ARCHIVE_INBOX = 'archiveinbox';
+
+ /**
+ * Represents the root archive message folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ARCHIVE_MESSAGE_ROOT = 'archivemsgfolderroot';
+
+ /**
+ * Represents the archive recoverable items deletions folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ARCHIVE_RECOVERABLE_DELETIONS = 'Archiverecoverableitemsdeletions';
+
+ /**
+ * Represents the archive recoverable items purges folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ARCHIVE_RECOVERABLE_PURGES = 'Archiverecoverableitemspurges';
+
+ /**
+ * Represents the archive recoverable items root folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ARCHIVE_RECOVERABLE_ROOT = 'archiverecoverableitemsroot';
+
+ /**
+ * Represents the archive recoverable items versions folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ARCHIVE_RECOVERABLE_VERSIONS = 'Archiverecoverableitemsversions';
+
+ /**
+ * Represents the root archive folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ARCHIVE_ROOT = 'archiveroot';
+
+ /**
+ * Represents the Calendar folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR = 'calendar';
+
+ /**
+ * Represents the conflicts folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONFLICTS = 'conflicts';
+
+ /**
+ * Represents the Contacts folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS = 'contacts';
+
+ /**
+ * Represents the conversation history folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONVERSATION_HISTORY = 'conversationhistory';
+
+ /**
+ * Represents the Deleted Items folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DELETED = 'deleteditems';
+
+ /**
+ * Represents the directory folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DIRECTORY = 'directory';
+
+ /**
+ * Represents the Drafts folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DRAFTS = 'drafts';
+
+ /**
+ * Represents the Favorites folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const FAVORITES = 'favorites';
+
+ /**
+ * Represents the IM contact list folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const IM_CONTACT_LIST = 'imcontactlist';
+
+ /**
+ * Represents the Inbox folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INBOX = 'inbox';
+
+ /**
+ * Represents the Journal folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const JOURNAL = 'journal';
+
+ /**
+ * Represents the Junk E-mail folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const JUNK = 'junkemail';
+
+ /**
+ * Represents the local failures folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const LOCAL_FAILURES = 'localfailures';
+
+ /**
+ * Represents the message folder root.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_ROOT = 'msgfolderroot';
+
+ /**
+ * Represents the My Contacts folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MY_CONTACTS = 'mycontacts';
+
+ /**
+ * Represents the Notes folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOTES = 'notes';
+
+ /**
+ * Represents the Outbox folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OUTBOX = 'outbox';
+
+ /**
+ * Represents the people connect folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PEOPLE_CONNECT = 'peopleconnect';
+
+ /**
+ * Indicates the URL of the public folders root folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PUBLIC_FOLDERS_ROOT = 'publicfoldersroot';
+
+ /**
+ * Represents the quick contacts folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const QUICK_CONTACTS = 'quickcontacts';
+
+ /**
+ * Represents the recipient cache folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const RECIPIENT_CACHE = 'recipientcache';
+
+ /**
+ * Represents the dumpster deletions folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RECOVERABLE_DELETIONS = 'recoverableitemsdeletions';
+
+ /**
+ * Represents the dumpster purges folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RECOVERABLE_PURGES = 'recoverableitemspurges';
+
+ /**
+ * Represents the dumpster root folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RECOVERABLE_ROOT = 'recoverableitemsroot';
+
+ /**
+ * Represents the dumpster versions folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RECOVERABLE_VERSIONS = 'recoverableitemsversions';
+
+ /**
+ * Represents the root of the mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ROOT = 'root';
+
+ /**
+ * Represents the Search Folders folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEARCH = 'searchfolders';
+
+ /**
+ * Represents the Sent Items folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SENT = 'sentitems';
+
+ /**
+ * Represents the server failures folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const SERVER_FAILURES = 'serverfailures';
+
+ /**
+ * Represents the sync issues folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const SYNC_ISSUES = 'syncissues';
+
+ /**
+ * Represents the Tasks folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASKS = 'tasks';
+
+ /**
+ * Represents the todo search folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TODO_SEARCH = 'todosearch';
+
+ /**
+ * Represents the Voice Mail folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const VOICE_MAIL = 'voicemail';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedPropertySetType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedPropertySetType.php
new file mode 100644
index 00000000..ea69cfe9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedPropertySetType.php
@@ -0,0 +1,106 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DistinguishedPropertySetType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the well-known property set IDs for extended MAPI properties.
+ *
+ * @package php-ews\Enumeration
+ */
+class DistinguishedPropertySetType extends Enumeration
+{
+ /**
+ * Identifies the address property set ID by name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ADDRESS = 'Address';
+
+ /**
+ * Identifies the appointment property set ID by name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const APPOINTMENT = 'Appointment';
+
+ /**
+ * Identifies the calendar assistant property set ID by name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_ASSISTANT = 'CalendarAssistant';
+
+ /**
+ * Identifies the common property set ID by name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const COMMON = 'Common';
+
+ /**
+ * Identifies the Internet headers property set ID by name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INTERNET_HEADERS = 'InternetHeaders';
+
+ /**
+ * Identifies the meeting property set ID by name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING = 'Meeting';
+
+ /**
+ * Identifies the public strings property set ID by name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PUBLIC_STRINGS = 'PublicStrings';
+
+ /**
+ * Identifies the sharing property set ID by name.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ const SHARING = 'Sharing';
+
+ /**
+ * Indicates a task.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const TASK = 'Task';
+
+ /**
+ * Identifies the unified messaging property set ID by name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNIFIED_MESSAGING = 'UnifiedMessaging';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedUserType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedUserType.php
new file mode 100644
index 00000000..b4a0fbdb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/DistinguishedUserType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\DistinguishedUserType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Identifies Anonymous and Default user accounts for delegate access.
+ *
+ * @package php-ews\Enumeration
+ */
+class DistinguishedUserType extends Enumeration
+{
+ /**
+ * Describes the delegate access settings that anonymous users have on the
+ * principal's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const ANONYMOUS = 'Anonymous';
+
+ /**
+ * Describes the default setting for delegate users who are added to the
+ * principal's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const DEFAULT_USER = 'Default';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ElcFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ElcFolderType.php
new file mode 100644
index 00000000..ba657e22
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ElcFolderType.php
@@ -0,0 +1,187 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ElcFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of folder used in a retention policy.
+ *
+ * @package php-ews\Enumeration
+ */
+class ElcFolderType extends Enumeration
+{
+ /**
+ * Indicates that the folder is an all folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ALL = 'All';
+
+ /**
+ * Indicates that the folder is a calendar folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CALENDAR = 'Calendar';
+
+ /**
+ * Indicates that the folder is a contacts folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONTACTS = 'Contacts';
+
+ /**
+ * Indicates that the folder is a conversation history folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONVERSATION_HISTORY = 'ConversationHistory';
+
+ /**
+ * Indicates that the folder is a deleted items folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DELETED_ITEMS = 'DeletedItems';
+
+ /**
+ * Indicates that the folder is a drafts folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DRAFTS = 'Drafts';
+
+ /**
+ * Indicates that the folder is an inbox folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INBOX = 'Inbox';
+
+ /**
+ * Indicates that the folder is a journal folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const JOURNAL = 'Journal';
+
+ /**
+ * Indicates that the folder is a junk email folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const JUNK_EMAIL = 'JunkEmail';
+
+ /**
+ * Indicates that the folder is a managed custom folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MANAGED_CUSTOM_FOLDER = 'ManagedCustomFolder';
+
+ /**
+ * Indicates that the folder is a non implemented root folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const NON_IMPLEMENTED_ROOT = 'NonIpmRoot';
+
+ /**
+ * Indicates that the folder is a notes folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const NOTES = 'Notes';
+
+ /**
+ * Indicates that the folder is a outbox folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const OUTBOX = 'Outbox';
+
+ /**
+ * Indicates that the folder is a personal folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONAL = 'Personal';
+
+ /**
+ * Indicates that the folder is a recoverable items folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const RECOVERABLE_ITEMS = 'RecoverableItems';
+
+ /**
+ * Indicates that the folder is an RSS subscription folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const RSS_SUBSCRIPTION = 'RssSubscriptions';
+
+ /**
+ * Indicates that the folder is a sent items folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const SENT_ITEMS = 'SentItems';
+
+ /**
+ * Indicates that the folder is a sync issues folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const SYNC_ISSUES = 'SyncIssues';
+
+ /**
+ * Indicates that the folder is a tasks folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TASKS = 'Tasks';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/EmailAddressKeyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/EmailAddressKeyType.php
new file mode 100644
index 00000000..66b32fd9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/EmailAddressKeyType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\EmailAddressKeyType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the key for an email address.
+ *
+ * @package php-ews\Enumeration
+ */
+class EmailAddressKeyType extends Enumeration
+{
+ /**
+ * Key for a contacts first email address.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EMAIL_ADDRESS_1 = 'EmailAddress1';
+
+ /**
+ * Key for a contacts second email address.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EMAIL_ADDRESS_2 = 'EmailAddress2';
+
+ /**
+ * Key for a contacts third email address.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EMAIL_ADDRESS_3 = 'EmailAddress3';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExceptionPropertyURIType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExceptionPropertyURIType.php
new file mode 100644
index 00000000..491e7198
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExceptionPropertyURIType.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ExceptionPropertyURIType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines a property of an occurrence of a recurring item.
+ *
+ * @package php-ews\Enumeration
+ */
+class ExceptionPropertyURIType extends Enumeration
+{
+ /**
+ * Identifies the content as containing an error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ATTACHMENT_CONTENT = 'attachment:Content';
+
+ /**
+ * Identifies the content type as containing an error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ATTACHMENT_CONTENT_TYPE = 'attachment:ContentType';
+
+ /**
+ * Identifies the attachment name as containing an error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ATTACHMENT_NAME = 'attachment:Name';
+
+ /**
+ * Identifies the DayOfMonth as containing an error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECURRENCE_DAY_OF_MONTH = 'recurrence:DayOfMonth';
+
+ /**
+ * Identifies the day of week index as containing an error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECURRENCE_DAY_OF_WEEK_INDEX = 'recurrence:DayOfWeekIndex';
+
+ /**
+ * Identifies the DaysOfWeek property as containing an error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECURRENCE_DAYS_OF_WEEK = 'recurrence:DaysOfWeek';
+
+ /**
+ * Identifies the interval as containing an error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECURRENCE_INTERVAL = 'recurrence:Interval';
+
+ /**
+ * Identifies the month field as containing an error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECURRENCE_MONTH = 'recurrence:Month';
+
+ /**
+ * Identifies the number of occurrences as containing an error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECURRENCE_NUMBER_OF_OCCURRENCES = 'recurrence:NumberOfOccurrences';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExchangeVersionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExchangeVersionType.php
new file mode 100644
index 00000000..28fa614c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExchangeVersionType.php
@@ -0,0 +1,98 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ExchangeVersionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the versioning information that identifies the schema version to
+ * target for a request.
+ *
+ * @package php-ews\Enumeration
+ */
+class ExchangeVersionType extends Enumeration
+{
+ /**
+ * Target the schema files for the initial release version of Exchange 2007.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const EXCHANGE_2007 = 'Exchange2007';
+
+ /**
+ * Target the schema files for Exchange 2007 Service Pack 1 (SP1), Exchange
+ * 2007 Service Pack 2 (SP2), and Exchange 2007 Service Pack 3 (SP3).
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const EXCHANGE_2007_SP1 = 'Exchange2007_SP1';
+
+ /**
+ * Microsoft Exchange 2007 SP2
+ *
+ * @var string
+ */
+ const VERSION_2009 = 'Exchange2009';
+
+ /**
+ * Target the schema files for Exchange 2010.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCHANGE_2010 = 'Exchange2010';
+
+ /**
+ * Target the schema files for Exchange 2010 Service Pack 1 (SP1).
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const EXCHANGE_2010_SP1 = 'Exchange2010_SP1';
+
+ /**
+ * Target the schema files for Exchange 2010 Service Pack 2 (SP2) and
+ * Exchange 2010 Service Pack 3 (SP3).
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const EXCHANGE_2010_SP2 = 'Exchange2010_SP2';
+
+ /**
+ * Target the schema files for Exchange 2013.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const EXCHANGE_2013 = 'Exchange2013';
+
+ /**
+ * Target the schema files for Exchange 2013 Service Pack 1 (SP1).
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var string
+ */
+ const EXCHANGE_2013_SP1 = 'Exchange2013_SP1';
+
+ /**
+ * Target the schema files for Exchange 2016.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ const VERSION_2016 = 'Exchange2016';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExternalAudience.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExternalAudience.php
new file mode 100644
index 00000000..196235d0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ExternalAudience.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ExternalAudience.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Identifies to whom external Out of Office (OOF) messages are sent..
+ *
+ * @package php-ews\Enumeration
+ */
+class ExternalAudience extends Enumeration
+{
+ /**
+ * E-mail senders outside the mailbox user's organization who send messages
+ * to the user will receive an external OOF message response..
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ALL = 'All';
+
+ /**
+ * E-mail senders outside the mailbox user's organization who send messages
+ * to the user will only receive an external OOF message response if the
+ * sender is in the user's Exchange store contact list.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const KNOWN = 'Known';
+
+ /**
+ * E-mail senders outside the mailbox user's organization who send messages
+ * to the user will not receive an external OOF message response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NONE = 'None';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FileAsMappingType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FileAsMappingType.php
new file mode 100644
index 00000000..f062c305
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FileAsMappingType.php
@@ -0,0 +1,178 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\FileAsMappingType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines how to construct what is displayed for a contact.
+ *
+ * @package php-ews\Enumeration
+ */
+class FileAsMappingType extends Enumeration
+{
+ /**
+ * File as mapping for "company".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const COMPANY = 'Company';
+
+ /**
+ * File as mapping for "last name, first name".
+ *
+ * @since Exchange 2007
+ *
+ * @var
+ */
+ const COMPANY_LAST_COMMA_FIRST = 'CompanyLastCommaFirst';
+
+ /**
+ * File as mapping for "company last name first name".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const COMPANY_LAST_FIRST = 'CompanyLastFirst';
+
+ /**
+ * File as mapping for "company last name first name".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const COMPANY_LAST_SPACE_FIRST = 'CompanyLastSpaceFirst';
+
+ /**
+ * File as mapping for "display name".
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DISPLAY_NAME = 'DisplayName';
+
+ /**
+ * File as mapping to use when no mapping is defined.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EMPTY_MAPPING = 'Empty';
+
+ /**
+ * File as mapping for "first name".
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FIRST_NAME = 'FirstName';
+
+ /**
+ * File as mapping for "first name last name".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FIRST_SPACE_LAST = 'FirstSpaceLast';
+
+ /**
+ * File as mapping for "last name, first name".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LAST_COMMA_FIRST = 'LastCommaFirst';
+
+ /**
+ * File as mapping for "last name, first name company".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LAST_COMMA_FIRST_COMPANY = 'LastCommaFirstCompany';
+
+ /**
+ * File as mapping for "last name first name".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LAST_FIRST = 'LastFirst';
+
+ /**
+ * File as mapping for "last name first name company".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LAST_FIRST_COMPANY = 'LastFirstCompany';
+
+ /**
+ * File as mapping for "last name first name middle name suffix".
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const LAST_FIRST_MIDDLE_SUFFIX = 'LastFirstMiddleSuffix';
+
+ /**
+ * File as mapping for "last name first name suffix".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LAST_FIRST_SUFFIX = 'LastFirstSuffix';
+
+ /**
+ * File as mapping for "last name".
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const LAST_NAME = 'LastName';
+
+ /**
+ * File as mapping for "last name first name".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LAST_SPACE_FIRST = 'LastSpaceFirst';
+
+ /**
+ * File as mapping for "last name first name company".
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LAST_SPACE_FIRST_COMPANY = 'LastSpaceFirstCompany';
+
+ /**
+ * File as mapping to use when no mapping is desired.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NONE = 'None';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FlagStatusType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FlagStatusType.php
new file mode 100644
index 00000000..f9c99a75
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FlagStatusType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\FlagStatusType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the flagged status of an item.
+ *
+ * @package php-ews\Enumeration
+ */
+class FlagStatusType extends Enumeration
+{
+ /**
+ * Indicates the complete flag status.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const COMPLETE = 'Complete';
+
+ /**
+ * Indicates the flagged status.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const FLAGGED = 'Flagged';
+
+ /**
+ * Indicates the not-flagged status.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ const NOT_FLAGGED = 'NotFlagged';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FlaggedForActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FlaggedForActionType.php
new file mode 100644
index 00000000..e3599810
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FlaggedForActionType.php
@@ -0,0 +1,116 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\FlaggedForActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Specifies the flag for action value that must appear on incoming messages in
+ * order for the condition or exception to apply.
+ *
+ * @package php-ews\Enumeration
+ */
+class FlaggedForActionType extends Enumeration
+{
+ /**
+ * Indicates that the message may contain any flag.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ANY = 'Any';
+
+ /**
+ * Indicates that the message has been flagged for a call.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CALL = 'Call';
+
+ /**
+ * Indicates that the message is not to be forwarded.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DO_NOT_FORWARD = 'DoNotForward';
+
+ /**
+ * Indicates that the message has been flagged for a follow up.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FOLLOW_UP = 'FollowUp';
+
+ /**
+ * Indicates that the message is to be forwarded.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FORWARD = 'Forward';
+
+ /**
+ * Indicates that the message has been flagged as FYI.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FYI = 'FYI';
+
+ /**
+ * Indicates that the message does not require a response.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NO_RESPONSE_NECESSARY = 'NoResponseNecessary';
+
+ /**
+ * Indicates that the message is to be read.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const READ = 'Read';
+
+ /**
+ * Indicates that the message needs a reply.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const REPLY = 'Reply';
+
+ /**
+ * Indicates that the message needs a reply to all recipients.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const REPLY_TO_ALL = 'ReplyToAll';
+
+ /**
+ * Indicates that the message has been flagged for review.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const REVIEW = 'Review';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FolderQueryTraversalType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FolderQueryTraversalType.php
new file mode 100644
index 00000000..5cb80a62
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FolderQueryTraversalType.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\FolderQueryTraversalType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of sub-tree traversal for an operation.
+ *
+ * @package php-ews\Enumeration
+ */
+class FolderQueryTraversalType extends Enumeration
+{
+ /**
+ * Consider both direct children as well as all subfolders contained within
+ * those children as well as the children's children, etc.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DEEP = 'Deep';
+
+ /**
+ * Consider only folders that are direct children of the parent folder(s) in
+ * question.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SHALLOW = 'Shallow';
+
+ /**
+ * Consider only those items that are soft deleted from the parent folders
+ * specified.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SOFT_DELETED = 'SoftDeleted';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FreeBusyViewType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FreeBusyViewType.php
new file mode 100644
index 00000000..c45b72ed
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/FreeBusyViewType.php
@@ -0,0 +1,98 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\FreeBusyViewType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the type of free/busy information returned in the response.
+ *
+ * @package php-ews\Enumeration
+ */
+class FreeBusyViewType extends Enumeration
+{
+ /**
+ * Represents the legacy status information: free, busy, tentative, and OOF;
+ * the start/end times of the appointments; and various properties of the
+ * appointment such as subject, location, and importance.
+ *
+ * This requested view will return the maximum amount of information for
+ * which the requesting user is privileged. If merged free/busy information
+ * only is available, as with requesting information for users in a
+ * Microsoft Exchange Server 2003 forest, MergedOnly will be returned.
+ * Otherwise, FreeBusy or Detailed will be returned.
+ *
+ * If Detailed is specified for a distribution list, the free/busy
+ * information for the members of the list is merged, and MergedOnly is
+ * returned.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DETAILED = 'Detailed';
+
+ /**
+ * Represents all the properties in Detailed with a stream of merged
+ * free/busy availability information.
+ *
+ * If only merged free/busy information is available, for example if the
+ * mailbox exists on a computer running Exchange 2003, MergedOnly will be
+ * returned. Otherwise, FreeBusyMerged or DetailedMerged will be returned.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DETAILED_MERGED = 'DetailedMerged';
+
+ /**
+ * Represents the legacy status information: free, busy, tentative, and OOF.
+ *
+ * This also includes the start/end times of the appointments. This view is
+ * richer than the legacy free/busy view because individual meeting start
+ * and end times are provided instead of an aggregated free/busy stream.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FREE_BUSY = 'FreeBusy';
+
+ /**
+ * Represents all the properties in FreeBusy with a stream of merged
+ * free/busy availability information.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FREE_BUSY_MERGED = 'FreeBusyMerged';
+
+ /**
+ * Represents an aggregated free/busy stream.
+ *
+ * In cross-forest scenarios in which the target user in one forest does not
+ * have an Availability service configured, the Availability service of the
+ * requester retrieves the target user’s free/busy information from the
+ * free/busy public folder. Because public folders only store free/busy
+ * information in merged form, MergedOnly is the only available information.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MERGED_ONLY = 'MergedOnly';
+
+ /**
+ * This value is not valid for requests but is valid for responses.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NONE = 'None';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/HoldActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/HoldActionType.php
new file mode 100644
index 00000000..788da5ab
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/HoldActionType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\HoldActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of action for a mailbox hold.
+ *
+ * @package php-ews\Enumeration
+ */
+class HoldActionType extends Enumeration
+{
+ /**
+ * Indicates that a mailbox hold will be created.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CREATE = 'Create';
+
+ /**
+ * Indicates that a mailbox hold will be removed.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const REMOVE = 'Remove';
+
+ /**
+ * Indicates that a mailbox hold will be updated.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const UPDATE = 'Update';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/HoldStatusType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/HoldStatusType.php
new file mode 100644
index 00000000..b1ec1285
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/HoldStatusType.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\HoldStatusType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the hold status for a mailbox.
+ *
+ * @package php-ews\Enumeration
+ */
+class HoldStatusType extends Enumeration
+{
+ /**
+ * Indicates that the hold on a mailbox has failed.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const FAILED = 'Failed';
+
+ /**
+ * Indicates that the mailbox is not on hold.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const NOT_ON_HOLD = 'NotOnHold';
+
+ /**
+ * Indicates that the mailbox is on hold.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ON_HOLD = 'OnHold';
+
+ /**
+ * Indicates that the mailbox is on a partial hold.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PARTIAL_HOLD = 'PartialHold';
+
+ /**
+ * Indicates that a hold on the mailbox is pending.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PENDING = 'Pending';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/IdFormatType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/IdFormatType.php
new file mode 100644
index 00000000..401b18ec
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/IdFormatType.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\IdFormatType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Specifies the source format of the Id to be converted or the format of the Id
+ * after conversion.
+ *
+ * @package php-ews\Enumeration
+ */
+class IdFormatType extends Enumeration
+{
+ /**
+ * Describes MAPI identifiers, as in the PR_ENTRYID property.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const ENTRY_ID = 'EntryId';
+
+ /**
+ * Describes identifiers that are produced by Exchange Web Services starting
+ * with Exchange 2007 SP1.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const EWS_ID = 'EwsId';
+
+ /**
+ * Describes identifiers that are produced by Exchange Web Services in the
+ * initial release version of Exchange 2007.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const EWS_LEGACY_ID = 'EwsLegacyId';
+
+ /**
+ * Describes a hexadecimal-encoded representation of the PR_ENTRYID
+ * property.
+ *
+ * This is the format of availability calendar event identifiers.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const HEX_ENTRY_ID = 'HexEntryId';
+
+ /**
+ * Describes a Microsoft Office Outlook Web Access identifier.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const OWA_ID = 'OwaId';
+
+ /**
+ * Describes Exchange store identifiers.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const STORE_ID = 'StoreId';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ImAddressKeyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ImAddressKeyType.php
new file mode 100644
index 00000000..00da9005
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ImAddressKeyType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ImAddressKeyType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the key for an instant messenger address.
+ *
+ * @package php-ews\Enumeration
+ */
+class ImAddressKeyType extends Enumeration
+{
+ /**
+ * Instant messenger key for instant messenger address one.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IM_ADDRESS_1 = 'ImAddress1';
+
+ /**
+ * Instant messenger key for instant messenger address two.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IM_ADDRESS_2 = 'ImAddress2';
+
+ /**
+ * Instant messenger key for instant messenger address three.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IM_ADDRESS_3 = 'ImAddress3';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ImportanceChoicesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ImportanceChoicesType.php
new file mode 100644
index 00000000..03ffdd89
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ImportanceChoicesType.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ImportanceChoicesType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Describes the importance of an item or the aggregated importance of all items
+ * in a conversation in the current folder.
+ *
+ * @package php-ews\Enumeration
+ */
+class ImportanceChoicesType extends Enumeration
+{
+ /**
+ * High importance level.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const HIGH = 'High';
+
+ /**
+ * Low importance level.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LOW = 'Low';
+
+ /**
+ * Normal importance level.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NORMAL = 'Normal';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/IndexBasePointType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/IndexBasePointType.php
new file mode 100644
index 00000000..47f24132
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/IndexBasePointType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\IndexBasePointType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines whether a page of items or conversations will start from the
+ * beginning or the end of a set.
+ *
+ * @package php-ews\Enumeration
+ */
+class IndexBasePointType extends Enumeration
+{
+ /**
+ * The paged view starts at the beginning of the found conversation or item
+ * set.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BEGINNING = 'Beginning';
+
+ /**
+ * The paged view starts at the end of the found conversation or item set.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const END = 'End';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/InvalidRecipientResponseCodeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/InvalidRecipientResponseCodeType.php
new file mode 100644
index 00000000..81e26b1c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/InvalidRecipientResponseCodeType.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\InvalidRecipientResponseCodeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Provides information about why a recipient is invalid.
+ *
+ * @package php-ews\Enumeration
+ */
+class InvalidRecipientResponseCodeType extends Enumeration
+{
+ /**
+ * Indicates that there was a problem obtaining a security token from the
+ * token server.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CANNOT_OBTAIN_TOKEN_FROM_STS = 'CannotObtainTokenFromSTS';
+
+ /**
+ * Indicates that the error is not specified by another error response code.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const OTHER = 'OtherError';
+
+ /**
+ * Indicates that the secure token service that is used by the specified
+ * recipient is unknown.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RECIPIENT_ORG_FEDERATED_UNKNOWN_TOKEN_ISSUER = 'RecipientOrganizationFederatedWithUnknownTokenIssuer';
+
+ /**
+ * Indicates that a sharing relationship is not available with the
+ * organization specified in the recipient's SMTP e-mail address.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RECIPIENT_ORG_NOT_FEDERATED = 'RecipientOrganizationNotFederated';
+
+ /**
+ * Indicates that the system administrator has set a system policy that
+ * blocks sharing with the specified recipient.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SYSTEM_POLICY_BLOCKS_SHARING_WITH_RECIPIENT = 'SystemPolicyBlocksSharingWithThisRecipient';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ItemClassType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ItemClassType.php
new file mode 100644
index 00000000..675ae6eb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ItemClassType.php
@@ -0,0 +1,291 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ItemClassType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the message class of an item.
+ *
+ * @package php-ews\Enumeration
+ */
+class ItemClassType extends Enumeration
+{
+ /**
+ * Class used to identify a form for journal entries.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ACTIVITY = 'IPM.Activity';
+
+ /**
+ * Class used to identify a form for appointments.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const APPOINTMENT = 'IPM.Appointment';
+
+ /**
+ * Class used to identify a form for contacts.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACT = 'IPM.Contact';
+
+ /**
+ * Class used to identify a form for distribution lists.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DISTRIBUTION_LIST = 'IPM.DistList';
+
+ /**
+ * Class used to identify a form for documents.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DOCUMENT = 'IPM.Document';
+
+ /**
+ * Class used to identify a form for items for which the specified form
+ * can not be found.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IPM = 'IPM';
+
+ /**
+ * Class used to identify a form for e-mail messages.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOTE = 'IPM.Note';
+
+ /**
+ * Class used to identify a form for reports from the Internet Mail Connect
+ * (the Exchange Server gateway to the Internet).
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOTE_IMC_NOTIFICATION = 'IPM.Note.IMC.Notification';
+
+ /**
+ * Class used to identify a form for out-of-office templates.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOTE_RULES_OOF_TEMPLATE_MICROSOFT = 'IPM.Note.Rules.Oof.Template.Microsoft';
+
+ /**
+ * Class used to identify a form for editing rule reply templates.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOTE_RULES_REPLY_TEMPLATE_MICROSOFT = 'IPM.Note.Rules.ReplyTemplate.Microsoft';
+
+ /**
+ * Class used to identify a form for encrypted notes to other people.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOTE_SECURE = 'IPM.Note.Secure';
+
+ /**
+ * Class used to identify a form for digitally signed notes to other people.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOTE_SECURE_SIGN = 'IPM.Note.Secure.Sign';
+
+ /**
+ * Class used to identify a form for the exception item of a recurrence
+ * series.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OLE_CLASS = 'IPM.OLE.Class';
+
+ /**
+ * Class used to identify a form for recalling sent messages from recipient
+ * Inboxes.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OUTLOOK_RECALL = 'IPM.Outlook.Recall';
+
+ /**
+ * Class used to identify a form for posting notes in a folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const POST = 'IPM.Post';
+
+ /**
+ * Class used to identify a form for message recall reports.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RECALL_REPORT = 'IPM.Recall.Report';
+
+ /**
+ * Class used to identify a form for remote Mail message headers.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const REMOTE = 'IPM.Remote';
+
+ /**
+ * Class used to identify a form for reporting item status.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const REPORT = 'IPM.Report';
+
+ /**
+ * Class used to identify a form for resending a failed message.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RESEND = 'IPM.Resend';
+
+ /**
+ * Class used to identify a form for meeting cancellations.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SCHEDULE_MEETING_CANCELED = 'IPM.Schedule.Meeting.Canceled';
+
+ /**
+ * Class used to identify a form for meeting requests.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SCHEDULE_MEETING_REQUEST = 'IPM.Schedule.Meeting.Request';
+
+ /**
+ * Class used to identify a form for responses to decline meeting requests.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SCHEDULE_MEETING_RESP_NEG = 'IPM.Schedule.Meeting.Resp.Neg';
+
+ /**
+ * Class used to identify a form for responses to accept meeting requests.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SCHEDULE_MEETING_RESP_POS = 'IPM.Schedule.Meeting.Resp.Pos';
+
+ /**
+ * Class used to identify a form for responses to tentatively accept meeting
+ * requests.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SCHEDULE_MEETING_RESP_TENT = 'IPM.Schedule.Meeting.Resp.Tent';
+
+ /**
+ * Class used to identify a form for creating notes.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const STICKY_NOTE = 'IPM.StickyNote';
+
+ /**
+ * Class used to identify a form for tasks.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK = 'IPM.Task';
+
+ /**
+ * Class used to identify a form for task requests.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_REQUEST = 'IPM.TaskRequest';
+
+ /**
+ * Class used to identify a form for responses to accept task requests.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_REQUEST_ACCEPT = 'IPM.TaskRequest.Accept';
+
+ /**
+ * Class used to identify a form for responses to decline task requests.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_REQUEST_DECLINE = 'IPM.TaskRequest.Decline';
+
+ /**
+ * Class used to identify a form for updates to requested tasks.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_REQUEST_UPDATE = 'IPM.TaskRequest.Update';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ItemQueryTraversalType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ItemQueryTraversalType.php
new file mode 100644
index 00000000..db05066d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ItemQueryTraversalType.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ItemQueryTraversalType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Types of sub-tree traversal for deletion and enumeration.
+ *
+ * @package php-ews\Enumeration
+ */
+class ItemQueryTraversalType extends Enumeration
+{
+ /**
+ * Returns only the identities of associated items in the folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ASSOCIATED = 'Associated';
+
+ /**
+ * Returns only the identities of items in the folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SHALLOW = 'Shallow';
+
+ /**
+ * Returns only the identities of items that are in a folder's dumpster.
+ *
+ * Note that a soft-deleted traversal combined with a search restriction
+ * will result in zero items returned even if there are items that match the
+ * search criteria.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SOFT_DELETED = 'SoftDeleted';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/LegacyFreeBusyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/LegacyFreeBusyType.php
new file mode 100644
index 00000000..e13df976
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/LegacyFreeBusyType.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\LegacyFreeBusyType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the intended status for a calendar item that is associated with a
+ * meeting request.
+ *
+ * @package php-ews\Enumeration
+ */
+class LegacyFreeBusyType extends Enumeration
+{
+ /**
+ * The calendar item represents busy time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BUSY = 'Busy';
+
+ /**
+ * The calendar item represents free time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FREE = 'Free';
+
+ /**
+ * The calendar item's status is not defined.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_DATA = 'NoData';
+
+ /**
+ * The calendar item represents time out of the office.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OUT_OF_OFFICE = 'OOF';
+
+ /**
+ * The calendar item represents tentatively busy time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TENTATIVE = 'Tentative';
+
+ /**
+ * The calendar item represents time working off site.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const WORKING_ELSEWHERE = 'WorkingElsewhere';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/LocationSourceType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/LocationSourceType.php
new file mode 100644
index 00000000..77cc4d5a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/LocationSourceType.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\LocationSourceType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Specifies information about the origin of an associated postal address, for
+ * example, a contact or a telephone book.
+ *
+ * @package php-ews\Enumeration
+ */
+class LocationSourceType extends Enumeration
+{
+ /**
+ * The information was obtained from a contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONTACT = 'Contact';
+
+ /**
+ * The information was obtained from the device.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DEVICE = 'Device';
+
+ /**
+ * The information was obtained from location services.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const LOCATION_SERVICES = 'LocationServices';
+
+ /**
+ * There is no location source.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const NONE = 'None';
+
+ /**
+ * The information was obtained from phonebook services.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PHONEBOOK_SERVICES = 'PhonebookServices';
+
+ /**
+ * The information was obtained from a resource.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const RESOURCE = 'Resource';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailTipTypes.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailTipTypes.php
new file mode 100644
index 00000000..2be635d2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailTipTypes.php
@@ -0,0 +1,107 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MailTipTypes.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the types of mail tips requested from the service.
+ *
+ * @package php-ews\Enumeration
+ */
+class MailTipTypes extends Enumeration
+{
+ /**
+ * Represents all available mail tips.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ALL = 'All';
+
+ /**
+ * Represents a custom mail tip.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CUSTOM_MAIL_TIP = 'CustomMailTip';
+
+ /**
+ * Indicates whether delivery restrictions will prevent the sender's message
+ * from reaching the recipient.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DELIVERY_RESTRICTION = 'DeliveryRestriction';
+
+ /**
+ * Represents the count of external members.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXTERNAL_MEMBER_COUNT = 'ExternalMemberCount';
+
+ /**
+ * Indicates whether the recipient is invalid.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_RECIPIENT = 'InvalidRecipient';
+
+ /**
+ * Represents the status for a mailbox that is full.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MAILBOX_FULL_STATUS = 'MailboxFullStatus';
+
+ /**
+ * Represents the maximum message size a recipient can accept.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MAX_MESSAGE_SIZE = 'MaxMessageSize';
+
+ /**
+ * Indicates whether the sender's message will be reviewed by a moderator.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MODERATION_STATUS = 'ModerationStatus';
+
+ /**
+ * Represents the Out of Office (OOF) message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const OUT_OF_OFFICE_MESSAGE = 'OutOfOfficeMessage';
+
+ /**
+ * Represents the count of all members.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const TOTAL_MEMBER_COUNT = 'TotalMemberCount';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailboxSearchLocationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailboxSearchLocationType.php
new file mode 100644
index 00000000..3429a841
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailboxSearchLocationType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MailboxSearchLocationType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines whether a search or fetch for a conversation should span either the
+ * primary mailbox, archive mailbox, or both the primary and archive mailbox.
+ *
+ * @package php-ews\Enumeration
+ */
+class MailboxSearchLocationType extends Enumeration
+{
+ /**
+ * Indicates a scope that targets both the primary mailbox and archive
+ * mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ALL = 'All';
+
+ /**
+ * Indicates a scope that targets the archive mailbox for a user.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ARCHIVE = 'ArchiveOnly';
+
+ /**
+ * Indicates a scope that targets the primary mailbox for a user.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PRIMARY = 'PrimaryOnly';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailboxTypeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailboxTypeType.php
new file mode 100644
index 00000000..e2a080c4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MailboxTypeType.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MailboxTypeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the type of mailbox that is represented by an e-mail address.
+ *
+ * @package php-ews\Enumeration
+ */
+class MailboxTypeType extends Enumeration
+{
+ /**
+ * Represents a contact in a user's mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACT = 'Contact';
+
+ /**
+ * Represents a mail-enabled Active Directory object.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAILBOX = 'Mailbox';
+
+ /**
+ * Represents a one-off member of a personal distribution list.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ONE_OFF = 'OneOff';
+
+ /**
+ * Represents a private distribution list in a user's mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PRIVATE_DISTRIBUTION_LIST = 'PrivateDL';
+
+ /**
+ * Represents a public distribution list.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PUBLIC_DISTRIBUTION_LIST = 'PublicDL';
+
+ /**
+ * Represents a public folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const PUBLIC_FOLDER = 'PublicFolder';
+
+ /**
+ * Represents an unknown type of mailbox.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNKNOWN = 'Unknown';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MapiPropertyTypeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MapiPropertyTypeType.php
new file mode 100644
index 00000000..27850f8a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MapiPropertyTypeType.php
@@ -0,0 +1,273 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MapiPropertyTypeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the property type of a property tag.
+ *
+ * @package php-ews\Enumeration
+ */
+class MapiPropertyTypeType extends Enumeration
+{
+ /**
+ * A double value that is interpreted as a date and time. The integer part
+ * is the date and the fraction part is the time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const APPLICATION_TIME = 'ApplicationTime';
+
+ /**
+ * An array of double values that are interpreted as a date and time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const APPLICATION_TIME_ARRAY = 'ApplicationTimeArray';
+
+ /**
+ * A Base64-encoded binary value.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BINARY = 'Binary';
+
+ /**
+ * An array of Base64-encoded binary values.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BINARY_ARRAY = 'BinaryArray';
+
+ /**
+ * A Boolean true or false.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BOOLEAN = 'Boolean';
+
+ /**
+ * A GUID string.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CLSID = 'CLSID';
+
+ /**
+ * An array of GUID strings.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CLSID_ARRAY = 'CLSIDArray';
+
+ /**
+ * A 64-bit integer that is interpreted as the number of cents.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CURRENCY = 'Currency';
+
+ /**
+ * An array of 64-bit integers that are interpreted as the number of cents.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CURRENCY_ARRAY = 'CurrencyArray';
+
+ /**
+ * A 64-bit floating-point value.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DOUBLE = 'Double';
+
+ /**
+ * An array of 64-bit floating-point values.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DOUBLE_ARRAY = 'DoubleArray';
+
+ /**
+ * SCODE value; 32-bit unsigned integer.
+ *
+ * Not used for restrictions or for getting/setting values. This exists only
+ * for reporting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ERROR = 'Error';
+
+ /**
+ * A 32-bit floating-point value.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FLOAT = 'Float';
+
+ /**
+ * An array of 32-bit floating-point values.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FLOAT_ARRAY = 'FloatArray';
+
+ /**
+ * A signed 32-bit (Int32) integer.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INTEGER = 'Integer';
+
+ /**
+ * An array of signed 32-bit (Int32) integers.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INTEGER_ARRAY = 'IntegerArray';
+
+ /**
+ * A signed or unsigned 64-bit (Int64) integer.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LONG = 'Long';
+
+ /**
+ * An array of signed or unsigned 64-bit (Int64) integers.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const LONG_ARRAY = 'LongArray';
+
+ /**
+ * Indicates no property value.
+ *
+ * Not used for restrictions or for getting/setting values. This exists only
+ * for reporting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NULL_TYPE = 'Null';
+
+ /**
+ * A pointer to an object that implements the IUnknown interface.
+ *
+ * Not used for restrictions or for getting/setting values. This exists only
+ * for reporting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OBJECT = 'Object';
+
+ /**
+ * An array of pointers to objects that implement the IUnknown interface.
+ *
+ * Not used for restrictions or for getting/setting values. This exists only
+ * for reporting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OBJECT_ARRAY = 'ObjectArray';
+
+ /**
+ * A signed 16-bit integer.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SHORT = 'Short';
+
+ /**
+ * An array of signed 16-bit integers.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SHORT_ARRAY = 'ShortArray';
+
+ /**
+ * A 64-bit integer data and time value in the form of a FILETIME structure.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SYSTEM_TIME = 'SystemTime';
+
+ /**
+ * An array of 64-bit integer data and time values in the form of a FILETIME
+ * structure.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SYSTEM_TIME_ARRAY = 'SystemTimeArray';
+
+ /**
+ * A Unicode string.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const STRING = 'String';
+
+ /**
+ * An array of Unicode strings.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const STRING_ARRAY = 'StringArray';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MeetingAttendeeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MeetingAttendeeType.php
new file mode 100644
index 00000000..27deee34
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MeetingAttendeeType.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MeetingAttendeeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the type of attendee that is identified in the Email element.
+ *
+ * @package php-ews\Enumeration
+ */
+class MeetingAttendeeType extends Enumeration
+{
+ /**
+ * A mailbox user who is an optional attendee to the meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OPTIONAL = 'Optional';
+
+ /**
+ * The mailbox user and attendee who created the calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ORGANIZER = 'Organizer';
+
+ /**
+ * A mailbox user who is a required attendee to the meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const REQUIRED = 'Required';
+
+ /**
+ * A resource such as a TV or projector that is scheduled for use in the meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RESOURCE = 'Resource';
+
+ /**
+ * A mailbox entity that represents a room resource used for the meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ROOM = 'Room';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MeetingRequestTypeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MeetingRequestTypeType.php
new file mode 100644
index 00000000..11ee46d6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MeetingRequestTypeType.php
@@ -0,0 +1,84 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MeetingRequestTypeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Describes the type of a meeting request.
+ *
+ * @package php-ews\Enumeration
+ */
+class MeetingRequestTypeType extends Enumeration
+{
+ /**
+ * Identifies the meeting request as a full update to an existing request.
+ *
+ * A full update has updated time and informational content.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FULL_UPDATE = 'FullUpdate';
+
+ /**
+ * Identifies the meeting request as only containing updated informational
+ * content.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INFORMATIONAL_UPDATE = 'InformationalUpdate';
+
+ /**
+ * Identifies the meeting request as a new meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NEW_MEETING_REQUEST = 'NewMeetingRequest';
+
+ /**
+ * Indicates that the meeting request type is not defined.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NONE = 'None';
+
+ /**
+ * Identifies the meeting request as outdated.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OUTDATED = 'Outdated';
+
+ /**
+ * Indicates that the meeting request belongs to a principal who has
+ * forwarded meeting messages to a delegate and has his copies marked as
+ * informational.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PRINCIPAL_WANTS_COPY = 'PrincipalWantsCopy';
+
+ /**
+ * Identifies the meeting request as a silent update to an existing meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SILENT_UPDATE = 'SilentUpdate';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MemberStatusType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MemberStatusType.php
new file mode 100644
index 00000000..7a5d0cd7
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MemberStatusType.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MemberStatusType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the status of a distribution list member on the server.
+ *
+ * @package php-ews\Enumeration
+ */
+class MemberStatusType extends Enumeration
+{
+ /**
+ * Referenced object is not available.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DEMOTED = 'Demoted';
+
+ /**
+ * Member information in a distribution list is in sync with the referenced
+ * object.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NORMAL = 'Normal';
+
+ /**
+ * Member information is invalid or unrecognized.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNRECOGNIZED = 'Unrecognized';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageDispositionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageDispositionType.php
new file mode 100644
index 00000000..56a40477
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageDispositionType.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MessageDispositionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Describes how an e-mail message will be handled after it is created.
+ *
+ * @package php-ews\Enumeration
+ */
+class MessageDispositionType extends Enumeration
+{
+ /**
+ * The message item is saved in the folder that is specified by the
+ * SavedItemFolderId element.
+ *
+ * Messages can be sent later by using the SendItem operation. An item
+ * identifier is returned in the response. Item identifiers are not returned
+ * for any item types except for message items. This includes response
+ * objects.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SAVE_ONLY = 'SaveOnly';
+
+ /**
+ * The item is sent and a copy is saved in the folder that is identified by
+ * the SavedItemFolderId element.
+ *
+ * An item identifier is not returned in the response.
+ *
+ * Meeting requests are not saved to the folder that is identified by the
+ * SavedItemFolderId property. For calendaring, only the save location for
+ * calendar items can be specified by the SavedItemFolderId property. You
+ * cannot control where a meeting request item is saved. Only the associated
+ * calendar items are copied and saved into the folder that is identified by
+ * the SavedItemFolderId property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_AND_SAVE_COPY = 'SendAndSaveCopy';
+
+ /**
+ * The item is sent but no copy is saved in the Sent Items folder.
+ *
+ * An item identifier is not returned in the response.
+ *
+ * CreateItem does not support delegate access when the SendOnly option is
+ * used because a destination folder cannot be specified with this option.
+ * The workaround is to create the item, get the item identifier, and then
+ * use the SendItem operation to send the item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEND_ONLY = 'SendOnly';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingDeliveryStatusType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingDeliveryStatusType.php
new file mode 100644
index 00000000..5965e5cf
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingDeliveryStatusType.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MessageTrackingDeliveryStatusType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the status for a message.
+ *
+ * @package php-ews\Enumeration
+ */
+class MessageTrackingDeliveryStatusType extends Enumeration
+{
+ /**
+ * Specifies that the message was delivered to all of the specified
+ * recipients.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DELIVERED = 'Delivered';
+
+ /**
+ * Specifies that the message is waiting for approval from a moderator.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const PENDING = 'Pending';
+
+ /**
+ * Specifies that the message was delivered and read by the recipients.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const READ = 'Read';
+
+ /**
+ * Specifies that the message was transferred to a server outside the search
+ * scope.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const TRANSFERRED = 'Transferred';
+
+ /**
+ * Specifies that a message was not delivered.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNSUCCESSFUL = 'Unsuccessful';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingEventDescriptionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingEventDescriptionType.php
new file mode 100644
index 00000000..5ed814bb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingEventDescriptionType.php
@@ -0,0 +1,254 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MessageTrackingEventDescriptionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Class description...
+ *
+ * @package php-ews\Enumeration
+ */
+class MessageTrackingEventDescriptionType extends Enumeration
+{
+ /**
+ * Indicates the event is for a message that has been approved.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const APPROVED_MODERATION = 'ApprovedModeration';
+
+ /**
+ * Indicates the event is for a message that has been delayed after
+ * transferring to a partner organization.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DELAYED_AFTER_TRANSFER_TO_PARTNER_ORG = 'DelayedAfterTransferToPartnerOrg';
+
+ /**
+ * Indicates the event is for a delivered message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DELIVERED = 'Delivered';
+
+ /**
+ * Indicates the event is for an expanded message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXPANDED = 'Expanded';
+
+ /**
+ * Indicates the event is for a message that failed with a general error.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FAILED_GENERAL = 'FailedGeneral';
+
+ /**
+ * Indicates the event is for a message that failed moderation.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FAILED_MODERATION = 'FailedModeration';
+
+ /**
+ * Indicates the event is for a message that failed transport rules.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FAILED_TRANSPORT_RULES = 'FailedTransportRules';
+
+ /**
+ * Indicates the event is for a forwarded message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FORWARDED = 'Forwarded';
+
+ /**
+ * Indicates the event is for a message that was deferred.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MESSAGE_DEFER = 'MessageDefer';
+
+ /**
+ * Indicates the event is for a message that was moved by an inbox rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MOVED_TO_FOLDER_BY_INBOX_RULE = 'MovedToFolderByInboxRule';
+
+ /**
+ * Indicates the event is for a not read message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NOT_READ = 'NotRead';
+
+ /**
+ * Indicates the event is for a pending message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const PENDING = 'Pending';
+
+ /**
+ * Indicates the event is for a message pending moderation.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const PENDING_MODERATION = 'PendingModeration';
+
+ /**
+ * Indicates the event is for a message that was queued to be retried.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const QUEUE_RETRY = 'QueueRetry';
+
+ /**
+ * Indicates the event is for a queued to be retried without a time.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const QUEUE_RETRY_NO_RETRY_TIME = 'QueueRetryNoRetryTime';
+
+ /**
+ * Indicates the event is for a read message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const READ = 'Read';
+
+ /**
+ * Indicates the event is for a resolved message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RESOLVED = 'Resolved';
+
+ /**
+ * Indicates the event is for a message that was CCed by a rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RULES_CC = 'RulesCc';
+
+ /**
+ * Indicates the event is for a message that was received via SMTP.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SMTP_RECEIVE = 'SmtpReceive';
+
+ /**
+ * Indicates the event is for a message that was sent via SMTP.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SMTP_SEND = 'SmtpSend';
+
+ /**
+ * Indicates the event is for a message that was sent cross forest via SMTP.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SMTP_SEND_CROSS_FOREST = 'SmtpSendCrossForest';
+
+ /**
+ * Indicates the event is for a message that was sent cross site via SMTP.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SMTP_SEND_CROSS_SITE = 'SmtpSendCrossSite';
+
+ /**
+ * Indicates the event is for a submitted message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SUBMITTED = 'Submitted';
+
+ /**
+ * Indicates the event is for a message that was transferred to a foreign
+ * organization.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const TRANSFERRED_TO_FOREIGN_ORG = 'TransferredToForeignOrg';
+
+ /**
+ * Indicates the event is for a message that was transferred to a legacy
+ * exchange server.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const TRANSFERRED_TO_LEGACY_EXCHANGE_SERVER = 'TransferredToLegacyExchangeServer';
+
+ /**
+ * Indicates the event is for a message that was transferred to a partner
+ * organization.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const TRANSFERRED_TO_PARTNER_ORG = 'TransferredToPartnerOrg';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingReportTemplateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingReportTemplateType.php
new file mode 100644
index 00000000..9cd1391b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MessageTrackingReportTemplateType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MessageTrackingReportTemplateType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the type of report to get.
+ *
+ * @package php-ews\Enumeration
+ */
+class MessageTrackingReportTemplateType extends Enumeration
+{
+ /**
+ * Specifies that for a single recipient, the report will display a full
+ * history of the events that occurred.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RECIPIENT_PATH = 'RecipientPath';
+
+ /**
+ * Specifies that the report will display all the recipients of the message
+ * and the delivery status of the message to each recipient.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SUMMARY = 'Summary';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MonthNamesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MonthNamesType.php
new file mode 100644
index 00000000..e6d6e985
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/MonthNamesType.php
@@ -0,0 +1,124 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\MonthNamesType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Describes the month when a yearly recurring item occurs.
+ *
+ * @package php-ews\Enumeration
+ */
+class MonthNamesType extends Enumeration
+{
+ /**
+ * Text value for the month of April.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const APRIL = 'April';
+
+ /**
+ * Text value for the month of August.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const AUGUST = 'August';
+
+ /**
+ * Text value for the month of February.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FEBRUARY = 'February';
+
+ /**
+ * Text value for the month of December.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DECEMBER = 'December';
+
+ /**
+ * Text value for the month of January.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const JANUARY = 'January';
+
+ /**
+ * Text value for the month of July.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const JULY = 'July';
+
+ /**
+ * Text value for the month of June.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const JUNE = 'June';
+
+ /**
+ * Text value for the month of March.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MARCH = 'March';
+
+ /**
+ * Text value for the month of May.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAY = 'May';
+
+ /**
+ * Text value for the month of November.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOVEMBER = 'November';
+
+ /**
+ * Text value for the month of October.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OCTOBER = 'October';
+
+ /**
+ * Text value for the month of September.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SEPTEMBER = 'September';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/NotificationEventTypeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/NotificationEventTypeType.php
new file mode 100644
index 00000000..5c9d7185
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/NotificationEventTypeType.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\NotificationEventTypeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of event a notification is for.
+ *
+ * @package php-ews\Enumeration
+ */
+class NotificationEventTypeType extends Enumeration
+{
+ /**
+ * Indicates the notification is for an item copied event.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const COPIED_EVENT = 'CopiedEvent';
+
+ /**
+ * Indicates the notification is for an item created event.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CREATED_EVENT = 'CreatedEvent';
+
+ /**
+ * Indicates the notification is for an item deleted event.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DELETED_EVENT = 'DeletedEvent';
+
+ /**
+ * Indicates the notification is for a free or busy change event.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FREE_BUSY_CHANGED_EVENT = 'FreeBusyChangedEvent';
+
+ /**
+ * Indicates the notification is for an item modified event.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MODIFIED_EVENT = 'ModifiedEvent';
+
+ /**
+ * Indicates the notification is for an item moved event.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MOVED_EVENT = 'MovedEvent';
+
+ /**
+ * Indicates the notification is for a new mail event.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NEW_MAIL_EVENT = 'NewMailEvent';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/Occurrence.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/Occurrence.php
new file mode 100644
index 00000000..712c2657
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/Occurrence.php
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\Occurrence.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the occurrence of the day of the week in a month.
+ *
+ * @package php-ews\Enumeration
+ */
+class Occurrence extends Enumeration
+{
+ /**
+ * The first occurrence of the specified day of the week from the beginning
+ * of the month.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ const FIRST_FROM_BEGINNING = 1;
+
+ /**
+ * The first occurrence of the specified day of the week from the end of the
+ * month.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ const FIRST_FROM_END = -1;
+
+ /**
+ * The fourth occurrence of the specified day of the week from the beginning
+ * of the month.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ const FOURTH_FROM_BEGINNING = 4;
+
+ /**
+ * The fourth occurrence of the specified day of the week from the end of the
+ * month.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ const FOURTH_FROM_END = -4;
+
+ /**
+ * The second occurrence of the specified day of the week from the beginning
+ * of the month.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ const SECOND_FROM_BEGINNING = 2;
+
+ /**
+ * The second occurrence of the specified day of the week from the end of
+ * the month.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ const SECOND_FROM_END = -2;
+
+ /**
+ * The third occurrence of the specified day of the week from the beginning
+ * of the month.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ const THIRD_FROM_BEGINNING = 3;
+
+ /**
+ * The third occurrence of the specified day of the week from the end of the
+ * month.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ const THIRD_FROM_END = -3;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/OofState.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/OofState.php
new file mode 100644
index 00000000..d038fda9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/OofState.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\OofState.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents a user's Out of Office (OOF) state.
+ *
+ * @package php-ews\Enumeration
+ */
+class OofState extends Enumeration
+{
+ /**
+ * The user's OOF setting is currently disabled.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DISABLED = 'Disabled';
+
+ /**
+ * The user's OOF setting is currently enabled.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ENABLED = 'Enabled';
+
+ /**
+ * The user's OOF setting is scheduled to start at a specific date and end
+ * at another specific date.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SCHEDULED = 'Scheduled';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionActionType.php
new file mode 100644
index 00000000..8afebf4c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionActionType.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\PermissionActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Indicates which items in a folder a user has permission to perform an action
+ * on.
+ *
+ * @package php-ews\Enumeration
+ */
+class PermissionActionType extends Enumeration
+{
+ /**
+ * Indicates that the user has permission to perform the action on all items
+ * in the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const ALL = 'All';
+
+ /**
+ * Indicates that the user does not have permission to perform the action on
+ * items in the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const NONE = 'None';
+
+ /**
+ * Indicates that the user has permission to perform the action on the items
+ * that the user owns in the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const OWNED = 'Owned';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionLevelType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionLevelType.php
new file mode 100644
index 00000000..3b17c190
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionLevelType.php
@@ -0,0 +1,116 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\PermissionLevelType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the permission level that a user has on a folder.
+ *
+ * @package php-ews\Enumeration
+ */
+class PermissionLevelType extends Enumeration
+{
+ /**
+ * Indicates that the user can create and read all items in the folder, and
+ * edit and delete only items that the user creates.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const AUTHOR = 'Author';
+
+ /**
+ * Indicates that the user can create items in the folder.
+ *
+ * The contents of the folder do not appear.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const CONTRIBUTOR = 'Contributor';
+
+ /**
+ * Indicates that the user has custom access permissions on the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const CUSTOM = 'Custom';
+
+ /**
+ * Indicates that the user can create, read, edit, and delete all items in
+ * the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const EDITOR = 'Editor';
+
+ /**
+ * Indicates that the user can create and read all items in the folder, and
+ * delete only items that the user creates.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const NON_EDITING_AUTHOR = 'NoneditingAuthor';
+
+ /**
+ * Indicates that the user has no permissions on the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const NONE = 'None';
+
+ /**
+ * Indicates that the user can create, read, edit, and delete all items in
+ * the folder, and create subfolders.
+ *
+ * The user is both folder owner and folder contact.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const OWNER = 'Owner';
+
+ /**
+ * Indicates that the user can create and read all items in the folder,
+ * edit and delete only items that the user creates, and create subfolders.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const PUBLISHING_AUTHOR = 'PublishingAuthor';
+
+ /**
+ * Indicates that the user can create, read, edit, and delete all items in
+ * the folder, and create subfolders.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const PUBLISHING_EDITOR = 'PublishingEditor';
+
+ /**
+ * Indicates that the user can read all items in the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const REVIEWER = 'Reviewer';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionReadAccessType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionReadAccessType.php
new file mode 100644
index 00000000..a5675009
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PermissionReadAccessType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\PermissionReadAccessType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Indicates whether a user has permission to read items within a folder.
+ *
+ * @package php-ews\Enumeration
+ */
+class PermissionReadAccessType extends Enumeration
+{
+ /**
+ * Indicates that the user has permission to read all items in the folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const FULL_DETAILS = 'FullDetails';
+
+ /**
+ * Indicates that the user does not have permission to read items in the
+ * folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const NONE = 'None';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhoneCallStateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhoneCallStateType.php
new file mode 100644
index 00000000..e5c4b768
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhoneCallStateType.php
@@ -0,0 +1,88 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\PhoneCallStateType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the current state for a phone call.
+ *
+ * @package php-ews\Enumeration
+ */
+class PhoneCallStateType extends Enumeration
+{
+ /**
+ * The call is in alerting state (phone is ringing).
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ALERTED = 'Alerted';
+
+ /**
+ * The call is in the connected state.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONNECTED = 'Connected';
+
+ /**
+ * The system is dialing this call.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONNECTING = 'Connecting';
+
+ /**
+ * The call is disconnected.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DISCONNECTED = 'Disconnected';
+
+ /**
+ * The call is being forwarded to another destination.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FORWARDING = 'Forwarding';
+
+ /**
+ * Initial call state.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const IDLE = 'Idle';
+
+ /**
+ * The call is inbound.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INCOMING = 'Incoming';
+
+ /**
+ * The call is being transferred to another destination.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const TRANSFERRING = 'Transferring';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhoneNumberKeyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhoneNumberKeyType.php
new file mode 100644
index 00000000..908a4ef9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhoneNumberKeyType.php
@@ -0,0 +1,187 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\PhoneNumberKeyType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the key for a phone number.
+ *
+ * @package php-ews\Enumeration
+ */
+class PhoneNumberKeyType extends Enumeration
+{
+ /**
+ * Phone number key for assistant phone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ASSISTANT_PHONE = 'AssistantPhone';
+
+ /**
+ * Phone number key for business fax number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BUSINESS_FAX = 'BusinessFax';
+
+ /**
+ * Phone number key for business phone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BUSINESS_PHONE = 'BusinessPhone';
+
+ /**
+ * Phone number key for second business phone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BUSINESS_PHONE_2 = 'BusinessPhone2';
+
+ /**
+ * Phone number key for callback.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALLBACK = 'Callback';
+
+ /**
+ * Phone number key for car phone.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CAR_PHONE = 'CarPhone';
+
+ /**
+ * Phone number key for company main phone.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const COMPANY_MAIN_PHONE = 'CompanyMainPhone';
+
+ /**
+ * Phone number key for home fax number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const HOME_FAX = 'HomeFax';
+
+ /**
+ * Phone number key for home phone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const HOME_PHONE = 'HomePhone';
+
+ /**
+ * Phone number key for second home phone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const HOME_PHONE_2 = 'HomePhone2';
+
+ /**
+ * Phone number key for ISDN line.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ISDN = 'Isdn';
+
+ /**
+ * Phone number key for mobile phone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MOBILE_PHONE = 'MobilePhone';
+
+ /**
+ * Phone number key for other fax number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OTHER_FAX = 'OtherFax';
+
+ /**
+ * Phone number key for other phone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OTHER_PHONE = 'OtherTelephone';
+
+ /**
+ * Phone number key for pager.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PAGER = 'Pager';
+
+ /**
+ * Phone number key for primary phone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PRIMARY_PHONE = 'PrimaryPhone';
+
+ /**
+ * Phone number key for radio phone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const RADIO_PHONE = 'RadioPhone';
+
+ /**
+ * Phone number key for telex.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TELEX = 'Telex';
+
+ /**
+ * Phone number key for TTY TTD phone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TTY_TTD_PHONE = 'TtyTtdPhone';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhysicalAddressIndexType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhysicalAddressIndexType.php
new file mode 100644
index 00000000..4f663950
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhysicalAddressIndexType.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\PhysicalAddressIndexType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the display types for physical addresses.
+ *
+ * @package php-ews\Enumeration
+ */
+class PhysicalAddressIndexType extends Enumeration
+{
+ /**
+ * Address index for business.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BUSINESS = 'Business';
+
+ /**
+ * Address index for home.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const HOME = 'Home';
+
+ /**
+ * Address index for none.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NONE = 'None';
+
+ /**
+ * Address index for other.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OTHER = 'Other';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhysicalAddressKeyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhysicalAddressKeyType.php
new file mode 100644
index 00000000..7239a1fb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PhysicalAddressKeyType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\PhysicalAddressKeyType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the key for a physical address.
+ *
+ * @package php-ews\Enumeration
+ */
+class PhysicalAddressKeyType extends Enumeration
+{
+ /**
+ * Indicates that the address is a business.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BUSINESS = 'Business';
+
+ /**
+ * Indicates that the address is a home.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const HOME = 'Home';
+
+ /**
+ * Indicates that the address is another type of location.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OTHER = 'Other';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PreviewItemBaseShapeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PreviewItemBaseShapeType.php
new file mode 100644
index 00000000..ecac039d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/PreviewItemBaseShapeType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\PreviewItemBaseShapeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of preview to be returned for an item.
+ *
+ * @package php-ews\Enumeration
+ */
+class PreviewItemBaseShapeType extends Enumeration
+{
+ /**
+ * Indicates that only selected properties are shown.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const COMPACT = 'Compact';
+
+ /**
+ * Indicates that all properties are shown.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DEFAULT_SHAPE = 'Default';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ReminderActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ReminderActionType.php
new file mode 100644
index 00000000..cd23c25d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ReminderActionType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ReminderActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the action to take on a reminder.
+ *
+ * @package php-ews\Enumeration
+ */
+class ReminderActionType extends Enumeration
+{
+ /**
+ * Dismiss the reminder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DISMISS = 'Dismiss';
+
+ /**
+ * Snooze the reminder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const SNOOZE = 'Snooze';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ReminderGroup.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ReminderGroup.php
new file mode 100644
index 00000000..f89b08bb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ReminderGroup.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ReminderGroup.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines whether the reminder is for a calendar item or a task.
+ *
+ * @package php-ews\Enumeration
+ */
+class ReminderGroup extends Enumeration
+{
+ /**
+ * Specifies that the reminder is for a calendar item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CALENDAR = 'Calendar';
+
+ /**
+ * Specifies that the reminder is for a task item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TASK = 'Task';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResolveNamesSearchScopeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResolveNamesSearchScopeType.php
new file mode 100644
index 00000000..b7d0b592
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResolveNamesSearchScopeType.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ResolveNamesSearchScopeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the order and scope for a ResolveNames search.
+ *
+ * @package php-ews\Enumeration
+ */
+class ResolveNamesSearchScopeType extends Enumeration
+{
+ /**
+ * Only the Active Directory directory service is searched.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ACTIVE_DIRECTORY = 'ActiveDirectory';
+
+ /**
+ * Active Directory is searched first, and then the contact folders that are
+ * specified in the ParentFolderIds property are searched.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ACTIVE_DIRECTORY_CONTACTS = 'ActiveDirectoryContacts';
+
+ /**
+ * Only the contact folders that are identified by the ParentFolderIds
+ * property are searched.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS = 'Contacts';
+
+ /**
+ * Contact folders that are identified by the ParentFolderIds property are
+ * searched first and then Active Directory is searched.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_ACTIVE_DIRECTORY = 'ContactsActiveDirectory';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseClassType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseClassType.php
new file mode 100644
index 00000000..f9de8995
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseClassType.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ResponseClassType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the status of a response.
+ *
+ * @package php-ews\Enumeration
+ */
+class ResponseClassType extends Enumeration
+{
+ /**
+ * Describes a request that cannot be fulfilled.
+ *
+ * The following are examples of sources of errors:
+ * - Invalid attributes or elements
+ * - Attributes or elements that are out of range
+ * - An unknown tag
+ * - An attribute or element that is not valid in the context
+ * - An unauthorized access attempt by any client
+ * - A server-side failure in response to a valid client-side call
+ * - Information about the error can be found in the ResponseCode and
+ * MessageText elements.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ERROR = 'Error';
+
+ /**
+ * Describes a request that is fulfilled.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SUCCESS = 'Success';
+
+ /**
+ * Describes a request that was not processed.
+ *
+ * A warning may be returned if an error occurred while an item in the
+ * request was processing and subsequent items could not be processed. The
+ * following are examples of sources of warnings:
+ * - The Exchange store is offline during the batch.
+ * - Active Directory Domain Services (AD DS) is offline.
+ * - Mailboxes were moved.
+ * - The message database (MDB) is offline.
+ * - A password is expired.
+ * - A quota has been exceeded.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const WARNING = 'Warning';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseCodeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseCodeType.php
new file mode 100644
index 00000000..fdd094e5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ResponseCodeType.php
@@ -0,0 +1,4866 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ResponseCodeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Provides status information about a request.
+ *
+ * @package php-ews\Enumeration
+ */
+class ResponseCodeType extends Enumeration
+{
+ /**
+ * This error occurs when the calling account does not have the rights to
+ * perform the requested action.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ACCESS_DENIED = 'ErrorAccessDenied';
+
+ /**
+ * This error is for internal use only. This error is not returned.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACCESS_MODE_SPECIFIED = 'ErrorAccessModeSpecified';
+
+ /**
+ * This error occurs when the account in question has been disabled.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ACCOUNT_DISABLED = 'ErrorAccountDisabled';
+
+ /**
+ * This error occurs when AD DS is unavailable; Try your request again
+ * later.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const AD_UNAVAILABLE = 'ErrorADUnavailable';
+
+ /**
+ * This error occurs when a list with added delegates cannot be saved.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const ADD_DELEGATES_FAILED = 'ErrorAddDelegatesFailed';
+
+ /**
+ * This error occurs when the address space record, or Domain Name System
+ * (DNS) domain name, for cross-forest availability could not be found in
+ * the Active Directory database.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ADDRESS_SPACE_NOT_FOUND = 'ErrorAddressSpaceNotFound';
+
+ /**
+ * This error indicates that the AffectedTaskOccurrences attribute was not
+ * specified.
+ *
+ * When the DeleteItem element is used to delete at least one item that is a
+ * task, and regardless of whether that task is recurring or not, the
+ * AffectedTaskOccurrences attribute has to be specified so that DeleteItem
+ * can determine whether to delete the current occurrence or the entire
+ * series.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const AFFECTED_TASK_OCCURRENCES_REQUIRED = 'ErrorAffectedTaskOccurrencesRequired';
+
+ /**
+ * This error MUST be returned if an action cannot be applied to one or more
+ * items in the conversation.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const APPLY_CONVERSATION_ACTION_FAILED = 'ErrorApplyConversationActionFailed';
+
+ /**
+ * Indicates that the archive mailbox was not enabled.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ARCHIVE_MAILBOX_NOT_ENABLED = 'ErrorArchiveMailboxNotEnabled';
+
+ /**
+ * This error is returned when an archive mailbox search is unsuccessful.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ARCHIVE_MAILBOX_SEARCH_FAILED = 'ErrorArchiveMailboxSearchFailed';
+
+ /**
+ * Indicates that archive mailbox service discovery failed.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ARCHIVE_MAILBOX_SERVICE_DISCOVERY_FAILED = 'ErrorArchiveMailboxServiceDiscoveryFailed';
+
+ /**
+ * Specifies that an attempt was made to create an item with more than 10
+ * nested attachments.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const ATTACHMENT_NEST_LEVEL_LIMIT_EXCEEDED = 'ErrorAttachmentNestLevelLimitExceeded';
+
+ /**
+ * This error occurs if an attempt to create or retrieve an attachment with
+ * size exceeding a 32-bit integer in bytes.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ATTACHMENT_SIZE_LIMIT_EXCEEDED = 'ErrorAttachmentSizeLimitExceeded';
+
+ /**
+ * This error indicates that Exchange Web Services tried to determine the
+ * location of a cross-forest computer that is running Exchange that has the
+ * Client Access server role installed by using the Autodiscover service,
+ * but the call to the Autodiscover service failed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const AUTO_DISCOVERY_FAILED = 'ErrorAutoDiscoverFailed';
+
+ /**
+ * This error indicates that the availability configuration information for
+ * the local forest is missing from AD DS.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const AVAILABILITY_CONFIG_NOT_FOUND = 'ErrorAvailabilityConfigNotFound';
+
+ /**
+ * This error indicates that an exception occurred while processing an item
+ * and that exception is likely to occur for the items that follow.
+ *
+ * Requests may include multiple items; for example, a GetItem operation
+ * request might include multiple identifiers. In general, items are
+ * processed one at a time. If an exception occurs while processing an item
+ * and that exception is likely to occur for the items that follow, items
+ * that follow will not be processed.
+ *
+ * The following are examples of errors that will stop processing for items
+ * that follow:
+ * - ErrorAccessDenied
+ * - ErrorAccountDisabled
+ * - ErrorADUnavailable
+ * - ErrorADOperation
+ * - ErrorConnectionFailed
+ * - ErrorMailboxStoreUnavailable
+ * - ErrorMailboxMoveInProgress
+ * - ErrorPasswordChangeRequired
+ * - ErrorPasswordExpired
+ * - ErrorQuotaExceeded
+ * - ErrorInsufficientResources
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const BATCH_PROCESSING_STOPPED = 'ErrorBatchProcessingStopped';
+
+ /**
+ * This error is reported on Create/Update calendar item or task recurrence
+ * properties when the property value is out of range.
+ *
+ * For example, specifying the fifteenth week of the month will result in
+ * this response code.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_OUT_OF_RANGE = 'ErrorCalendarOutOfRange';
+
+ /**
+ * Indicates that an attempt was made to archive a calendar contact task folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CANNOT_ARCHIVE_CALENDAR_CONTACT_TASK_FOLDER = 'ErrorCannotArchiveCalendarContactTaskFolderException';
+
+ /**
+ * Indicates that attempt was made to archive items in the archive mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CANNOT_ARCHIVE_ITEM_IN_ARCHIVE_MAILBOX = 'ErrorCannotArchiveItemsInArchiveMailbox';
+
+ /**
+ * Indicates that an attempt was made to archive items in public folders.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CANNOT_ARCHIVE_ITEMS_IN_PUBLIC_FOLDERS = 'ErrorCannotArchiveItemsInPublicFolders';
+
+ /**
+ * This error occurs when a calendar item is being created and the
+ * SavedItemFolderId attribute refers to a non-calendar folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_CREATE_CALENDAR_ITEM_FOLDER = 'ErrorCannotCreateCalendarItemInNonCalendarFolder';
+
+ /**
+ * This error occurs when a contact is being created and the
+ * SavedItemFolderId attribute refers to a non-contact folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_CREATE_CONTACT_IN_FOLDER = 'ErrorCannotCreateContactInNonContactFolder';
+
+ /**
+ * This error indicates that a post item cannot be created in a folder other
+ * than a mail folder, such as Calendar, Contact, Tasks, Notes, and so on.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_CREATE_POST_IN_FOLDER = 'ErrorCannotCreatePostItemInNonMailFolder';
+
+ /**
+ * This error occurs when a task is being created and the SavedItemFolderId
+ * attribute refers to a non-task folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_CREATE_TASK_IN_FOLDER = 'ErrorCannotCreateTaskInNonTaskFolder';
+
+ /**
+ * This error occurs when the item or folder to delete cannot be deleted.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_DELETE_OBJECT = 'ErrorCannotDeleteObject';
+
+ /**
+ * The DeleteItem Operation returns this error when it fails to delete the
+ * current occurrence of a recurring task.
+ *
+ * This can only happen if the AffectedTaskOccurrences attribute has been
+ * set to SpecifiedOccurrenceOnly.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_DELETE_TASK_OCCURRENCE = 'ErrorCannotDeleteTaskOccurrence';
+
+ /**
+ * Indicates that an attempt was made to disable a mandatory extension.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CANNOT_DISABLE_MANDATORY_EXTENSION = 'ErrorCannotDisableMandatoryExtension';
+
+ /**
+ * This error must be returned when the server cannot empty a folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CANNOT_EMPTY_FOLDER = 'ErrorCannotEmptyFolder';
+
+ /**
+ * Specifies that the server could not retrieve the external URL for Outlook
+ * Web App Options.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CANNOT_GET_EXTERNAL_ECP_URL = 'ErrorCannotGetExternalEcpUrl';
+
+ /**
+ * Indicates that the source folder path could not be retrieved.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CANNOT_GET_SOURCE_FOLDER_PATH = 'ErrorCannotGetSourceFolderPath';
+
+ /**
+ * This error occurs when an attempt is made to move or copy an occurrence
+ * of a recurring calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_MOVE_OR_COPY_OCCURRENCE = 'ErrorCalendarCannotMoveOrCopyOccurrence';
+
+ /**
+ * The GetAttachment operation returns this error if it cannot retrieve the
+ * body of a file attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_OPEN_FILE_ATTACHMENT = 'ErrorCannotOpenFileAttachment';
+
+ /**
+ * This error indicates that the caller tried to set calendar permissions on
+ * a non-calendar folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_SET_CALENDAR_PERMISSION_ON_FOLDER = 'ErrorCannotSetCalendarPermissionOnNonCalendarFolder';
+
+ /**
+ * This error indicates that the caller tried to set non-calendar permissions on a calendar folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_SET_NON_CALENDAR_PERMISSION_ON_FOLDER = 'ErrorCannotSetNonCalendarPermissionOnCalendarFolder';
+
+ /**
+ * This error indicates that you cannot set unknown permissions in a
+ * permissions set.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_SET_PERMISSION_UNKNOWN_ENTRIES = 'ErrorCannotSetPermissionUnknownEntries';
+
+ /**
+ * Indicates that an attempt was made to specify the search folder as the
+ * source folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CANNOT_SPECIFY_SEARCH_FOLDER_AS_SOURCE = 'ErrorCannotSpecifySearchFolderAsSourceFolder';
+
+ /**
+ * This error occurs when an attempt is made to update a calendar item that
+ * is located in the Deleted Items folder and when meeting updates or
+ * cancellations are to be sent according to the value of the
+ * SendMeetingInvitationsOrCancellations attribute.
+ *
+ * The following are the possible values for this attribute:
+ * - SendToAllAndSaveCopy
+ * - SendToChangedAndSaveCopy
+ * - SendOnlyToAll
+ * - SendOnlyToChanged
+ *
+ * However, such an update is allowed only when the value of this attribute
+ * is set to SendToNone.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_UPDATE_DELETED_ITEM = 'ErrorCalendarCannotUpdateDeletedItem';
+
+ /**
+ * This error occurs when a request that requires an item identifier is
+ * given a folder identifier.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_USE_FOLDER_ID_FOR_ITEM_ID = 'ErrorCannotUseFolderIdForItemId';
+
+ /**
+ * This error occurs when the UpdateItem, GetItem, DeleteItem, MoveItem,
+ * CopyItem, or SendItem operation is called and the ID that was specified
+ * is not an occurrence ID of any recurring calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_USE_ID_FOR_OCCURRENCE_ID = 'ErrorCalendarCannotUseIdForOccurrenceId';
+
+ /**
+ * This error occurs when the UpdateItem, GetItem, DeleteItem, MoveItem,
+ * CopyItem, or SendItem operation is called and the ID that was specified
+ * is not an ID of any recurring master item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_USE_ID_FOR_RECURRING_MASTER_ID = 'ErrorCalendarCannotUseIdForRecurringMasterId';
+
+ /**
+ * This error occurs when a request that requires a folder identifier is
+ * given an item identifier.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CANNOT_USE_ITEM_ID_FOR_FOLDER_ID = 'ErrorCannotUseItemIdForFolderId';
+
+ /**
+ * This response code has been replaced by
+ * ErrorChangeKeyRequiredForWriteOperations.
+ *
+ * @since Exchange 2007
+ * @deprecated Exchange 2007
+ *
+ * @var string
+ */
+ const CHANGE_KEY_REQUIRED = 'ErrorChangeKeyRequired';
+
+ /**
+ * This error is returned when the change key for an item is missing or
+ * stale.
+ *
+ * For SendItem, UpdateItem, and UpdateFolder operations, the caller must
+ * pass in a correct and current change key for the item. Note that this is
+ * the case with UpdateItem even when conflict resolution is set to always
+ * overwrite.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CHANGE_KEY_REQUIRED_FOR_WRITE = 'ErrorChangeKeyRequiredForWriteOperations';
+
+ /**
+ * Specifies that the client was disconnected.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CLIENT_DISCONNECTED = 'ErrorClientDisconnected';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CLIENT_INTENT_INVALID_STATE_DEFINITION = 'ErrorClientIntentInvalidStateDefinition';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CLIENT_INTENT_NOT_FOUND = 'ErrorClientIntentNotFound';
+
+ /**
+ * This error occurs when Exchange Web Services cannot connect to the
+ * mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONNECTION_FAILED = 'ErrorConnectionFailed';
+
+ /**
+ * This error indicates that the property that was inspected for a Contains
+ * filter is not a string type.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONTAINS_FILTER_WRONG_TYPE = 'ErrorContainsFilterWrongType';
+
+ /**
+ * The GetItem operation returns this error when Exchange Web Services is
+ * unable to retrieve the MIME content for the item requested; the
+ * CreateItem operation returns this error when Exchange Web Services is
+ * unable to create the item from the supplied MIME content.
+ *
+ * Usually this is an indication that the item property is corrupted or
+ * truncated.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTENT_CONVERSION_FAILED = 'ErrorContentConversionFailed';
+
+ /**
+ * This error occurs when a search request is made using the QueryString
+ * option and content indexing is not enabled for the target mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONTENT_INDEXING_NOT_ENABLED = 'ErrorContentIndexingNotEnabled';
+
+ /**
+ * This error occurs when the data is corrupted and cannot be processed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CORRUPT_DATA = 'ErrorCorruptData';
+
+ /**
+ * This error occurs when the caller does not have permission to create the
+ * item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CREATE_ITEM_ACCESS_DENIED = 'ErrorCreateItemAccessDenied';
+
+ /**
+ * This error occurs when one or more of the managed folders that were
+ * specified in the CreateManagedFolder operation request failed to be
+ * created.
+ *
+ * Search for each folder to determine which folders were created and which
+ * folders do not exist.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CREATE_MANAGED_FOLDER_PARTIAL_COMPLETION = 'ErrorCreateManagedFolderPartialCompletion';
+
+ /**
+ * This error occurs when the calling account does not have the permissions
+ * required to create the subfolder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CREATE_SUBFOLDER_ACCESS_DENIED = 'ErrorCreateSubfolderAccessDenied';
+
+ /**
+ * This error occurs when an attempt is made to move an item or folder
+ * from one mailbox to another; if the source mailbox and destination
+ * mailbox are different, you will get this error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CROSS_MAILBOX_MOVE_COPY = 'ErrorCrossMailboxMoveCopy';
+
+ /**
+ * This error indicates that the request is not allowed because the Client
+ * Access server that should service the request is in a different site.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CROSS_SITE_REQUEST = 'ErrorCrossSiteRequest';
+
+ /**
+ * This error can occur in the following scenarios:
+ * - An attempt is made to access or write a property on an item and the
+ * property value is too large.
+ * - The base64 encoded MIME content length within the request XML exceeds
+ * the limit.
+ * - The size of the body of an existing item body exceeds the limit.
+ * - The consumer tries to set an HTML or text body whose length (or
+ * combined length in the case of append) exceeds the limit.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DATA_SIZE_LIMIT_EXCEEDED = 'ErrorDataSizeLimitExceeded';
+
+ /**
+ * This error occurs when the underlying data provider fails to complete the
+ * operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DATA_SOURCE_OPERATION = 'ErrorDataSourceOperation';
+
+ /**
+ * This error occurs in an AddDelegate operation when the specified user
+ * already exists in the list of delegates.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const DELEGATE_ALREADY_EXISTS = 'ErrorDelegateAlreadyExists';
+
+ /**
+ * This error occurs in an AddDelegate operation when the specified user to
+ * be added is the owner of the mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const DELEGATE_CANNOT_ADD_OWNER = 'ErrorDelegateCannotAddOwner';
+
+ /**
+ * This error occurs in a GetDelegate operation when either there is no
+ * delegate information on the local FreeBusy message or no Active Directory
+ * public delegate (no “public delegate” or no "Send On Behalf" entry in AD
+ * DS).
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const DELEGATE_MISSING_CONFIGURATION = 'ErrorDelegateMissingConfiguration';
+
+ /**
+ * This error occurs when a specified user cannot be mapped to a user in AD
+ * DS.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const DELEGATE_NO_USER = 'ErrorDelegateNoUser';
+
+ /**
+ * This error occurs in the AddDelegate operation when an added delegate
+ * user is not valid.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const DELEGATE_VALIDATION_FAILED = 'ErrorDelegateValidationFailed';
+
+ /**
+ * This error occurs when an attempt is made to delete a distinguished
+ * folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DELETE_DISTINGUISHED_FOLDER = 'ErrorDeleteDistinguishedFolder';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DELETE_ITEMS_FAILED = 'ErrorDeleteItemsFailed';
+
+ /**
+ * This error is intended for internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DELETE_UNIFIED_MESSAGING_PROMPT_FAILED = 'ErrorDeleteUnifiedMessagingPromptFailed';
+
+ /**
+ * This error is returned when discovery searches are disabled on a tenant
+ * or server.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DISCOVERY_SEARCHES_DISABLED = 'ErrorDiscoverySearchesDisabled';
+
+ /**
+ * This error indicates that a distinguished user ID is not valid for the
+ * operation; DistinguishedUserType should not be present in the request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DISTINGUISHED_USER_NOT_SUPPORTED = 'ErrorDistinguishedUserNotSupported';
+
+ /**
+ * This error indicates that a request distribution list member does not
+ * exist in the distribution list.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DISTRIBUTION_LIST_MEMBER_NOT_EXIST = 'ErrorDistributionListMemberNotExist';
+
+ /**
+ * This error occurs when duplicate folder names are specified within the
+ * FolderNames element of the CreateManagedFolder operation request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DUPLICATE_INPUT_FOLDER_NAMES = 'ErrorDuplicateInputFolderNames';
+
+ /**
+ * This error is returned when there are duplicate legacy distinguished
+ * names in Active Directory Domain Services (AD DS).
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DUPLICATE_LEGACY_DISTINGUISHED_NAME = 'ErrorDuplicateLegacyDistinguishedName';
+
+ /**
+ * This error indicates that there are duplicate SOAP headers.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DUPLICATE_SOAP_HEADER = 'ErrorDuplicateSOAPHeader';
+
+ /**
+ * This error indicates that a duplicate user ID has been found in a
+ * permission set, either Default or Anonymous are set more than once, or
+ * there are duplicate SIDs or recipients.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DUPLICATE_USER_IDS = 'ErrorDuplicateUserIdsSpecified';
+
+ /**
+ * This error occurs during a CreateItem or UpdateItem operation when a
+ * calendar item duration is longer than the maximum allowed, which is
+ * currently 5 years.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DURATION_IS_TOO_LONG = 'ErrorCalendarDurationIsTooLong';
+
+ /**
+ * This error occurs when a request attempts to create/update the search
+ * parameters of a search folder.
+ *
+ * For example, this can occur when a search folder is created in the
+ * mailbox but the search folder is directed to look in another mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EMAIL_ADDRESS_MISMATCH = 'ErrorEmailAddressMismatch';
+
+ /**
+ * This error occurs when a calendar End time is set to the same time or
+ * after the Start time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const END_DATE_IS_EARLIER_THAN_START_DATE = 'ErrorCalendarEndDateIsEarlierThanStartDate';
+
+ /**
+ * This error occurs when the operation failed because of communication
+ * problems with Active Directory Domain Services (AD DS).
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ERROR_AD_OPERATION = 'ErrorADOperation';
+
+ /**
+ * This error occurs when a ResolveNames operation request specifies a name
+ * that is not valid.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ERROR_AD_SESSION_FILTER = 'ErrorADSessionFilter';
+
+ /**
+ * Indicates an error in archive folder path creation.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ERROR_ARCHIVE_FOLDER_PATH_CREATION = 'ErrorArchiveFolderPathCreation';
+
+ /**
+ * This error occurs when the event that is associated with a watermark is
+ * deleted before the event is returned.
+ *
+ * When this error is returned, the subscription is also deleted.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EVENT_NOT_FOUND = 'ErrorEventNotFound';
+
+ /**
+ * This error indicates that there are more concurrent requests against the
+ * server than are allowed by a user's policy.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEEDED_CONNECTION_COUNT = 'ErrorExceededConnectionCount';
+
+ /**
+ * This error indicates that a search operation call has exceeded the total
+ * number of items that can be returned.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEEDED_FIND_COUNT = 'ErrorExceededFindCountLimit';
+
+ /**
+ * This error indicates that a user's throttling policy maximum subscription
+ * count has been exceeded.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEEDED_SUBSCRIPTION_COUNT = 'ErrorExceededSubscriptionCount';
+
+ /**
+ * This error occurs if the GetEvents Operation is called as a subscription
+ * is being deleted because it has expired.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EXPIRED_SUBSCRIPTION = 'ErrorExpiredSubscription';
+
+ /**
+ * Indicates that the extension was not found.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXTENSION_NOT_FOUND = 'ErrorExtensionNotFound';
+
+ /**
+ * This error occurs when the folder is corrupted and cannot be saved.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_CORRUPT = 'ErrorFolderCorrupt';
+
+ /**
+ * This error occurs when an attempt is made to create a folder that has the
+ * same name as another folder in the same parent.
+ *
+ * Duplicate folder names are not allowed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_EXISTS = 'ErrorFolderExists';
+
+ /**
+ * This error occurs when the specified folder for a FindItem operation with
+ * a CalendarView element is not of calendar folder type.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_INVALID_FOR_CALENDAR_VIEW = 'ErrorCalendarFolderIsInvalidForCalendarView';
+
+ /**
+ * This error indicates that the folder ID that was specified does not
+ * correspond to a valid folder, or that the delegate does not have
+ * permission to access the folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_NOT_FOUND = 'ErrorFolderNotFound';
+
+ /**
+ * This error indicates that the requested property could not be retrieved.
+ *
+ * This does not indicate that the property does not exist, but that the
+ * property was corrupted in some way so that the retrieval failed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_PROPERTY_REQUEST_FAILED = 'ErrorFolderPropertRequestFailed';
+
+ /**
+ * This error indicates that the folder could not be created or updated
+ * because of an invalid state.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_SAVE_ERROR = 'ErrorFolderSave';
+
+ /**
+ * This error indicates that the folder could not be created or updated
+ * because of an invalid state.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_SAVE_FAILED = 'ErrorFolderSaveFailed';
+
+ /**
+ * This error indicates that the folder could not be created or updated
+ * because of invalid property values.
+ *
+ * The response code lists which properties caused the problem.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_SAVE_PROPERTY_ERROR = 'ErrorFolderSavePropertyError';
+
+ /**
+ * This error indicates that the maximum group member count has been reached
+ * for obtaining free/busy information for a distribution list.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FREE_BUSY_DL_LIMIT_REACHED = 'ErrorFreeBusyDLLimitReached';
+
+ /**
+ * This error is returned when free/busy information cannot be retrieved
+ * because of an intervening failure.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FREE_BUSY_GENERATION_FAILED = 'ErrorFreeBusyGenerationFailed';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const GET_SERVER_SECURITY_DESCRIPTOR_FAILED = 'ErrorGetServerSecurityDescriptorFailed';
+
+ /**
+ * This error is returned when new instant messaging (IM) contacts cannot be
+ * added because the maximum number of contacts has been reached.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const IM_CONTACT_LIMIT_REACHED = 'ErrorImContactLimitReached';
+
+ /**
+ * This error is returned when an attempt is made to add a group display
+ * name when an existing group already has the same display name.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const IM_GROUP_DISPLAY_NAME_EXISTS = 'ErrorImGroupDisplayNameAlreadyExists';
+
+ /**
+ * This error is returned when new IM groups cannot be added because the
+ * maximum number of groups has been reached.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const IM_GROUP_LIMIT_REACHED = 'ErrorImGroupLimitReached';
+
+ /**
+ * The error is returned in the server-to-server authorization case for
+ * Exchange Impersonation when the caller does not have the proper rights to
+ * impersonate the specific user in question.
+ *
+ * This error maps to the ms-Exch-EPI-May-Impersonate extended Active
+ * Directory right.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IMPERSONATE_USER_DENIED = 'ErrorImpersonateUserDenied';
+
+ /**
+ * This error is returned in the server-to-server authorization for Exchange
+ * Impersonation when the caller does not have the proper rights to
+ * impersonate through the Client Access server that they are making the
+ * request against.
+ *
+ * This maps to the ms-Exch-EPI-Impersonation extended Active Directory
+ * right.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IMPERSONATION_DENIED = 'ErrorImpersonationDenied';
+
+ /**
+ * This error indicates that there was an unexpected error when an attempt
+ * was made to perform server-to-server authentication.
+ *
+ * This response code typically indicates either that the service account
+ * that is running the Exchange Web Services application pool is configured
+ * incorrectly, that Exchange Web Services cannot talk to the directory, or
+ * that a trust between forests is not correctly configured.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IMPERSONATION_FAILED = 'ErrorImpersonationFailed';
+
+ /**
+ * This error MUST be returned if any rule does not validate.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INBOX_RULES_VALIDATION_ERROR = 'ErrorInboxRulesValidationError';
+
+ /**
+ * This error indicates that the request was valid for the current Exchange
+ * Server version but was invalid for the request server version that was
+ * specified.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INCORRECT_SCHEMA_VERSION = 'ErrorIncorrectSchemaVersion';
+
+ /**
+ * This error indicates that each change description in the UpdateItem or
+ * UpdateFolder elements must list only one property to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INCORRECT_UPDATE_PROPERTY_COUNT = 'ErrorIncorrectUpdatePropertyCount';
+
+ /**
+ * This error occurs when the request contains too many attendees to
+ * resolve. By default, the maximum number of attendees to resolve is 100.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INDIVIDUAL_MAILBOX_LIMIT_REACHED = 'ErrorIndividualMailboxLimitReached';
+
+ /**
+ * This error occurs when the mailbox server is overloaded. Try your request
+ * again later.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INSUFFICIENT_RESOURCES = 'ErrorInsufficientResources';
+
+ /**
+ * This error indicates that Exchange Web Services encountered an error that
+ * it could not recover from, and a more specific response code that is
+ * associated with the error that occurred does not exist.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INTERNAL_SERVER_ERROR = 'ErrorInternalServerError';
+
+ /**
+ * This error indicates that an internal server error occurred and that you
+ * should try your request again later.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INTERNAL_SERVER_TRANSIENT_ERROR = 'ErrorInternalServerTransientError';
+
+ /**
+ * This error indicates that the level of access that the caller has on the
+ * free/busy data is invalid.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ACCESS_LEVEL = 'ErrorInvalidAccessLevel';
+
+ /**
+ * This error indicates that the requesting account is not a valid account
+ * in the directory database.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_AD_ACCOUNT = 'ErrorCallerIsInvalidADAccount';
+
+ /**
+ * This error indicates an error caused by all invalid arguments passed to
+ * the GetMessageTrackingReport Operation.
+ *
+ * This error is returned in the following scenarios:
+ * - The user specified in the sending-as parameter does not exist in the
+ * directory.
+ * - The user specified in the sending-as parameter is not unique in the
+ * directory.
+ * - The sending-as address is empty.
+ * - The sending-as address is not a valid e-mail address.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_ARGUMENT = 'ErrorInvalidArgument';
+
+ /**
+ * This error is returned by the GetAttachment Operation or the
+ * DeleteAttachment Operation when an attachment that corresponds to the
+ * specified ID is not found.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ATTACHMENT_ID = 'ErrorInvalidAttachmentId';
+
+ /**
+ * This error occurs when you try to bind to an existing search folder by
+ * using a complex attachment table restriction.
+ *
+ * Exchange Web Services only supports simple contains filters against the
+ * attachment table. If you try to bind to an existing search folder that
+ * has a more complex attachment table restriction (a subfilter), Exchange
+ * Web Services cannot render the XML for that filter and returns this
+ * response code.
+ *
+ * Note that you can still call the GetFolder operation on the folder, but
+ * do not request the SearchParameters property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ATTACHMENT_SUBFILTER = 'ErrorInvalidAttachmentSubfilter';
+
+ /**
+ * This error occurs when you try to bind to an existing search folder by
+ * using a complex attachment table restriction.
+ *
+ * Exchange Web Services only supports simple contains filters against the
+ * attachment table. If you try to bind to an existing search folder that
+ * has a more complex attachment table restriction, Exchange Web Services
+ * cannot render the XML for that filter. In this case, the attachment
+ * subfilter contains a text filter, but it is not looking at the attachment
+ * display name.
+ *
+ * Note that you can still call the GetFolder operation on the folder, but
+ * do not request the SearchParameters property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ATTACHMENT_SUBFILTER_TEXT = 'ErrorInvalidAttachmentSubfilterTextFilter';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ATTRIBUTE_VALUE = 'ErrorCalendarInvalidAttributeValue';
+
+ /**
+ * This error indicates that the authorization procedure for the requester
+ * failed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_AUTHORIZATION_CONTEXT = 'ErrorInvalidAuthorizationContext';
+
+ /**
+ * This error occurs when a consumer passes in a folder or item identifier
+ * with a change key that cannot be parsed.
+ *
+ * For example, this could be invalid base64 content or an empty string.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_CHANGE_KEY = 'ErrorInvalidChangeKey';
+
+ /**
+ * This error indicates that a request to get a client access token was not
+ * valid.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_CLIENT_ACCESS_TOKEN_REQUEST = 'ErrorInvalidClientAccessTokenRequest';
+
+ /**
+ * This error indicates that there was an internal error when an attempt was
+ * made to resolve the identity of the caller.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_CLIENT_SECURITY_CONTEXT = 'ErrorInvalidClientSecurityContext';
+
+ /**
+ * This error is returned when an attempt is made to set the CompleteDate
+ * element value of a task to a time in the future.
+ *
+ * When it is converted to the local time of the Client Access server, the
+ * CompleteDate of a task cannot be set to a value that is later than the
+ * local time on the Client Access server.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_COMPLETE_DATE = 'ErrorInvalidCompleteDate';
+
+ /**
+ * This error indicates that an invalid e-mail address was provided for a
+ * contact.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_CONTACT_EMAIL_ADDRESS = 'ErrorInvalidContactEmailAddress';
+
+ /**
+ * This error indicates that an invalid e-mail index value was provided for
+ * an e-mail entry.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_CONTACT_EMAIL_INDEX = 'ErrorInvalidContactEmailIndex';
+
+ /**
+ * This error occurs when the credentials that are used to proxy a request
+ * to a different directory service forest fail authentication.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_CROSS_FOREST_CREDENTIALS = 'ErrorInvalidCrossForestCredentials';
+
+ /**
+ * This error occurs during a CreateItem or UpdateItem operation when
+ * invalid values of Day, WeekendDay, and Weekday are used to define the
+ * time change pattern.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_DAY_FOR_TIME_CHANGE_PATTERN = 'ErrorCalendarInvalidDayForTimeChangePattern';
+
+ /**
+ * This error occurs during a CreateItem or UpdateItem operation when
+ * invalid values of Day, WeekDay, and WeekendDay are used to specify the
+ * weekly recurrence.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_DAY_FOR_WEEKLY_RECURRENCE = 'ErrorCalendarInvalidDayForWeeklyRecurrence';
+
+ /**
+ * This error indicates that the specified folder permissions are invalid.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const INVALID_DELEGATE_PERMISSION = 'ErrorInvalidDelegatePermission';
+
+ /**
+ * This error indicates that the specified delegate user ID is invalid.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const INVALID_DELEGATE_USER_ID = 'ErrorInvalidDelegateUserId';
+
+ /**
+ * This error occurs when the bitmask that was passed into an Excludes
+ * element restriction is unable to be parsed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_EXCLUDES_RESTRICTION = 'ErrorInvalidExcludesRestriction';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_EXPRESSION_TYPE_FOR_SUBFILTER = 'ErrorInvalidExpressionTypeForSubFilter';
+
+ /**
+ * This error occurs when the following events take place:
+ * - The caller tries to use an extended property that is not supported by
+ * Exchange Web Services.
+ * - The caller passes in an invalid combination of attribute values for an
+ * extended property. This also occurs if no attributes are passed. Only certain combinations are allowed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_EXTENDED_PROPERTY = 'ErrorInvalidExtendedProperty';
+
+ /**
+ * This error occurs when the value section of an extended property does not
+ * match the type of the property.
+ *
+ * For example, setting an extended property that has PropertyType="String"
+ * to an array of integers will result in this error. Any string
+ * representation that is not coercible into the type that is specified for
+ * the extended property will give this error.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_EXTENDED_PROPERTY_VALUE = 'ErrorInvalidExtendedPropertyValue';
+
+ /**
+ * This error indicates that the sharing invitation sender did not create
+ * the sharing invitation metadata.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_EXTERNAL_SHARING_INITIATOR = 'ErrorInvalidExternalSharingInitiator';
+
+ /**
+ * This error indicates that a sharing message is not intended for the
+ * caller.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_EXTERNAL_SHARING_SUBSCRIBER = 'ErrorInvalidExternalSharingSubscriber';
+
+ /**
+ * This error indicates that the requester's organization federation objects
+ * are not correctly configured.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_FEDERATED_ORGANIZATION_ID = 'ErrorInvalidFederatedOrganizationId';
+
+ /**
+ * This error occurs when the folder ID is corrupt.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_FOLDER_ID = 'ErrorInvalidFolderId';
+
+ /**
+ * This error indicates that the specified folder type is invalid for the
+ * current operation.
+ *
+ * For example, you cannot create a Search folder in a public folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_FOLDER_TYPE_FOR_OPERATION = 'ErrorInvalidFolderTypeForOperation';
+
+ /**
+ * This error occurs in fractional paging when the user has specified one of
+ * the following:
+ * - A numerator that is greater than the denominator.
+ * - A numerator that is less than zero.
+ * - A denominator that is less than or equal to zero.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_FRACTIONAL_PAGING_PARAMS = 'ErrorInvalidFractionalPagingParameters';
+
+ /**
+ * This error occurs when the GetUserAvailability Operation is called with a
+ * FreeBusyViewType of None.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_FREE_BUSY_VIEW_TYPE = 'ErrorInvalidFreeBusyViewType';
+
+ /**
+ * This error indicates that the DataType and ShareFolderId elements are
+ * both present in a request.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_GET_SHARING_FOLDER_REQUEST = 'ErrorInvalidGetSharingFolderRequest';
+
+ /**
+ * This error indicates that the ID and/or change key is malformed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ID = 'ErrorInvalidId';
+
+ /**
+ * This error is returned when the specified IM contact identifier does not
+ * represent a valid identifier.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_ID_CONTACT_ID = 'ErrorInvalidImContactId';
+
+ /**
+ * This error occurs when the caller specifies an Id attribute that is
+ * empty.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ID_EMPTY = 'ErrorInvalidIdEmpty';
+
+ /**
+ * This error indicates that a folder or item ID that is using the Exchange
+ * 2007 format was specified for a request with a version of Exchange 2007
+ * SP1 or later.
+ *
+ * You cannot use Exchange 2007 IDs in Exchange 2007 SP1 or later requests.
+ * You have to use the ConvertId Operation to convert them first.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const INVALID_ID_MALFORMED_LEGACY_FORMAT = 'ErrorInvalidIdMalformedEwsLegacyIdFormat';
+
+ /**
+ * This error occurs when the caller specifies an Id attribute that is too
+ * long.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ID_MONIKER_TOO_LONG = 'ErrorInvalidIdMonikerTooLong';
+
+ /**
+ * This error occurs when a contact in your mailbox is corrupt.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ID_RETURNED_BY_RESOLVE_NAMES = 'ErrorInvalidIdReturnedByResolveNames';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ID_XML = 'ErrorInvalidIdXml';
+
+ /**
+ * This error is returned when the specified IM distribution group SMTP
+ * address identifier does not represent a valid identifier.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_IM_DISTRIBUTION_GROUP_SMTP_ADDRESS = 'ErrorInvalidImDistributionGroupSmtpAddress';
+
+ /**
+ * This error is returned when the specified IM group identifier does not
+ * represent a valid identifier.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_IM_GROUP_ID = 'ErrorInvalidImGroupId';
+
+ /**
+ * This error occurs during Exchange Impersonation when a caller does not
+ * specify a UPN, an e-mail address, or a user SID.
+ *
+ * This will also occur if the caller specifies one or more of those and the
+ * values are empty.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_IMPERSONATION_HEADER_DATA = 'ErrorInvalidExchangeImpersonationHeaderData';
+
+ /**
+ * This error occurs if the offset for indexed paging is negative.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_INDEXED_PAGING_PARAMS = 'ErrorInvalidIndexedPagingParameters';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_INTERNET_HEADER_CHILD_NODES = 'ErrorInvalidInternetHeaderChildNodes';
+
+ /**
+ * This error occurs when an attempt is made to use an AcceptItem operation
+ * for an item type other than a meeting request or a calendar item, or when
+ * an attempt is made to accept a calendar item occurrence that is in the
+ * Deleted Items folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ITEM_FOR_ACCEPT_ITEM = 'ErrorInvalidItemForOperationAcceptItem';
+
+ /**
+ * Indicates that the item was invalid for an ArchiveItem operation.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_ITEM_FOR_ARCHIVE_ITEM = 'ErrorInvalidItemForOperationArchiveItem';
+
+ /**
+ * This error occurs when an attempt is made to use a CancelItem operation
+ * on an item type other than a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ITEM_FOR_CANCEL_ITEM = 'ErrorInvalidItemForOperationCancelItem';
+
+ /**
+ * This error is returned when an attempt is made to create an item
+ * attachment of an unsupported type.
+ *
+ * Supported item types for item attachments include the following objects:
+ * - ItemType
+ * - MessageType
+ * - CalendarItemType
+ * - TaskType
+ * - ContactItemType
+ *
+ * For example, if you try to create a MeetingMessage attachment, you will
+ * encounter this response code.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ITEM_FOR_CREATE_ATTACHMENT = 'ErrorInvalidItemForOperationCreateItemAttachment';
+
+ /**
+ * This error is returned from a CreateItem Operation if the request
+ * contains an unsupported item type.
+ *
+ * Supported items include the following objects:
+ * - ItemType
+ * - MessageType
+ * - CalendarItemType
+ * - TaskType
+ * - ContactItemType
+ *
+ * Certain types are created as a side effect of doing something else.
+ * MeetingMessages, for example, are created when you send a calendar item
+ * to attendees; they are not explicitly created.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ITEM_FOR_CREATE_ITEM = 'ErrorInvalidItemForOperationCreateItem';
+
+ /**
+ * This error occurs when an attempt is made to use a DeclineItem operation
+ * for an item type other than a meeting request or a calendar item, or when
+ * an attempt is made to decline a calendar item occurrence that is in the
+ * Deleted Items folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ITEM_FOR_DECLINE_ITEM = 'ErrorInvalidItemForOperationDeclineItem';
+
+ /**
+ * This error indicates that the ExpandDL Operation is valid only for
+ * private distribution lists.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ const INVALID_ITEM_FOR_EXPAND_DISTRIBUTION_LIST = 'ErrorInvalidItemForOperationExpandDL';
+
+ /**
+ * This error is returned from a RemoveItem operation if the request
+ * specifies an item that is not a meeting cancellation item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ITEM_FOR_REMOVE_ITEM = 'ErrorInvalidItemForOperationRemoveItem';
+
+ /**
+ * This error is returned from a SendItem Operation if the request specifies
+ * an item that is not a message item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ITEM_FOR_SEND_ITEM = 'ErrorInvalidItemForOperationSendItem';
+
+ /**
+ * This error occurs when an attempt is made to use TentativelyAcceptItem
+ * for an item type other than a meeting request or a calendar item, or when
+ * an attempt is made to tentatively accept a calendar item occurrence that
+ * is in the Deleted Items folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_ITEM_FOR_TENTATIVE = 'ErrorInvalidItemForOperationTentative';
+
+ /**
+ * This error is for internal use only.
+ *
+ * This error is not returned.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_LOGON_TYPE = 'ErrorInvalidLogonType';
+
+ /**
+ * This error indicates that the CreateItem Operation or the UpdateItem
+ * Operation failed while creating or updating a personal distribution list.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_MAILBOX = 'ErrorInvalidMailbox';
+
+ /**
+ * This error occurs when the structure of the managed folder is corrupted
+ * and cannot be rendered.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_MANAGED_FOLDER_PROPERTY = 'ErrorInvalidManagedFolderProperty';
+
+ /**
+ * This error occurs when the quota that is set on the managed folder is
+ * less than zero, which indicates a corrupted managed folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_MANAGED_FOLDER_QUOTE = 'ErrorInvalidManagedFolderQuota';
+
+ /**
+ * This error occurs when the size that is set on the managed folder is less
+ * than zero, which indicates a corrupted managed folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_MANAGED_FOLDER_SIZE = 'ErrorInvalidManagedFolderSize';
+
+ /**
+ * This error is returned if the ManagementRole header in the SOAP header is
+ * incorrect.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_MANAGEMENT_ROLE_HEADER = 'ErrorInvalidManagementRoleHeader';
+
+ /**
+ * This error occurs when the supplied merged free/busy internal value is
+ * invalid.
+ *
+ * The default minimum value is 5 minutes. The default maximum value is
+ * 1440 minutes.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_MERGED_FREE_BUSY_INTERVAL = 'ErrorInvalidMergedFreeBusyInterval';
+
+ /**
+ * This error occurs when the name is invalid for the ResolveNames
+ * Operation.
+ *
+ * For example, a zero length string, a single space, a comma, and a dash
+ * are all invalid names.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_NAME_FOR_NAME_RESOLUTION = 'ErrorInvalidNameForNameResolution';
+
+ /**
+ * This error indicates an error in the Network Service account on the
+ * Client Access server.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_NETWORK_SERVICE_CONTEXT = 'ErrorInvalidNetworkServiceContext';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_OOF_PARAMETER = 'ErrorInvalidOofParameter';
+
+ /**
+ * This is a general error that is used when the requested operation is
+ * invalid.
+ *
+ * For example, you cannot do the following:
+ * - Perform a “Deep” traversal by using the FindFolder Operation on a
+ * public folder.
+ * - Move or copy the public folder root.
+ * - Delete an associated item by using any mode except “Hard” delete.
+ * - Move or copy an associated item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_OPERATION = 'ErrorInvalidOperation';
+
+ /**
+ * This error indicates that a caller requested free/busy information for a
+ * user in another organization but the organizational relationship does not
+ * have free/busy enabled.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_ORG_RELATION_FOR_FREE_BUSY = 'ErrorInvalidOrganizationRelationshipForFreeBusy';
+
+ /**
+ * This error occurs when a consumer passes in a zero or a negative value
+ * for the maximum rows to be returned.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PAGING_MAX_ROWS = 'ErrorInvalidPagingMaxRows';
+
+ /**
+ * This error occurs when a consumer passes in an invalid parent folder for
+ * an operation.
+ *
+ * For example, this error is returned if you try to create a folder within
+ * a search folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PARENT_FOLDER = 'ErrorInvalidParentFolder';
+
+ /**
+ * This error is returned when an attempt is made to set a task completion
+ * percentage to an invalid value.
+ *
+ * The value must be between 0 and 100 (inclusive).
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PERCENT_COMPLETE = 'ErrorInvalidPercentCompleteValue';
+
+ /**
+ * This error indicates that the permission level is inconsistent with the
+ * permission settings.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PERMISSION_SETTINGS = 'ErrorInvalidPermissionSettings';
+
+ /**
+ * This error indicates that the caller identifier is not valid.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_PHONE_CALL_ID = 'ErrorInvalidPhoneCallId';
+
+ /**
+ * This error indicates that the telephone number is not correct or does not
+ * fit the dial plan rules.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_PHONE_NUMBER = 'ErrorInvalidPhoneNumber';
+
+ /**
+ * This error is returned if an invalid photo size is requested from the
+ * server.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INVALID_PHOTO_SIZE = 'ErrorInvalidPhotoSize';
+
+ /**
+ * This error occurs when the property that you are trying to append to does
+ * not support appending.
+ *
+ * The following are the only properties that support appending:
+ * - Recipient collections (ToRecipients, CcRecipients, BccRecipients)
+ * - Attendee collections (RequiredAttendees, OptionalAttendees, Resources)
+ * - Body
+ * - ReplyTo
+ *
+ * In addition, this error occurs when a message body is appended if the
+ * format specified in the request does not match the format of the item in
+ * the store.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PROPERTY_APPEND = 'ErrorInvalidPropertyAppend';
+
+ /**
+ * This error occurs if the delete operation is specified in an UpdateItem
+ * Operation or UpdateFolder Operation call for a property that does not
+ * support the delete operation.
+ *
+ * For example, you cannot delete the ItemId property of the ItemType
+ * object.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PROPERTY_DELETE = 'ErrorInvalidPropertyDelete';
+
+ /**
+ * This error occurs if the consumer passes in one of the flag properties in
+ * an Exists filter.
+ *
+ * For example, this error occurs if the IsRead or IsFromMe flags are
+ * specified in the Exists element. The request should use the IsEqualTo
+ * element instead for these as they are flags and therefore part of a
+ * single property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PROPERTY_FOR_EXISTS = 'ErrorInvalidPropertyForExists';
+
+ /**
+ * This error occurs when the property that you are trying to manipulate
+ * does not support the operation that is being performed on it.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PROPERTY_FOR_OPERATION = 'ErrorInvalidPropertyForOperation';
+
+ /**
+ * This error occurs if a property that is specified in the request is not
+ * available for the item type.
+ *
+ * For example, this error is returned if a property that is only available
+ * on calendar items is requested in a GetItem Operation call for a message
+ * or is updated in an UpdateItem Operation call for a message.
+ *
+ * This occurs in the following operations:
+ * - GetItem Operation
+ * - GetFolder Operation
+ * - UpdateItem Operation
+ * - UpdateFolder Operation
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PROPERTY_REQUEST = 'ErrorInvalidPropertyRequest';
+
+ /**
+ * This error indicates that the property that you are trying to manipulate
+ * does not support the operation that is being performed on it.
+ *
+ * For example, this error is returned if the property that you are trying
+ * to set is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PROPERTY_SET = 'ErrorInvalidPropertySet';
+
+ /**
+ * This error occurs when the state of a calendar item recurrence binary
+ * large object (BLOB) in the Exchange store is invalid.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PROPERTY_STATE = 'ErrorCalendarInvalidPropertyState';
+
+ /**
+ * This error occurs during an UpdateItem Operation when a client tries to
+ * update certain properties of a message that has already been sent.
+ *
+ * For example, the following properties cannot be updated on a sent
+ * message:
+ * - IsReadReceiptRequested
+ * - IsDeliveryReceiptRequested
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PROPERTY_UPDATE_SENT_MESSAGE = 'ErrorInvalidPropertyUpdateSentMessage';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PROPERTY_VALUE = 'ErrorCalendarInvalidPropertyValue';
+
+ /**
+ * This response code is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PROXY_SECURITY_CONTEXT = 'ErrorInvalidProxySecurityContext';
+
+ /**
+ * This error occurs if you call the GetEvents Operation or the Unsubscribe
+ * Operation by using a push subscription ID.
+ *
+ * To unsubscribe from a push subscription, you must respond to a push
+ * request with an unsubscribe response, or disconnect your Web service and
+ * wait for the push notifications to time out.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const INVALID_PULL_SUBSCRIPTION_ID = 'ErrorInvalidPullSubscriptionId';
+
+ /**
+ * This error is returned by the Subscribe Operation when it creates a
+ * "push" subscription and indicates that the URL that is included in the
+ * request is invalid.
+ *
+ * The following conditions must be met for Exchange Web Services to accept
+ * the URL:
+ * - String length > 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 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ResponseTypeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Identifies the type of a response that is received.
+ *
+ * @package php-ews\Enumeration
+ */
+class ResponseTypeType extends Enumeration
+{
+ /**
+ * Response type indicating that a request has been accepted.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ACCEPT = 'Accept';
+
+ /**
+ * Response type indicating that a request has been declined.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DECLINE = 'Decline';
+
+ /**
+ * Response type indicating that no response has been received.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NONE = 'NoResponseReceived';
+
+ /**
+ * Response type indicating that the attendee is the organizer.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ORGANIZER = 'Organizer';
+
+ /**
+ * Response type indicating that a request has been tentatively accepted.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TENTATIVE = 'Tentative';
+
+ /**
+ * Response type indicating that the response is unknown.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNKNOWN = 'Unknown';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RetentionActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RetentionActionType.php
new file mode 100644
index 00000000..285ad7bc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RetentionActionType.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\RetentionActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the action performed on items with the retention tag.
+ *
+ * @package php-ews\Enumeration
+ */
+class RetentionActionType extends Enumeration
+{
+ /**
+ * The item is deleted and put into the Dumpster.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DELETE_AND_ALLOW_RECOVERY = 'DeleteAndAllowRecovery';
+
+ /**
+ * The item is marked as having exceeded the retention time limit.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MARK_AS_PAST_RETENTION_LIMIT = 'MarkAsPastRetentionLimit';
+
+ /**
+ * The item is moved to the archive mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MOVE_TO_ARCHIVE = 'MoveToArchive';
+
+ /**
+ * The item is moved to the default Deleted Items folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MOVE_TO_DELETED_ITEMS = 'MoveToDeletedItems';
+
+ /**
+ * The item is moved to a specified folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MOVE_TO_FOLDER = 'MoveToFolder';
+
+ /**
+ * No action is performed on the item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const NONE = 'None';
+
+ /**
+ * The item is permanently deleted from the mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERMANENTLY_DELETE = 'PermanentlyDelete';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RoutingType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RoutingType.php
new file mode 100644
index 00000000..ad094bb4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RoutingType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\RoutingType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the routing protocol for a recipient.
+ *
+ * @package php-ews\Enumeration
+ */
+class RoutingType extends Enumeration
+{
+ /**
+ * Route the email using the SMTP protocol.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SMTP = 'SMTP';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RuleFieldURIType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RuleFieldURIType.php
new file mode 100644
index 00000000..344a3a3b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RuleFieldURIType.php
@@ -0,0 +1,826 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\RuleFieldURIType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the URI to the rule field that caused a validation error.
+ *
+ * @package php-ews\Enumeration
+ */
+class RuleFieldURIType extends Enumeration
+{
+ /**
+ * Specifies the Action:AssignCategories field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_ASSIGN_CATEGORIES = 'Action:AssignCategories';
+
+ /**
+ * Specifies the Action:CopyToFolder field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_COPY_TO_FOLDER = 'Action:CopyToFolder';
+
+ /**
+ * Specifies the Action:Delete field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_DELETE = 'Action:Delete';
+
+ /**
+ * Specifies the Action:ForwardAsAttachmentToRecipients field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_FORWARD_AS_ATTACHMENT_TO_RECIPIENTS = 'Action:ForwardAsAttachmentToRecipients';
+
+ /**
+ * Specifies the Action:ForwardToRecipients field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_FORWARD_TO_RECIPIENTS = 'Action:ForwardToRecipients';
+
+ /**
+ * Specifies the Action:MarkAsRead field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_MARK_AS_READ = 'Action:MarkAsRead';
+
+ /**
+ * Specifies the Action:MarkImportance field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_MARK_IMPORTANCE = 'Action:MarkImportance';
+
+ /**
+ * Specifies the Action:MoveToFolder field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_MOVE_TO_FOLDER = 'Action:MoveToFolder';
+
+ /**
+ * Specifies the Action:PermanentDelete field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_PERMANENT_DELETE = 'Action:PermanentDelete';
+
+ /**
+ * Specifies the Action:RedirectToRecipients field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_REDIRECT_TO_RECIPIENTS = 'Action:RedirectToRecipients';
+
+ /**
+ * Specifies the Action:SendSMSAlertToRecipients field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_SEND_SMS_ALERT_TO_RECIPIENTS = 'Action:SendSMSAlertToRecipients';
+
+ /**
+ * Specifies the Action:ServerReplyWithMessage field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_SERVER_REPLY_WITH_MESSAGE = 'Action:ServerReplyWithMessage';
+
+ /**
+ * Specifies the Action:StopProcessingRules field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTION_STOP_PROCESSING_RULES = 'Action:StopProcessingRules';
+
+ /**
+ * Specifies the Actions field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ACTIONS = 'Actions';
+
+ /**
+ * Specifies the Condition:Categories field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_CATEGORIES = 'Condition:Categories';
+
+ /**
+ * Specifies the Condition:ContainsBodyStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_CONTAINS_BODY_STRINGS = 'Condition:ContainsBodyStrings';
+
+ /**
+ * Specifies the Condition:ContainsHeaderStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_CONTAINS_HEADER_STRINGS = 'Condition:ContainsHeaderStrings';
+
+ /**
+ * Specifies the Condition:ContainsRecipientStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_CONTAINS_RECIPIENT_STRINGS = 'Condition:ContainsRecipientStrings';
+
+ /**
+ * Specifies the Condition:ContainsSenderStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_CONTAINS_SENDER_STRINGS = 'Condition:ContainsSenderStrings';
+
+ /**
+ * Specifies the Condition:ContainsSubjectOrBodyStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_CONTAINS_SUBJECT_OR_BODY_STRINGS = 'Condition:ContainsSubjectOrBodyStrings';
+
+ /**
+ * Specifies the Condition:ContainsSubjectStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_CONTAINS_SUBJECT_STRINGS = 'Condition:ContainsSubjectStrings';
+
+ /**
+ * Specifies the Condition:FlaggedForAction field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_FLAGGED_FOR_ACTION = 'Condition:FlaggedForAction';
+
+ /**
+ * Specifies the Condition:FromAddresses field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_FROM_ADDRESSES = 'Condition:FromAddresses';
+
+ /**
+ * Specifies the Condition:FromConnectedAccounts field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_FROM_CONNECTED_ACCOUNTS = 'Condition:FromConnectedAccounts';
+
+ /**
+ * Specifies the Condition:HasAttachments field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_HAS_ATTACHMENTS = 'Condition:HasAttachments';
+
+ /**
+ * Specifies the Condition:Importance field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IMPORTANCE = 'Condition:Importance';
+
+ /**
+ * Specifies the Condition:IsApprovalRequest field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_APPROVAL_REQUEST = 'Condition:IsApprovalRequest';
+
+ /**
+ * Specifies the Condition:IsAutomaticForward field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_AUTOMATIC_FORWARD = 'Condition:IsAutomaticForward';
+
+ /**
+ * Specifies the Condition:IsAutomaticReply field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_AUTOMATIC_REPLY = 'Condition:IsAutomaticReply';
+
+ /**
+ * Specifies the Condition:IsEncrypted field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_ENCRYPTED = 'Condition:IsEncrypted';
+
+ /**
+ * Specifies the Condition:IsMeetingRequest field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_MEETING_REQUEST = 'Condition:IsMeetingRequest';
+
+ /**
+ * Specifies the Condition:IsMeetingResponse field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_MEETING_RESPONSE = 'Condition:IsMeetingResponse';
+
+ /**
+ * Specifies the Condition:IsNDR field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_NDR = 'Condition:IsNDR';
+
+ /**
+ * Specifies the Condition:IsPermissionControlled field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_PERMISSION_CONTROLLED = 'Condition:IsPermissionControlled';
+
+ /**
+ * Specifies the Condition:IsReadReceipt field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_READ_RECEIPT = 'Condition:IsReadReceipt';
+
+ /**
+ * Specifies the Condition:IsSigned field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_SIGNED = 'Condition:IsSigned';
+
+ /**
+ * Specifies the Condition:IsVoicemail field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_IS_VOICEMAIL = 'Condition:IsVoicemail';
+
+ /**
+ * Specifies the Condition:ItemClasses field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_ITEM_CLASSES = 'Condition:ItemClasses';
+
+ /**
+ * Specifies the Condition:MessageClassifications field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_MESSAGE_CLASSIFICATIONS = 'Condition:MessageClassifications';
+
+ /**
+ * Specifies the Condition:NotSentToMe field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_NOT_SENT_TO_ME = 'Condition:NotSentToMe';
+
+ /**
+ * Specifies the Condition:Sensitivity field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_SENSITIVITY = 'Condition:Sensitivity';
+
+ /**
+ * Specifies the Condition:SentCcMe field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_SENT_CC_ME = 'Condition:SentCcMe';
+
+ /**
+ * Specifies the Condition:SentOnlyToMe field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_SENT_ONLY_TO_ME = 'Condition:SentOnlyToMe';
+
+ /**
+ * Specifies the Condition:SentToAddresses field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_SENT_TO_ADDRESSES = 'Condition:SentToAddresses';
+
+ /**
+ * Specifies the Condition:SentToMe field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_SENT_TO_ME = 'Condition:SentToMe';
+
+ /**
+ * Specifies the Condition:SentToOrCcMe field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_SENT_TO_OR_CC_ME = 'Condition:SentToOrCcMe';
+
+ /**
+ * Specifies the Condition:WithinDateRange field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_WITHIN_DATE_RANGE = 'Condition:WithinDateRange';
+
+ /**
+ * Specifies the Condition:WithinSizeRange field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITION_WITHIN_SIZE_RANGE = 'Condition:WithinSizeRange';
+
+ /**
+ * Specifies the Conditions field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONDITIONS = 'Conditions';
+
+ /**
+ * Specifies the DisplayName field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DISPLAY_NAME = 'DisplayName';
+
+ /**
+ * Specifies the Exception:Categories field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_CATEGORIES = 'Exception:Categories';
+
+ /**
+ * Specifies the Exception:ContainsBodyStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_CONTAINS_BODY_STRINGS = 'Exception:ContainsBodyStrings';
+
+ /**
+ * Specifies the Exception:ContainsHeaderStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_CONTAINS_HEADER_STRINGS = 'Exception:ContainsHeaderStrings';
+
+ /**
+ * Specifies the Exception:ContainsRecipientStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_CONTAINS_RECIPIENT_STRINGS = 'Exception:ContainsRecipientStrings';
+
+ /**
+ * Specifies the Exception:ContainsSenderStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_CONTAINS_SENDER_STRINGS = 'Exception:ContainsSenderStrings';
+
+ /**
+ * Specifies the Exception:ContainsSubjectOrBodyStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_CONTAINS_SUBJECT_OR_BODY_STRINGS = 'Exception:ContainsSubjectOrBodyStrings';
+
+ /**
+ * Specifies the Exception:ContainsSubjectStrings field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_CONTAINS_SUBJECT_STRINGS = 'Exception:ContainsSubjectStrings';
+
+ /**
+ * Specifies the Exception:FlaggedForAction field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_FLAGGED_FOR_ACTION = 'Exception:FlaggedForAction';
+
+ /**
+ * Specifies the Exception:FromAddresses field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_FROM_ADDRESSES = 'Exception:FromAddresses';
+
+ /**
+ * Specifies the Exception:FromConnectedAccounts field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_FROM_CONNECTED_ACCOUNTS = 'Exception:FromConnectedAccounts';
+
+ /**
+ * Specifies the Exception:HasAttachments field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_HAS_ATTACHMENTS = 'Exception:HasAttachments';
+
+ /**
+ * Specifies the Exception:Importance field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IMPORTANCE = 'Exception:Importance';
+
+ /**
+ * Specifies the Exception:IsApprovalRequest field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_APPROVAL_REQUEST = 'Exception:IsApprovalRequest';
+
+ /**
+ * Specifies the Exception:IsAutomaticForward field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_AUTOMATIC_FORWARD = 'Exception:IsAutomaticForward';
+
+ /**
+ * Specifies the Exception:IsAutomaticReply field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_AUTOMATIC_REPLY = 'Exception:IsAutomaticReply';
+
+ /**
+ * Specifies the Exception:IsEncrypted field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_ENCRYPTED = 'Exception:IsEncrypted';
+
+ /**
+ * Specifies the Exception:IsMeetingRequest field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_MEETING_REQUEST = 'Exception:IsMeetingRequest';
+
+ /**
+ * Specifies the Exception:IsMeetingResponse field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_MEETING_RESPONSE = 'Exception:IsMeetingResponse';
+
+ /**
+ * Specifies the Exception:IsNDR field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_NDR = 'Exception:IsNDR';
+
+ /**
+ * Specifies the Exception:IsPermissionControlled field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_PERMISSION_CONTROLLED = 'Exception:IsPermissionControlled';
+
+ /**
+ * Specifies the Exception:IsReadReceipt field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_READ_RECEIPT = 'Exception:IsReadReceipt';
+
+ /**
+ * Specifies the Exception:IsSigned field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_SIGNED = 'Exception:IsSigned';
+
+ /**
+ * Specifies the Exception:IsVoicemail field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_IS_VOICEMAIL = 'Exception:IsVoicemail';
+
+ /**
+ * Specifies the Exception:ItemClasses field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_ITEM_CLASSES = 'Exception:ItemClasses';
+
+ /**
+ * Specifies the Exception:MessageClassifications field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_MESSAGE_CLASSIFICATIONS = 'Exception:MessageClassifications';
+
+ /**
+ * Specifies the Exception:NotSentToMe field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_NOT_SENT_TO_ME = 'Exception:NotSentToMe';
+
+ /**
+ * Specifies the Exception:Sensitivity field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_SENSITIVITY = 'Exception:Sensitivity';
+
+ /**
+ * Specifies the Exception:SentCcMe field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_SENT_CC_ME = 'Exception:SentCcMe';
+
+ /**
+ * Specifies the Exception:SentOnlyToMe field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_SENT_ONLY_TO_ME = 'Exception:SentOnlyToMe';
+
+ /**
+ * Specifies the Exception:SentToAddresses field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_SENT_TO_ADDRESSES = 'Exception:SentToAddresses';
+
+ /**
+ * Specifies the Exception:SentToMe field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_SENT_TO_ME = 'Exception:SentToMe';
+
+ /**
+ * Specifies the Exception:SentToOrCcMe field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_SENT_TO_OR_CC_ME = 'Exception:SentToOrCcMe';
+
+ /**
+ * Specifies the Exception:WithinDateRange field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_WITHIN_DATE_RANGE = 'Exception:WithinDateRange';
+
+ /**
+ * Specifies the Exception:WithinSizeRange field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTION_WITHIN_SIZE_RANGE = 'Exception:WithinSizeRange';
+
+ /**
+ * Specifies the Exceptions field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EXCEPTIONS = 'Exceptions';
+
+ /**
+ * Specifies the IsEnabled field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const IS_ENABLED = 'IsEnabled';
+
+ /**
+ * Specifies the IsInError field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const IS_IN_ERROR = 'IsInError';
+
+ /**
+ * Specifies the IsNotSupported field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const IS_NOT_SUPPORTED = 'IsNotSupported';
+
+ /**
+ * Specifies the Priority field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const PRIORITY = 'Priority';
+
+ /**
+ * Specifies the RuleId field.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RULE_ID = 'RuleId';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RuleValidationErrorCodeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RuleValidationErrorCodeType.php
new file mode 100644
index 00000000..3b602884
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/RuleValidationErrorCodeType.php
@@ -0,0 +1,233 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\RuleValidationErrorCodeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents a rule validation error code that describes what failed validation
+ * for each rule predicate or action.
+ *
+ * @package php-ews\Enumeration
+ */
+class RuleValidationErrorCodeType extends Enumeration
+{
+ /**
+ * Indicates an Active Directory operation failure.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const AD_OPERATION_FAILURE = 'ADOperationFailure';
+
+ /**
+ * Indicates a connected account could not be found.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONNECTED_ACCOUNT_NOT_FOUND = 'ConnectedAccountNotFound';
+
+ /**
+ * Indicates an error creating a rule with an id.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CREATE_WITH_RULE_ID = 'CreateWithRuleId';
+
+ /**
+ * Indicates an error duplicating an operation on the same rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DUPLICATED_OPERATION_ON_THE_SAME_RULE = 'DuplicatedOperationOnTheSameRule';
+
+ /**
+ * Indicates an error with a duplicated priority.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DUPLICATED_PRIORITY = 'DuplicatedPriority';
+
+ /**
+ * Indicates an empty value.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const EMPTY_VALUE_FOUND = 'EmptyValueFound';
+
+ /**
+ * Indicates that a folder does not exist.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FOLDER_DOES_NOT_EXIST = 'FolderDoesNotExist';
+
+ /**
+ * Indicates an invalid address.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_ADDRESS = 'InvalidAddress';
+
+ /**
+ * Indicates an invalid date range
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_DATE_RANGE = 'InvalidDateRange';
+
+ /**
+ * Indicates an invalid folder id.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_FOLDER_ID = 'InvalidFolderId';
+
+ /**
+ * Indicates an invalid size range
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_SIZE_RANGE = 'InvalidSizeRange';
+
+ /**
+ * Indicates an invalid value.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INVALID_VALUE = 'InvalidValue';
+
+ /**
+ * Indicates that a message classification could not be found.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MESSAGE_CLASSIFICATION_NOT_FOUND = 'MessageClassificationNotFound';
+
+ /**
+ * Indicates an action is missing.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MISSING_ACTION = 'MissingAction';
+
+ /**
+ * Indicates a missing parameter.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MISSING_PARAMETER = 'MissingParameter';
+
+ /**
+ * Indicates an error MissingRangeValue.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MISSING_RANGE_VALUE = 'MissingRangeValue';
+
+ /**
+ * Indicates a field is not settable.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NOT_SETTABLE = 'NotSettable';
+
+ /**
+ * Indicates that a recipient does not exist.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RECIPIENT_DOES_NOT_EXIST = 'RecipientDoesNotExist';
+
+ /**
+ * Indicates that a rule could not be found.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const RULE_NOT_FOUND = 'RuleNotFound';
+
+ /**
+ * Indicates that a size less than zero was specified.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SIZE_LESS_THAN_ZERO = 'SizeLessThanZero';
+
+ /**
+ * Indicates that a strings value is too large.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const STRING_VALUE_TOO_BIG = 'StringValueTooBig';
+
+ /**
+ * Indicates an unknown error.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNEXPECTED_ERROR = 'UnexpectedError';
+
+ /**
+ * Indicates an unsupported address.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNSUPPORTED_ADDRESS = 'UnsupportedAddress';
+
+ /**
+ * Indicates an unsupported rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNSUPPORTED_RULE = 'UnsupportedRule';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/Scope.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/Scope.php
new file mode 100644
index 00000000..bdd082cf
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/Scope.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\Scope.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the scope of a message tracking report.
+ *
+ * @package php-ews\Enumeration
+ */
+class Scope extends Enumeration
+{
+ /**
+ * The message tracking scopes spans across a forest.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FOREST = 'Forest';
+
+ /**
+ * The message tracking scopes spans across an organization.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ORGANIZATION = 'Organization';
+
+ /**
+ * The message tracking scopes spans across a site.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const SITE = 'Site';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchFolderTraversalType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchFolderTraversalType.php
new file mode 100644
index 00000000..89a6fdbb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchFolderTraversalType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\SearchFolderTraversalType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of traversal to use for a folder.
+ *
+ * @package php-ews\Enumeration
+ */
+class SearchFolderTraversalType extends Enumeration
+{
+ /**
+ * Consider both direct children as well as all children contained within
+ * those children as well as the children's children, etc.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DEEP = 'Deep';
+
+ /**
+ * Consider only direct children of the parent in question.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const SHALLOW = 'Shallow';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchItemKindType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchItemKindType.php
new file mode 100644
index 00000000..776abce9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchItemKindType.php
@@ -0,0 +1,124 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\SearchItemKindType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of item to search for.
+ *
+ * @package php-ews\Enumeration
+ */
+class SearchItemKindType extends Enumeration
+{
+ /**
+ * Indicates that contacts are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONTACT = 'Contacts';
+
+ /**
+ * Indicates that documents are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const DOCUMENT = 'Docs';
+
+ /**
+ * Indicates that email messages are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const EMAIL = 'Email';
+
+ /**
+ * Indicates that faxes are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const FAX = 'Faxes';
+
+ /**
+ * Indicates that instant messages are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const INSTANT_MESSAGE = 'Im';
+
+ /**
+ * Indicates that journals are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const JOURNAL = 'Journals';
+
+ /**
+ * Indicates that meetings are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MEETING = 'Meetings';
+
+ /**
+ * Indicates that notes are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const NOTE = 'Notes';
+
+ /**
+ * Indicates that posts are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const POST = 'Posts';
+
+ /**
+ * Indicates that RSS feeds are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const RSS_FEEDS = 'Rssfeeds';
+
+ /**
+ * Indicates that tasks are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TASK = 'Tasks';
+
+ /**
+ * Indicates that voice mails are searched for keywords.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const VOICEMAIL = 'Voicemail';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchPageDirectionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchPageDirectionType.php
new file mode 100644
index 00000000..d5477665
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchPageDirectionType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\SearchPageDirectionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the direction for pagination in a search result.
+ *
+ * @package php-ews\Enumeration
+ */
+class SearchPageDirectionType extends Enumeration
+{
+ /**
+ * Move to the next page in the result set.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const NEXT = 'Next';
+
+ /**
+ * Move to the previous page in the result set.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PREVIOUS = 'Previous';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchResultType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchResultType.php
new file mode 100644
index 00000000..aefaeab1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SearchResultType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\SearchResultType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of search to perform.
+ *
+ * @package php-ews\Enumeration
+ */
+class SearchResultType extends Enumeration
+{
+ /**
+ * Return item preview information.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PREVIEW_ONLY = 'PreviewOnly';
+
+ /**
+ * Return the search statistics.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const STATISTICS_ONLY = 'StatisticsOnly';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SensitivityChoicesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SensitivityChoicesType.php
new file mode 100644
index 00000000..86002c85
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SensitivityChoicesType.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\SensitivityChoicesType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Indicates the sensitivity level of an item.
+ *
+ * @package php-ews\Enumeration
+ */
+class SensitivityChoicesType extends Enumeration
+{
+ /**
+ * Indicates that the item is confidential.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONFIDENTIAL = 'Confidential';
+
+ /**
+ * Indicates that the item has a normal sensitivity.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NORMAL = 'Normal';
+
+ /**
+ * Indicates that the item is personal.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PERSONAL = 'Personal';
+
+ /**
+ * Indicates that the item is private.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const PRIVATE_ITEM = 'Private';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ServiceConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ServiceConfigurationType.php
new file mode 100644
index 00000000..a87fc2c9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ServiceConfigurationType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ServiceConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Specifies the requested service configurations by name.
+ *
+ * @package php-ews\Enumeration
+ */
+class ServiceConfigurationType extends Enumeration
+{
+ /**
+ * Identifies the MailTips service configuration.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const MAIL_TIPS = 'MailTips';
+
+ /**
+ * Identifies the Protection Rules service configuration.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const PROTECTION_RULES = 'ProtectionRules';
+
+ /**
+ * Identifies the Unified Messaging service configuration.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNIFIED_MESSAGING_CONFIG = 'UnifiedMessagingConfiguration';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SharingDataType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SharingDataType.php
new file mode 100644
index 00000000..c8832e6f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SharingDataType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\SharingDataType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Describes the type of data that is shared by a shared folder.
+ *
+ * @package php-ews\Enumeration
+ */
+class SharingDataType extends Enumeration
+{
+ /**
+ * Indicates that the shared folder contains calendar information.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CALENDAR = 'Calendar';
+
+ /**
+ * Indicates that the shared folder contains contact information.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONTACTS = 'Contacts';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SortDirectionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SortDirectionType.php
new file mode 100644
index 00000000..6591eb74
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SortDirectionType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\SortDirectionType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Identifies a sort order direction.
+ *
+ * @package php-ews\Enumeration
+ */
+class SortDirectionType extends Enumeration
+{
+ /**
+ * Items are sorted in ascending order.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ASCENDING = 'Ascending';
+
+ /**
+ * Items are sorted in descending order.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DESCENDING = 'Descending';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/StandardGroupByType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/StandardGroupByType.php
new file mode 100644
index 00000000..01b6d2b6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/StandardGroupByType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\StandardGroupByType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the standard grouping and aggregating mechanisms for a grouped
+ * FindItem operation.
+ *
+ * @package php-ews\Enumeration
+ */
+class StandardGroupByType extends Enumeration
+{
+ /**
+ * Groups by message:ConversationTopic and aggregates on
+ * item:DateTimeReceived (maximum).
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONVERSATION_TOPIC = 'ConversationTopic';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SubscriptionStatusType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SubscriptionStatusType.php
new file mode 100644
index 00000000..2652df6d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SubscriptionStatusType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\SubscriptionStatusType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Describes the status of a push subscription.
+ *
+ * @package php-ews\Enumeration
+ */
+class SubscriptionStatusType extends Enumeration
+{
+ /**
+ * Indicates that the notification has been received and the subscription is
+ * to continue.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OK = 'OK';
+
+ /**
+ * Indicates that push notifications from the subscription should be ceased.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const UNSUBSCRIBE = 'Unsubscribe';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SuggestionQuality.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SuggestionQuality.php
new file mode 100644
index 00000000..baff097e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SuggestionQuality.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\SuggestionQuality.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the quality of the day for containing quality suggested meeting
+ * times.
+ *
+ * @package php-ews\Enumeration
+ */
+class SuggestionQuality extends Enumeration
+{
+ /**
+ * Indicates that the suggested meeting time is excellent.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const EXCELLENT = 'Excellent';
+
+ /**
+ * Indicates that the suggested meeting time is fair.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FAIR = 'Fair';
+
+ /**
+ * Indicates that the suggested meeting time is good.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const GOOD = 'Good';
+
+ /**
+ * Indicates that the suggested meeting time is poor.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const POOR = 'Poor';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SyncFolderItemsScopeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SyncFolderItemsScopeType.php
new file mode 100644
index 00000000..0ae1f96b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/SyncFolderItemsScopeType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\SyncFolderItemsScopeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines whether just items or items and folder associated information are
+ * returned in a synchronization response.
+ *
+ * @package php-ews\Enumeration
+ */
+class SyncFolderItemsScopeType extends Enumeration
+{
+ /**
+ * Specifies that only items in the folder are returned in a synchronization
+ * response.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NORMAL = 'NormalItems';
+
+ /**
+ * Specifies that both items in the folder and folder associated information
+ * are returned in a synchronization response.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const NORMAL_AND_ASSOCIATED = 'NormalAndAssociatedItems';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TaskDelegateStateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TaskDelegateStateType.php
new file mode 100644
index 00000000..c31325b5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TaskDelegateStateType.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\TaskDelegateStateType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the status of a delegated task.
+ *
+ * @package php-ews\Enumeration
+ */
+class TaskDelegateStateType extends Enumeration
+{
+ /**
+ * Indicates that the delegate has accepted the task.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ACCEPTED = 'Accepted';
+
+ /**
+ * Indicates that the delegate has declined the task.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DECLINED = 'Declined';
+
+ /**
+ * Indicates that the task request is out of bounds.
+ *
+ * This is an internal Outlook value and should not be used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MAX = 'Max';
+
+ /**
+ * Indicates that the task is not delegated or the task request has been
+ * created but not sent.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NO_MATCH = 'NoMatch';
+
+ /**
+ * Indicates that the task is a new task request that has been sent, but the
+ * delegate has not yet responded.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OWN_NEW = 'OwnNew';
+
+ /**
+ * Indicates that the task is owned.
+ *
+ * This value should not be used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const OWNED = 'Owned';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TaskStatusType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TaskStatusType.php
new file mode 100644
index 00000000..5194e998
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TaskStatusType.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\TaskStatusType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Represents the status of a task item.
+ *
+ * @package php-ews\Enumeration
+ */
+class TaskStatusType extends Enumeration
+{
+ /**
+ * Indicates that the task has been completed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const COMPLETED = 'Completed';
+
+ /**
+ * Indicates that the task has been deferred.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const DEFERRED = 'Deferred';
+
+ /**
+ * Indicates that the task has been started.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const IN_PROGRESS = 'InProgress';
+
+ /**
+ * Indicates that the task has not yet been started.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const NOT_STARTED = 'NotStarted';
+
+ /**
+ * Indicates that the task is waiting on others.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const WAITING_ON_OTHERS = 'WaitingOnOthers';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TransitionTargetKindType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TransitionTargetKindType.php
new file mode 100644
index 00000000..2cf0ddbb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/TransitionTargetKindType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\TransitionTargetKindType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the kind of a transition.
+ *
+ * @package php-ews\Enumeration
+ */
+class TransitionTargetKindType extends Enumeration
+{
+ /**
+ * Specifies that the time zone transition target is a group of time zone
+ * transitions.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const GROUP = 'Group';
+
+ /**
+ * Specifies that the time zone transition target is a time zone period.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const PERIOD = 'Period';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UnindexedFieldURIType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UnindexedFieldURIType.php
new file mode 100644
index 00000000..182261b8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UnindexedFieldURIType.php
@@ -0,0 +1,2941 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\UnindexedFieldURIType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines frequently referenced properties by URI.
+ *
+ * @package php-ews\Enumeration
+ */
+class UnindexedFieldURIType extends Enumeration
+{
+ /**
+ * Identifies the AdjacentMeetingCount property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_ADJACENT_MEETING_COUNT = 'calendar:AdjacentMeetingCount';
+
+ /**
+ * Identifies the AdjacentMeetings property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_ADJACENT_MEETINGS = 'calendar:AdjacentMeetings';
+
+ /**
+ * Identifies the AllowNewTimeProposal property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_ALLOW_NEW_TIME_PROPOSAL = 'calendar:AllowNewTimeProposal';
+
+ /**
+ * Identifies the AppointmentReplyTime property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_APPOINTMENT_REPLY_TIME = 'calendar:AppointmentReplyTime';
+
+ /**
+ * Identifies the AppointmentSequenceNumber property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_APPOINTMENT_SEQUENCE_NUMBER = 'calendar:AppointmentSequenceNumber';
+
+ /**
+ * Identifies the AppointmentState property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_APPOINTMENT_STATE = 'calendar:AppointmentState';
+
+ /**
+ * Identifies the ConferenceType property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_CONFERENCE_TYPE = 'calendar:ConferenceType';
+
+ /**
+ * Identifies the ConflictingMeetingCount property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_CONFLICTING_MEETING_COUNT = 'calendar:ConflictingMeetingCount';
+
+ /**
+ * Identifies the ConflictingMeetings property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_CONFLICTING_MEETINGS = 'calendar:ConflictingMeetings';
+
+ /**
+ * Identifies the DateTimeStamp property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CALENDAR_DATE_TIME_STAMP = 'calendar:DateTimeStamp';
+
+ /**
+ * Identifies the DeletedOccurrences property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_DELETED_OCCURRENCES = 'calendar:DeletedOccurrences';
+
+ /**
+ * Identifies the Duration property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_DURATION = 'calendar:Duration';
+
+ /**
+ * Identifies the End property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_END = 'calendar:End';
+
+ /**
+ * Identifies the EndTimeZone property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CALENDAR_END_TIMEZONE = 'calendar:EndTimeZone';
+
+ /**
+ * Identifies the EndTimeZoneId property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CALENDAR_END_TIME_ZONE_ID = 'calendar:EndTimeZoneId';
+
+ /**
+ * Identifies the EndWallClock property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CALENDAR_END_WALL_CLOCK = 'calendar:EndWallClock';
+
+ /**
+ * Identifies the FirstOccurrence property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_FIRST_OCCURRENCE = 'calendar:FirstOccurrence';
+
+ /**
+ * Identifies the IsAllDayEvent property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_IS_ALL_DAY_EVENT = 'calendar:IsAllDayEvent';
+
+ /**
+ * Identifies the IsCancelled property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_IS_CANCELLED = 'calendar:IsCancelled';
+
+ /**
+ * Identifies the IsMeeting property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_IS_MEETING = 'calendar:IsMeeting';
+
+ /**
+ * Identifies the IsOnlineMeeting property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_IS_ONLINE_MEETING = 'calendar:IsOnlineMeeting';
+
+ /**
+ * Identifies the IsOrganizer property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CALENDAR_IS_ORGANIZER = 'calendar:IsOrganizer';
+
+ /**
+ * Identifies the IsRecurring property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_IS_RECURRING = 'calendar:IsRecurring';
+
+ /**
+ * Identifies the IsResponseRequested property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_IS_RESPONSE_REQUESTED = 'calendar:IsResponseRequested';
+
+ /**
+ * Identifies the CalendarItemType property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_ITEM_TYPE = 'calendar:CalendarItemType';
+
+ /**
+ * Identifies the JoinOnlineMeetingUrl property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CALENDAR_JOIN_ONLINE_MEETING_URL = 'calendar:JoinOnlineMeetingUrl';
+
+ /**
+ * Identifies the LastOccurrence property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_LAST_OCCURRENCE = 'calendar:LastOccurrence';
+
+ /**
+ * Identifies the LegacyFreeBusyStatus property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_LEGACY_FREE_BUSY_STATUS = 'calendar:LegacyFreeBusyStatus';
+
+ /**
+ * Identifies the Location property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_LOCATION = 'calendar:Location';
+
+ /**
+ * Identifies the MeetingRequestWasSent property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_MEETING_REQUEST_WAS_SENT = 'calendar:MeetingRequestWasSent';
+
+ /**
+ * Identifies the MeetingTimeZone property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_MEETING_TIMEZONE = 'calendar:MeetingTimeZone';
+
+ /**
+ * Identifies the MeetingWorkspaceUrl property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_MEETING_WORKSPACE_URL = 'calendar:MeetingWorkspaceUrl';
+
+ /**
+ * Identifies the ModifiedOccurrences property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_MODIFIED_OCCURRENCES = 'calendar:ModifiedOccurrences';
+
+ /**
+ * Identifies the MyResponseType property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_MY_RESPONSE_TYPE = 'calendar:MyResponseType';
+
+ /**
+ * Identifies the NetShowUrl property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_NET_SHOW_URL = 'calendar:NetShowUrl';
+
+ /**
+ * Identifies the OnlineMeetingSettings property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CALENDAR_ONLINE_MEETING_SETTINGS = 'calendar:OnlineMeetingSettings';
+
+ /**
+ * Identifies the OptionalAttendees property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_OPTIONAL_ATTENDEES = 'calendar:OptionalAttendees';
+
+ /**
+ * Identifies the Organizer property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_ORGANIZER = 'calendar:Organizer';
+
+ /**
+ * Identifies the OriginalStart property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_ORIGINAL_START = 'calendar:OriginalStart';
+
+ /**
+ * Identifies the Recurrence property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_RECURRENCE = 'calendar:Recurrence';
+
+ /**
+ * Identifies the RecurrenceId property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CALENDAR_RECURRENCE_ID = 'calendar:RecurrenceId';
+
+ /**
+ * Identifies the RequiredAttendees property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_REQUIRED_ATTENDEES = 'calendar:RequiredAttendees';
+
+ /**
+ * Identifies the Resources property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_RESOURCES = 'calendar:Resources';
+
+ /**
+ * Identifies the Start property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_START = 'calendar:Start';
+
+ /**
+ * Identifies the StartTimeZone property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CALENDAR_START_TIMEZONE = 'calendar:StartTimeZone';
+
+ /**
+ * Identifies the StartTimeZoneId property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CALENDAR_START_TIME_ZONE_ID = 'calendar:StartTimeZoneId';
+
+ /**
+ * Identifies the StartWallClock property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CALENDAR_START_WALL_CLOCK = 'calendar:StartWallClock';
+
+ /**
+ * Identifies the TimeZone property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_TIMEZONE = 'calendar:TimeZone';
+
+ /**
+ * Identifies the UID property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CALENDAR_UID = 'calendar:UID';
+
+ /**
+ * Identifies the When property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CALENDAR_WHEN = 'calendar:When';
+
+ /**
+ * Identifies the Alias property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_ALIAS = 'contacts:Alias';
+
+ /**
+ * Identifies the AssistantName property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_ASSISTANT_NAME = 'contacts:AssistantName';
+
+ /**
+ * Identifies the Birthday property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_BIRTHDAY = 'contacts:Birthday';
+
+ /**
+ * Identifies the BusinessHomePage property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_BUSINESS_HOME_PAGE = 'contacts:BusinessHomePage';
+
+ /**
+ * Identifies the Children property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_CHILDREN = 'contacts:Children';
+
+ /**
+ * Identifies the Companies property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_COMPANIES = 'contacts:Companies';
+
+ /**
+ * Identifies the CompanyName property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_COMPANY_NAME = 'contacts:CompanyName';
+
+ /**
+ * Identifies the CompleteName property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_COMPLETE_NAME = 'contacts:CompleteName';
+
+ /**
+ * Identifies the Culture property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_CULTURE = 'contacts:Culture';
+
+ /**
+ * Identifies the Department property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_DEPARTMENT = 'contacts:Department';
+
+ /**
+ * Identifies the DirectReports property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_DIRECT_REPORTS = 'contacts:DirectReports';
+
+ /**
+ * Identifies the DirectoryId property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_DIRECTORY_ID = 'contacts:DirectoryId';
+
+ /**
+ * Identifies the DisplayName property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_DISPLAY_NAME = 'contacts:DisplayName';
+
+ /**
+ * Identifies the EmailAddresses property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_EMAIL_ADDRESSES = 'contacts:EmailAddresses';
+
+ /**
+ * Identifies the FileAs property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_FILE_AS = 'contacts:FileAs';
+
+ /**
+ * Identifies the FileAsMapping property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_FILE_AS_MAPPING = 'contacts:FileAsMapping';
+
+ /**
+ * Identifies the Generation property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_GENERATION = 'contacts:Generation';
+
+ /**
+ * Identifies the GivenName property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_GIVEN_NAME = 'contacts:GivenName';
+
+ /**
+ * Identifies the HasPicture property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONTACTS_HAS_PICTURE = 'contacts:HasPicture';
+
+ /**
+ * Identifies the ImAddresses property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_IM_ADDRESSES = 'contacts:ImAddresses';
+
+ /**
+ * Identifies the Initials property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_INITIALS = 'contacts:Initials';
+
+ /**
+ * Identifies the JobTitle property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_JOB_TITLE = 'contacts:JobTitle';
+
+ /**
+ * Identifies the Manager property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_MANAGER = 'contacts:Manager';
+
+ /**
+ * Identifies the ManagerMailbox property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_MANAGER_MAILBOX = 'contacts:ManagerMailbox';
+
+ /**
+ * Identifies the MiddleName property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_MIDDLE_NAME = 'contacts:MiddleName';
+
+ /**
+ * Identifies the Mileage property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_MILEAGE = 'contacts:Mileage';
+
+ /**
+ * Identifies the MSExchangeCertificate property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_MS_EXCHANGE_CERTIFICATE = 'contacts:MSExchangeCertificate';
+
+ /**
+ * Identifies the Nickname property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_NICKNAME = 'contacts:Nickname';
+
+ /**
+ * Identifies the Notes property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_NOTES = 'contacts:Notes';
+
+ /**
+ * Identifies the OfficeLocation property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_OFFICE_LOCATION = 'contacts:OfficeLocation';
+
+ /**
+ * Identifies the PhoneNumbers property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_PHONE_NUMBERS = 'contacts:PhoneNumbers';
+
+ /**
+ * Identifies the PhoneticFirstName property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_PHONETIC_FIRST_NAME = 'contacts:PhoneticFirstName';
+
+ /**
+ * Identifies the PhoneticFullName property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_PHONETIC_FULL_NAME = 'contacts:PhoneticFullName';
+
+ /**
+ * Identifies the PhoneticLastName property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_PHONETIC_LAST_NAME = 'contacts:PhoneticLastName';
+
+ /**
+ * Identifies the Photo property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_PHOTO = 'contacts:Photo';
+
+ /**
+ * Identifies the PhysicalAddresses property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_PHYSICAL_ADDRESSES = 'contacts:PhysicalAddresses';
+
+ /**
+ * Identifies the PostalAddressIndex property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_POSTAL_ADDRESS_INDEX = 'contacts:PostalAddressIndex';
+
+ /**
+ * Identifies the Profession property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_PROFESSION = 'contacts:Profession';
+
+ /**
+ * Identifies the ContactSource property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_SOURCE = 'contacts:ContactSource';
+
+ /**
+ * Identifies the SpouseName property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_SPOUSE_NAME = 'contacts:SpouseName';
+
+ /**
+ * Identifies the Surname property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_SURNAME = 'contacts:Surname';
+
+ /**
+ * Identifies the UserSMIMECertificate property.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ const CONTACTS_USER_SMIME_CERTIFICATE = 'contacts:UserSMIMECertificate';
+
+ /**
+ * Identifies the WeddingAnniversary property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const CONTACTS_WEDDING_ANNIVERSARY = 'contacts:WeddingAnniversary';
+
+ /**
+ * Identifies the Categories property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_CATEGORIES = 'conversation:Categories';
+
+ /**
+ * Identifies the FlagStatus property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_FLAG_STATUS = 'conversation:FlagStatus';
+
+ /**
+ * Identifies the GlobalCategories property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_CATEGORIES = 'conversation:GlobalCategories';
+
+ /**
+ * Identifies the GlobalFlagStatus property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_FLAG_STATUS = 'conversation:GlobalFlagStatus';
+
+ /**
+ * Identifies the GlobalHasAttachments property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_HAS_ATTACHMENTS = 'conversation:GlobalHasAttachments';
+
+ /**
+ * Identifies the GlobalImportance property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_IMPORTANCE = 'conversation:GlobalImportance';
+
+ /**
+ * Identifies the GlobalItemClasses property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_ITEM_CLASSES = 'conversation:GlobalItemClasses';
+
+ /**
+ * Identifies the GlobalItemIds property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_ITEM_IDS = 'conversation:GlobalItemIds';
+
+ /**
+ * Identifies the GlobalLastDeliveryTime property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_LAST_DELIVERY_TIME = 'conversation:GlobalLastDeliveryTime';
+
+ /**
+ * Identifies the GlobalMessageCount property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_MESSAGE_COUNT = 'conversation:GlobalMessageCount';
+
+ /**
+ * Identifies the GlobalParentFolderId property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_PARENT_FOLDER_ID = 'conversation:GlobalParentFolderId';
+
+ /**
+ * Identifies the GlobalSize property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_SIZE = 'conversation:GlobalSize';
+
+ /**
+ * Identifies the GlobalUniqueRecipients property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_UNIQUE_RECIPIENTS = 'conversation:GlobalUniqueRecipients';
+
+ /**
+ * Identifies the GlobalUniqueSenders property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_UNIQUE_SENDERS = 'conversation:GlobalUniqueSenders';
+
+ /**
+ * Identifies the GlobalUniqueUnreadSenders property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_UNIQUE_UNREAD_SENDERS = 'conversation:GlobalUniqueUnreadSenders';
+
+ /**
+ * Identifies the GlobalUnreadCount property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_GLOBAL_UNREAD_COUNT = 'conversation:GlobalUnreadCount';
+
+ /**
+ * Identifies the GroupingAction property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONVERSATION_GROUPING_ACTION = 'conversation:GroupingAction';
+
+ /**
+ * Identifies the HasAttachments property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_HAS_ATTACHMENTS = 'conversation:HasAttachments';
+
+ /**
+ * Identifies the ConversationId property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_ID = 'conversation:ConversationId';
+
+ /**
+ * Identifies the Importance property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_IMPORTANCE = 'conversation:Importance';
+
+ /**
+ * Identifies the InstanceKey property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONVERSATION_INSTANCE_KEY = 'conversation:InstanceKey';
+
+ /**
+ * Identifies the ItemClasses property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_ITEM_CLASSES = 'conversation:ItemClasses';
+
+ /**
+ * Identifies the ItemIds property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_ITEM_IDS = 'conversation:ItemIds';
+
+ /**
+ * Identifies the LastDeliveryTime property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_LAST_DELIVERY_TIME = 'conversation:LastDeliveryTime';
+
+ /**
+ * Identifies the LastModifiedTime property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONVERSATION_LAST_MODIFIED_TIME = 'conversation:LastModifiedTime';
+
+ /**
+ * Identifies the MessageCount property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_MESSAGE_COUNT = 'conversation:MessageCount';
+
+ /**
+ * Identifies the NextPredictedAction property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONVERSATION_NEXT_PREDICTED_ACTION = 'conversation:NextPredictedAction';
+
+ /**
+ * Identifies the Preview property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CONVERSATION_PREVIEW = 'conversation:Preview';
+
+ /**
+ * Identifies the Size property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_SIZE = 'conversation:Size';
+
+ /**
+ * Identifies the ConversationTopic property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_TOPIC = 'conversation:ConversationTopic';
+
+ /**
+ * Identifies the UniqueRecipients property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_UNIQUE_RECIPIENTS = 'conversation:UniqueRecipients';
+
+ /**
+ * Identifies the UniqueSenders property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_UNIQUE_SENDERS = 'conversation:UniqueSenders';
+
+ /**
+ * Identifies the UniqueUnreadSenders property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_UNIQUE_UNREAD_SENDERS = 'conversation:UniqueUnreadSenders';
+
+ /**
+ * Identifies the UnreadCount property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const CONVERSATION_UNREAD_COUNT = 'conversation:UnreadCount';
+
+ /**
+ * Identifies the Members property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DISTRIBUTION_LIST_MEMBERS = 'distributionlist:Members';
+
+ /**
+ * Identifies the ChildFolderCount property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_CHILD_FOLDER_COUNT = 'folder:ChildFolderCount';
+
+ /**
+ * Identifies the DisplayName property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_DISPLAY_NAME = 'folder:DisplayName';
+
+ /**
+ * Identifies the EffectiveRights property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FOLDER_EFFECTIVE_RIGHTS = 'folder:EffectiveRights';
+
+ /**
+ * Identifies the FolderClass property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_FOLDER_CLASS = 'folder:FolderClass';
+
+ /**
+ * Identifies the FolderId property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_FOLDER_ID = 'folder:FolderId';
+
+ /**
+ * Identifies the ManagedFolderInformation property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_MANAGED_FOLDER_INFORMATION = 'folder:ManagedFolderInformation';
+
+ /**
+ * Identifies the ParentFolderId property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_PARENT_FOLDER_ID = 'folder:ParentFolderId';
+
+ /**
+ * Identifies the PermissionSet property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FOLDER_PERMISSION_SET = 'folder:PermissionSet';
+
+ /**
+ * Identifies the SearchParameters property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_SEARCH_PARAMETERS = 'folder:SearchParameters';
+
+ /**
+ * Identifies the SharingEffectiveRights property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const FOLDER_SHARING_EFFECTIVE_RIGHTS = 'folder:SharingEffectiveRights';
+
+ /**
+ * Identifies the TotalCount property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_TOTAL_COUNT = 'folder:TotalCount';
+
+ /**
+ * Identifies the UnreadCount property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const FOLDER_UNREAD_COUNT = 'folder:UnreadCount';
+
+ /**
+ * Identifies the ArchiveTag property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_ARCHIVE_TAG = 'item:ArchiveTag';
+
+ /**
+ * Identifies the Attachments property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_ATTACHMENTS = 'item:Attachments';
+
+ /**
+ * Identifies the BlockStatus property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_BLOCK_STATUS = 'item:BlockStatus';
+
+ /**
+ * Identifies the Body property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_BODY = 'item:Body';
+
+ /**
+ * Identifies the Categories property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_CATEGORIES = 'item:Categories';
+
+ /**
+ * Identifies the ItemClass property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_CLASS = 'item:ItemClass';
+
+ /**
+ * Identifies the ConversationId property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_CONVERSATION_ID = 'item:ConversationId';
+
+ /**
+ * Identifies the Culture property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_CULTURE = 'item:Culture';
+
+ /**
+ * Identifies the DateTimeCreated property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_DATE_TIME_CREATED = 'item:DateTimeCreated';
+
+ /**
+ * Identifies the DateTimeReceived property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_DATE_TIME_RECEIVED = 'item:DateTimeReceived';
+
+ /**
+ * Identifies the DateTimeSent property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_DATE_TIME_SENT = 'item:DateTimeSent';
+
+ /**
+ * Identifies the DisplayCc property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_DISPLAY_CC = 'item:DisplayCc';
+
+ /**
+ * Identifies the DisplayTo property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_DISPLAY_TO = 'item:DisplayTo';
+
+ /**
+ * Identifies the EffectiveRights property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_EFFECTIVE_RIGHTS = 'item:EffectiveRights';
+
+ /**
+ * Identifies the EntityExtractionResult property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_ENTITY_EXTRACTION_RESULT = 'item:EntityExtractionResult';
+
+ /**
+ * Identifies the Flag property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_FLAG = 'item:Flag';
+
+ /**
+ * Identifies the GroupingAction property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_GROUPING_ACTION = 'item:GroupingAction';
+
+ /**
+ * Identifies the HasAttachments property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_HAS_ATTACHMENTS = 'item:HasAttachments';
+
+ /**
+ * Identifies the HasBlockedImages property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_HAS_BLOCKED_IMAGES = 'item:HasBlockedImages';
+
+ /**
+ * Identifies the ItemId property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_ID = 'item:ItemId';
+
+ /**
+ * Identifies the Importance property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_IMPORTANCE = 'item:Importance';
+
+ /**
+ * Identifies the InReplyTo property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_IN_REPLY_TO = 'item:InReplyTo';
+
+ /**
+ * Identifies the InstanceKey property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_INSTANCE_KEY = 'item:InstanceKey';
+
+ /**
+ * Identifies the InternetMessageHeaders property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_INTERNET_MESSAGE_HEADERS = 'item:InternetMessageHeaders';
+
+ /**
+ * Identifies the IsAssociated property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_IS_ASSOCIATED = 'item:IsAssociated';
+
+ /**
+ * Identifies the IsAssociated property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_IS_DRAFT = 'item:IsDraft';
+
+ /**
+ * Identifies the IsFromMe property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_IS_FROM_ME = 'item:IsFromMe';
+
+ /**
+ * Identifies the IsResend property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_IS_RESEND = 'item:IsResend';
+
+ /**
+ * Identifies the IsSubmitted property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_IS_SUBMITTED = 'item:IsSubmitted';
+
+ /**
+ * Identifies the IsUnmodified property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_IS_UNMODIFIED = 'item:IsUnmodified';
+
+ /**
+ * Identifies the LastModifiedName property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_LAST_MODIFIED_NAME = 'item:LastModifiedName';
+
+ /**
+ * Identifies the LastModifiedTime property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_LAST_MODIFIED_TIME = 'item:LastModifiedTime';
+
+ /**
+ * Identifies the MimeContent property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_MIME_CONTENT = 'item:MimeContent';
+
+ /**
+ * Identifies the NextPredictedAction property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_NEXT_PREDICTED_ACTION = 'item:NextPredictedAction';
+
+ /**
+ * Identifies the NormalizedBody property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_NORMALIZED_BODY = 'item:NormalizedBody';
+
+ /**
+ * Identifies the ParentFolderId property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_PARENT_FOLDER_ID = 'item:ParentFolderId';
+
+ /**
+ * Identifies the PolicyTag property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_POLICY_TAG = 'itemPolicyTag';
+
+ /**
+ * Identifies the Preview property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_PREVIEW = 'item:Preview';
+
+ /**
+ * Identifies the ReminderDueBy property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_REMINDER_DUE_BY = 'item:ReminderDueBy';
+
+ /**
+ * Identifies the ReminderIsSet property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_REMINDER_IS_SET = 'item:ReminderIsSet';
+
+ /**
+ * Identifies the ReminderMinutesBeforeStart property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_REMINDER_MINUTES_BEFORE_START = 'item:ReminderMinutesBeforeStart';
+
+ /**
+ * Identifies the ReminderNextTime property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_REMINDER_NEXT_TIME = 'item:ReminderNextTime';
+
+ /**
+ * Identifies the ResponseObjects property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_RESPONSE_OBJECTS = 'item:ResponseObjects';
+
+ /**
+ * Identifies the RetentionDate property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_RETENTION_DATE = 'item:RetentionDate';
+
+ /**
+ * Identifies the RightsManagementLicenseData property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_RIGHTS_MANAGEMENT_LICENSE_DATA = 'item:RightsManagementLicenseData';
+
+ /**
+ * Identifies the Sensitivity property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_SENSITIVITY = 'item:Sensitivity';
+
+ /**
+ * Identifies the Size property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_SIZE = 'item:Size';
+
+ /**
+ * Identifies the StoreEntryId property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_STORE_ENTRY_ID = 'item:StoreEntryId';
+
+ /**
+ * Identifies the Subject property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const ITEM_SUBJECT = 'item:Subject';
+
+ /**
+ * Identifies the TextBody property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ITEM_TEXT_BODY = 'item:TextBody';
+
+ /**
+ * Identifies the UniqueBody property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_UNIQUE_BODY = 'item:UniqueBody';
+
+ /**
+ * Identifies the WebClientEditFormQueryString property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_WEB_CLIENT_EDIT_FROM_QUERY_STRING = 'item:WebClientEditFormQueryString';
+
+ /**
+ * Identifies the WebClientReadFormQueryString property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ITEM_WEB_CLIENT_READ_FROM_QUERY_STRING = 'item:WebClientReadFormQueryString';
+
+ /**
+ * Identifies the AssociatedCalendarItemId property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING_ASSOCIATED_CALENDAR_ITEM_ID = 'meeting:AssociatedCalendarItemId';
+
+ /**
+ * Identifies the IsDelegated property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING_IS_DELEGATED = 'meeting:IsDelegated';
+
+ /**
+ * Identifies the IsOutOfDate property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING_IS_OUT_OF_DATE = 'meeting:IsOutOfDate';
+
+ /**
+ * Identifies the HasBeenProcessed property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING_HAS_BEEN_PROCESSED = 'meeting:HasBeenProcessed';
+
+ /**
+ * Identifies the ProposedEnd property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MEETING_PROPOSED_END = 'meeting:ProposedEnd';
+
+ /**
+ * Identifies the ProposedStart property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MEETING_PROPOSED_START = 'meeting:ProposedStart';
+
+ /**
+ * Identifies the ChangeHighlights property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MEETING_REQUEST_CHANGE_HIGHLIGHTS = 'meetingRequest:ChangeHighlights';
+
+ /**
+ * Identifies the IntendedFreeBusyStatus property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING_REQUEST_INTENDED_FREE_BUSY_STATUS = 'meetingRequest:IntendedFreeBusyStatus';
+
+ /**
+ * Identifies the MeetingRequestType property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING_REQUEST_TYPE = 'meetingRequest:MeetingRequestType';
+
+ /**
+ * Identifies the ResponseType property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MEETING_RESPONSE_TYPE = 'meeting:ResponseType';
+
+ /**
+ * Identifies the BccRecipients property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_BCC_RECIPIENTS = 'message:BccRecipients';
+
+ /**
+ * Identifies the CcRecipients property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_CC_RECIPIENTS = 'message:CcRecipients';
+
+ /**
+ * Identifies the ConversationIndex property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_CONVERSATION_INDEX = 'message:ConversationIndex';
+
+ /**
+ * Identifies the ConversationTopic property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_CONVERSATION_TOPIC = 'message:ConversationTopic';
+
+ /**
+ * Identifies the From property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_FROM = 'message:From';
+
+ /**
+ * Identifies the InternetMessageId property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_INTERNET_MESSAGE_ID = 'message:InternetMessageId';
+
+ /**
+ * Identifies the IsDeliveryReceiptRequested property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_IS_DELIVERY_RECEIPT_REQUESTED = 'message:IsDeliveryReceiptRequested';
+
+ /**
+ * Identifies the IsRead property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_IS_READ = 'message:IsRead';
+
+ /**
+ * Identifies the IsReadReceiptRequested property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_IS_READ_RECEIPT_REQUESTED = 'message:IsReadReceiptRequested';
+
+ /**
+ * Identifies the IsResponseRequested property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_IS_RESPONSE_REQUESTED = 'message:IsResponseRequested';
+
+ /**
+ * Identifies the ReceivedBy property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MESSAGE_RECEIVED_BY = 'message:ReceivedBy';
+
+ /**
+ * Identifies the ReceivedRepresenting property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const MESSAGE_RECEIVED_REPRESENTING = 'message:ReceivedRepresenting';
+
+ /**
+ * Identifies the References property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_REFERENCES = 'message:References';
+
+ /**
+ * Identifies the ReplyTo property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_REPLY_TO = 'message:ReplyTo';
+
+ /**
+ * Identifies the Sender property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_SENDER = 'message:Sender';
+
+ /**
+ * Identifies the ToRecipients property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const MESSAGE_TO_RECIPIENTS = 'message:ToRecipients';
+
+ /**
+ * Identifies the AssistantNames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_ASSISTANT_NAMES = 'persona:AssistantNames';
+
+ /**
+ * Identifies the AssistantPhoneNumbers property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_ASSISTANT_PHONE_NUMBERS = 'persona:AssistantPhoneNumbers';
+
+ /**
+ * Identifies the Attributions property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_ATTRIBUTIONS = 'persona:Attributions';
+
+ /**
+ * Identifies the Birthdays property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_BIRTHDAYS = 'persona:Birthdays';
+
+ /**
+ * Identifies the Bodies property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_BODIES = 'persona:Bodies';
+
+ /**
+ * Identifies the BusinessAddresses property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_BUSINESS_ADDRESSES = 'persona:BusinessAddresses';
+
+ /**
+ * Identifies the BusinessHomePages property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_BUSINESS_HOME_PAGES = 'persona:BusinessHomePages';
+
+ /**
+ * Identifies the BusinessPhoneNumbers property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_BUSINESS_PHONE_NUMBERS = 'persona:BusinessPhoneNumbers';
+
+ /**
+ * Identifies the BusinessPhoneNumbers2 property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_BUSINESS_PHONE_NUMBERS_2 = 'persona:BusinessPhoneNumbers2';
+
+ /**
+ * Identifies the CallbackPhones property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_CALLBACK_PHONES = 'persona:CallbackPhones';
+
+ /**
+ * Identifies the CarPhones property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_CAR_PHONES = 'persona:CarPhones';
+
+ /**
+ * Identifies the Children property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_CHILDREN = 'persona:Children';
+
+ /**
+ * Identifies the CompanyName property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_COMPANY_NAME = 'persona:CompanyName';
+
+ /**
+ * Identifies the CompanyNames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_COMPANY_NAMES = 'persona:CompanyNames';
+
+ /**
+ * Identifies the CreationTime property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_CREATION_TIME = 'persona:CreationTime';
+
+ /**
+ * Identifies the Departments property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_DEPARTMENTS = 'persona:Departments';
+
+ /**
+ * Identifies the DisplayName property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_DISPLAY_NAME = 'persona:DisplayName';
+
+ /**
+ * Identifies the DisplayNames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_DISPLAY_NAMES = 'persona:DisplayNames';
+
+ /**
+ * Identifies the DisplayNamePrefix property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_DISPLAY_NAME_PREFIX = 'persona:DisplayNamePrefix';
+
+ /**
+ * Identifies the DisplayNamePrefixes property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_DISPLAY_NAME_PREFIXES = 'persona:DisplayNamePrefixes';
+
+ /**
+ * Identifies the EmailAddress property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_EMAIL_ADDRESS = 'persona:EmailAddress';
+
+ /**
+ * Identifies the EmailAddresses property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_EMAIL_ADDRESSES = 'persona:EmailAddresses';
+
+ /**
+ * Identifies the Emails1 property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_EMAILS_1 = 'persona:Emails1';
+
+ /**
+ * Identifies the Emails2 property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_EMAILS_2 = 'persona:Emails2';
+
+ /**
+ * Identifies the Emails3 property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_EMAILS_3 = 'persona:Emails3';
+
+ /**
+ * Identifies the ExtendedProperties property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_EXTENDED_PROPERTIES = 'persona:ExtendedProperties';
+
+ /**
+ * Identifies the FileAs property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_FILE_AS = 'persona:FileAs';
+
+ /**
+ * Identifies the FileAsId property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_FILE_AS_ID = 'persona:FileAsId';
+
+ /**
+ * Identifies the FileAsIds property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_FILE_AS_IDS = 'persona:FileAsIds';
+
+ /**
+ * Identifies the FileAses property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_FILE_ASES = 'persona:FileAses';
+
+ /**
+ * Identifies the FolderIds property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_FOLDER_IDS = 'persona:FolderIds';
+
+ /**
+ * Identifies the Generations property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_GENERATIONS = 'persona:Generations';
+
+ /**
+ * Identifies the GivenName property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_GIVEN_NAME = 'persona:GivenName';
+
+ /**
+ * Identifies the GivenNames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_GIVEN_NAMES = 'persona:GivenNames';
+
+ /**
+ * Identifies the Hobbies property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_HOBBIES = 'persona:Hobbies';
+
+ /**
+ * Identifies the HomeAddresses property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_HOME_ADDRESSES = 'persona:HomeAddresses';
+
+ /**
+ * Identifies the HomeCity property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_HOME_CITY = 'persona:HomeCity';
+
+ /**
+ * Identifies the HomeFaxes property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_HOME_FAXES = 'persona:HomeFaxes';
+
+ /**
+ * Identifies the HomePhones property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_HOME_PHONES = 'persona:HomePhones';
+
+ /**
+ * Identifies the HomePhones2 property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_HOME_PHONES_2 = 'persona:HomePhones2';
+
+ /**
+ * Identifies the PersonaId property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_ID = 'persona:PersonaId';
+
+ /**
+ * Identifies the ImAddress property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_IM_ADDRESS = 'persona:ImAddress';
+
+ /**
+ * Identifies the ImAddresses property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_IM_ADDRESSES = 'persona:ImAddresses';
+
+ /**
+ * Identifies the ImAddresses2 property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_IM_ADDRESSES_2 = 'persona:ImAddresses2';
+
+ /**
+ * Identifies the ImAddresses3 property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_IM_ADDRESSES_3 = 'persona:ImAddresses3';
+
+ /**
+ * Identifies the Initials property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_INITIALS = 'persona:Initials';
+
+ /**
+ * Identifies the Locations property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_LOCATIONS = 'persona:Locations';
+
+ /**
+ * Identifies the Managers property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_MANAGERS = 'persona:Managers';
+
+ /**
+ * Identifies the MiddleNames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_MIDDLE_NAMES = 'persona:MiddleNames';
+
+ /**
+ * Identifies the MobilePhones property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_MOBILE_PHONES = 'persona:MobilePhones';
+
+ /**
+ * Identifies the MobilePhones2 property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_MOBILE_PHONES_2 = 'persona:MobilePhones2';
+
+ /**
+ * Identifies the Nicknames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_NICKNAMES = 'persona:Nicknames';
+
+ /**
+ * Identifies the PersonaObjectStatus property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_OBJECT_STATUS = 'persona:PersonaObjectStatus';
+
+ /**
+ * Identifies the OfficeLocations property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_OFFICE_LOCATIONS = 'persona:OfficeLocations';
+
+ /**
+ * Identifies the OrganizationMainPhones property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_ORGANIZATION_MAIN_PHONES = 'persona:OrganizationMainPhones';
+
+ /**
+ * Identifies the OtherAddresses property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_OTHER_ADDRESSES = 'persona:OtherAddresses';
+
+ /**
+ * Identifies the OtherFaxes property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_OTHER_FAXES = 'persona:OtherFaxes';
+
+ /**
+ * Identifies the OtherPhones2 property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_OTHER_PHONES_2 = 'persona:OtherPhones2';
+
+ /**
+ * Identifies the OtherTelephones property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_OTHER_TELEPHONES = 'persona:OtherTelephones';
+
+ /**
+ * Identifies the Pagers property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_PAGERS = 'persona:Pagers';
+
+ /**
+ * Identifies the PersonalHomePages property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_PERSONAL_HOME_PAGES = 'persona:PersonalHomePages';
+
+ /**
+ * Identifies the PhoneNumber property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_PHONE_NUMBER = 'persona:PhoneNumber';
+
+ /**
+ * Identifies the PostalAddress property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_POSTAL_ADDRESS = 'persona:PostalAddress';
+
+ /**
+ * Identifies the Professions property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_PROFESSIONS = 'persona:Professions';
+
+ /**
+ * Identifies the RadioPhones property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_RADIO_PHONES = 'persona:RadioPhones';
+
+ /**
+ * Identifies the RelevanceScore property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_RELEVANCE_SCORE = 'persona:RelevanceScore';
+
+ /**
+ * Identifies the School property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_SCHOOL = 'persona:School';
+
+ /**
+ * Identifies the SpouseNames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_SPOUSE_NAMES = 'persona:SpouseNames';
+
+ /**
+ * Identifies the Surname property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_SURNAME = 'persona:Surname';
+
+ /**
+ * Identifies the Surnames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_SURNAMES = 'persona:Surnames';
+
+ /**
+ * Identifies the TelexNumbers property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_TELEX_NUMBERS = 'persona:TelexNumbers';
+
+ /**
+ * Identifies the Title property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_TITLE = 'persona:Title';
+
+ /**
+ * Identifies the Titles property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_TITLES = 'persona:Titles';
+
+ /**
+ * Identifies the PersonaType property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_TYPE = 'persona:PersonaType';
+
+ /**
+ * Identifies the WeddingAnniversaries property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_WEDDING_ANNIVERSARIES = 'persona:WeddingAnniversaries';
+
+ /**
+ * Identifies the WorkCity property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_WORK_CITY = 'persona:WorkCity';
+
+ /**
+ * Identifies the WorkFaxes property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_WORK_FAXES = 'persona:WorkFaxes';
+
+ /**
+ * Identifies the YomiCompanyName property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_YOMI_COMPANY_NAME = 'persona:YomiCompanyName';
+
+ /**
+ * Identifies the YomiCompanyNames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_YOMI_COMPANY_NAMES = 'persona:YomiCompanyNames';
+
+ /**
+ * Identifies the YomiFirstName property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_YOMI_FIRST_NAME = 'persona:YomiFirstName';
+
+ /**
+ * Identifies the YomiFirstNames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_YOMI_FIRST_NAMES = 'persona:YomiFirstNames';
+
+ /**
+ * Identifies the YomiLastName property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_YOMI_LAST_NAME = 'persona:YomiLastName';
+
+ /**
+ * Identifies the YomiLastNames property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const PERSONA_YOMI_LAST_NAMES = 'persona:YomiLastNames';
+
+ /**
+ * Identifies the PostedTime property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const POST_ITEM_POSTED_TIME = 'postitem:PostedTime';
+
+ /**
+ * Identifies the ActualWork property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_ACTUAL_WORK = 'task:ActualWork';
+
+ /**
+ * Identifies the AssignedTime property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_ASSIGNED_TIME = 'task:AssignedTime';
+
+ /**
+ * Identifies the BillingInformation property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_BILLING_INFORMATION = 'task:BillingInformation';
+
+ /**
+ * Identifies the ChangeCount property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_CHANGE_COUNT = 'task:ChangeCount';
+
+ /**
+ * Identifies the Companies property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_COMPANIES = 'task:Companies';
+
+ /**
+ * Identifies the CompleteDate property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_COMPLETE_DATE = 'task:CompleteDate';
+
+ /**
+ * Identifies the Contacts property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_CONTACTS = 'task:Contacts';
+
+ /**
+ * Identifies the DelegationState property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_DELEGATION_STATE = 'task:DelegationState';
+
+ /**
+ * Identifies the Delegator property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_DELEGATOR = 'task:Delegator';
+
+ /**
+ * Identifies the DueDate property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_DUE_DATE = 'task:DueDate';
+
+ /**
+ * Identifies the IsAssignmentEditable property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_IS_ASSIGNMENT_EDITABLE = 'task:IsAssignmentEditable';
+
+ /**
+ * Identifies the IsComplete property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_IS_COMPLETE = 'task:IsComplete';
+
+ /**
+ * Identifies the IsRecurring property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_IS_RECURRING = 'task:IsRecurring';
+
+ /**
+ * Identifies the IsTeamTask property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_IS_TEAM_TASK = 'task:IsTeamTask';
+
+ /**
+ * Identifies the Mileage property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_MILEAGE = 'task:Mileage';
+
+ /**
+ * Identifies the Owner property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_OWNER = 'task:Owner';
+
+ /**
+ * Identifies the PercentComplete property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_PERCENT_COMPLETE = 'task:PercentComplete';
+
+ /**
+ * Identifies the Recurrence property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_RECURRENCE = 'task:Recurrence';
+
+ /**
+ * Identifies the StartDate property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_START_DATE = 'task:StartDate';
+
+ /**
+ * Identifies the Status property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_STATUS = 'task:Status';
+
+ /**
+ * Identifies the StatusDescription property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_STATUS_DESCRIPTION = 'task:StatusDescription';
+
+ /**
+ * Identifies the TotalWork property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ const TASK_TOTAL_WORK = 'task:TotalWork';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserConfigurationDictionaryObjectTypesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserConfigurationDictionaryObjectTypesType.php
new file mode 100644
index 00000000..f026d487
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserConfigurationDictionaryObjectTypesType.php
@@ -0,0 +1,106 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\UserConfigurationDictionaryObjectTypesType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines a dictionary object's type.
+ *
+ * @package php-ews\Enumeration
+ */
+class UserConfigurationDictionaryObjectTypesType extends Enumeration
+{
+ /**
+ * Defines the object's type as a boolean.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const BOOLEAN = 'Boolean';
+
+ /**
+ * Defines the object's type as a byte.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const BYTE = 'Byte';
+
+ /**
+ * Defines the object's type as an array of bytes.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const BYTE_ARRAY = 'ByteArray';
+
+ /**
+ * Defines the object's type as a date and time.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DATE_TIME = 'DateTime';
+
+ /**
+ * Defines the object's type as a 32-bit integer.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ CONST INTEGER_32 = 'Integer32';
+
+ /**
+ * Defines the object's type as a 64-bit integer.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const INTEGER_64 = 'Integer64';
+
+ /**
+ * Defines the object's type as a string.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const STRING = 'String';
+
+ /**
+ * Defines the object's type as an array of strings.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const STRING_ARRAY = 'StringArray';
+
+ /**
+ * Defines the object's type as an unsigned 32-bit integer.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNSIGNED_INTEGER_32 = 'UnsignedInteger32';
+
+ /**
+ * Defines the object's type as an unsigned 64-bit integer.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const UNSIGNED_INTEGER_64 = 'UnsignedInteger64';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserConfigurationPropertyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserConfigurationPropertyType.php
new file mode 100644
index 00000000..58f6d141
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserConfigurationPropertyType.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\UserConfigurationPropertyType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the property types to get in a GetUserConfiguration operation.
+ *
+ * @package php-ews\Enumeration
+ */
+class UserConfigurationPropertyType extends Enumeration
+{
+ /**
+ * Specifies the identifier, dictionary, XML data, and binary data property
+ * types.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ALL = 'All';
+
+ /**
+ * Specifies binary data property types.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const BINARY_DATA = 'BinaryData';
+
+ /**
+ * Specifies dictionary property types.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const DICTIONARY = 'Dictionary';
+
+ /**
+ * Specifies the identifier property.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const ID = 'Id';
+
+ /**
+ * Specifies XML data property types.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ const XML_DATA = 'XmlData';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserPhotoSizeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserPhotoSizeType.php
new file mode 100644
index 00000000..0c3661de
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserPhotoSizeType.php
@@ -0,0 +1,115 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\UserPhotoSizeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the size of a user's photo being requested.
+ *
+ * @package php-ews\Enumeration
+ */
+class UserPhotoSizeType extends Enumeration
+{
+ /**
+ * The image is 48 pixels high and 48 pixels wide.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const HR48X48 = 'HR48x48';
+
+ /**
+ * The image is 64 pixels high and 64 pixels wide.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const HR64X64 = 'HR64x64';
+
+ /**
+ * The image is 96 pixels high and 96 pixels wide.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const HR96X96 = 'HR96x96';
+
+ /**
+ * The image is 120 pixels high and 120 pixels wide.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const HR120X120 = 'HR120x120';
+
+ /**
+ * The image is 240 pixels high and 240 pixels wide.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const HR240X240 = 'HR240x240';
+
+ /**
+ * The image is 360 pixels high and 360 pixels wide.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const HR360X360 = 'HR360x360';
+
+ /**
+ * The image is 432 pixels high and 432 pixels wide.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const HR432X432 = 'HR432x432';
+
+ /**
+ * The image is 504 pixels high and 504 pixels wide.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const HR504X504 = 'HR504x504';
+
+ /**
+ * The image is 648 pixels high and 648 pixels wide.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const HR648X648 = 'HR648x648';
+
+ /**
+ * The image is 1024 pixels high and 1024 pixels wide.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ const HR1024XN = 'HR1024xN';
+
+ /**
+ * The image is 1920 pixels high and 1920 pixels wide.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ const HR1920XN = 'HR1920xN';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserPhotoTypeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserPhotoTypeType.php
new file mode 100644
index 00000000..2477c7ae
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/UserPhotoTypeType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\UserPhotoTypeType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the type of a user photo.
+ *
+ * @package php-ews\Enumeration
+ */
+class UserPhotoTypeType extends Enumeration
+{
+ /**
+ * Identifies a user photo as a profile header photo.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ const PROFILE_HEADER_PHOTO = 'ProfileHeaderPhoto';
+
+ /**
+ * Identifies a user photo as the user's primary photo.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ const USER_PHOTO = 'UserPhoto';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ViewFilterType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ViewFilterType.php
new file mode 100644
index 00000000..06241635
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Enumeration/ViewFilterType.php
@@ -0,0 +1,106 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Enumeration\ViewFilterType.
+ */
+
+namespace jamesiarmes\PhpEws\Enumeration;
+
+use \jamesiarmes\PhpEws\Enumeration;
+
+/**
+ * Defines the view filter type for a FindConversation operation.
+ *
+ * @package php-ews\Enumeration
+ */
+class ViewFilterType extends Enumeration
+{
+ /**
+ * Find all conversations.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const ALL = 'All';
+
+ /**
+ * For internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const CLUTTER = 'Clutter';
+
+ /**
+ * Find flagged conversations.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const FLAGGED = 'Flagged';
+
+ /**
+ * Find conversations with attachments.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const HAS_ATTACHMENT = 'HasAttachment';
+
+ /**
+ * For internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const NO_CLUTTER = 'NoClutter';
+
+ /**
+ * Find active tasks.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TASK_ACTIVE = 'TaskActive';
+
+ /**
+ * Find completed tasks.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TASK_COMPLETED = 'TaskCompleted';
+
+ /**
+ * Find overdue tasks.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TASK_OVERDUE = 'TaskOverdue';
+
+ /**
+ * Find conversations addressed or cc'd to me.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const TO_OR_CC_ME = 'ToOrCcMe';
+
+ /**
+ * Find unread conversations.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ const UNREAD = 'Unread';
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request.php
new file mode 100644
index 00000000..fc14ce7d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request.
+ */
+
+namespace jamesiarmes\PhpEws;
+
+/**
+ * Base class for Exchange Web Service requests.
+ *
+ * @package php-ews\Request
+ */
+abstract class Request extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddDelegateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddDelegateType.php
new file mode 100644
index 00000000..2d23de0c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddDelegateType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\AddDelegateType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to add delegates to a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class AddDelegateType extends BaseDelegateType
+{
+ /**
+ * Contains the identities of delegates to add to or update in a mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfDelegateUserType
+ */
+ public $DelegateUsers;
+
+ /**
+ * Defines how meeting requests are handled between the delegate and the
+ * principal.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DeliverMeetingRequestsType
+ */
+ public $DeliverMeetingRequests;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddDistributionGroupToImListType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddDistributionGroupToImListType.php
new file mode 100644
index 00000000..6efb10b3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddDistributionGroupToImListType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\AddDistributionGroupToImListType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to add a distribution list to an instant message list.
+ *
+ * @package php-ews\Request
+ */
+class AddDistributionGroupToImListType extends BaseRequestType
+{
+ /**
+ * Contains the display name of a new instant messaging group contact or the
+ * display name of a new instant messaging group.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Represents the Simple Mail Transfer Protocol (SMTP) address of an account
+ * to be used for impersonation or a Simple Mail Transfer Protocol (SMTP)
+ * recipient address of a calendar or contact sharing request.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $SmtpAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddImContactToGroup.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddImContactToGroup.php
new file mode 100644
index 00000000..270a151f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddImContactToGroup.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\AddImContactToGroup.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to add an existing instant messaging contact to an instant
+ * messaging group.
+ *
+ * @package php-ews\Request
+ */
+class AddImContactToGroup extends BaseRequestType
+{
+ /**
+ * Uniquely identifies a contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ContactId;
+
+ /**
+ * Uniquely identifies a group.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $GroupId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddImGroupType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddImGroupType.php
new file mode 100644
index 00000000..834c3216
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddImGroupType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\AddImGroupType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to add a new instant messaging group.
+ *
+ * @package php-ews\Request
+ */
+class AddImGroupType extends BaseRequestType
+{
+ /**
+ * Display name of the instant messaging group.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayName;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddNewImContactToGroup.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddNewImContactToGroup.php
new file mode 100644
index 00000000..f1a3ff2d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddNewImContactToGroup.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\AddNewImContactToGroup.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to add a new instant messaging contact to an instant
+ * messaging group.
+ *
+ * @package php-ews\Request
+ */
+class AddNewImContactToGroup extends BaseRequestType
+{
+ /**
+ * Contains the display name of a new instant messaging group contact or the
+ * display name of a new instant messaging group.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Unique identifier of a group.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $GroupId;
+
+ /**
+ * Contains the instant messaging address of a new contact that will be
+ * added to an instant messaging group.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ImAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddNewTelUriContactToGroupType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddNewTelUriContactToGroupType.php
new file mode 100644
index 00000000..bdee20bd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/AddNewTelUriContactToGroupType.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\AddNewTelUriContactToGroupType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to add a contact to a group based on the contacts phone
+ * number.
+ *
+ * @package php-ews\Request
+ */
+class AddNewTelUriContactToGroupType extends BaseRequestType
+{
+ /**
+ * Unique identifier of a group.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $GroupId;
+
+ /**
+ * Contains the SIP URI address of a contact that is added to an instant
+ * messaging (IM) group.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ImContactSipUriAddress;
+
+ /**
+ * Represents the telephone number for a contact that is added to an instant
+ * messaging (IM) group.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ImTelephoneNumber;
+
+ /**
+ * Contains the tel Uniform Resource Identifier (URI) for a contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $TelUriAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ApplyConversationActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ApplyConversationActionType.php
new file mode 100644
index 00000000..4424bdbf
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ApplyConversationActionType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\ApplyConversationActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to apply actions to items in a conversation.
+ *
+ * @package php-ews\Request
+ */
+class ApplyConversationActionType extends BaseRequestType
+{
+ /**
+ * Contains a collection of conversations and the actions to apply to them.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfApplyConversationActionType
+ */
+ public $ConversationActions;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ArchiveItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ArchiveItemType.php
new file mode 100644
index 00000000..f4043ac9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ArchiveItemType.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\ArchiveItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines the source folder Id and an array of item Ids for the associated
+ * archive item.
+ *
+ * @package php-ews\Request
+ */
+class ArchiveItemType extends BaseRequestType
+{
+ /**
+ * Specifies the Id of the source folder for the archive item.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $ArchiveSourceFolderId;
+
+ /**
+ * Contains the unique identities of items to archive.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType
+ */
+ public $ItemIds;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseDelegateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseDelegateType.php
new file mode 100644
index 00000000..66b82bb3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseDelegateType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\BaseDelegateType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Base class for delegate requests.
+ *
+ * @package php-ews\Request
+ */
+abstract class BaseDelegateType extends BaseRequestType
+{
+ /**
+ * Identifies the principal's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Mailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseMoveCopyFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseMoveCopyFolderType.php
new file mode 100644
index 00000000..95c9d0e9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseMoveCopyFolderType.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\BaseMoveCopyFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Base class for folder move and copy requests.
+ *
+ * @package php-ews\Request
+ */
+class BaseMoveCopyFolderType extends BaseRequestType
+{
+ /**
+ * Represents the destination folder for a copied folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $FolderIds;
+
+ /**
+ * Represents the destination folder for a copied folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $ToFolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseMoveCopyItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseMoveCopyItemType.php
new file mode 100644
index 00000000..8cb7af69
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseMoveCopyItemType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\BaseMoveCopyItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Base class for item copy and move operations.
+ *
+ * @package php-ews\Request
+ */
+class BaseMoveCopyItemType extends BaseRequestType
+{
+ /**
+ * Contains an array of identified items to copy or move to the folder
+ * represented by the ToFolderId element.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType
+ */
+ public $ItemIds;
+
+ /**
+ * Indicates whether the item identifiers of new items are returned in the
+ * response.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $ReturnNewItemIds;
+
+ /**
+ * Represents the destination folder for the items.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $ToFolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseRequestType.php
new file mode 100644
index 00000000..40ae2743
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/BaseRequestType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\BaseRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+use \jamesiarmes\PhpEws\Request;
+
+/**
+ * Base class for requests.
+ *
+ * @package php-ews\Request
+ */
+abstract class BaseRequestType extends Request
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ConvertIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ConvertIdType.php
new file mode 100644
index 00000000..9d06bc38
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ConvertIdType.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\ConvertIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+use \jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to convert item and folder identifiers between supported
+ * Exchange formats.
+ *
+ * @package php-ews\Request
+ */
+class ConvertIdType extends BaseRequestType
+{
+ /**
+ * Describes the identifier format that will be returned for all the
+ * converted identifiers.
+ *
+ * The DestinationFormat is described by the IdFormatType.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\IdFormatType
+ */
+ public $DestinationFormat;
+
+ /**
+ * Contains the source identifiers to convert.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAlternateIdsType
+ */
+ public $SourceIds;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CopyFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CopyFolderType.php
new file mode 100644
index 00000000..413f0c55
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CopyFolderType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\CopyFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to copy folders in a mailbox in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class CopyFolderType extends BaseMoveCopyFolderType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CopyItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CopyItemType.php
new file mode 100644
index 00000000..0b8bd4ad
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CopyItemType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\CopyItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to copy an item in a mailbox in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class CopyItemType extends BaseMoveCopyItemType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateAttachmentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateAttachmentType.php
new file mode 100644
index 00000000..b629698e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateAttachmentType.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\CreateAttachmentType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to create an attachment to an item in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class CreateAttachmentType extends BaseRequestType
+{
+ /**
+ * Contains the items or files to attach to an item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfAttachmentsType
+ */
+ public $Attachments;
+
+ /**
+ * Identifies the parent Exchange store item that contains the created
+ * attachment.
+ *
+ * The ParentItemId element must provide the ID of a real Exchange store
+ * item. Real store items can be retrieved by using the GetItem operation;
+ * attachments are retrieved by using the GetAttachment operation. An error
+ * occurs if the ParentItemId is passed the ID of a file attachment. If the
+ * ParentItemId represents the ID of an existing item attachment, the
+ * CreateAttachment operation adds the new attachment to the existing
+ * attachment.
+ *
+ * This element is required.
+ *
+ * The following item attachments can be created:
+ * - Item
+ * - Message
+ * - CalendarItem
+ * - Contact
+ * - Task
+ * - MeetingMessage
+ * - MeetingRequest
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ParentItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateFolderPathType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateFolderPathType.php
new file mode 100644
index 00000000..6ceb65b5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateFolderPathType.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\CreateFolderPathType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to create a folder path.
+ *
+ * @package php-ews\Request
+ */
+class CreateFolderPathType extends BaseRequestType
+{
+ /**
+ * Identifies the folder in which a new folder is created.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $ParentFolderId;
+
+ /**
+ * Contains an array of folders that indicate the relative folder path of
+ * the folder path to be created.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFoldersType
+ */
+ public $RelativeFolderPath;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateFolderType.php
new file mode 100644
index 00000000..d153812c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateFolderType.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\CreateFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to create a folder in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class CreateFolderType extends BaseRequestType
+{
+ /**
+ * The element that contains all the folders to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfFoldersType
+ */
+ public $Folders;
+
+ /**
+ * The element that identifies the location where the new folder is created.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $ParentFolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateItemType.php
new file mode 100644
index 00000000..098b46c3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateItemType.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\CreateItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to create an item in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class CreateItemType extends BaseRequestType
+{
+ /**
+ * Contains an array of items to create in the folder that is identified by
+ * the SavedItemFolderId element.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAllItemsType
+ */
+ public $Items;
+
+ /**
+ * Describes how the item will be handled after it is created.
+ *
+ * This attribute is only applicable to e-mail messages.
+ *
+ * The attribute is required for e-mail messages.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MessageDispositionType
+ */
+ public $MessageDisposition;
+
+ /**
+ * Identifies the target folder where a new item can be created.
+ *
+ * If the MessageDisposition attribute is set to SendOnly, a created message
+ * will only be sent. The message will not be put in the folder that is
+ * identified by the SavedItemFolderId element.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $SavedItemFolderId;
+
+ /**
+ * Describes how meeting requests are handled after they are created.
+ *
+ * This attribute is required for calendar items.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\CalendarItemCreateOrDeleteOperationType
+ */
+ public $SendMeetingInvitations;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateManagedFolderRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateManagedFolderRequestType.php
new file mode 100644
index 00000000..85897304
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateManagedFolderRequestType.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\CreateManagedFolderRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to add managed custom folders to a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class CreateManagedFolderRequestType extends BaseRequestType
+{
+ /**
+ * Contains an array of named managed folders to add to a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFolderNamesType
+ */
+ public $FolderNames;
+
+ /**
+ * Identifies a mail-enabled Active Directory directory service object.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Mailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateUserConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateUserConfigurationType.php
new file mode 100644
index 00000000..114c4c58
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/CreateUserConfigurationType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\CreateUserConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to create a user configuration object.
+ *
+ * @package php-ews\Request
+ */
+class CreateUserConfigurationType extends BaseRequestType
+{
+ /**
+ * Represents a single user configuration object.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserConfigurationType
+ */
+ public $UserConfiguration;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteAttachmentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteAttachmentType.php
new file mode 100644
index 00000000..c6b5a3aa
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteAttachmentType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\DeleteAttachmentType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to delete an attachment from the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class DeleteAttachmentType extends BaseRequestType
+{
+ /**
+ * Contains an array of attachment identifiers that are used to delete the
+ * attachments.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfRequestAttachmentIdsType
+ */
+ public $AttachmentIds;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteFolderType.php
new file mode 100644
index 00000000..74a9d0f5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteFolderType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\DeleteFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to delete folders from a mailbox in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class DeleteFolderType extends BaseRequestType
+{
+ /**
+ * Describes how a folder is deleted. This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DisposalType
+ */
+ public $DeleteType;
+
+ /**
+ * Contains an array of folder identifiers that are used to identify folders
+ * to delete.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $FolderIds;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteItemType.php
new file mode 100644
index 00000000..a36a99b1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteItemType.php
@@ -0,0 +1,84 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\DeleteItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to delete an item from a mailbox in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class DeleteItemType extends BaseRequestType
+{
+ /**
+ * Describes whether a task instance or a task master is deleted by a
+ * DeleteItem operation.
+ *
+ * This attribute is required when tasks are deleted.
+ *
+ * This attribute is optional when non-task items are deleted.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\AffectedTaskOccurrencesType
+ */
+ public $AffectedTaskOccurrences;
+
+ /**
+ * Describes how an item is deleted.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DisposalType
+ */
+ public $DeleteType;
+
+ /**
+ * Contains an array of items, occurrence items, and recurring master items
+ * to delete from a mailbox in the Exchange store.
+ *
+ * The DeleteItem operation can be performed on any item type.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType
+ */
+ public $ItemIds;
+
+ /**
+ * Describes whether a calendar item deletion is communicated to attendees.
+ *
+ * This attribute is required when calendar items are deleted.
+ *
+ * This attribute is optional if non-calendar items are deleted.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\CalendarItemCreateOrDeleteOperationType
+ */
+ public $SendMeetingCancellations;
+
+ /**
+ * Indicates whether read receipts for the deleted item are suppressed.
+ *
+ * A value of true indicates that the read receipts are suppressed. A value
+ * of false indicates that the read receipts are sent to the sender.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $SuppressReadReceipts;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteUserConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteUserConfigurationType.php
new file mode 100755
index 00000000..3e8535a8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DeleteUserConfigurationType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\DeleteUserConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to delete a user configuration object.
+ *
+ * @package php-ews\Request
+ */
+class DeleteUserConfigurationType extends BaseRequestType
+{
+ /**
+ * Represents the name of the user configuration object to delete.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserConfigurationNameType
+ */
+ public $UserConfigurationName;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DisableAppType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DisableAppType.php
new file mode 100644
index 00000000..1c23b15a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DisableAppType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\DisableAppType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to disable an app.
+ *
+ * @package php-ews\Request
+ */
+class DisableAppType extends BaseRequestType
+{
+ /**
+ * Specifies the reason for disabling an app.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DisableReasonType
+ */
+ public $DisableReason;
+
+ /**
+ * Specifies the identifier of an item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ID;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DisconnectPhoneCallType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DisconnectPhoneCallType.php
new file mode 100644
index 00000000..7ea19064
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/DisconnectPhoneCallType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\DisconnectPhoneCallType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to disconnect a call.
+ *
+ * @package php-ews\Request
+ */
+class DisconnectPhoneCallType extends BaseRequestType
+{
+ /**
+ * Specifies the identifier of the call to disconnect.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\PhoneCallIdType
+ */
+ public $PhoneCallId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/EmptyFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/EmptyFolderType.php
new file mode 100644
index 00000000..27505c53
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/EmptyFolderType.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\EmptyFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to empty a folder in a mailbox in the Exchange store.
+ *
+ * Optionally, subfolders can also be deleted when the folder is emptied.
+ *
+ * @package php-ews\Request
+ */
+class EmptyFolderType extends BaseRequestType
+{
+ /**
+ * Specifies whether subfolders are to be deleted.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $DeleteSubFolders;
+
+ /**
+ * Specifies how a folder is emptied.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DisposalType
+ */
+ public $DeleteType;
+
+ /**
+ * Array of folder identifiers that are used to identify folders to delete.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $FolderIds;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ExpandDLType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ExpandDLType.php
new file mode 100644
index 00000000..3fd13660
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ExpandDLType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\ExpandDLType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to expand a distribution list.
+ *
+ * @package php-ews\Request
+ */
+class ExpandDLType extends BaseRequestType
+{
+ /**
+ * Identifies a fully resolved e-mail address of a distribution list.
+ *
+ * This mailbox represents the distribution list to expand.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Mailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ExportItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ExportItemsType.php
new file mode 100644
index 00000000..9d84200a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ExportItemsType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\ExportItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to export items from a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class ExportItemsType extends BaseRequestType
+{
+ /**
+ * Contains an array of item identifiers that identify the items to export
+ * from a mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfItemIdsType
+ */
+ public $ItemIds;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindConversationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindConversationType.php
new file mode 100755
index 00000000..d96a993b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindConversationType.php
@@ -0,0 +1,113 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\FindConversationType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to find conversations in a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class FindConversationType extends BaseRequestType
+{
+ /**
+ * Identifies the property set to return in a FindConversation operation
+ * response.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ConversationShape
+ */
+ public $ConversationShape;
+
+ /**
+ * Describes how paged conversation information is returned.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\IndexedPageViewType
+ */
+ public $IndexedPageItemView;
+
+ /**
+ * Specifies whether a search or fetch for a conversation should span either
+ * the primary mailbox, archive mailbox, or both the primary and archive
+ * mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MailboxSearchLocationType
+ */
+ public $MailboxScope;
+
+ /**
+ * Identifies the folder to search for conversations.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $ParentFolderId;
+
+ /**
+ * Specifies a mailbox query string based on Advanced Query Syntax (AQS).
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\QueryStringType
+ */
+ public $QueryString;
+
+ /**
+ * Specifies the condition that is used to identify the end of a search, the
+ * starting index of a search, the maximum entries to return, and the search
+ * directions for a FindItem or FindConversation search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\SeekToConditionPageViewType
+ */
+ public $SeekToConditionPageItemView;
+
+ /**
+ * Defines how items are sorted in a FindConversation Operation request.
+ *
+ * The conversation:LastDeliveryTime property is the only property that is
+ * supported for sorting when the FindConversation operation is used.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFieldOrdersType
+ */
+ public $SortOrder;
+
+ /**
+ * Identifies the types of sub-tree traversal.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ConversationQueryTraversalType
+ */
+ public $Traversal;
+
+ /**
+ * Identifies the types view filters.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ViewFilterType
+ */
+ public $ViewFilter;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindFolderType.php
new file mode 100644
index 00000000..6b74d7eb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindFolderType.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\FindFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to find folders in a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class FindFolderType extends BaseRequestType
+{
+ /**
+ * Identifies the folder properties to include in a FindFolder response.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderResponseShapeType
+ */
+ public $FolderShape;
+
+ /**
+ * Describes where the paged view starts and the maximum number of folders
+ * returned in a FindFolder request.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FractionalPageViewType
+ */
+ public $FractionalPageFolderView;
+
+ /**
+ * Describes how paged item information is returned in a FindFolder
+ * response.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\IndexedPageViewType
+ */
+ public $IndexedPageFolderView;
+
+ /**
+ * Identifies folders for the FindFolder operation to search.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $ParentFolderIds;
+
+ /**
+ * Defines a restriction or query that is used to filter folders in a
+ * FindFolder operation.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RestrictionType
+ */
+ public $Restriction;
+
+ /**
+ * Defines how a search is performed.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\FolderQueryTraversalType
+ */
+ public $Traversal;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindItemType.php
new file mode 100644
index 00000000..21b47bf6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindItemType.php
@@ -0,0 +1,149 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\FindItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to find items in a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class FindItemType extends BaseRequestType
+{
+ /**
+ * Provides time span limits to define a search for calendar items.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarViewType
+ */
+ public $CalendarView;
+
+ /**
+ * Defines a search for contact items based on alphabetical display names.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactsViewType
+ */
+ public $ContactsView;
+
+ /**
+ * Provides standard groupings for FindItem queries.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DistinguishedGroupByType
+ */
+ public $DistinguishedGroupBy;
+
+ /**
+ * Describes where the paged view starts and the maximum number of items
+ * returned in a FindItem request.
+ *
+ * The paged view offset from the beginning of the set of found items is
+ * described by a fraction.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FractionalPageViewType
+ */
+ public $FractionalPageItemView;
+
+ /**
+ * Specifies arbitrary groupings for FindItem queries.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\GroupByType
+ */
+ public $GroupBy;
+
+ /**
+ * Describes how paged item information is returned for a FindItem request.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\IndexedPageViewType
+ */
+ public $IndexedPageItemView;
+
+ /**
+ * Identifies the item properties and content to include in a FindItem
+ * operation response.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemResponseShapeType
+ */
+ public $ItemShape;
+
+ /**
+ * Identifies folders to search for the FindItem and FindFolder operations.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $ParentFolderIds;
+
+ /**
+ * Contains a mailbox query string based on Advanced Query Syntax (AQS).
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\QueryStringType
+ */
+ public $QueryString;
+
+ /**
+ * Defines the restriction or query that is used to filter items or folders
+ * in FindItem/FindFolder and search folder operations.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RestrictionType
+ */
+ public $Restriction;
+
+ /**
+ * Defines how items are sorted in a FindItem request.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFieldOrdersType
+ */
+ public $SortOrder;
+
+ /**
+ * Defines whether the search finds items in folders or the folders'
+ * dumpsters.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ItemQueryTraversalType
+ */
+ public $Traversal;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindMailboxStatisticsByKeywordsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindMailboxStatisticsByKeywordsType.php
new file mode 100644
index 00000000..65154d09
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindMailboxStatisticsByKeywordsType.php
@@ -0,0 +1,118 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\FindMailboxStatisticsByKeywordsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to search for mailbox statistics by keyword.
+ *
+ * @package php-ews\Request
+ */
+class FindMailboxStatisticsByKeywordsType extends BaseRequestType
+{
+ /**
+ * Specifies the date that the message was sent.Specifies an array of
+ * recipients of a message.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $FromDate;
+
+ /**
+ * Specifies whether to include the personal archive in the search.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IncludePersonalArchive;
+
+ /**
+ * Specifies whether to include items that cannot be searched.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IncludeUnsearchableItems;
+
+ /**
+ * Specifies keywords for a search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Keywords;
+
+ /**
+ * Contains the language used for the search query.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Language;
+
+ /**
+ * Contains an array of mailboxes affected by the hold.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfUserMailboxesType
+ */
+ public $Mailboxes;
+
+ /**
+ * Specifies an array of messages to search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfSearchItemKindsType
+ */
+ public $MessageTypes;
+
+ /**
+ * Specifies an array of recipients of a message.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfSmtpAddressType
+ */
+ public $Recipients;
+
+ /**
+ * Specifies whether to search in deleted items.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $SearchDumpster;
+
+ /**
+ * Specifies an array of SMTP addresses.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfSmtpAddressType
+ */
+ public $Senders;
+
+ /**
+ * Specifies the date that the message was received.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $ToDate;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindMessageTrackingReportRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindMessageTrackingReportRequestType.php
new file mode 100644
index 00000000..c9dfa398
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindMessageTrackingReportRequestType.php
@@ -0,0 +1,141 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\FindMessageTrackingReportRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents criteria for the types of messages to find.
+ *
+ * @package php-ews\Request
+ */
+class FindMessageTrackingReportRequestType extends BaseRequestType
+{
+ /**
+ * Represents the level of detail for diagnostic reports.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $DiagnosticsLevel;
+
+ /**
+ * Contains the name of the domain where the message tracking is executed.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Domain;
+
+ /**
+ * Contains the ending date and time for the search.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $EndDateTime;
+
+ /**
+ * Contains the name of the mailbox where the cross-premise message was
+ * sent.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $FederatedDeliveryMailbox;
+
+ /**
+ * Contains the message identifier for the search.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $MessageId;
+
+ /**
+ * Contains a list of one or more tracking properties.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTrackingPropertiesType
+ */
+ public $Properties;
+
+ /**
+ * Contains contact information for the alleged sender of an e-mail message.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $PurportedSender;
+
+ /**
+ * Contains the e-mail address for the recipient of the message.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Recipient;
+
+ /**
+ * Represents how extensive the message tracking report should be.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\Scope
+ */
+ public $Scope;
+
+ /**
+ * Contains contact information for the sender of the e-mail message.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Sender;
+
+ /**
+ * Represents the starting point for tracking a message in a remote site or
+ * forest.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $ServerHint;
+
+ /**
+ * Contains the starting date and time for the search.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $StartDateTime;
+
+ /**
+ * Contains the subject of the e-mail message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Subject;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindPeopleType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindPeopleType.php
new file mode 100644
index 00000000..6e8c1699
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/FindPeopleType.php
@@ -0,0 +1,113 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\FindPeopleType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a set of data used in a FindPeople request.
+ *
+ * @package php-ews\Request
+ */
+class FindPeopleType extends BaseRequestType
+{
+ /**
+ * Specifies a value that is applied to a set of Persona properties.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\RestrictionType
+ */
+ public $AggregationRestriction;
+
+ /**
+ * Specifies the context properties of the contact.
+ *
+ * @since Exchange 2016
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfContextProperty
+ */
+ public $Context;
+
+ /**
+ * Describes how paged conversation or item information is returned.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\IndexedPageViewType
+ */
+ public $IndexedPageItemView;
+
+ /**
+ * Identifies the folder in which to search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $ParentFolderId;
+
+ /**
+ * Specifies the set of persona properties.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PersonaResponseShapeType
+ */
+ public $PersonaShape;
+
+ /**
+ * Specifies the source data for the query.
+ *
+ * @since Exchange 2016
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPeopleQuerySource
+ */
+ public $QuerySources;
+
+ /**
+ * Contains a mailbox query string based on Advanced Query Syntax (AQS).
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\QueryStringType
+ */
+ public $QueryString;
+
+ /**
+ * Represents the restriction or query that is used to filter items.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\RestrictionType
+ */
+ public $Restriction;
+
+ /**
+ * Internal use only.
+ *
+ * @since Exchange 2016
+ *
+ * @var boolean
+ */
+ public $SearchPeopleSuggestionIndex;
+
+ /**
+ * Defines how items are sorted.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFieldOrdersType
+ */
+ public $SortOrder;
+
+ /**
+ * Specifies the query string for topic searches.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ public $TopicQueryString;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAppManifestsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAppManifestsType.php
new file mode 100644
index 00000000..cc5a4735
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAppManifestsType.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetAppManifestsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Base element for a request to return the manifest for apps.
+ *
+ * @package php-ews\Request
+ */
+class GetAppManifestsType extends BaseRequestType
+{
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPrivateCatalogAddInsType
+ *
+ * @todo Update once documentation exists.
+ */
+ public $AddIns;
+
+ /**
+ * Contains the version of the JavaScript API for Office supported by the
+ * client.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var string
+ */
+ public $ApiVersionSupported;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ * @todo Determine if we need a ListOfExtensionIdsType implementation.
+ */
+ public $ExtensionIds;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var boolean
+ *
+ * @todo Update once documentation exists.
+ */
+ public $IncludeAllInstalledAddIns;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var boolean
+ *
+ * @todo Update once documentation exists.
+ */
+ public $IncludeCustomAppsData;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var boolean
+ *
+ * @todo Update once documentation exists.
+ */
+ public $IncludeEntitlementData;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var boolean
+ *
+ * @todo Update once documentation exists.
+ */
+ public $IncludeManifestData;
+
+ /**
+ * Contains the version of the manifest schema supported by the client.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var string
+ */
+ public $SchemaVersionSupported;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAppMarketplaceUrl.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAppMarketplaceUrl.php
new file mode 100644
index 00000000..ccc8fc29
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAppMarketplaceUrl.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetAppMarketplaceUrl.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to retrieve the URL for the app marketplace.
+ *
+ * @package php-ews\Request
+ */
+class GetAppMarketplaceUrl extends BaseRequestType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAttachmentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAttachmentType.php
new file mode 100755
index 00000000..f373111c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetAttachmentType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetAttachmentType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get an attachment from the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class GetAttachmentType extends BaseRequestType
+{
+ /**
+ * Contains an array of attachment identifiers.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfRequestAttachmentIdsType
+ */
+ public $AttachmentIds;
+
+ /**
+ * Identifies additional extended item properties to return in a response to
+ * a GetAttachment request.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AttachmentResponseShapeType
+ */
+ public $AttachmentShape;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetClientAccessTokenType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetClientAccessTokenType.php
new file mode 100644
index 00000000..345db358
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetClientAccessTokenType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetClientAccessTokenType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get a client access token.
+ *
+ * @package php-ews\Request
+ */
+class GetClientAccessTokenType extends BaseRequestType
+{
+ /**
+ * Contains an array of token requests.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfClientAccessTokenRequestsType
+ */
+ public $TokenRequests;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetConversationItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetConversationItemsType.php
new file mode 100644
index 00000000..5a9f2cc6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetConversationItemsType.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetConversationItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get a set of items that are related by being in the same
+ * conversation.
+ *
+ * @package php-ews\Request
+ */
+class GetConversationItemsType extends BaseRequestType
+{
+ /**
+ * Contains an array of conversations to get items for.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfConversationsType
+ */
+ public $Conversations;
+
+ /**
+ * Identifies a list of folders that are ignored when getting items in a
+ * conversation.
+ *
+ * All conversation items in the ignored folders are not returned in the
+ * response.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $FoldersToIgnore;
+
+ /**
+ * Identifies a set of properties to return.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemResponseShapeType
+ */
+ public $ItemShape;
+
+ /**
+ * Identifies whether a search or fetch for a conversation should span
+ * either the primary mailbox, archive mailbox, or both the primary and
+ * archive mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MailboxSearchLocationType
+ */
+ public $MailboxScope;
+
+ /**
+ * Identifies the maximum number of conversations items to return.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $MaxItemsToReturn;
+
+ /**
+ * Specifies the sort order used for the result.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ConversationNodeSortOrder
+ */
+ public $SortOrder;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetDelegateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetDelegateType.php
new file mode 100644
index 00000000..2d2a1dc9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetDelegateType.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetDelegateType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get information about delegates to a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class GetDelegateType extends BaseDelegateType
+{
+ /**
+ * Indicates whether the response contains permission settings for each
+ * delegate user.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $IncludePermissions;
+
+ /**
+ * Contains an array of delegate users to get from a principal's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfUserIdType
+ */
+ public $UserIds;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetDiscoverySearchConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetDiscoverySearchConfigurationType.php
new file mode 100644
index 00000000..944bc0db
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetDiscoverySearchConfigurationType.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetDiscoverySearchConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to retrieve the eDiscovery search configuration.
+ *
+ * @package php-ews\Request
+ */
+class GetDiscoverySearchConfigurationType extends BaseRequestType
+{
+ /**
+ * Contains a Boolean value that indicates whether to expand the membership
+ * of the group returned from a GetSearchableMailboxes request.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $ExpandGroupMembership;
+
+ /**
+ * Specifies whether to include the in-place hold configuration.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $InPlaceHoldConfigurationOnly;
+
+ /**
+ * Specifies the identifier of the search.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $SearchId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetEventsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetEventsType.php
new file mode 100755
index 00000000..d26dfbde
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetEventsType.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetEventsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents the operation used by pull clients to request notifications from
+ * the server.
+ *
+ * @package php-ews\Request
+ */
+class GetEventsType extends BaseRequestType
+{
+ /**
+ * Represents the identifier for a subscription that is queried for events.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SubscriptionId;
+
+ /**
+ * Represents the last watermark returned to the client.
+ *
+ * If GetEvents has not been called for this subscription, the client uses
+ * the watermark returned from the Subscribe request. Otherwise, the
+ * watermark from the last event in the last GetEvents response is used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Determine if we need a WatermarkType.
+ */
+ public $Watermark;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetFolderType.php
new file mode 100644
index 00000000..40112a26
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetFolderType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get a folder from a mailbox in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class GetFolderType extends BaseRequestType
+{
+ /**
+ * Contains an array of folder identifiers that are used to identify folders
+ * to get from a mailbox in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $FolderIds;
+
+ /**
+ * Identifies the properties to get for each folder identified in the
+ * FolderIds element.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderResponseShapeType
+ */
+ public $FolderShape;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetHoldOnMailboxesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetHoldOnMailboxesType.php
new file mode 100644
index 00000000..05048a76
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetHoldOnMailboxesType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetHoldOnMailboxesType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get the hold status for a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class GetHoldOnMailboxesType extends BaseRequestType
+{
+ /**
+ * Contains the mailbox hold identifier.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $HoldId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetImItemListType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetImItemListType.php
new file mode 100644
index 00000000..c7be93b7
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetImItemListType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetImItemListType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get a list of instant messaging groups and contacts.
+ *
+ * @package php-ews\Request
+ */
+class GetImItemListType extends BaseRequestType
+{
+ /**
+ * Contains any extended properties used for the request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfExtendedFieldURIs
+ */
+ public $ExtendedProperties;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetImItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetImItemsType.php
new file mode 100644
index 00000000..f99da563
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetImItemsType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetImItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get information about the specified instant messaging
+ * groups and instant messaging contact personas.
+ *
+ * @package php-ews\Request
+ */
+class GetImItemsType extends BaseRequestType
+{
+ /**
+ * Contains an array of contact item identifiers.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType
+ */
+ public $ContactIds;
+
+ /**
+ * Identifies an array of instant messaging group identifiers.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType
+ */
+ public $GroupIds;
+
+ /**
+ * Contains the extended properties used for the Unified Contact Store
+ * operations.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfExtendedFieldURIs
+ */
+ public $ExtendedProperties;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetInboxRulesRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetInboxRulesRequestType.php
new file mode 100644
index 00000000..2388eec6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetInboxRulesRequestType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetInboxRulesRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get the Inbox rules on a mailbox in the server store.
+ *
+ * @package php-ews\Request
+ */
+class GetInboxRulesRequestType extends BaseRequestType
+{
+ /**
+ * Represents the SMTP address of the user whose Inbox rules are to be
+ * retrieved.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $MailboxSmtpAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetItemType.php
new file mode 100644
index 00000000..eeb3e7e3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetItemType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get an item from a mailbox in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class GetItemType extends BaseRequestType
+{
+ /**
+ * Contains the unique identities of items, occurrence items, and recurring
+ * master items that are used to get items from the Exchange store.
+ *
+ * These items represent contacts, tasks, messages, calendar items, meeting
+ * requests, and other valid items in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType
+ */
+ public $ItemIds;
+
+ /**
+ * Identifies the item properties and content to include in a GetItem
+ * response.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemResponseShapeType
+ */
+ public $ItemShape;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetMailTipsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetMailTipsType.php
new file mode 100644
index 00000000..06f953ac
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetMailTipsType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetMailTipsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents the recipients and types of mail tips to retrieve.
+ *
+ * @package php-ews\Request
+ */
+class GetMailTipsType extends BaseRequestType
+{
+ /**
+ * Contains the types of mail tips requested from the service.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MailTipTypes
+ */
+ public $MailTipsRequested;
+
+ /**
+ * Contains a list of recipients to check for mail tips.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $Recipients;
+
+ /**
+ * Contains an e-mail address that a user is trying to send as.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $SendingAs;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetMessageTrackingReportRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetMessageTrackingReportRequestType.php
new file mode 100644
index 00000000..227ecc49
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetMessageTrackingReportRequestType.php
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetMessageTrackingReportRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents the request for the GetMessageTrackingReport Operation to retrieve
+ * the full message tracking report for the specified ID.
+ *
+ * @package php-ews\Request
+ */
+class GetMessageTrackingReportRequestType extends BaseRequestType
+{
+ /**
+ * Specifies where to perform the search.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\Scope
+ */
+ public $Scope;
+
+ /**
+ * Specifies the type of tracking report to retrieve.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MessageTrackingReportTemplateType
+ */
+ public $ReportTemplate;
+
+ /**
+ * Specifies a recipient address to use with the specified tracking report.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $RecipientFilter;
+
+ /**
+ * Specifies an identity string that was obtained from the
+ * FindMessageTrackingReport operation.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $MessageTrackingReportId;
+
+ /**
+ * Specifies that the person who is running the task has a privileged role.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $ReturnQueueEvents;
+
+ /**
+ * Specifies timing and performance information that will be used to derive
+ * the tracking report. This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $DiagnosticsLevel;
+
+ /**
+ * Specifies a list of one or more tracking properties.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTrackingPropertiesType
+ */
+ public $Properties;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetNonIndexableItemDetailsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetNonIndexableItemDetailsType.php
new file mode 100644
index 00000000..7e05ca98
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetNonIndexableItemDetailsType.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetNonIndexableItemDetailsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to retrieve non-indexable item details.
+ *
+ * @package php-ews\Request
+ */
+class GetNonIndexableItemDetailsType extends BaseRequestType
+{
+ /**
+ * Specifies an array of Mailbox elements.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayofLegacyDNsType
+ */
+ public $Mailboxes;
+
+ /**
+ * Contains the direction for pagination in the search result.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SearchPageDirectionType
+ */
+ public $PageDirection;
+
+ /**
+ * Specifies the reference for a page item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $PageItemReference;
+
+ /**
+ * Contains the number of items to be returned in a single page for a search
+ * result.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $PageSize;
+
+ /**
+ * Whether or not to search archive folders only.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $SearchArchiveOnly;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetNonIndexableItemStatisticsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetNonIndexableItemStatisticsType.php
new file mode 100644
index 00000000..f9183000
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetNonIndexableItemStatisticsType.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetNonIndexableItemStatisticsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to retrieve non-indexable item statistics.
+ *
+ * @package php-ews\Request
+ */
+class GetNonIndexableItemStatisticsType extends BaseRequestType
+{
+ /**
+ * Specifies an array of Mailbox elements.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayofLegacyDNsType
+ */
+ public $Mailboxes;
+
+ /**
+ * Whether or not to search archive folders only.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $SearchArchiveOnly;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPasswordExpirationDateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPasswordExpirationDateType.php
new file mode 100644
index 00000000..99f1266a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPasswordExpirationDateType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetPasswordExpirationDateType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get the password expiration date for an email account.
+ *
+ * @package php-ews\Request
+ */
+class GetPasswordExpirationDateType extends BaseRequestType
+{
+ /**
+ * Represents the email address of the email account for which the password
+ * expiration date is to be returned.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ public $MailboxSmtpAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPersonaType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPersonaType.php
new file mode 100644
index 00000000..9b4b7e39
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPersonaType.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetPersonaType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get a persona.
+ *
+ * @package php-ews\Request
+ */
+class GetPersonaType extends BaseRequestType
+{
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPathsToElementType
+ *
+ * @todo Update once documentation exists.
+ */
+ public $AdditionalProperties;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ *
+ * @todo Update once documentation exists.
+ */
+ public $EmailAddress;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $ItemLinkId;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ *
+ * @todo Update once documentation exists.
+ */
+ public $ParentFolderId;
+
+ /**
+ * Specifies the persona identifier for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $PersonaId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPhoneCallInformationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPhoneCallInformationType.php
new file mode 100644
index 00000000..27fb10fb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetPhoneCallInformationType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetPhoneCallInformationType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to get telephone call information.
+ *
+ * @package php-ews\Request
+ */
+class GetPhoneCallInformationType extends BaseRequestType
+{
+ /**
+ * Specifies the identifier of a phone call.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\PhoneCallIdType
+ */
+ public $PhoneCallId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRemindersType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRemindersType.php
new file mode 100644
index 00000000..ffeddb99
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRemindersType.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetRemindersType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get reminders.
+ *
+ * @package php-ews\Request
+ */
+class GetRemindersType extends BaseRequestType
+{
+ /**
+ * Specifies the beginning of the time span to query for reminders.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $BeginTime;
+
+ /**
+ * Represents the end of the time span to query for reminders.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $EndTime;
+
+ /**
+ * Specifies the maximum number of items to return in the request.
+ *
+ * This number cannot be less than zero or greater than 200.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $MaxItems;
+
+ /**
+ * Specifies the type of reminders to return.
+ *
+ * Possible values are All, Current, or Old.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ReminderType;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRoomListsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRoomListsType.php
new file mode 100644
index 00000000..0f18625f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRoomListsType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetRoomListsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request for a list of email addresses that represent a list of
+ * available rooms.
+ *
+ * @package php-ews\Request
+ */
+class GetRoomListsType extends BaseRequestType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRoomsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRoomsType.php
new file mode 100755
index 00000000..9a4c634a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetRoomsType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetRoomsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to get a list of rooms within a particular room list.
+ *
+ * @package php-ews\Request
+ */
+class GetRoomsType extends BaseRequestType
+{
+ /**
+ * Represents an e-mail address that identifies a list of meeting rooms.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $RoomList;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSearchableMailboxesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSearchableMailboxesType.php
new file mode 100644
index 00000000..a48d24fb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSearchableMailboxesType.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetSearchableMailboxesType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get a list of mailboxes that the client has permission
+ * to perform an eDiscovery search on.
+ *
+ * @package php-ews\Request
+ */
+class GetSearchableMailboxesType extends BaseRequestType
+{
+ /**
+ * Indicates whether to expand the membership of the group.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $ExpandGroupMembership;
+
+ /**
+ * Contains the query string to filter the mailboxes to be returned.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $SearchFilter;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetServerTimeZonesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetServerTimeZonesType.php
new file mode 100644
index 00000000..7e95fefb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetServerTimeZonesType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetServerTimeZonesType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to retrieve time zone definitions from the Exchange
+ * server.
+ *
+ * @package php-ews\Request
+ */
+class GetServerTimeZonesType extends BaseRequestType
+{
+ /**
+ * Contains an array of time zone definition identifiers that specifies the
+ * requested time zone definitions.
+ *
+ * This element is optional.
+ *
+ * If this element is not included in the GetServerTimeZones operation
+ * request, all time zone definitions that are available on the server are
+ * returned in the response.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfTimeZoneIdType
+ */
+ public $Ids;
+
+ /**
+ * Specifies whether the GetServerTimeZones operation returns the complete
+ * definition or only the name and identifier for each time zone.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $ReturnFullTimeZoneData = true;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetServiceConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetServiceConfigurationType.php
new file mode 100644
index 00000000..b0a5afdc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetServiceConfigurationType.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetServiceConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a GetServiceConfiguration request.
+ *
+ * @package php-ews\Request
+ */
+class GetServiceConfigurationType extends BaseRequestType
+{
+ /**
+ * Identifies who the caller is sending as.
+ *
+ * This element is optional.
+ *
+ * If this element is not present, the authenticated user is assumed to be
+ * the sender. The ActingAs element must be included for requesting sender
+ * hints. An ErrorInvalidArgument error can be returned in a response if the
+ * ActingAs element is missing, does not include a routing type, does not
+ * include an e-mail address, contains an invalid e-mail address, does not
+ * resolve to a user in Active Directory Domain Services (AD DS), or
+ * resolves to multiple users in AD DS.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $ActingAs;
+
+ /**
+ * Contains the requested service configurations.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfServiceConfigurationType
+ */
+ public $RequestedConfiguration;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSharingFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSharingFolderType.php
new file mode 100644
index 00000000..a2e1eb97
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSharingFolderType.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetSharingFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get the local folder identifier of a specified shared
+ * folder.
+ *
+ * @package php-ews\Request
+ */
+class GetSharingFolderType extends BaseRequestType
+{
+ /**
+ * Describes the type of data that is shared by a shared folder.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SharingDataType
+ */
+ public $DataType;
+
+ /**
+ * Represents the identifier of the shared folder whose local folder
+ * identifier should be returned.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $SharedFolderId;
+
+ /**
+ * Represents the SMTP e-mail address of the other party in the sharing
+ * relationship.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $SmtpAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSharingMetadataType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSharingMetadataType.php
new file mode 100644
index 00000000..62555bb1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetSharingMetadataType.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetSharingMetadataType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to get an opaque authentication token that identifies the
+ * sharing invitation.
+ *
+ * @package php-ews\Request
+ */
+class GetSharingMetadataType extends BaseRequestType
+{
+ /**
+ * Represents the identifier of the folder on the server that will be
+ * shared.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $IdOfFolderToShare;
+
+ /**
+ * Represents the SMTP email addresses of one or more entities that will be
+ * granted access to the data in the folder that is identified by the
+ * IdOfFolderToShare element.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfSmtpAddressType
+ */
+ public $Recipients;
+
+ /**
+ * Represents the SMTP email address that corresponds to the mailbox that
+ * contains the folder that is identified by the IdOfFolderToShare element.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $SenderSmtpAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetStreamingEventsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetStreamingEventsType.php
new file mode 100644
index 00000000..ffc901e1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetStreamingEventsType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetStreamingEventsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents the operation that is used by clients to request streaming
+ * notifications from the server.
+ *
+ * @package php-ews\Request
+ */
+class GetStreamingEventsType extends BaseRequestType
+{
+ /**
+ * Represents the number of minutes to keep a connection open.
+ *
+ * The value must be between 1 and 30, inclusive.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var integer
+ */
+ public $ConnectionTimeout;
+
+ /**
+ * Represents the identifier for a subscription that is queried for events.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfSubscriptionIdsType
+ */
+ public $SubscriptionId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserAvailabilityRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserAvailabilityRequestType.php
new file mode 100644
index 00000000..da9b7c19
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserAvailabilityRequestType.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetUserAvailabilityRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines the arguments used to obtain user availability information.
+ *
+ * @package php-ews\Request
+ */
+class GetUserAvailabilityRequestType extends BaseRequestType
+{
+ /**
+ * Specifies the type of free/busy information returned in the response.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FreeBusyViewOptionsType
+ */
+ public $FreeBusyViewOptions;
+
+ /**
+ * Contains a list of mailboxes to query for availability information.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfMailboxData
+ */
+ public $MailboxDataArray;
+
+ /**
+ * Contains the options for obtaining meeting suggestion information.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SuggestionsViewOptionsType
+ */
+ public $SuggestionsViewOptions;
+
+ /**
+ * Contains elements that identify time zone information.
+ *
+ * This element also contains information about the transition between
+ * standard time and daylight saving time.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SerializableTimeZone
+ */
+ public $TimeZone;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserConfigurationType.php
new file mode 100644
index 00000000..061054e0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserConfigurationType.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetUserConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to get a user configuration object.
+ *
+ * @package php-ews\Request
+ */
+class GetUserConfigurationType extends BaseRequestType
+{
+ /**
+ * Represents the name of a user configuration object.
+ *
+ * This element must be present in a GetUserConfiguration request.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserConfigurationNameType
+ */
+ public $UserConfigurationName;
+
+ /**
+ * Specifies the user configuration property types to return.
+ *
+ * This element must be present in a GetUserConfiguration request.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\UserConfigurationPropertyType
+ */
+ public $UserConfigurationProperties;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserOofSettingsRequest.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserOofSettingsRequest.php
new file mode 100644
index 00000000..6b9c5c55
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserOofSettingsRequest.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetUserOofSettingsRequest.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines the arguments used to get a mailbox user's Out of Office (OOF)
+ * settings.
+ *
+ * @package php-ews\Request
+ */
+class GetUserOofSettingsRequest extends BaseRequestType
+{
+ /**
+ * Identifies the mailbox user for the request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Mailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserPhotoType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserPhotoType.php
new file mode 100644
index 00000000..d4dffd86
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserPhotoType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetUserPhotoType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines the request to get a user’s photo.
+ *
+ * @package php-ews\Request
+ */
+class GetUserPhotoType extends BaseRequestType
+{
+ /**
+ * Identifies the email address of the user whose photo is requested.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Email;
+
+ /**
+ * Contains the requested photo size.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\UserPhotoSizeType
+ */
+ public $SizeRequested;
+
+ /**
+ * Specifies the type of a user photo.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\UserPhotoTypeType
+ */
+ public $TypeRequested;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserRetentionPolicyTagsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserRetentionPolicyTagsType.php
new file mode 100644
index 00000000..c2c6edc4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/GetUserRetentionPolicyTagsType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\GetUserRetentionPolicyTagsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines the request to get the retention tags associated with the user.
+ *
+ * @package php-ews\Request
+ */
+class GetUserRetentionPolicyTagsType extends BaseRequestType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/InstallAppType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/InstallAppType.php
new file mode 100644
index 00000000..0a7217bc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/InstallAppType.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\InstallAppType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines the request to install an app.
+ *
+ * @package php-ews\Request
+ */
+class InstallAppType extends BaseRequestType
+{
+ /**
+ * Contains the base64-encoded app manifest file.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $Manifest;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $ManifestUrl;
+
+ /**
+ * The asset id of the addin in the marketplace
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ public $MarketplaceAssetId;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $MarketplaceContentMarket;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var boolean
+ *
+ * @todo Update once documentation exists.
+ */
+ public $SendWelcomeEmail;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MarkAllItemsAsRead.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MarkAllItemsAsRead.php
new file mode 100644
index 00000000..135694dd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MarkAllItemsAsRead.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\MarkAllItemsAsRead.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to mark all the items in a folder as read.
+ *
+ * @package php-ews\Request
+ */
+class MarkAllItemsAsRead extends BaseRequestType
+{
+ /**
+ * Contains an array of folder identifiers that are used to identify folders
+ * mark items within.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $FolderIds;
+
+ /**
+ * Indicates the read state to set on items in a folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $ReadFlag;
+
+ /**
+ * Indicates whether read receipts should be suppressed.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $SuppressReadReceipts;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MarkAsJunkType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MarkAsJunkType.php
new file mode 100644
index 00000000..979517cd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MarkAsJunkType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\MarkAsJunkType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines the request to move an item to the junk mail folder and to add the
+ * sender to the blocked sender list.
+ *
+ * @package php-ews\Request
+ */
+class MarkAsJunkType extends BaseRequestType
+{
+ /**
+ * Whether or not to add the sender to the blocked sender list.
+ *
+ * If false, and the user is already on the blocked sender list, they will
+ * be removed.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsJunk;
+
+ /**
+ * Contains the unique identities of items to be marked as junk.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType
+ */
+ public $ItemIds;
+
+ /**
+ * Whether or not to move the item to the default junk mail folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $MoveItem;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MoveFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MoveFolderType.php
new file mode 100644
index 00000000..a9f3da47
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MoveFolderType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\MoveFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to move a folder in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class MoveFolderType extends BaseMoveCopyFolderType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MoveItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MoveItemType.php
new file mode 100644
index 00000000..82ce59ec
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/MoveItemType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\MoveItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to move an item in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class MoveItemType extends BaseMoveCopyItemType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/PerformReminderActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/PerformReminderActionType.php
new file mode 100644
index 00000000..33d56ee0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/PerformReminderActionType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\PerformReminderActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to perform a reminder action.
+ *
+ * @package php-ews\Request
+ */
+class PerformReminderActionType extends BaseRequestType
+{
+ /**
+ * Specifies the actions for reminder items.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfReminderItemActionType
+ */
+ public $ReminderItemActions;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/PlayOnPhoneType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/PlayOnPhoneType.php
new file mode 100644
index 00000000..4dea5cb2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/PlayOnPhoneType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\PlayOnPhoneType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to read an item on a phone.
+ *
+ * @package php-ews\Request
+ */
+class PlayOnPhoneType extends BaseRequestType
+{
+ /**
+ * Represents the dial string of the phone number that is called to play an
+ * item by phone.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $DialString;
+
+ /**
+ * Represents the identifier of an item to play on a phone.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RefreshSharingFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RefreshSharingFolderType.php
new file mode 100644
index 00000000..32829590
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RefreshSharingFolderType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\RefreshSharingFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to refresh the specified local folder.
+ *
+ * @package php-ews\Request
+ */
+class RefreshSharingFolderType extends BaseRequestType
+{
+ /**
+ * Represents the identifier of the local folder in a sharing relationship.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $SharingFolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveContactFromImListType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveContactFromImListType.php
new file mode 100644
index 00000000..2beb6a2a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveContactFromImListType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\RemoveContactFromImListType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to remove an instant messaging contact from all instant
+ * messaging groups.
+ *
+ * @package php-ews\Request
+ */
+class RemoveContactFromImListType extends BaseRequestType
+{
+ /**
+ * Uniquely identifies a contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ContactId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveDelegateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveDelegateType.php
new file mode 100755
index 00000000..9f7273eb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveDelegateType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\RemoveDelegateType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to remove delegates from a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class RemoveDelegateType extends BaseDelegateType
+{
+ /**
+ * Contains an array of delegate users to remove from a principal's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfUserIdType
+ */
+ public $UserIds;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveDistributionGroupFromImListType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveDistributionGroupFromImListType.php
new file mode 100644
index 00000000..74d2b014
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveDistributionGroupFromImListType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\RemoveDistributionGroupFromImListType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to remove a specific instant messaging distribution list
+ * group.
+ *
+ * @package php-ews\Request
+ */
+class RemoveDistributionGroupFromImListType extends BaseRequestType
+{
+ /**
+ * Identifies the distribution group to be removed.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $GroupId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveImContactFromGroupType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveImContactFromGroupType.php
new file mode 100644
index 00000000..604dc8ab
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveImContactFromGroupType.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\RemoveImContactFromGroupType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to remove an instant messaging contact from an instant
+ * messaging group.
+ *
+ * @package php-ews\Request
+ */
+class RemoveImContactFromGroupType extends BaseRequestType
+{
+ /**
+ * Identifies the contact to be removed.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ContactId;
+
+ /**
+ * Identifies the group to remove the contact from.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $GroupId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveImGroupType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveImGroupType.php
new file mode 100644
index 00000000..1e0f0150
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/RemoveImGroupType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\RemoveImGroupType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to remove an instant messaging group.
+ *
+ * @package php-ews\Request
+ */
+class RemoveImGroupType extends BaseRequestType
+{
+ /**
+ * Identifies the group to be removed.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $GroupId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ResolveNamesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ResolveNamesType.php
new file mode 100644
index 00000000..bb86932e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/ResolveNamesType.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\ResolveNamesType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to resolve ambiguous names.
+ *
+ * @package php-ews\Request
+ */
+class ResolveNamesType extends BaseRequestType
+{
+ /**
+ * Identifies the property set returned for contacts.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DefaultShapeNamesType
+ */
+ public $ContactDataShape;
+
+ /**
+ * Contains an array of contact folder identifiers that would be searched if
+ * the SearchScope attribute is set to ActiveDirectoryContacts, Contacts, or
+ * ContactsActiveDirectory.
+ *
+ * The ParentFolderIds array can only contain a single contact folder
+ * identifier. If the ParentFolderIds element is not present, the default
+ * Contacts folder is searched.
+ *
+ * The folder identifier can be used for delegate access.
+ *
+ * Active Directory searches are performed by using access control lists
+ * (ACLs). Some users might not have the rights to see some Active Directory
+ * objects.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $ParentFolderIds;
+
+ /**
+ * Describes whether the full contact details for public contacts for a
+ * resolved name are returned in the response.
+ *
+ * This attribute is required for public contacts. This value does not
+ * affect private contacts and private distribution lists, for which ItemId
+ * is always returned.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $ReturnFullContactData;
+
+ /**
+ * Identifies the order and scope for a ResolveNames search.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ResolveNamesSearchScopeType
+ */
+ public $SearchScope;
+
+ /**
+ * Contains the name of a contact or distribution list to resolve.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $UnresolvedEntry;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SearchMailboxesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SearchMailboxesType.php
new file mode 100644
index 00000000..0664cf84
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SearchMailboxesType.php
@@ -0,0 +1,104 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\SearchMailboxesType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a SearchMailboxes request.
+ *
+ * @package php-ews\Request
+ */
+class SearchMailboxesType extends BaseRequestType
+{
+ /**
+ * Indicates whether the search result should remove duplicate items.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $Deduplication;
+
+ /**
+ * Contains the language used for the search query.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Language;
+
+ /**
+ * Contains the direction for pagination in the search result.
+ *
+ * The value is Previous or Next.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SearchPageDirectionType
+ */
+ public $PageDirection;
+
+ /**
+ * Specifies the reference for a page item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $PageItemReference;
+
+ /**
+ * Contains the number of items to be returned in a single page for a search
+ * result.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $PageSize;
+
+ /**
+ * Contains the requested property set to be returned in a discovery search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PreviewItemResponseShapeType
+ */
+ public $PreviewItemResponseShape;
+
+ /**
+ * Contains the type of search to perform.
+ *
+ * The type of search can be statistics only or preview only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SearchResultType
+ */
+ public $ResultType;
+
+ /**
+ * Contains a list of mailboxes and associated queries for discovery search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfMailboxQueriesType
+ */
+ public $SearchQueries;
+
+ /**
+ * Contains an item property used for sorting the search result.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\FieldOrderType
+ */
+ public $SortBy;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SendItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SendItemType.php
new file mode 100755
index 00000000..b642082e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SendItemType.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\SendItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to send an item in the Exchange store.
+ *
+ * @package php-ews\Request
+ */
+class SendItemType extends BaseRequestType
+{
+ /**
+ * Contains the unique identities of items, occurrence items, and recurring
+ * master items that are used to delete, send, get, move, or copy items in
+ * the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType
+ */
+ public $ItemIds;
+
+ /**
+ * Identifies the target folder for operations that update, send, and create
+ * items in the Exchange store.
+ *
+ * The save action depends on the value of SaveItemToFolder and whether a
+ * SavedItemFolderId element is present in the request.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $SaveItemToFolder;
+
+ /**
+ * Identifies whether a copy of the sent item is saved.
+ *
+ * The save action depends on the value of SaveItemToFolder and whether a
+ * SavedItemFolderId element is present in the request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $SavedItemFolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetHoldOnMailboxesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetHoldOnMailboxesType.php
new file mode 100644
index 00000000..071f0f0e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetHoldOnMailboxesType.php
@@ -0,0 +1,98 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\SetHoldOnMailboxesType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to set a mailbox hold policy on mailboxes.
+ *
+ * @package php-ews\Request
+ */
+class SetHoldOnMailboxesType extends BaseRequestType
+{
+ /**
+ * Indicates the type of action for the hold.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\HoldActionType
+ */
+ public $ActionType;
+
+ /**
+ * Indicates whether the search result should remove duplicate items.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $Deduplication;
+
+ /**
+ * Contains the mailbox hold identifier.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $HoldId;
+
+ /**
+ * Specifies the identity of a hold that preserves the mailbox items.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $InPlaceHoldIdentity;
+
+ /**
+ * Indicates whether to include items that cannot be indexed.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IncludeNonIndexableItems;
+
+ /**
+ * Specifies the amount of time to hold content that matches the mailbox
+ * query.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var string
+ */
+ public $ItemHoldPeriod;
+
+ /**
+ * Contains the language used for the search query.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Language;
+
+ /**
+ * Contains a list of mailboxes affected by the hold.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Mailboxes;
+
+ /**
+ * Contains the search query for the hold.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Query;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetImGroupType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetImGroupType.php
new file mode 100644
index 00000000..71153412
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetImGroupType.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\SetImGroupType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to change the display name of an instant messaging group.
+ *
+ * @package php-ews\Request
+ */
+class SetImGroupType extends BaseRequestType
+{
+ /**
+ * Identifies the instant messaging group to be updated.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $GroupId;
+
+ /**
+ * Contains the updated display name of an instant messaging group.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $NewDisplayName;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetUserOofSettingsRequest.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetUserOofSettingsRequest.php
new file mode 100644
index 00000000..ade0952c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SetUserOofSettingsRequest.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\SetUserOofSettingsRequest.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines the arguments used to set a mailbox user's Out of Office (OOF)
+ * settings.
+ *
+ * @package php-ews\Request
+ */
+class SetUserOofSettingsRequest extends BaseRequestType
+{
+ /**
+ * Identifies the mailbox user for a SetUserOofSettings or
+ * GetUserOofSettings request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Mailbox;
+
+ /**
+ * Specifies the OOF settings.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserOofSettings
+ */
+ public $UserOofSettings;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SubscribeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SubscribeType.php
new file mode 100644
index 00000000..4c46c08c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SubscribeType.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\SubscribeType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines the properties used to create subscriptions.
+ *
+ * @package php-ews\Request
+ */
+class SubscribeType extends BaseRequestType
+{
+ /**
+ * Represents a subscription to a pull-based event notification.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PullSubscriptionRequestType
+ */
+ public $PullSubscriptionRequest;
+
+ /**
+ * Represents a subscription to a push-based event notification.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PushSubscriptionRequestType
+ */
+ public $PushSubscriptionRequest;
+
+ /**
+ * Represents a subscription to a streaming event notification.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\StreamingSubscriptionRequest
+ */
+ public $StreamingSubscriptionRequest;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SyncFolderHierarchyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SyncFolderHierarchyType.php
new file mode 100644
index 00000000..72a595ae
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SyncFolderHierarchyType.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\SyncFolderHierarchyType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to synchronize a folder hierarchy on a client.
+ *
+ * @package php-ews\Request
+ */
+class SyncFolderHierarchyType extends BaseRequestType
+{
+ /**
+ * Identifies the folder properties to include in a SyncFolderHierarchy
+ * response.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderResponseShapeType
+ */
+ public $FolderShape;
+
+ /**
+ * Represents the folder that contains the items to synchronize.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $SyncFolderId;
+
+ /**
+ * Contains a base64-encoded form of the synchronization data that is
+ * updated after each successful request.
+ *
+ * This is used to identify the synchronization state.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SyncState;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SyncFolderItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SyncFolderItemsType.php
new file mode 100644
index 00000000..ccf088d7
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/SyncFolderItemsType.php
@@ -0,0 +1,88 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\SyncFolderItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to synchronize items in an Exchange store folder.
+ *
+ * @package php-ews\Request
+ */
+class SyncFolderItemsType extends BaseRequestType
+{
+ /**
+ * Identifies items to skip during synchronization.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfBaseItemIdsType
+ */
+ public $Ignore;
+
+ /**
+ * Identifies the item properties and content to include in a
+ * SyncFolderItems response.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemResponseShapeType
+ */
+ public $ItemShape;
+
+ /**
+ * Describes the maximum number of changes that can be returned in a
+ * synchronization response.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $MaxChangesReturned;
+
+ /**
+ * Represents the folder that contains the items to synchronize.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $SyncFolderId;
+
+ /**
+ * Specifies whether just items or items and folder associated information
+ * are returned in a synchronization response.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SyncFolderItemsScopeType
+ */
+ public $SyncScope;
+
+ /**
+ * Contains a base64-encoded form of the synchronization data that is
+ * updated after each successful request.
+ *
+ * This is used to identify the synchronization state.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SyncState;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UninstallAppType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UninstallAppType.php
new file mode 100644
index 00000000..1384f27e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UninstallAppType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\UninstallAppType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to uninstall an app by its identifier.
+ *
+ * @package php-ews\Request
+ */
+class UninstallAppType extends BaseRequestType
+{
+ /**
+ * Specifies the identifier of an app.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ID;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UnsubscribeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UnsubscribeType.php
new file mode 100644
index 00000000..d75ab3f3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UnsubscribeType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\UnsubscribeType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines the properties used to unsubscribe from a subscription.
+ *
+ * @package php-ews\Request
+ */
+class UnsubscribeType extends BaseRequestType
+{
+ /**
+ * Represents the identifier for a subscription.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SubscriptionId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateDelegateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateDelegateType.php
new file mode 100755
index 00000000..e6489af3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateDelegateType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\UpdateDelegateType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to update delegates in a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class UpdateDelegateType extends BaseDelegateType
+{
+ /**
+ * Contains an array of DelegateUser elements that identify the delegates
+ * and the updates to apply to the delegates.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfDelegateUserType
+ */
+ public $DelegateUsers;
+
+ /**
+ * Defines how meeting requests are handled between the delegate and the
+ * principal.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DeliverMeetingRequestsType
+ */
+ public $DeliverMeetingRequests;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateFolderType.php
new file mode 100644
index 00000000..fc466ee0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateFolderType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\UpdateFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents the operation that is used to update properties for a specified
+ * folder.
+ *
+ * @package php-ews\Request
+ */
+class UpdateFolderType extends BaseRequestType
+{
+ /**
+ * Contains a collection of changes for a specified folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFolderChangesType
+ */
+ public $FolderChanges;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateInboxRulesRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateInboxRulesRequestType.php
new file mode 100755
index 00000000..aad7509d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateInboxRulesRequestType.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\UpdateInboxRulesRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to update the Inbox rules in a mailbox in the server store.
+ *
+ * @package php-ews\Request
+ */
+class UpdateInboxRulesRequestType extends BaseRequestType
+{
+ /**
+ * Represents the SMTP address of the user whose Inbox rules are to be
+ * created, modified, or deleted.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $MailboxSmtpAddress;
+
+ /**
+ * Contains an array of rule operations that can be performed on an Inbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRuleOperationsType
+ */
+ public $Operations;
+
+ /**
+ * Indicates whether to remove the Microsoft Outlook rule blob.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var boolean
+ */
+ public $RemoveOutlookRuleBlob;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateItemType.php
new file mode 100644
index 00000000..9f7fa07c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateItemType.php
@@ -0,0 +1,93 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\UpdateItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Defines a request to update an item in a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class UpdateItemType extends BaseRequestType
+{
+ /**
+ * Identifies the type of conflict resolution to try during an update.
+ *
+ * The default value is AutoResolve.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ConflictResolutionType
+ */
+ public $ConflictResolution;
+
+ /**
+ * Contains an array of ItemChange elements that identify items and the
+ * updates to apply to the items.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfItemChangesType
+ */
+ public $ItemChanges;
+
+ /**
+ * Describes how the item will be handled after it is updated.
+ *
+ * he MessageDisposition attribute is required for message items, including
+ * meeting messages such as meeting cancellations, meeting requests, and
+ * meeting responses.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MessageDispositionType
+ */
+ public $MessageDisposition;
+
+ /**
+ * Identifies the target folder for operations that update, send, and create
+ * items in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $SavedItemFolderId;
+
+ /**
+ * Describes how meeting updates are communicated after a calendar item is
+ * updated.
+ *
+ * This attribute is required for calendar items and calendar item
+ * occurrences.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\CalendarItemUpdateOperationType
+ */
+ public $SendMeetingInvitationsOrCancellations;
+
+ /**
+ * Indicates whether read receipts for the updated item should be
+ * suppressed.
+ *
+ * A value of true indicates that read receipts should be suppressed. A
+ * value of false indicates that the read receipts will be sent to the
+ * sender.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var boolean
+ */
+ public $SuppressReadReceipts;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateUserConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateUserConfigurationType.php
new file mode 100644
index 00000000..c578d475
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UpdateUserConfigurationType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\UpdateUserConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to update a user configuration object.
+ *
+ * @package php-ews\Request
+ */
+class UpdateUserConfigurationType extends BaseRequestType
+{
+ /**
+ * Defines a single user configuration object.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserConfigurationType
+ */
+ public $UserConfiguration;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UploadItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UploadItemsType.php
new file mode 100644
index 00000000..7f646f6c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Request/UploadItemsType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Request\UploadItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\Request;
+
+/**
+ * Represents a request to upload items into a mailbox.
+ *
+ * @package php-ews\Request
+ */
+class UploadItemsType extends BaseRequestType
+{
+ /**
+ * Contains an array of items to upload into a mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfUploadItemsType
+ */
+ public $Items;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response.php
new file mode 100644
index 00000000..22d882f4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response.
+ */
+
+namespace jamesiarmes\PhpEws;
+
+/**
+ * Base class for Exchange Web Service responses.
+ *
+ * @package php-ews\Response
+ */
+abstract class Response extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddDelegateResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddDelegateResponseMessageType.php
new file mode 100644
index 00000000..b43bb6cd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddDelegateResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\AddDelegateResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Contains the status and result of an AddDelegate Operation request.
+ *
+ * @package php-ews\Response
+ */
+class AddDelegateResponseMessageType extends BaseDelegateResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddDistributionGroupToImListResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddDistributionGroupToImListResponseMessageType.php
new file mode 100644
index 00000000..f4f0cb5f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddDistributionGroupToImListResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\AddDistributionGroupToImListResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a AddDistributionGroupToImList request.
+ *
+ * @package php-ews\Response
+ */
+class AddDistributionGroupToImListResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Represents an instant messaging group.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ImGroupType
+ */
+ public $ImGroup;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddImContactToGroupResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddImContactToGroupResponseMessageType.php
new file mode 100644
index 00000000..7a1acbe1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddImContactToGroupResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\AddImContactToGroupResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to an AddImContactToGroup request.
+ *
+ * @package php-ews\Response
+ */
+class AddImContactToGroupResponseMessageType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddImGroupResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddImGroupResponseMessageType.php
new file mode 100644
index 00000000..38852cfb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddImGroupResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\AddImGroupResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to an AddImGroup request.
+ *
+ * @package php-ews\Response
+ */
+class AddImGroupResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Represents the new instant messaging group.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ImGroupType
+ */
+ public $ImGroup;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddNewImContactToGroupResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddNewImContactToGroupResponseMessageType.php
new file mode 100644
index 00000000..1d15c057
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddNewImContactToGroupResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\AddNewImContactToGroupResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to an AddNewImContactToGroup request.
+ *
+ * @package php-ews\Response
+ */
+class AddNewImContactToGroupResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies a set of persona data.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PersonaType
+ */
+ public $Persona;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddNewTelUriContactToGroupResponse.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddNewTelUriContactToGroupResponse.php
new file mode 100644
index 00000000..58bdf82d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AddNewTelUriContactToGroupResponse.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\AddNewTelUriContactToGroupResponse.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the result data for a AddNewTelUriContactToGroup request.
+ *
+ * @package php-ews\Response
+ */
+class AddNewTelUriContactToGroupResponse extends ResponseMessageType
+{
+ /**
+ * Specifies a set of persona data returned by a
+ * AddNewTelUriContactToGroupType request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PersonaType
+ */
+ public $Persona;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ApplyConversationActionResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ApplyConversationActionResponseMessageType.php
new file mode 100644
index 00000000..3a6c00f8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ApplyConversationActionResponseMessageType.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ApplyConversationActionResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and results of an ApplyConversationAction operation
+ * request.
+ *
+ * @package php-ews\Response
+ *
+ * @todo Is this class needed?
+ */
+class ApplyConversationActionResponseMessageType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ApplyConversationActionResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ApplyConversationActionResponseType.php
new file mode 100644
index 00000000..e808747c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ApplyConversationActionResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ApplyConversationActionResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to an ApplyConversationAction operation request.
+ *
+ * @package php-ews\Response
+ */
+class ApplyConversationActionResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ArchiveItemResponse.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ArchiveItemResponse.php
new file mode 100644
index 00000000..fb2c61b7
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ArchiveItemResponse.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ArchiveItemResponse.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to an ArchiveItem request.
+ *
+ * @package php-ews\Response
+ */
+class ArchiveItemResponse extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AttachmentInfoResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AttachmentInfoResponseMessageType.php
new file mode 100644
index 00000000..38712f1b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/AttachmentInfoResponseMessageType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\AttachmentInfoResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single CreateAttachment operation
+ * request.
+ *
+ * @package php-ews\Response
+ */
+class AttachmentInfoResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains the items or files that are attached to an item in the Exchange
+ * store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfAttachmentsType
+ */
+ public $Attachments;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/BaseDelegateResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/BaseDelegateResponseMessageType.php
new file mode 100644
index 00000000..c822e859
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/BaseDelegateResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\BaseDelegateResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Base class for delegate response messages.
+ *
+ * @package php-ews\Response
+ */
+abstract class BaseDelegateResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains the response messages for an Exchange Web Services delegate
+ * management request.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfDelegateUserResponseMessageType
+ */
+ public $ResponseMessages;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/BaseResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/BaseResponseMessageType.php
new file mode 100644
index 00000000..0b2360b1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/BaseResponseMessageType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\BaseResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+use \jamesiarmes\PhpEws\Response;
+
+/**
+ * Base class for responses.
+ *
+ * @package php-ews\Response
+ */
+class BaseResponseMessageType extends Response
+{
+ /**
+ * Contains the response messages for an Exchange Web Services request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfResponseMessagesType
+ */
+ public $ResponseMessages;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ConvertIdResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ConvertIdResponseMessageType.php
new file mode 100644
index 00000000..3e496ad8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ConvertIdResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ConvertIdResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a ConvertId operation request.
+ *
+ * @package php-ews\Response
+ */
+class ConvertIdResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Describes a converted identifier in the response.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\AlternateIdType
+ */
+ public $AlternateId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ConvertIdResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ConvertIdResponseType.php
new file mode 100644
index 00000000..4ab294d6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ConvertIdResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ConvertIdResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents a response to a ConvertId request.
+ *
+ * @package php-ews\Response
+ */
+class ConvertIdResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CopyFolderResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CopyFolderResponseType.php
new file mode 100644
index 00000000..61d11a40
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CopyFolderResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\CopyFolderResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a CopyFolder request.
+ *
+ * @package php-ews\Response
+ */
+class CopyFolderResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CopyItemResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CopyItemResponseType.php
new file mode 100644
index 00000000..3f2f2bfd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CopyItemResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\CopyItemResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a CopyItem request.
+ *
+ * @package php-ews\Response
+ */
+class CopyItemResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateAttachmentResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateAttachmentResponseType.php
new file mode 100644
index 00000000..a16b5c72
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateAttachmentResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\CreateAttachmentResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a CreateAttachment request.
+ *
+ * @package php-ews\Response
+ */
+class CreateAttachmentResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateFolderPathResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateFolderPathResponseType.php
new file mode 100644
index 00000000..93cf8423
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateFolderPathResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\CreateFolderPathResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Response to a request to create a folder path.
+ *
+ * @package php-ews\Response
+ */
+class CreateFolderPathResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateFolderResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateFolderResponseType.php
new file mode 100644
index 00000000..26db0296
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateFolderResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\CreateFolderResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a CreateFolder request.
+ *
+ * @package php-ews\Response
+ */
+class CreateFolderResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateItemResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateItemResponseType.php
new file mode 100644
index 00000000..c115e4fd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateItemResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\CreateItemResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a CreateItem request.
+ *
+ * @package php-ews\Response
+ */
+class CreateItemResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateManagedFolderResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateManagedFolderResponseType.php
new file mode 100644
index 00000000..94096c57
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateManagedFolderResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\CreateManagedFolderResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a CreateManagedFolder request.
+ *
+ * @package php-ews\Response
+ */
+class CreateManagedFolderResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateUserConfigurationResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateUserConfigurationResponseType.php
new file mode 100644
index 00000000..899a8859
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/CreateUserConfigurationResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\CreateUserConfigurationResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a single CreateUserConfiguration request.
+ *
+ * @package php-ews\Response
+ */
+class CreateUserConfigurationResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DelegateUserResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DelegateUserResponseMessageType.php
new file mode 100644
index 00000000..9af31f49
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DelegateUserResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\DelegateUserResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * contains the response message for a single delegate user.
+ *
+ * @package php-ews\Response
+ */
+class DelegateUserResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Identifies a single delegate that is returned in a delegate management
+ * response.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\DelegateUserType
+ */
+ public $DelegateUser;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteAttachmentResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteAttachmentResponseMessageType.php
new file mode 100644
index 00000000..c65d05ff
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteAttachmentResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\DeleteAttachmentResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single DeleteAttachment operation
+ * request.
+ *
+ * @package php-ews\Response
+ */
+class DeleteAttachmentResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Identifies the parent item of a deleted attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RootItemIdType
+ */
+ public $RootItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteAttachmentResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteAttachmentResponseType.php
new file mode 100644
index 00000000..b34aae32
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteAttachmentResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\DeleteAttachmentResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a DeleteAttachment request.
+ *
+ * @package php-ews\Response
+ */
+class DeleteAttachmentResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteFolderResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteFolderResponseType.php
new file mode 100644
index 00000000..e6a8e488
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteFolderResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\DeleteFolderResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a DeleteFolder request.
+ *
+ * @package php-ews\Response
+ */
+class DeleteFolderResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteItemResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteItemResponseType.php
new file mode 100644
index 00000000..a826ea11
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteItemResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\DeleteItemResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a single DeleteItem request.
+ *
+ * @package php-ews\Response
+ */
+class DeleteItemResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteUserConfigurationResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteUserConfigurationResponseType.php
new file mode 100644
index 00000000..36f0a434
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DeleteUserConfigurationResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\DeleteUserConfigurationResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a single DeleteUserConfiguration request.
+ *
+ * @package php-ews\Response
+ */
+class DeleteUserConfigurationResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DisableAppResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DisableAppResponseType.php
new file mode 100644
index 00000000..8bd53116
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DisableAppResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\DisableAppResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a DisableApp request.
+ *
+ * @package php-ews\Response
+ */
+class DisableAppResponseType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DisconnectPhoneCallResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DisconnectPhoneCallResponseMessageType.php
new file mode 100644
index 00000000..28ccd0e5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/DisconnectPhoneCallResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\DisconnectPhoneCallResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the status and result of a single DisconnectPhoneCall request.
+ *
+ * @package php-ews\Response
+ */
+class DisconnectPhoneCallResponseMessageType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/EmptyFolderResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/EmptyFolderResponseType.php
new file mode 100644
index 00000000..f6847e92
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/EmptyFolderResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\EmptyFolderResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to an EmptyFolder Operation request.
+ *
+ * @package php-ews\Response
+ */
+class EmptyFolderResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExpandDLResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExpandDLResponseMessageType.php
new file mode 100644
index 00000000..403c6270
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExpandDLResponseMessageType.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ExpandDLResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single ExpandDL operation request.
+ *
+ * @package php-ews\Response
+ *
+ * @todo Create a FindResponsePagingAttributes trait.
+ */
+class ExpandDLResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Represents the next denominator to use for the next request when doing\
+ * fractional paging.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $AbsoluteDenominator;
+
+ /**
+ * Contains an array of mailboxes that are contained in a distribution list.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfDLExpansionType
+ */
+ public $DLExpansion;
+
+ /**
+ * Indicates that additional paging is not needed.
+ *
+ * This attribute will be true if the current results contain the last item
+ * in the query.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IncludesLastItemInRange;
+
+ /**
+ * Represents the next index that should be used for the next request when
+ * an indexed paging view is used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $IndexedPagingOffset;
+
+ /**
+ * Represents the new numerator value to use for the next request when
+ * fraction page views are used.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $NumeratorOffset;
+
+ /**
+ * Represents the total number of items that pass the restriction.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $TotalItemsInView;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExpandDLResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExpandDLResponseType.php
new file mode 100644
index 00000000..531b4e66
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExpandDLResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ExpandDLResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a request to expand a distribution list.
+ *
+ * @package php-ews\Response
+ */
+class ExpandDLResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExportItemsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExportItemsResponseMessageType.php
new file mode 100644
index 00000000..b74d9262
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExportItemsResponseMessageType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ExportItemsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and results of a request to export a single mailbox
+ * item.
+ *
+ * @package php-ews\Response
+ */
+class ExportItemsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains the item identifier of an exported item.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * Contains the contents of an exported item.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $Data;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExportItemsResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExportItemsResponseType.php
new file mode 100644
index 00000000..77023ed3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ExportItemsResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ExportItemsResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents a response to a single ExportItems request.
+ *
+ * @package php-ews\Response
+ */
+class ExportItemsResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindConversationResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindConversationResponseMessageType.php
new file mode 100644
index 00000000..ad25e0d5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindConversationResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\FindConversationResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a FindConversation Operation request.
+ *
+ * @package php-ews\Response
+ */
+class FindConversationResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains an array of conversations.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfConversationsType
+ */
+ public $Conversations;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindFolderResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindFolderResponseMessageType.php
new file mode 100644
index 00000000..84327715
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindFolderResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\FindFolderResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single FindFolder operation request.
+ *
+ * @package php-ews\Response
+ */
+class FindFolderResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains the results from a search of a single root folder during a
+ * FindFolder operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FindFolderParentType
+ */
+ public $RootFolder;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindFolderResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindFolderResponseType.php
new file mode 100644
index 00000000..273653ad
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindFolderResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\FindFolderResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a FindFolder request.
+ *
+ * @package php-ews\Response
+ */
+class FindFolderResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindItemResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindItemResponseMessageType.php
new file mode 100644
index 00000000..190bb4bb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindItemResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\FindItemResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single FindItem operation request.
+ *
+ * @package php-ews\Response
+ */
+class FindItemResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains the results from a search of a single root folder during a
+ * FindItem operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FindItemParentType
+ */
+ public $RootFolder;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindItemResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindItemResponseType.php
new file mode 100644
index 00000000..e828c977
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindItemResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\FindItemResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a FindItem request.
+ *
+ * @package php-ews\Response
+ */
+class FindItemResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMailboxStatisticsByKeywordsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMailboxStatisticsByKeywordsResponseMessageType.php
new file mode 100644
index 00000000..1d150e53
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMailboxStatisticsByKeywordsResponseMessageType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\FindMailboxStatisticsByKeywordsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the response message for a FindMailboxStatisticsByKeywords
+ * request.
+ *
+ * @package php-ews\Type
+ */
+class FindMailboxStatisticsByKeywordsResponseMessageType extends
+ ResponseMessageType
+{
+ /**
+ * Specifies the result of a mailbox search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\MailboxStatisticsSearchResultType
+ */
+ public $MailboxStatisticsSearchResult;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMailboxStatisticsByKeywordsResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMailboxStatisticsByKeywordsResponseType.php
new file mode 100644
index 00000000..93bff951
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMailboxStatisticsByKeywordsResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\FindMailboxStatisticsByKeywordsResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a FindMailboxStatisticsByKeywords request.
+ *
+ * @package php-ews\Response
+ */
+class FindMailboxStatisticsByKeywordsResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMessageTrackingReportResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMessageTrackingReportResponseMessageType.php
new file mode 100644
index 00000000..8bf2452a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindMessageTrackingReportResponseMessageType.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\FindMessageTrackingReportResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single FindMessageTrackingReport
+ * Operation request.
+ *
+ * @package php-ews\Response
+ */
+class FindMessageTrackingReportResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains information that will be used to produce various statistical
+ * reports for the tracking feature in a DataCenter.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Diagnostics;
+
+ /**
+ * Contains a property bag to store errors that are returned through the Web
+ * service.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfArraysOfTrackingPropertiesType
+ */
+ public $Errors;
+
+ /**
+ * Contains the scope of the search that was performed to get the search results.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $ExecutedSearchScope;
+
+ /**
+ * Contains and array of messages that match the search requirements.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfFindMessageTrackingSearchResultType
+ */
+ public $MessageTrackingSearchResults;
+
+ /**
+ * Contains a list of one or more tracking properties.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTrackingPropertiesType
+ */
+ public $Properties;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindPeopleResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindPeopleResponseMessageType.php
new file mode 100644
index 00000000..ecce5677
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FindPeopleResponseMessageType.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\FindPeopleResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a FindPeople request.
+ *
+ * @package php-ews\Response
+ */
+class FindPeopleResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $FirstLoadedRowIndex;
+
+ /**
+ * Internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $FirstMatchingRowIndex;
+
+ /**
+ * Specifies an array of persona data.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPeopleType
+ */
+ public $People;
+
+ /**
+ * Specifies the total number of personas stored on a server that are
+ * returned by a FindPeople request.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $TotalNumberOfPeopleInView;
+
+ /**
+ * Internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $TransactionId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FolderInfoResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FolderInfoResponseMessageType.php
new file mode 100644
index 00000000..8b299355
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/FolderInfoResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\FolderInfoResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single CopyFolder operation request.
+ *
+ * @package php-ews\Response
+ */
+class FolderInfoResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains an array of copied folders.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfFoldersType
+ */
+ public $Folders;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAppManifestsResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAppManifestsResponseType.php
new file mode 100644
index 00000000..5c4ddf04
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAppManifestsResponseType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetAppManifestsResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response for a GetAppManifests operation request.
+ *
+ * @package php-ews\Response
+ */
+class GetAppManifestsResponseType extends ResponseMessageType
+{
+ /**
+ * Contains information about all the XML manifest files for apps installed
+ * in a mailbox.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfAppsType
+ */
+ public $Apps;
+
+ /**
+ * Contains a collection of base64-encoded app manifests that are installed
+ * for the email account.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfAppManifestsType
+ */
+ public $Manifests;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAppMarketplaceUrlResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAppMarketplaceUrlResponseMessageType.php
new file mode 100644
index 00000000..a54339c9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAppMarketplaceUrlResponseMessageType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetAppMarketplaceUrlResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a GetAppMarketplaceUrl request.
+ *
+ * @package php-ews\Response
+ */
+class GetAppMarketplaceUrlResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies the URL for the app marketplace.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var string
+ */
+ public $AppMarketplaceUrl;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $ConnectorsManagementUrl;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAttachmentResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAttachmentResponseType.php
new file mode 100644
index 00000000..bad8d109
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetAttachmentResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetAttachmentResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a GetAttachment request.
+ *
+ * @package php-ews\Response
+ */
+class GetAttachmentResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetClientAccessTokenResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetClientAccessTokenResponseMessageType.php
new file mode 100644
index 00000000..6a8c9779
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetClientAccessTokenResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetClientAccessTokenResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response message for a GetClientAccessToken request.
+ *
+ * @package php-ews\Response
+ */
+class GetClientAccessTokenResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies a client access token.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ClientAccessTokenType
+ */
+ public $Token;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetClientAccessTokenResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetClientAccessTokenResponseType.php
new file mode 100644
index 00000000..ee79d950
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetClientAccessTokenResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetClientAccessTokenResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a GetClientAccessToken operation request.
+ *
+ * @package php-ews\Response
+ */
+class GetClientAccessTokenResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetConversationItemsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetConversationItemsResponseMessageType.php
new file mode 100644
index 00000000..1ece31b2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetConversationItemsResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetConversationItemsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response message for a GetConversationItems request.
+ *
+ * @package php-ews\Response
+ */
+class GetConversationItemsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Represents a single conversation.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ConversationResponseType
+ */
+ public $Conversation;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetConversationItemsResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetConversationItemsResponseType.php
new file mode 100644
index 00000000..0cd81875
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetConversationItemsResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetConversationItemsResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a GetConversationItems request.
+ *
+ * @package php-ews\Response
+ */
+class GetConversationItemsResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetDelegateResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetDelegateResponseMessageType.php
new file mode 100644
index 00000000..6f3cfbdc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetDelegateResponseMessageType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetDelegateResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a GetDelegate operation request.
+ *
+ * @package php-ews\Response
+ */
+class GetDelegateResponseMessageType extends BaseDelegateResponseMessageType
+{
+ /**
+ * Defines how meeting requests are handled between the delegate and the
+ * principal.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DeliverMeetingRequestsType
+ */
+ public $DeliverMeetingRequests;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetDiscoverySearchConfigurationResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetDiscoverySearchConfigurationResponseMessageType.php
new file mode 100644
index 00000000..12ddecc2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetDiscoverySearchConfigurationResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetDiscoverySearchConfigurationResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a GetDiscoverySearchConfiguration request.
+ *
+ * @package php-ews\Response
+ */
+class GetDiscoverySearchConfigurationResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies an array of discovery search configurations.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfDiscoverySearchConfigurationType
+ */
+ public $DiscoverySearchConfigurations;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetEventsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetEventsResponseMessageType.php
new file mode 100644
index 00000000..2ef59b0d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetEventsResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetEventsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single GetEvents operation request.
+ *
+ * @package php-ews\Response
+ */
+class GetEventsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains information about the subscription and the events that have
+ * occurred since the last notification.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\NotificationType
+ */
+ public $Notification;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetEventsResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetEventsResponseType.php
new file mode 100644
index 00000000..a5b8c334
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetEventsResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetEventsResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents a response to a GetEvents request.
+ *
+ * @package php-ews\Response
+ */
+class GetEventsResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetFolderResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetFolderResponseType.php
new file mode 100644
index 00000000..61476357
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetFolderResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetFolderResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a GetFolder request.
+ *
+ * @package php-ews\Response
+ */
+class GetFolderResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetHoldOnMailboxesResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetHoldOnMailboxesResponseMessageType.php
new file mode 100644
index 00000000..870b36b1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetHoldOnMailboxesResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetHoldOnMailboxesResponse.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to get the hold status for a mailbox.
+ *
+ * @package php-ews\Response
+ */
+class GetHoldOnMailboxesResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains the result of the GetHoldOnMailboxes request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\MailboxHoldResultType
+ */
+ public $MailboxHoldResult;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetImItemListResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetImItemListResponseMessageType.php
new file mode 100644
index 00000000..bbf71d29
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetImItemListResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetImItemListResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a GetImItemList request.
+ *
+ * @package php-ews\Response
+ */
+class GetImItemListResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains a list of instant messaging groups and instant messaging
+ * contacts.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ImItemListType
+ */
+ public $ImItemList;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetImItemsResponse.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetImItemsResponse.php
new file mode 100644
index 00000000..d54cb8fe
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetImItemsResponse.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetImItemsResponse.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a GetImItems request.
+ *
+ * @package php-ews\Response
+ */
+class GetImItemsResponse extends ResponseMessageType
+{
+ /**
+ * Contains a list of instant messaging groups and instant messaging
+ * contacts.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ImItemListType
+ */
+ public $ImItemList;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetInboxRulesResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetInboxRulesResponseType.php
new file mode 100644
index 00000000..465885e3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetInboxRulesResponseType.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetInboxRulesResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a GetInboxRules operation request.
+ *
+ * @package php-ews\Response
+ */
+class GetInboxRulesResponseType extends ResponseMessageType
+{
+ /**
+ * Represents an array of the rules in the user's mailbox.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRulesType
+ */
+ public $InboxRules;
+
+ /**
+ * Indicates whether a Microsoft Outlook rule blob exists in the user's
+ * mailbox.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $OutlookRuleBlobExists;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetItemResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetItemResponseType.php
new file mode 100644
index 00000000..faa7acb4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetItemResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetItemResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a GetItem request.
+ *
+ * @package php-ews\Response
+ */
+class GetItemResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetMailTipsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetMailTipsResponseMessageType.php
new file mode 100644
index 00000000..053c0efd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetMailTipsResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetMailTipsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the response message for a GetMailTips Operation.
+ *
+ * @package php-ews\Response
+ */
+class GetMailTipsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Represents a list of mail tips response messages.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfMailTipsResponseMessageType
+ */
+ public $ResponseMessages;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetMessageTrackingReportResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetMessageTrackingReportResponseMessageType.php
new file mode 100644
index 00000000..4c7cdc8e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetMessageTrackingReportResponseMessageType.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetMessageTrackingReportResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the response for the GetMessageTrackingReport operation.
+ *
+ * @package php-ews\Response
+ */
+class GetMessageTrackingReportResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains a single message that is returned in a GetMessageTrackingReport
+ * operation.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\MessageTrackingReportType
+ */
+ public $MessageTrackingReport;
+
+ /**
+ * Provides timing and performance information that is used for reporting in
+ * a DataCenter.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Diagnostics;
+
+ /**
+ * Contains a property bag to store errors that are returned through the Web
+ * service.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfArraysOfTrackingPropertiesType
+ */
+ public $Errors;
+
+ /**
+ * Contains a list of one or more tracking properties.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTrackingPropertiesType
+ */
+ public $Properties;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetNonIndexableItemDetailsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetNonIndexableItemDetailsResponseMessageType.php
new file mode 100644
index 00000000..99bb4bc9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetNonIndexableItemDetailsResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetNonIndexableItemDetailsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a GetNonIndexableItemDetails request.
+ *
+ * @package php-ews\Response
+ */
+class GetNonIndexableItemDetailsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies the results of the GetNonIndexableItemDetails request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\NonIndexableItemDetailResultType
+ */
+ public $NonIndexableItemDetailsResult;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetNonIndexableItemStatisticsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetNonIndexableItemStatisticsResponseMessageType.php
new file mode 100644
index 00000000..d4c4f7df
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetNonIndexableItemStatisticsResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetNonIndexableItemStatisticsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a GetNonIndexableItemStatistics request.
+ *
+ * @package php-ews\Response
+ */
+class GetNonIndexableItemStatisticsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains an array of statistics for items that could not be indexed.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfNonIndexableItemStatisticsType
+ */
+ public $NonIndexableItemStatistics;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPasswordExpirationDateResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPasswordExpirationDateResponseMessageType.php
new file mode 100644
index 00000000..0d030043
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPasswordExpirationDateResponseMessageType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetPasswordExpirationDateResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a GetPasswordExpirationDate operation operation
+ * request.
+ *
+ * @package php-ews\Response
+ */
+class GetPasswordExpirationDateResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Provides the password expiration date for the email account specified in
+ * the request.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $PasswordExpirationDate;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPersonaResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPersonaResponseMessageType.php
new file mode 100644
index 00000000..5801038c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPersonaResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetPersonaResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response for a GetPersona request.
+ *
+ * @package php-ews\Response
+ */
+class GetPersonaResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies a set of persona data returned by a GetPersona request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PersonaType
+ */
+ public $Persona;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPhoneCallInformationResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPhoneCallInformationResponseMessageType.php
new file mode 100644
index 00000000..30bbc836
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetPhoneCallInformationResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetPhoneCallInformationResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a single GetPhoneCallInformation request.
+ *
+ * @package php-ews\Response
+ */
+class GetPhoneCallInformationResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies the state information for a phone call.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\PhoneCallInformationType
+ */
+ public $PhoneCallInformation;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRemindersResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRemindersResponseMessageType.php
new file mode 100644
index 00000000..f6ddc5ae
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRemindersResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetRemindersResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the response to a GetReminders request.
+ *
+ * @package php-ews\Response
+ */
+class GetRemindersResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies the reminders returned in the response.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRemindersType
+ */
+ public $Reminders;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRoomListsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRoomListsResponseMessageType.php
new file mode 100644
index 00000000..e832e81b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRoomListsResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetRoomListsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the response from a GetRoomLists Operation request.
+ *
+ * @package php-ews\Response
+ */
+class GetRoomListsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Provides a list of e-mail addresses and display names that represent
+ * lists of meeting rooms.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressesType
+ */
+ public $RoomLists;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRoomsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRoomsResponseMessageType.php
new file mode 100644
index 00000000..b53c3059
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetRoomsResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetRoomsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the response to a GetRooms operation request.
+ *
+ * @package php-ews\Response
+ */
+class GetRoomsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Provides a list of email addresses and display names that represent
+ * meeting rooms.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRoomsType
+ */
+ public $Rooms;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSearchableMailboxesResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSearchableMailboxesResponseMessageType.php
new file mode 100644
index 00000000..a992cf86
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSearchableMailboxesResponseMessageType.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetSearchableMailboxesResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Contains the response to a GetSearchableMailboxes request.
+ *
+ * @package php-ews\Response
+ */
+class GetSearchableMailboxesResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies an array of mailboxes that failed on search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfFailedSearchMailboxesType
+ */
+ public $FailedMailboxes;
+
+ /**
+ * Contains an array of mailboxes.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfSearchableMailboxesType
+ */
+ public $SearchableMailboxes;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServerTimeZonesResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServerTimeZonesResponseMessageType.php
new file mode 100644
index 00000000..b3207e53
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServerTimeZonesResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetServerTimeZonesResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single GetServerTimeZones operation
+ * request.
+ *
+ * @package php-ews\Response
+ */
+class GetServerTimeZonesResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains an array of time zone definitions.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTimeZoneDefinitionType
+ */
+ public $TimeZoneDefinitions;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServerTimeZonesResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServerTimeZonesResponseType.php
new file mode 100644
index 00000000..254c9608
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServerTimeZonesResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetServerTimeZonesResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a GetServerTimeZones operation request.
+ *
+ * @package php-ews\Response
+ */
+class GetServerTimeZonesResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServiceConfigurationResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServiceConfigurationResponseMessageType.php
new file mode 100644
index 00000000..602eb4f3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetServiceConfigurationResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetServiceConfigurationResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a GetServiceConfiguration request.
+ *
+ * @package php-ews\Response
+ */
+class GetServiceConfigurationResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains an array of service configuration response messages.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfServiceConfigurationResponseMessageType
+ */
+ public $ResponseMessages;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSharingFolderResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSharingFolderResponseMessageType.php
new file mode 100644
index 00000000..4125fdc3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSharingFolderResponseMessageType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetSharingFolderResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single GetSharingFolder operation
+ * request.
+ *
+ * @package php-ews\Response
+ */
+class GetSharingFolderResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Represents the identifier of the local folder in a sharing relationship.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $SharingFolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSharingMetadataResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSharingMetadataResponseMessageType.php
new file mode 100644
index 00000000..e29fa70d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetSharingMetadataResponseMessageType.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetSharingMetadataResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a request.
+ *
+ * @package php-ews\Response
+ */
+class GetSharingMetadataResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains a collection of data structures that a client can use to
+ * authorize the sharing of its calendar or contact data with other clients.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEncryptedSharedFolderDataType
+ */
+ public $EncryptedSharedFolderDataCollection;
+
+ /**
+ * Represents recipients of the folder sharing request that are invalid.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfInvalidRecipientsType
+ */
+ public $InvalidRecipients;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetStreamingEventsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetStreamingEventsResponseMessageType.php
new file mode 100644
index 00000000..7322e710
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetStreamingEventsResponseMessageType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetStreamingEventsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single GetStreamingEvents operation
+ * request.
+ *
+ * @package php-ews\Response
+ */
+class GetStreamingEventsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Provides a text description of the status of a streaming subscription.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ConnectionStatusType
+ */
+ public $ConnectionStatus;
+
+ /**
+ * Contains a list of subscription IDs that are invalid.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfSubscriptionIdsType
+ */
+ public $ErrorSubscriptionIds;
+
+ /**
+ * Contains a list of information about the subscription and the events that
+ * have occurred since the last notification.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfNotificationsType
+ */
+ public $Notifications;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetStreamingEventsResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetStreamingEventsResponseType.php
new file mode 100644
index 00000000..e6002f29
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetStreamingEventsResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetStreamingEventsResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents a response to a GetStreamingEvents element request.
+ *
+ * @package php-ews\Response
+ */
+class GetStreamingEventsResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserAvailabilityResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserAvailabilityResponseType.php
new file mode 100644
index 00000000..5fbb1b3e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserAvailabilityResponseType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetUserAvailabilityResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+use \jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the properties that define user availability information or suggested
+ * meeting time information.
+ *
+ * @package php-ews\Response
+ */
+class GetUserAvailabilityResponseType extends Response
+{
+ /**
+ * FContains the requested users' availability information and the response
+ * status.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfFreeBusyResponse
+ */
+ public $FreeBusyResponseArray;
+
+ /**
+ * Contains response status information and suggestion data for requested
+ * meeting suggestions.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SuggestionsResponseType
+ */
+ public $SuggestionsResponse;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserConfigurationResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserConfigurationResponseMessageType.php
new file mode 100644
index 00000000..396fc7ab
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserConfigurationResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetUserConfigurationResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents a response that returns a user configuration object.
+ *
+ * @package php-ews\Response
+ */
+class GetUserConfigurationResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains a single user configuration object.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserConfigurationType
+ */
+ public $UserConfiguration;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserConfigurationResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserConfigurationResponseType.php
new file mode 100644
index 00000000..84214522
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserConfigurationResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetUserConfigurationResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a single GetUserConfiguration request.
+ *
+ * @package php-ews\Response
+ */
+class GetUserConfigurationResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserOofSettingsResponse.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserOofSettingsResponse.php
new file mode 100644
index 00000000..635e570f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserOofSettingsResponse.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetUserOofSettingsResponse.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+use \jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the response message and the Out of Office (OOF) settings for a
+ * user.
+ *
+ * @package php-ews\Response
+ */
+class GetUserOofSettingsResponse extends Response
+{
+ /**
+ * Contains a value that identifies to whom external OOF messages are sent.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ExternalAudience
+ */
+ public $AllowExternalOof;
+
+ /**
+ * Contains the OOF settings.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserOofSettings
+ */
+ public $OofSettings;
+
+ /**
+ * Provides descriptive information about the response status.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType
+ */
+ public $ResponseMessage;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserPhotoResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserPhotoResponseMessageType.php
new file mode 100644
index 00000000..c133bae4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserPhotoResponseMessageType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetUserPhotoResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a GetUserPhoto request.
+ *
+ * @package php-ews\Response
+ */
+class GetUserPhotoResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Indicates whether a user’s photo has changed.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $HasChanged;
+
+ /**
+ * Contains the stream of picture data.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $PictureData;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserPhotoResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserPhotoResponseType.php
new file mode 100644
index 00000000..c182da17
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserPhotoResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetUserPhotoResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a GetUserPhoto request.
+ *
+ * @package php-ews\Response
+ */
+class GetUserPhotoResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserRetentionPolicyTagsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserRetentionPolicyTagsResponseMessageType.php
new file mode 100644
index 00000000..79ef601a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/GetUserRetentionPolicyTagsResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\GetUserRetentionPolicyTagsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a GetRetentionPolicyTags request.
+ *
+ * @package php-ews\Response
+ */
+class GetUserRetentionPolicyTagsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains a list of retention tags.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRetentionPolicyTagsType
+ */
+ public $RetentionPolicyTags;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/InstallAppResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/InstallAppResponseType.php
new file mode 100644
index 00000000..673eedac
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/InstallAppResponseType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\InstallAppResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to an InstallApp request.
+ *
+ * @package php-ews\Response
+ */
+class InstallAppResponseType extends ResponseMessageType
+{
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var \jamesiarmes\PhpEws\Type\InstalledAppType
+ *
+ * @todo Update once documentation exists.
+ */
+ public $Extension;
+
+ /**
+ * Whether this is the first time the app is being installed.
+ *
+ * @since Exchange 2016
+ *
+ * @var boolean
+ */
+ public $WasFirstInstall;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ItemInfoResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ItemInfoResponseMessageType.php
new file mode 100644
index 00000000..c02d89b6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ItemInfoResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ItemInfoResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single item operation request.
+ *
+ * @package php-ews\Response
+ */
+class ItemInfoResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains an array of created items.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRealItemsType
+ */
+ public $Items;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MailTipsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MailTipsResponseMessageType.php
new file mode 100644
index 00000000..a3356dca
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MailTipsResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\MailTipsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents mail tips settings.
+ *
+ * @package php-ews\Response
+ */
+class MailTipsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Represents values for various types of mail tips.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\MailTips
+ */
+ public $MailTips;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAllItemsAsReadResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAllItemsAsReadResponseType.php
new file mode 100644
index 00000000..44fd5745
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAllItemsAsReadResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\MarkAllItemsAsReadResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a MarkAllItemsAsRead request.
+ *
+ * @package php-ews\Response
+ */
+class MarkAllItemsAsReadResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAsJunkResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAsJunkResponseMessageType.php
new file mode 100644
index 00000000..d05955d1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAsJunkResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\MarkAsJunkResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response message for a MarkAsJunk request.
+ *
+ * @package php-ews\Response
+ */
+class MarkAsJunkResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies the identifier of the item that was moved.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $MovedItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAsJunkResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAsJunkResponseType.php
new file mode 100644
index 00000000..16ffc477
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MarkAsJunkResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\MarkAsJunkResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a MarkAsJunk request.
+ *
+ * @package php-ews\Response
+ */
+class MarkAsJunkResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MoveFolderResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MoveFolderResponseType.php
new file mode 100644
index 00000000..74871138
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MoveFolderResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\MoveFolderResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a MoveFolder request.
+ *
+ * @package php-ews\Response
+ */
+class MoveFolderResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MoveItemResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MoveItemResponseType.php
new file mode 100644
index 00000000..85e766db
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/MoveItemResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\MoveItemResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a MoveItem request.
+ *
+ * @package php-ews\Response
+ */
+class MoveItemResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/PerformReminderActionResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/PerformReminderActionResponseMessageType.php
new file mode 100644
index 00000000..fde02253
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/PerformReminderActionResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\PerformReminderActionResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a PerformReminderAction request.
+ *
+ * @package php-ews\Response
+ */
+class PerformReminderActionResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies the identifiers of updated reminder items.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfItemIdsType
+ */
+ public $UpdatedItemIds;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/PlayOnPhoneResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/PlayOnPhoneResponseMessageType.php
new file mode 100644
index 00000000..ce756191
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/PlayOnPhoneResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\PlayOnPhoneResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a request to play a voice mail over the telephone.
+ *
+ * @package php-ews\Response
+ */
+class PlayOnPhoneResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Specifies the telephone call identifier.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\PhoneCallIdType
+ */
+ public $PhoneCallId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RefreshSharingFolderResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RefreshSharingFolderResponseMessageType.php
new file mode 100644
index 00000000..7e48a7e0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RefreshSharingFolderResponseMessageType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\RefreshSharingFolderResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single RefreshSharingFolder operation
+ * request.
+ *
+ * @package php-ews\Response
+ */
+class RefreshSharingFolderResponseMessageType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveContactFromImListResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveContactFromImListResponseMessageType.php
new file mode 100644
index 00000000..51dc7286
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveContactFromImListResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\RemoveContactFromImListResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a RemoveContactFromImList request.
+ *
+ * @package php-ews\Response
+ */
+class RemoveContactFromImListResponseMessageType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveDelegateResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveDelegateResponseMessageType.php
new file mode 100644
index 00000000..f2a24dfb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveDelegateResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\RemoveDelegateResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the status and result of a RemoveDelegate Operation request.
+ *
+ * @package php-ews\Response
+ */
+class RemoveDelegateResponseMessageType extends BaseDelegateResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveDistributionGroupFromImListResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveDistributionGroupFromImListResponseMessageType.php
new file mode 100644
index 00000000..26bb9afa
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveDistributionGroupFromImListResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\RemoveDistributionGroupFromImListResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a RemoveDistributionGroupFromImList request.
+ *
+ * @package php-ews\Response
+ */
+class RemoveDistributionGroupFromImListResponseMessageType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveImContactFromGroupResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveImContactFromGroupResponseMessageType.php
new file mode 100644
index 00000000..1d454d90
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveImContactFromGroupResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\RemoveImContactFromGroupResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a RemoveImContactFromGroup request.
+ *
+ * @package php-ews\Response
+ */
+class RemoveImContactFromGroupResponseMessageType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveImGroupResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveImGroupResponseMessageType.php
new file mode 100644
index 00000000..fdfa68bd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/RemoveImGroupResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\RemoveImGroupResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a RemoveImGroup request.
+ *
+ * @package php-ews\Response
+ */
+class RemoveImGroupResponseMessageType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResolveNamesResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResolveNamesResponseMessageType.php
new file mode 100644
index 00000000..c92992d3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResolveNamesResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ResolveNamesResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the status and result of a ResolveNames operation request.
+ *
+ * @package php-ews\Response
+ */
+class ResolveNamesResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains an array of resolutions for an ambiguous name.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfResolutionType
+ */
+ public $ResolutionSet;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResolveNamesResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResolveNamesResponseType.php
new file mode 100644
index 00000000..b33a4b23
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResolveNamesResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ResolveNamesResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a ResolveNames request.
+ *
+ * @package php-ews\Response
+ */
+class ResolveNamesResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResponseMessageType.php
new file mode 100644
index 00000000..509b23a5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ResponseMessageType.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+use \jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a request.
+ *
+ * @package php-ews\Response
+ */
+class ResponseMessageType extends Response
+{
+ /**
+ * Currently unused and reserved for future use.
+ *
+ * This element contains a value of 0.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $DescriptiveLinkKey;
+
+ /**
+ * Provides a text description of the status of the response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $MessageText;
+
+ /**
+ * Provides additional error response information.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Determine if we can use SimpleXML or DOMDocument here.
+ */
+ public $MessageXml;
+
+ /**
+ * Describes the status of the response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ResponseClassType
+ */
+ public $ResponseClass;
+
+ /**
+ * Provides an error code that identifies the specific error that the
+ * request encountered.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ResponseCodeType
+ */
+ public $ResponseCode;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SearchMailboxesResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SearchMailboxesResponseMessageType.php
new file mode 100644
index 00000000..66fc76c2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SearchMailboxesResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SearchMailboxesResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response message for a SearchMailboxes request.
+ *
+ * @package php-ews\Response
+ */
+class SearchMailboxesResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains the result of the request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\SearchMailboxesResultType
+ */
+ public $SearchMailboxesResult;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SearchMailboxesResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SearchMailboxesResponseType.php
new file mode 100644
index 00000000..66d968a1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SearchMailboxesResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SearchMailboxesResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to a SearchMailboxes request.
+ *
+ * @package php-ews\Response
+ */
+class SearchMailboxesResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendItemResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendItemResponseType.php
new file mode 100644
index 00000000..a48fd291
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendItemResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SendItemResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a SendItem request.
+ *
+ * @package php-ews\Response
+ */
+class SendItemResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendNotificationResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendNotificationResponseMessageType.php
new file mode 100644
index 00000000..891c400a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendNotificationResponseMessageType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SendNotificationResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single SendNotification operation
+ * request.
+ *
+ * @package php-ews\Response
+ */
+class SendNotificationResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains information about the subscription and the events that have
+ * occurred since the last notification.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\NotificationType
+ */
+ public $Notification;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendNotificationResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendNotificationResponseType.php
new file mode 100644
index 00000000..e2ecf776
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SendNotificationResponseType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SendNotificationResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the push notifications that are sent by the computer that is
+ * running Microsoft Exchange Server 2007 to the client application.
+ *
+ * @package php-ews\Response
+ */
+class SendNotificationResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ServiceConfigurationResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ServiceConfigurationResponseMessageType.php
new file mode 100644
index 00000000..47534844
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/ServiceConfigurationResponseMessageType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\ServiceConfigurationResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents service configuration settings.
+ *
+ * @package php-ews\Response
+ */
+class ServiceConfigurationResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains service configuration information for the mail tips service.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\MailTipsServiceConfiguration
+ */
+ public $MailTipsConfiguration;
+
+ /**
+ * Contains service configuration information for the protection rules
+ * service.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRulesServiceConfiguration
+ */
+ public $ProtectionRulesConfiguration;
+
+ /**
+ * Contains service configuration information for the Unified Messaging
+ * service.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UnifiedMessageServiceConfiguration
+ */
+ public $UnifiedMessagingConfiguration;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetHoldOnMailboxesResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetHoldOnMailboxesResponseMessageType.php
new file mode 100644
index 00000000..c69c9822
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetHoldOnMailboxesResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SetHoldOnMailboxesResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a SetHoldOnMailboxes request.
+ *
+ * @package php-ews\Response
+ */
+class SetHoldOnMailboxesResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains the result of the request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\MailboxHoldResultType
+ */
+ public $MailboxHoldResult;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetImGroupResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetImGroupResponseMessageType.php
new file mode 100644
index 00000000..abaca972
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetImGroupResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SetImGroupResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a SetImGroup request.
+ *
+ * @package php-ews\Response
+ */
+class SetImGroupResponseMessageType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetUserOofSettingsResponse.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetUserOofSettingsResponse.php
new file mode 100644
index 00000000..3ac2571f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SetUserOofSettingsResponse.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SetUserOofSettingsResponse.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+use \jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the result of a SetUserOofSettingsRequest message attempt.
+ *
+ * @package php-ews\Response
+ */
+class SetUserOofSettingsResponse extends Response
+{
+ /**
+ * Provides descriptive information about the response status.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType
+ */
+ public $ResponseMessage;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SubscribeResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SubscribeResponseMessageType.php
new file mode 100644
index 00000000..af3b21f4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SubscribeResponseMessageType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SubscribeResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single Subscribe Operation request.
+ *
+ * @package php-ews\Response
+ */
+class SubscribeResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Represents the identifier for a subscription.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SubscriptionId;
+
+ /**
+ * Watermark property
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Determine if we need a WatermarkType.
+ */
+ public $Watermark;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SubscribeResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SubscribeResponseType.php
new file mode 100644
index 00000000..2d8e0874
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SubscribeResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SubscribeResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a Subscribe request.
+ *
+ * @package php-ews\Response
+ */
+class SubscribeResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderHierarchyResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderHierarchyResponseMessageType.php
new file mode 100644
index 00000000..aa153e16
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderHierarchyResponseMessageType.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SyncFolderHierarchyResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single SyncFolderHierarchy operation
+ * request.
+ *
+ * @package php-ews\Response
+ */
+class SyncFolderHierarchyResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains a sequence array of change types that represent the types of
+ * differences between the items on the client and the items on the Exchange
+ * server.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SyncFolderHierarchyChangesType
+ */
+ public $Changes;
+
+ /**
+ * Indicates whether the last item to synchronize has been included in the
+ * response.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IncludesLastFolderInRange;
+
+ /**
+ * Contains a base64-encoded form of the synchronization data that is
+ * updated after each successful request.
+ *
+ * This is used to identify the synchronization state.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SyncState;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderHierarchyResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderHierarchyResponseType.php
new file mode 100644
index 00000000..e58be528
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderHierarchyResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SyncFolderHierarchyResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a SyncFolderHierarchy request.
+ *
+ * @package php-ews\Response
+ */
+class SyncFolderHierarchyResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderItemsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderItemsResponseMessageType.php
new file mode 100644
index 00000000..bb49a386
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderItemsResponseMessageType.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SyncFolderItemsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single SyncFolderItems operation
+ * request.
+ *
+ * @package php-ews\Response
+ */
+class SyncFolderItemsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains a sequence array of change types that represent the types of
+ * differences between the items on the client and the items on the Exchange
+ * server.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SyncFolderItemsChangesType
+ */
+ public $Changes;
+
+ /**
+ * Indicates whether the last item to synchronize has been included in the
+ * response.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IncludesLastItemInRange;
+
+ /**
+ * Contains a base64-encoded form of the synchronization data that is
+ * updated after each successful request.
+ *
+ * This is used to identify the synchronization state.
+ * .
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SyncState;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderItemsResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderItemsResponseType.php
new file mode 100644
index 00000000..b6645d39
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/SyncFolderItemsResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\SyncFolderItemsResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a SyncFolderItems request.
+ *
+ * @package php-ews\Response
+ */
+class SyncFolderItemsResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UninstallAppResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UninstallAppResponseType.php
new file mode 100644
index 00000000..496e128b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UninstallAppResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\UninstallAppResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to an UninstallApp request.
+ *
+ * @package php-ews\Response
+ */
+class UninstallAppResponseType extends ResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UnsubscribeResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UnsubscribeResponseType.php
new file mode 100644
index 00000000..9e8c3ba2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UnsubscribeResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\UnsubscribeResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to an Unsubscribe request.
+ *
+ * @package php-ews\Response
+ */
+class UnsubscribeResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateDelegateResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateDelegateResponseMessageType.php
new file mode 100644
index 00000000..9f44db86
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateDelegateResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\UpdateDelegateResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of an UpdateDelegate Operation request.
+ *
+ * @package php-ews\Response
+ */
+class UpdateDelegateResponseMessageType extends BaseDelegateResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateFolderResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateFolderResponseType.php
new file mode 100644
index 00000000..a044d6a1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateFolderResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\UpdateFolderResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines the response to an UpdateFolder request.
+ *
+ * @package php-ews\Response
+ */
+class UpdateFolderResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateInboxRulesResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateInboxRulesResponseType.php
new file mode 100644
index 00000000..f7a37a10
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateInboxRulesResponseType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\UpdateInboxRulesResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to an UpdateInboxRules request.
+ *
+ * @package php-ews\Response
+ */
+class UpdateInboxRulesResponseType extends ResponseMessageType
+{
+ /**
+ * Represents an array of rule validation errors on each rule field that has
+ * an error.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRuleOperationErrorsType
+ */
+ public $RuleOperationErrors;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateItemResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateItemResponseMessageType.php
new file mode 100644
index 00000000..c0a67865
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateItemResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\UpdateItemResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents the status and result of a single UpdateItem request.
+ *
+ * @package php-ews\Type
+ */
+class UpdateItemResponseMessageType extends ItemInfoResponseMessageType
+{
+ /**
+ * Contains the number of conflicts in an UpdateItem response.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ConflictResultsType
+ */
+ public $ConflictResults;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateItemResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateItemResponseType.php
new file mode 100644
index 00000000..0d53cb90
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateItemResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\UpdateItemResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to an UpdateItem request.
+ *
+ * @package php-ews\Response
+ */
+class UpdateItemResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateUserConfigurationResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateUserConfigurationResponseType.php
new file mode 100644
index 00000000..3f6dafc5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UpdateUserConfigurationResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\UpdateUserConfigurationResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Defines a response to a single UpdateUserConfiguration request.
+ *
+ * @package php-ews\Response
+ */
+class UpdateUserConfigurationResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UploadItemsResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UploadItemsResponseMessageType.php
new file mode 100644
index 00000000..7f7bc925
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UploadItemsResponseMessageType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\UploadItemsResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * the status and results of a request to upload a single mailbox item.
+ *
+ * @package php-ews\Response
+ */
+class UploadItemsResponseMessageType extends ResponseMessageType
+{
+ /**
+ * Contains the item identifier of an uploaded item.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UploadItemsResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UploadItemsResponseType.php
new file mode 100644
index 00000000..1008cd1a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Response/UploadItemsResponseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Response\UploadItemsResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Response;
+
+/**
+ * Represents a response to a single UploadItems request.
+ *
+ * @package php-ews\Response
+ */
+class UploadItemsResponseType extends BaseResponseMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type.php
new file mode 100644
index 00000000..89a25556
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type.
+ */
+
+namespace jamesiarmes\PhpEws;
+
+/**
+ * Base class for Exchange Web Service Types.
+ *
+ * @package php-ews\Type
+ */
+abstract class Type
+{
+ /**
+ * Clones any object properties on a type object when it is cloned. Allows
+ * for a deep clone required when using object to represent data types when
+ * making a SOAP call.
+ */
+ public function __clone()
+ {
+ // Iterate over all properties on the current object.
+ foreach (get_object_vars($this) as $property => $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 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AbsoluteDateTransitionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a time zone transition that occurs on a specific date and at a
+ * specific time.
+ *
+ * @package php-ews\Type
+ */
+class AbsoluteDateTransitionType extends TransitionType
+{
+ /**
+ * Represents the date and time at which the time zone transition occurs.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $DateTime;
+
+ /**
+ * Specifies the Period or TransitionsGroup that is the target of the time
+ * zone transition.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TransitionTargetType
+ */
+ public $To;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteMonthlyRecurrencePatternType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteMonthlyRecurrencePatternType.php
new file mode 100644
index 00000000..f11dfc3b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteMonthlyRecurrencePatternType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AbsoluteMonthlyRecurrencePatternType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a monthly recurrence pattern.
+ *
+ * @package php-ews\Type
+ */
+class AbsoluteMonthlyRecurrencePatternType extends IntervalRecurrencePatternBaseType
+{
+ /**
+ * Describes the day in a month that a recurring item occurs.
+ *
+ * The range of values for this property is 1 to 31. If for a particular
+ * month this value is larger than the number of days in the month, the last
+ * day of the month is assumed for this property.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $DayOfMonth;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteYearlyRecurrencePatternType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteYearlyRecurrencePatternType.php
new file mode 100644
index 00000000..94d1b0a7
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AbsoluteYearlyRecurrencePatternType.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AbsoluteYearlyRecurrencePatternType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a yearly recurrence pattern.
+ *
+ * @package php-ews\Type
+ */
+class AbsoluteYearlyRecurrencePatternType extends RecurrencePatternBaseType
+{
+ /**
+ * Describes the day in a month on which a recurring item occurs.
+ *
+ * The range of values for this property is 1 to 31. If for a particular
+ * month this value is larger than the number of days in the month, the last
+ * day of the month is assumed for this property.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $DayOfMonth;
+
+ /**
+ * Describes the month in which a yearly recurring item occurs.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MonthNamesType
+ */
+ public $Month;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AcceptItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AcceptItemType.php
new file mode 100644
index 00000000..b0c038dd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AcceptItemType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AcceptItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an Accept reply to a meeting request.
+ *
+ * @package php-ews\Type
+ */
+class AcceptItemType extends WellKnownResponseObjectType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AcceptSharingInvitationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AcceptSharingInvitationType.php
new file mode 100644
index 00000000..891e0729
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AcceptSharingInvitationType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AcceptSharingInvitationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Used to accept an invitation that allows access to another user’s calendar or
+ * contacts data.
+ *
+ * @package php-ews\Type
+ */
+class AcceptSharingInvitationType extends ReferenceItemResponseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AddressListIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AddressListIdType.php
new file mode 100644
index 00000000..311f6b16
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AddressListIdType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AddressListIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the identifier of an address list.
+ *
+ * @package php-ews\Type
+ */
+class AddressListIdType extends Type
+{
+ /**
+ * A string address list identifier.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Id;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AggregateOnType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AggregateOnType.php
new file mode 100644
index 00000000..15edfafd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AggregateOnType.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AggregateOnType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the property that is used to determine the order of grouped items
+ * for a grouped FindItem result set.
+ *
+ * @package php-ews\Type
+ */
+class AggregateOnType extends Type
+{
+ /**
+ * Indicates the maximum or minimum value of the property identified by the
+ * FieldURI element that is used for ordering the groups of items.
+ *
+ * The following are the possible values:
+ * - Minimum
+ * - Maximum
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\AggregateType
+ */
+ public $Aggregate;
+
+ /**
+ * Identifies extended MAPI properties to get, set, or create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToExtendedFieldType
+ */
+ public $ExtendedFieldURI;
+
+ /**
+ * Identifies frequently referenced properties by URI.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToUnindexedFieldType
+ */
+ public $FieldURI;
+
+ /**
+ * Identifies individual members of a dictionary.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToIndexedFieldType
+ */
+ public $IndexedFieldURI;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternateIdBaseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternateIdBaseType.php
new file mode 100644
index 00000000..dda8a832
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternateIdBaseType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AlternateIdBaseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for alternate id types.
+ *
+ * @package php-ews\Type
+ */
+abstract class AlternateIdBaseType extends Type
+{
+ /**
+ * Describes the source or destination format in a request.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\IdFormatType
+ */
+ public $Format;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternateIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternateIdType.php
new file mode 100644
index 00000000..8a5564a2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternateIdType.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AlternateIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes an identifier to convert in a request and the results of a
+ * converted identifier in the response.
+ *
+ * @package php-ews\Type
+ */
+class AlternateIdType extends AlternateIdBaseType
+{
+ /**
+ * Describes the source identifier in a ConvertId Operation request and
+ * describes the destination identifier in a ConvertId Operation response.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ public $Id;
+
+ /**
+ * Indicates whether the identifier represents an archived item or folder.
+ *
+ * A value of true indicates that the identifier represents an archived item
+ * or folder. This attribute is optional.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var boolean
+ */
+ public $IsArchive;
+
+ /**
+ * Describes the mailbox primary Simple Mail Transfer Protocol (SMTP)
+ * address that contains the identifiers to translate.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ public $Mailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternatePublicFolderIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternatePublicFolderIdType.php
new file mode 100644
index 00000000..96a5c01c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternatePublicFolderIdType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AlternatePublicFolderIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes a public folder identifier to convert to another identifier format.
+ *
+ * @package php-ews\Type
+ */
+class AlternatePublicFolderIdType extends AlternateIdBaseType
+{
+ /**
+ * Contains the public folder identifier to convert.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ public $FolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternatePublicFolderItemIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternatePublicFolderItemIdType.php
new file mode 100644
index 00000000..68236698
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AlternatePublicFolderItemIdType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AlternatePublicFolderItemIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes a public folder item identifier to convert to another identifier
+ * format.
+ *
+ * @package php-ews\Type
+ */
+class AlternatePublicFolderItemIdType extends AlternatePublicFolderIdType
+{
+ /**
+ * Identifier the public folder item to convert.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ public $ItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AndType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AndType.php
new file mode 100644
index 00000000..5e47b401
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AndType.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AndType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that allows you to perform a Boolean AND
+ * operation between two or more search expressions.
+ *
+ * The result of the AND operation is true if all the search expressions
+ * contained within the And element are true.
+ *
+ * @package php-ews\Type
+ */
+class AndType extends MultipleOperandBooleanExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppMetadata.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppMetadata.php
new file mode 100644
index 00000000..67402b14
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppMetadata.php
@@ -0,0 +1,163 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AppMetadata.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines metadata about a mail app.
+ *
+ * @package php-ews\Type
+ */
+class AppMetadata extends Type
+{
+ /**
+ * Identifies the URL that the user should navigate to, in order to fix an
+ * issue indicated by the AppStatus element.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var string
+ */
+ public $ActionUrl;
+
+ /**
+ * Indicates the status of the mail app.
+ *
+ * Possible values:
+ * - Null or 0: The mail app has a healthy status.
+ * - 1.0: The mail app could not be automatically updated. The mail ap
+ * needs to be re-installed from the Office Store.
+ * - 1.1: The mail app could not be automatically updated. The mail app
+ * requires increased permissions, and this requires your review and
+ * confirmation to install.
+ * - 1.2: The mail app couldn't be updated automatically. The current
+ * license has expired or is invalid. Please update the mail app from the
+ * Office Store.
+ * - 2.0: The mail app license could not be automatically updated. The
+ * license for the mail app needs to be recovered from the Office Store.
+ * - 2.1: The mail app license could not be automatically updated. The
+ * current license has expired. A new license for this app needs to be
+ * installed from the Office Store.
+ * - 3.0: The Office Store status for the mail app has changed. This may
+ * indicate that there is a problem with the mail app. Go to the mail app
+ * page in the Office Store for more information.
+ * - 3.1: The mail app has been removed from the Office Store.
+ * - 3.2: A problem has been discovered with the mail app and it has
+ * temporarily been withdrawn from the Office Store.
+ * - 3.3: The mail app will be removed from the Office Store within 30 days.
+ * - 4.0: The mail app has been automatically disabled by your mail client.
+ * - 4.1: The mail app has been disabled by Outlook for performance reasons.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var string
+ */
+ public $AppStatus;
+
+ /**
+ * The consent state of the extension.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ public $ConsentState;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var boolean
+ *
+ * @todo Update once documentation exists.
+ */
+ public $EnabledStatus;
+
+ /**
+ * Specifies the URL for the mail app in the Office Store.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var string
+ */
+ public $EndNodeUrl;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $ExtensionType;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $InstalledBy;
+
+ /**
+ * Whether or not the extension is mandatory.
+ *
+ * @since Exchange 2016
+ *
+ * @var boolean
+ */
+ public $IsMandatory;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $LicenseStatus;
+
+ /**
+ * The asset id of the addin in the marketplace
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ public $MarketplaceAssetId;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $ProductId;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ * @todo Make a DateTime object.
+ */
+ public $TrialExpirationDate;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppType.php
new file mode 100644
index 00000000..d07f774b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AppType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines information about an XML manifest file for a mail app that is
+ * installed in a mailbox.
+ *
+ * @package php-ews\Type
+ */
+class AppType extends Type
+{
+ /**
+ * Contains the base64-encoded app manifest file.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $Manifest;
+
+ /**
+ * Contains metadata about the mail app.
+ *
+ * @since Exchange 2013 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\AppMetadata
+ */
+ public $Metadata;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppendToFolderFieldType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppendToFolderFieldType.php
new file mode 100644
index 00000000..79b954b2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppendToFolderFieldType.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AppendToFolderFieldType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * This type element is not implemented. Any request that uses this type will
+ * always return an error response.
+ *
+ * @package php-ews\Type
+ */
+class AppendToFolderFieldType extends FolderChangeDescriptionType
+{
+ /**
+ * Represents a folder that primarily contains calendar items.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarFolderType
+ */
+ public $CalendarFolder;
+
+ /**
+ * Represents a Contacts folder in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactsFolderType
+ */
+ public $ContactsFolder;
+
+ /**
+ * Identifies a folder to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderType
+ */
+ public $Folder;
+
+ /**
+ * Represents a search folder that is contained in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SearchFolderType
+ */
+ public $SearchFolder;
+
+ /**
+ * Represents a Tasks folder that is contained in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TasksFolderType
+ */
+ public $TasksFolder;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppendToItemFieldType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppendToItemFieldType.php
new file mode 100644
index 00000000..66315a08
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AppendToItemFieldType.php
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AppendToItemFieldType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies data to append to a single property of an item during an
+ * UpdateItem operation.
+ *
+ * @package php-ews\Type
+ */
+class AppendToItemFieldType extends ItemChangeDescriptionType
+{
+ /**
+ * Represents an Exchange calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarItemType
+ */
+ public $CalendarItem;
+
+ /**
+ * Represents an Exchange contact item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactItemType
+ */
+ public $Contact;
+
+ /**
+ * Represents a distribution list.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DistributionListType
+ */
+ public $DistributionList;
+
+ /**
+ * Represents an item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemType
+ */
+ public $Item;
+
+ /**
+ * Represents a meeting cancellation in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingCancellationMessageType
+ */
+ public $MeetingCancellation;
+
+ /**
+ * Represents a meeting in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingMessageType
+ */
+ public $MeetingMessage;
+
+ /**
+ * Represents a meeting request in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingRequestMessageType
+ */
+ public $MeetingRequest;
+
+ /**
+ * Represents a meeting response in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingResponseMessageType
+ */
+ public $MeetingResponse;
+
+ /**
+ * Represents an Exchange e-mail message.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MessageType
+ */
+ public $Message;
+
+ /**
+ * Represents a task in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TaskType
+ */
+ public $Task;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentIdType.php
new file mode 100644
index 00000000..7b74239b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentIdType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AttachmentIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies an item or file attachment.
+ *
+ * @package php-ews\Type
+ */
+class AttachmentIdType extends RequestAttachmentIdType
+{
+ /**
+ * Identifies the unique identifier of the root store item to which the
+ * attachment is attached.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $RootItemChangeKey;
+
+ /**
+ * Identifies the change key of the root store item to which the attachment
+ * is attached.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $RootItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentResponseShapeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentResponseShapeType.php
new file mode 100644
index 00000000..bf338ddb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentResponseShapeType.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AttachmentResponseShapeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents additional properties to return in a response to a GetAttachment
+ * request.
+ *
+ * @package php-ews\Type
+ */
+class AttachmentResponseShapeType extends Type
+{
+ /**
+ * Identifies additional properties to return in a response.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPathsToElementType
+ */
+ public $AdditionalProperties;
+
+ /**
+ * Identifies how the body text is formatted in the response.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\BodyTypeResponseType
+ */
+ public $BodyType;
+
+ /**
+ * Specifies whether potentially unsafe HTML content is filtered from an
+ * attachment.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $FilterHtmlContent;
+
+ /**
+ * Specifies whether the Multipurpose Internet Mail Extensions (MIME)
+ * content of an item or attachment is returned in the response.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IncludeMimeContent;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentType.php
new file mode 100644
index 00000000..714ffc1d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttachmentType.php
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AttachmentType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an Exchange attachment.
+ *
+ * @package php-ews\Type
+ */
+class AttachmentType extends Type
+{
+ /**
+ * Identifies the file attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AttachmentIdType
+ */
+ public $AttachmentId;
+
+ /**
+ * Represents an identifier for the contents of an attachment. ContentId can
+ * be set to any string value. Applications can use ContentId to implement
+ * their own identification mechanisms.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ContentId;
+
+ /**
+ * Contains the Uniform Resource Identifier (URI) that corresponds to the
+ * location of the content of the attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ContentLocation;
+
+ /**
+ * Describes the Multipurpose Internet Mail Extensions (MIME) type of the
+ * attachment content.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ContentType;
+
+ /**
+ * Represents whether the attachment appears inline within an item.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsInline;
+
+ /**
+ * Represents when the file attachment was last modified.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $LastModifiedTime;
+
+ /**
+ * Represents the name of the attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Name;
+
+ /**
+ * Represents the size in bytes of the file attachment.
+ *
+ * This property is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Size;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttendeeConflictData.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttendeeConflictData.php
new file mode 100644
index 00000000..8e260105
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttendeeConflictData.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AttendeeConflictData.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an attendee that has conflicting data.
+ *
+ * @package php-ews\Type
+ */
+abstract class AttendeeConflictData extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttendeeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttendeeType.php
new file mode 100644
index 00000000..9974c14b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/AttendeeType.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AttendeeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents attendees and resources for a meeting.
+ *
+ * @package php-ews\Type
+ */
+class AttendeeType extends Type
+{
+ /**
+ * Represents the date and time of the latest response that is received.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $LastResponseTime;
+
+ /**
+ * Identifies a fully resolved e-mail address.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Mailbox;
+
+ /**
+ * Represents the type of recipient response that is received for a meeting.
+ *
+ * This property is only relevant to a meeting organizer's calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ResponseTypeType
+ */
+ public $ResponseType;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseEmailAddressType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseEmailAddressType.php
new file mode 100644
index 00000000..6b7480d6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseEmailAddressType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BaseEmailAddressType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for email address types.
+ *
+ * @package php-ews\Type
+ */
+abstract class BaseEmailAddressType extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseFolderIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseFolderIdType.php
new file mode 100644
index 00000000..5e524ced
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseFolderIdType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BaseFolderIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base type for item identifiers.
+ *
+ * @package php-ews\Type
+ */
+abstract class BaseFolderIdType extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseFolderType.php
new file mode 100644
index 00000000..13f79e68
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseFolderType.php
@@ -0,0 +1,103 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BaseFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for folder types.
+ *
+ * @package php-ews\Type
+ */
+abstract class BaseFolderType extends Type
+{
+ /**
+ * Represents the number of child folders that are contained within a
+ * folder.
+ *
+ * This property is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $ChildFolderCount;
+
+ /**
+ * Contains the display name of a folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Contains the client's rights based on the permission settings for the
+ * item or folder.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\EffectiveRightsType
+ */
+ public $EffectiveRights;
+
+ /**
+ * Identifies extended properties on folders.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ExtendedPropertyType
+ */
+ public $ExtendedProperty;
+
+ /**
+ * Represents the folder class for a given folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $FolderClass;
+
+ /**
+ * Contains the identifier and change key of a folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $FolderId;
+
+ /**
+ * Contains information about a managed folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ManagedFolderInformationType
+ */
+ public $ManagedFolderInformation;
+
+ /**
+ * Represents the identifier of the parent folder that contains the folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $ParentFolderId;
+
+ /**
+ * Represents the total count of items within a given folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $TotalCount;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseGroupByType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseGroupByType.php
new file mode 100644
index 00000000..55b96c85
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseGroupByType.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BaseGroupByType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for item ordering.
+ *
+ * @package php-ews\Type
+ */
+abstract class BaseGroupByType extends Type
+{
+ /**
+ * Determines the order of the groups in the grouped item array that is
+ * returned in the response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SortDirectionType
+ */
+ public $Order;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseItemIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseItemIdType.php
new file mode 100644
index 00000000..bb70fb29
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseItemIdType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BaseItemIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base type for item identifiers.
+ *
+ * @package php-ews\Type
+ */
+abstract class BaseItemIdType extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseNotificationEventType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseNotificationEventType.php
new file mode 100644
index 00000000..586d9c24
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseNotificationEventType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BaseNotificationEventType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a notification that no new activity has occurred in the mailbox.
+ *
+ * @package php-ews\Type
+ */
+class BaseNotificationEventType extends Type
+{
+ /**
+ * Represents the last valid watermark for a subscription.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Determine if we need a WatermarkType.
+ */
+ public $Watermark;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseObjectChangedEventType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseObjectChangedEventType.php
new file mode 100644
index 00000000..804f0139
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseObjectChangedEventType.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BaseObjectChangedEventType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an event in which an item or folder is created.
+ *
+ * @package php-ews\Type
+ */
+class BaseObjectChangedEventType extends BaseNotificationEventType
+{
+ /**
+ * Represents the identifier of the folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $FolderId;
+
+ /**
+ * Represents the identifier of the item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * Represents the identifier of the folder that contains the copy.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $ParentFolderId;
+
+ /**
+ * Represents the timestamp of a copy item/folder mailbox event.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $TimeStamp;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePagingType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePagingType.php
new file mode 100644
index 00000000..345ef47e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePagingType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BasePagingType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for defining how results should be paged.
+ *
+ * @package php-ews\Type
+ */
+abstract class BasePagingType extends Type
+{
+ /**
+ * Describes the maximum number of items or conversations to return in the
+ * response.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $MaxEntriesReturned;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePathToElementType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePathToElementType.php
new file mode 100644
index 00000000..3344f40e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePathToElementType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\AcceptItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for a path to an element.
+ *
+ * @package php-ews\Type
+ */
+abstract class BasePathToElementType extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePermissionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePermissionType.php
new file mode 100644
index 00000000..520928c3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BasePermissionType.php
@@ -0,0 +1,92 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BasePermissionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for permission types.
+ *
+ * @package php-ews\Type
+ */
+abstract class BasePermissionType extends Type
+{
+ /**
+ * Indicates whether a user has permission to create items in a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $CanCreateItems;
+
+ /**
+ * Indicates whether a user has permission to create subfolders in a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $CanCreateSubFolders;
+
+ /**
+ * Indicates whether a user has permission to delete items in a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\PermissionActionType
+ */
+ public $DeleteItems;
+
+ /**
+ * Indicates whether a user has permission to edit items in a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\PermissionActionType
+ */
+ public $EditItems;
+
+ /**
+ * Indicates whether a user is a contact for a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $IsFolderContact;
+
+ /**
+ * Indicates whether a user is the owner of a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $IsFolderOwner;
+
+ /**
+ * Indicates whether a user can view a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $IsFolderVisible;
+
+ /**
+ * Identifies a delegate user or a user who has folders access permissions.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserIdType
+ */
+ public $UserId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseSubscriptionRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseSubscriptionRequestType.php
new file mode 100644
index 00000000..be987dd9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BaseSubscriptionRequestType.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BaseSubscriptionRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for subscription requests.
+ *
+ * @package php-ews\Type
+ */
+abstract class BaseSubscriptionRequestType extends Type
+{
+ /**
+ * Contains a collection of event notifications that are used to create a
+ * subscription.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfNotificationEventTypesType
+ */
+ public $EventTypes;
+
+ /**
+ * Contains an array of folder identifiers that are used to identify folders
+ * to monitor for event notifications.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $FolderIds;
+
+ /**
+ * Indicates whether to subscribe to all available folders.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $SubscribeToAllFolders;
+
+ /**
+ * Represents an event bookmark in the mailbox events table.
+ *
+ * This is used to create a subscription starting at an event represented by
+ * the watermark.
+ *
+ * If the watermark from a Subscribe request is not found, an error response
+ * will be returned to the client. This may occur if the watermark is older
+ * than 30 days or if the watermark was never present in the mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Determine if we need a WatermarkType.
+ */
+ public $Watermark;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyContentAttributedValueType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyContentAttributedValueType.php
new file mode 100644
index 00000000..edf39575
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyContentAttributedValueType.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BodyContentAttributedValueType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the body content of an item.
+ *
+ * @package php-ews\Type
+ */
+class BodyContentAttributedValueType extends Type
+{
+ /**
+ * Specifies an array of attribution information for one or more of the
+ * contacts or active directory recipients aggregated into the associated
+ * persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPersonaAttributionsType
+ */
+ public $Attributions;
+
+ /**
+ * Specifies the value of a BodyContentAttributedValue element.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\BodyTypeResponseType
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyContentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyContentType.php
new file mode 100644
index 00000000..b637f884
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyContentType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BodyContentType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the value of a BodyContentAttributedValue element.
+ *
+ * @package php-ews\Type
+ */
+class BodyContentType extends Type
+{
+ /**
+ * Identifies how the body text is formatted.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\BodyTypeResponseType
+ */
+ public $BodyType;
+
+ /**
+ * Contains the value of the body content.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyType.php
new file mode 100644
index 00000000..4af49a1f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/BodyType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\BodyType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Specifies the body of an item.
+ *
+ * @package php-ews\Type
+ */
+class BodyType extends StringType
+{
+ /**
+ * Specifies the type of the body.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\BodyTypeType
+ */
+ public $BodyType;
+
+ /**
+ * Boolean value that indicates whether the body is truncated.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsTruncated;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarEvent.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarEvent.php
new file mode 100644
index 00000000..c9281c11
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarEvent.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\CalendarEvent.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a unique calendar item occurrence.
+ *
+ * @package php-ews\Type
+ */
+class CalendarEvent extends Type
+{
+ /**
+ * Represents the start of a calendar event.
+ *
+ * This property is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $StartTime;
+
+ /**
+ * Represents the end of a calendar event.
+ *
+ * This property is required,
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $EndTime;
+
+ /**
+ * Represents the free/busy status set for a calendar event.
+ *
+ * This property is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\LegacyFreeBusyType
+ */
+ public $BusyType;
+
+ /**
+ * Provides additional information for a calendar event.
+ *
+ * This property is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarEventDetails
+ */
+ public $CalendarEventDetails;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarEventDetails.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarEventDetails.php
new file mode 100644
index 00000000..94a864d2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarEventDetails.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\CalendarEventDetails.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents additional information about a calendar event.
+ *
+ * @package php-ews\Type
+ */
+class CalendarEventDetails extends Type
+{
+ /**
+ * Represents the entry ID of the calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ID;
+
+ /**
+ * Indicates whether an instance of a recurring calendar item is changed
+ * from the master.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsException;
+
+ /**
+ * Indicates whether the calendar event is a meeting or an appointment.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsMeeting;
+
+ /**
+ * Indicates whether the calendar item is private.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsPrivate;
+
+ /**
+ * Indicates whether the calendar event is an instance of a recurring
+ * calendar item or a single calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsRecurring;
+
+ /**
+ * Indicates whether a reminder has been set for the calendar event.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsReminderSet;
+
+ /**
+ * Represents the location field of the calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Location;
+
+ /**
+ * Represents the subject of the calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Subject;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarFolderType.php
new file mode 100644
index 00000000..75788398
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarFolderType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\CalendarFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a folder that primarily contains calendar items.
+ *
+ * @package php-ews\Type
+ */
+class CalendarFolderType extends BaseFolderType
+{
+ /**
+ * Contains all the configured permissions for a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarPermissionSetType
+ */
+ public $PermissionSet;
+
+ /**
+ * Indicates the permissions that the user has for the calendar data that is
+ * being shared.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\CalendarPermissionReadAccessType
+ */
+ public $SharingEffectiveRights;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarItemType.php
new file mode 100644
index 00000000..0eef5324
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarItemType.php
@@ -0,0 +1,447 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\CalendarItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an Exchange calendar item.
+ *
+ * @package php-ews\Type
+ */
+class CalendarItemType extends ItemType
+{
+ /**
+ * Represents the total number of calendar items that are adjacent to a
+ * meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $AdjacentMeetingCount;
+
+ /**
+ * Describes all calendar items that are adjacent to a meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAllItemsType
+ */
+ public $AdjacentMeetings;
+
+ /**
+ * Indicates whether a new meeting time can be proposed for a meeting by an
+ * attendee.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $AllowNewTimeProposal;
+
+ /**
+ * Represents the date and time when an attendee replied to a meeting
+ * request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $AppointmentReplyTime;
+
+ /**
+ * Specifies the sequence number of a version of an appointment.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $AppointmentSequenceNumber;
+
+ /**
+ * Specifies the status of the appointment.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\AppointmentState
+ */
+ public $AppointmentState;
+
+ /**
+ * Represents the occurrence type of a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\CalendarItemTypeType
+ */
+ public $CalendarItemType;
+
+ /**
+ * Describes the type of conferencing that is performed with a calendar
+ * item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ConferenceType
+ */
+ public $ConferenceType;
+
+ /**
+ * Represents the number of meetings that conflict with the calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $ConflictingMeetingCount;
+
+ /**
+ * Identifies all items that conflict with a meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAllItemsType
+ */
+ public $ConflictingMeetings;
+
+ /**
+ * Indicates the date and time that an instance of a iCalendar object was
+ * created.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $DateTimeStamp;
+
+ /**
+ * Contains an array of deleted occurrences of a recurring calendar item.
+ *
+ * This element is valid if CalendarItemType has the RecurringMaster value.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfDeletedOccurrencesType
+ */
+ public $DeletedOccurrences;
+
+ /**
+ * Represents the duration of a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Duration;
+
+ /**
+ * Represents the end of a duration.
+ *
+ * This element only applies to a single occurrence of a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $End;
+
+ /**
+ * Represents the end time zone of the calendar item.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeZoneDefinitionType
+ */
+ public $EndTimeZone;
+
+ /**
+ * Represents the first occurrence of a recurring calendar item.
+ *
+ * This element is valid if CalendarItemType has the RecurringMaster value.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeZoneDefinitionType
+ */
+ public $FirstOccurrence;
+
+ /**
+ * Indicates whether a calendar item or meeting request represents an
+ * all-day event.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsAllDayEvent;
+
+ /**
+ * Indicates whether an appointment or meeting has been canceled.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsCancelled;
+
+ /**
+ * Indicates whether the calendar item is a meeting or appointment.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsMeeting;
+
+ /**
+ * Indicates whether the meeting is online.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsOnlineMeeting;
+
+ /**
+ * Indicates whether a calendar item is part of a recurring item.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsRecurring;
+
+ /**
+ * Indicates whether a response to an item is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsResponseRequested;
+
+ /**
+ * Represents the last occurrence of a recurring calendar item.
+ *
+ * This element is valid if CalendarItemType has the RecurringMaster value.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\OccurrenceInfoType
+ */
+ public $LastOccurrence;
+
+ /**
+ * Represents the free/busy status of the calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\LegacyFreeBusyType
+ */
+ public $LegacyFreeBusyStatus;
+
+ /**
+ * Represents the location of a meeting or appointment.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Location;
+
+ /**
+ * Indicates whether a meeting request has been sent to requested attendees.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $MeetingRequestWasSent;
+
+ /**
+ * Represents the time zone of the location where the meeting is hosted.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeZoneType
+ */
+ public $MeetingTimeZone;
+
+ /**
+ * Contains the URL for the meeting workspace that is linked to by the
+ * calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $MeetingWorkspaceUrl;
+
+ /**
+ * Contains an array of recurring calendar item occurrences that have been
+ * modified so that they differ from the recurrence master item.
+ *
+ * This element is valid if CalendarItemType has the RecurringMaster value.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfOccurrenceInfoType
+ */
+ public $ModifiedOccurrences;
+
+ /**
+ * Contains the status of or response to a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ResponseTypeType
+ */
+ public $MyResponseType;
+
+ /**
+ * Specifies the URL for a Microsoft NetShow online meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $NetShowUrl;
+
+ /**
+ * Represents attendees that are not required to attend a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAttendeesType
+ */
+ public $OptionalAttendees;
+
+ /**
+ * Represents the organizer of a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $Organizer;
+
+ /**
+ * Represents the original start time of a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $OriginalStart;
+
+ /**
+ * Contains the recurrence pattern for calendar items and meeting requests.
+ *
+ * This element is valid if CalendarItemType has the RecurringMaster value.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RecurrenceType
+ */
+ public $Recurrence;
+
+ /**
+ * Used to identify a specific instance of a recurring calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $RecurrenceId;
+
+ /**
+ * Represents attendees that are required to attend a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAttendeesType
+ */
+ public $RequiredAttendees;
+
+ /**
+ * Represents a scheduled resource for a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAttendeesType
+ */
+ public $Resources;
+
+ /**
+ * Represents the start of a calendar item.
+ *
+ * This element only applies to a single occurrence of a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $Start;
+
+ /**
+ * Represents the start time zone of the calendar item.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeZoneDefinitionType
+ */
+ public $StartTimeZone;
+
+ /**
+ * Provides a text description of a time zone.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $TimeZone;
+
+ /**
+ * Identifies a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $UID;
+
+ /**
+ * Provides information about when a calendar item occurs.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $When;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarPermissionSetType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarPermissionSetType.php
new file mode 100644
index 00000000..135dfcc1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarPermissionSetType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\CalendarPermissionSetType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Contains all the permissions that are configured for a calendar folder.
+ *
+ * @package php-ews\Type
+ */
+class CalendarPermissionSetType extends Type
+{
+ /**
+ * Contains an array of calendar permissions for a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfCalendarPermissionsType
+ */
+ public $CalendarPermissions;
+
+ /**
+ * Contains an array of unknown entries that cannot be resolved against the
+ * Active Directory directory service.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfUnknownEntriesType
+ */
+ public $UnknownEntries;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarPermissionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarPermissionType.php
new file mode 100644
index 00000000..6b799f0b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarPermissionType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\CalendarPermissionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the access that a user has to a Calendar folder.
+ *
+ * @package php-ews\Type
+ */
+class CalendarPermissionType extends BasePermissionType
+{
+ /**
+ * Represents the permission level that a user has on a Calendar folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\CalendarPermissionLevelType
+ */
+ public $CalendarPermissionLevel;
+
+ /**
+ * Indicates whether a user has permission to read items within a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\CalendarPermissionReadAccessType
+ */
+ public $ReadItems;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarViewType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarViewType.php
new file mode 100644
index 00000000..322b6708
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CalendarViewType.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\CalendarViewType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a FindItem operation as returning calendar items in a set as they
+ * appear in a calendar.
+ *
+ * @package php-ews\Type
+ */
+class CalendarViewType extends BasePagingType
+{
+ /**
+ * Identifies the end of a time span queried for calendar items.
+ *
+ * All calendar items that have a start time that is on or after EndDate
+ * will not be returned. The value of EndDate can be specified in UTC
+ * format, as in 2006-02-02T12:00:00Z, or in a format where local time and
+ * time zone offset is specified, as in 2006-02-02T04:00:00-08:00.
+ *
+ * EndDate must be greater than or equal to StartDate; otherwise an error is
+ * returned.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $EndDate;
+
+ /**
+ * Identifies the start of a time span queried for calendar items.
+ *
+ * All calendar items that have an end time that is before StartDate will
+ * not be returned. The value of StartDate can be specified in coordinated
+ * universal time (UTC) format, as in 2006-01-02T12:00:00Z, or in a format
+ * where local time and time zone offset is specified, as in
+ * 2006-01-02T04:00:00-08:00.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $StartDate;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CancelCalendarItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CancelCalendarItemType.php
new file mode 100644
index 00000000..8dd62193
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CancelCalendarItemType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\CancelCalendarItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the response object that is used to cancel a meeting.
+ *
+ * @package php-ews\Type
+ */
+class CancelCalendarItemType extends SmartResponseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ChangeDescriptionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ChangeDescriptionType.php
new file mode 100644
index 00000000..e393f1a3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ChangeDescriptionType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ChangeDescriptionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for changes to individual properties.
+ *
+ * @package php-ews\Type
+ */
+abstract class ChangeDescriptionType extends Type
+{
+ /**
+ * Identifies extended MAPI properties to set.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToExtendedFieldType
+ */
+ public $ExtendedFieldURI;
+
+ /**
+ * Identifies frequently referenced properties by URI.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToUnindexedFieldType
+ */
+ public $FieldURI;
+
+ /**
+ * Identifies individual members of a dictionary.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToIndexedFieldType
+ */
+ public $IndexedFieldURI;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ClientAccessTokenRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ClientAccessTokenRequestType.php
new file mode 100644
index 00000000..f77999f0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ClientAccessTokenRequestType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ClientAccessTokenRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a single token request.
+ *
+ * @package php-ews\Type
+ */
+class ClientAccessTokenRequestType extends Type
+{
+ /**
+ * Specifies the identifier of an app.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Id;
+
+ /**
+ * Specifies a token scope.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Scope;
+
+ /**
+ * Identifies the type of client access token.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ClientAccessTokenTypeType
+ */
+ public $TokenType;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ClientAccessTokenType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ClientAccessTokenType.php
new file mode 100644
index 00000000..0de0cf58
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ClientAccessTokenType.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ClientAccessTokenType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a client access token.
+ *
+ * @package php-ews\Type
+ */
+class ClientAccessTokenType extends Type
+{
+ /**
+ * Specifies the identifier of the token.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Id;
+
+ /**
+ * Specifies the type of token.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ClientAccessTokenTypeType
+ */
+ public $TokenType;
+
+ /**
+ * Specifies the encoded client access token.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $TokenValue;
+
+ /**
+ * Specifies the time, in minutes, that the token is valid.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $TTL;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CompleteNameType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CompleteNameType.php
new file mode 100644
index 00000000..900cf169
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CompleteNameType.php
@@ -0,0 +1,108 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\CompleteNameType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the complete name of a contact.
+ *
+ * @package php-ews\Type
+ */
+class CompleteNameType extends Type
+{
+ /**
+ * Represents the first name of contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $FirstName;
+
+ /**
+ * Represents the full name of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $FullName;
+
+ /**
+ * Represents the initials of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Initials;
+
+ /**
+ * Represents the last name of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $LastName;
+
+ /**
+ * Represents the middle name of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $MiddleName;
+
+ /**
+ * Represents the nickname of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Nickname;
+
+ /**
+ * Represents a suffix to a contact's name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Suffix;
+
+ /**
+ * Represents the title of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Title;
+
+ /**
+ * Represents the name used in Japan for the searchable or phonetic spelling
+ * of a Japanese first name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $YomiFirstName;
+
+ /**
+ * Represents the name used in Japan for the searchable or phonetic spelling
+ * of a Japanese last name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $YomiLastName;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConflictResultsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConflictResultsType.php
new file mode 100644
index 00000000..9f07e942
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConflictResultsType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ConflictResultsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Indicates the number of conflicts in an UpdateItem Operation response.
+ *
+ * @package php-ews\Type
+ */
+class ConflictResultsType extends Type
+{
+ /**
+ * Contains the number of conflicts in an UpdateItem Operation response.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Count;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConnectingSIDType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConnectingSIDType.php
new file mode 100644
index 00000000..93a61ff9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConnectingSIDType.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ConnectingSIDType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an account to impersonate when you are using the
+ * ExchangeImpersonation SOAP header.
+ *
+ * @package php-ews\Type
+ */
+class ConnectingSIDType extends Type
+{
+ /**
+ * Represents the primary Simple Mail Transfer Protocol (SMTP) address of
+ * the account to use for Exchange impersonation.
+ *
+ * If the primary SMTP address is supplied, it will cost an extra Active
+ * Directory directory service lookup in order to obtain the SID of the
+ * user. We recommend that you use the SID or UPN if they are available.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $PrimarySmtpAddress;
+
+ /**
+ * Represents the user principal name (UPN) of the account to use for
+ * impersonation.
+ *
+ * This should be the UPN for the domain where the user account exists.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $PrincipalName;
+
+ /**
+ * Represents the security descriptor definition language (SDDL) form of the
+ * security identifier (SID) for the account to use for impersonation.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SID;
+
+ /**
+ * Represents the Simple Mail Transfer Protocol (SMTP) address of the
+ * account to use for Exchange Impersonation.
+ *
+ * If the SMTP address is supplied, it will cost an extra Active Directory
+ * lookup in order to obtain the SID of the user. We recommend that you use
+ * the SID or UPN if they are available.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $SmtpAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConstantValueType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConstantValueType.php
new file mode 100644
index 00000000..8c41ac47
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConstantValueType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ConstantValueType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a constant value in a restriction.
+ *
+ * @package php-ews\Type
+ */
+class ConstantValueType extends Type
+{
+ /**
+ * Specifies the value to compare in the restriction.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactItemType.php
new file mode 100644
index 00000000..21984ebb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactItemType.php
@@ -0,0 +1,413 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ContactItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a contact item in the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class ContactItemType extends ItemType
+{
+ /**
+ * Contains the email alias of a contact.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ public $Alias;
+
+ /**
+ * Represents an assistant to a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $AssistantName;
+
+ /**
+ * Represents the birth date of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $Birthday;
+
+ /**
+ * Represents the Home page (Web address) for the contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $BusinessHomePage;
+
+ /**
+ * Contains the names of a contact's children.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Children;
+
+ /**
+ * Represents the collection of companies that are associated with a
+ * contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Companies;
+
+ /**
+ * Represents the company name that is associated with a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $CompanyName;
+
+ /**
+ * Represents the complete name of a contact.
+ *
+ * This property is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CompleteNameType
+ */
+ public $CompleteName;
+
+ /**
+ * Describes whether the contact is located in the Exchange store or the
+ * Active Directory directory service.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ContactSourceType
+ */
+ public $ContactSource;
+
+ /**
+ * Represents the contact's department at work.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Department;
+
+ /**
+ * Contains the directory ID of a contact.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ public $DirectoryId;
+
+ /**
+ * Contains SMTP information that identifies the direct reports of a
+ * contact.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $DirectReports;
+
+ /**
+ * Defines the display name of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Represents a collection of e-mail addresses for a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressDictionaryType
+ */
+ public $EmailAddresses;
+
+ /**
+ * Represents how a contact is filed in the Contacts folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $FileAs;
+
+ /**
+ * Defines how to construct what is displayed for a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\FileAsMappingType
+ */
+ public $FileAsMapping;
+
+ /**
+ * Represents a generational abbreviation that follows the full name of a
+ * contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Generation;
+
+ /**
+ * Contains a contact's given name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $GivenName;
+
+ /**
+ * Indicates whether the contact item has a file attachment that represents
+ * the contact's picture.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $HasPicture;
+
+ /**
+ * Represents a collection of instant messaging addresses for a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ImAddressDictionaryType
+ */
+ public $ImAddresses;
+
+ /**
+ * Represents the initials of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Initials;
+
+ /**
+ * Represents the job title of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $JobTitle;
+
+ /**
+ * Represents a contact's manager.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Manager;
+
+ /**
+ * Contains SMTP information that identifies the manager mailbox of the
+ * contact.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $ManagerMailbox;
+
+ /**
+ * Represents the middle name of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $MiddleName;
+
+ /**
+ * Represents mileage for a contact item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Mileage;
+
+ /**
+ * Contains a value that encodes the Microsoft Exchange certificate of a
+ * contact.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfBinaryType
+ */
+ public $MSExchangeCertificate;
+
+ /**
+ * Represents the nickname of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Nickname;
+
+ /**
+ * Contains supplementary contact information.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ public $Notes;
+
+ /**
+ * Represents the office location of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $OfficeLocation;
+
+ /**
+ * Represents a collection of telephone numbers for a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PhoneNumberDictionaryType
+ */
+ public $PhoneNumbers;
+
+ /**
+ * Contains the full name of a contact, including the first and last name,
+ * spelled phonetically.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ public $PhoneticFullName;
+
+ /**
+ * Contains the first name of a contact, spelled phonetically.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ public $PhoneticFirstName;
+
+ /**
+ * Contains the last name of a contact, spelled phonetically.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ public $PhoneticLastName;
+
+ /**
+ * Contains a value that encodes the photo of a contact.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ */
+ public $Photo;
+
+ /**
+ * Contains a collection of physical addresses that are associated with a
+ * contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PhysicalAddressDictionaryType
+ */
+ public $PhysicalAddresses;
+
+ /**
+ * Represents the display types for physical addresses.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\PhysicalAddressIndexType
+ */
+ public $PostalAddressIndex;
+
+ /**
+ * Represents the profession of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Profession;
+
+ /**
+ * Represents the name of a contact's spouse/partner.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SpouseName;
+
+ /**
+ * Represents the surname of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Surname;
+
+ /**
+ * Contains a value that encodes the SMIME certificate of a contact.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfBinaryType
+ */
+ public $UserSMIMECertificate;
+
+ /**
+ * Contains the wedding anniversary of a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $WeddingAnniversary;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactsFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactsFolderType.php
new file mode 100644
index 00000000..75a96e0a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactsFolderType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ContactsFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a contacts folder that is contained in a mailbox.
+ *
+ * @package php-ews\Type
+ */
+class ContactsFolderType extends BaseFolderType
+{
+ /**
+ * Contains all the configured permissions for a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\PermissionSetType
+ */
+ public $PermissionSet;
+
+ /**
+ * Indicates the permissions that the user has for the contact data that is
+ * being shared.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\PermissionReadAccessType
+ */
+ public $SharingEffectiveRights;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactsViewType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactsViewType.php
new file mode 100644
index 00000000..a3d7fde2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContactsViewType.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ContactsViewType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a search for contact items based on alphabetical display names.
+ *
+ * @package php-ews\Type
+ */
+class ContactsViewType extends BasePagingType
+{
+ /**
+ * Defines the last name in the contacts list to return in the response.
+ *
+ * If the FinalName attribute is omitted, the response will contain all
+ * subsequent contacts in the specified sort order. If the specified final
+ * name is not in the contacts list, the next alphabetical name as defined
+ * by the cultural context will be excluded.
+ *
+ * For example, if FinalName="Name", but Name is not in the contacts list,
+ * contacts that have display names of Name1 or NAME will not be included.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $FinalName;
+
+ /**
+ * Defines the first name in the contacts list to return in the response.
+ *
+ * If the specified initial name is not in the contacts list, the next
+ * alphabetical name as defined by the cultural context will be returned,
+ * except if the next name comes after FinalName.
+ *
+ * If the InitialName attribute is omitted, the response will contain a list
+ * of contacts that starts with the first name in the contact list.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $InitialName;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContainsExpressionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContainsExpressionType.php
new file mode 100644
index 00000000..099623ea
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContainsExpressionType.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ContainsExpressionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that determines whether a given property
+ * contains the supplied constant string value.
+ *
+ * @package php-ews\Type
+ */
+class ContainsExpressionType extends SearchExpressionType
+{
+ /**
+ * Identifies a constant value in a restriction.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ConstantValueType
+ */
+ public $Constant;
+
+ /**
+ * Determines whether the search ignores cases and spaces.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ContainmentComparisonType
+ */
+ public $ContainmentComparison;
+
+ /**
+ * Identifies the boundaries of a search.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ContainmentModeType
+ */
+ public $ContainmentMode;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContextPropertyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContextPropertyType.php
new file mode 100644
index 00000000..666079b5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ContextPropertyType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ContextPropertyType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the context for an item.
+ *
+ * @package php-ews\Type
+ */
+class ContextPropertyType extends Type
+{
+ /**
+ * Specifies the key of the context.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ public $Key;
+
+ /**
+ * Specifies the value of the context.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationActionType.php
new file mode 100644
index 00000000..b2e0c7ea
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationActionType.php
@@ -0,0 +1,131 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ConversationActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single action to be applied to a single conversation.
+ *
+ * @package php-ews\Type
+ */
+class ConversationActionType extends Type
+{
+ /**
+ * Contains the action to perform on the conversation specified by the
+ * ConversationId element.
+ *
+ * This element must be present.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ConversationActionTypeType
+ */
+ public $Action;
+
+ /**
+ * Contains a collection of strings that identify the categories to which
+ * items in a conversation belong.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Categories;
+
+ /**
+ * Indicates the folder that is targeted for actions that use folders.
+ *
+ * This element must be present when copying, deleting, moving, and setting
+ * read state on conversation items in a target folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $ContextFolderId;
+
+ /**
+ * Contains the identifier of the conversation that will have the action
+ * specified by the Action element applied to items in the conversation.
+ *
+ * This element must be present.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ConversationId;
+
+ /**
+ * Contains the date and time that a conversation was last synchronized.
+ *
+ * This element must be present when trying to delete all items in a
+ * conversation that were received up to the specified time.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $ConversationLastSyncTime;
+
+ /**
+ * Indicates how items in a conversation are deleted.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DisposalType
+ */
+ public $DeleteType;
+
+ /**
+ * Indicates the destination folder for copy and move actions.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $DestinationFolderId;
+
+ /**
+ * Specifies a flag that enables deletion for all new items in a
+ * conversation.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var boolean
+ */
+ public $EnableAlwaysDelete;
+
+ /**
+ * Indicates whether a message has been read.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var boolean
+ */
+ public $IsRead;
+
+ /**
+ * Indicates whether the response is sent as soon as the action starts
+ * processing on the server or whether the response is sent after the action
+ * has completed.
+ *
+ * This element must be present for the response to be sent asynchronous to
+ * the requested action.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var boolean
+ */
+ public $ProcessRightAway;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationNodeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationNodeType.php
new file mode 100644
index 00000000..1b18f705
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationNodeType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ConversationNodeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a node in a conversation.
+ *
+ * @package php-ews\Type
+ */
+class ConversationNodeType extends Type
+{
+ /**
+ * Represents the Internet message identifier of an item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $InternetMessageId;
+
+ /**
+ * Specifies all the items in the conversation node.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAllItemsType
+ */
+ public $Items;
+
+ /**
+ * Specifies the identifier of the parent Internet message.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ParentInternetMessageId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationResponseType.php
new file mode 100644
index 00000000..c39634d3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationResponseType.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ConversationResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a single conversation.
+ *
+ * @package php-ews\Type
+ */
+class ConversationResponseType extends Type
+{
+ /**
+ * Indicates whether the conversation can be deleted.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $CanDelete;
+
+ /**
+ * Contains the identifier of the conversation.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ConversationId;
+
+ /**
+ * Specifies a collection of conversation nodes.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfConversationNodesType
+ */
+ public $ConversationNodes;
+
+ /**
+ * Specifies the synchronization state of a conversation.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $SyncState;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationShape.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationShape.php
new file mode 100644
index 00000000..0281ad08
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationShape.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ConversationShape.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies the property set to return in a FindConversation operation
+ * response.
+ *
+ * @package php-ews\Type
+ */
+class ConversationShape extends Type
+{
+ /**
+ * Identifies additional properties for use in the request.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPathsToElementType
+ */
+ public $AdditionalProperties;
+
+ /**
+ * Identifies the set of properties to return in the response.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DefaultShapeNamesType
+ */
+ public $BaseShape;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationType.php
new file mode 100644
index 00000000..f37f0263
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ConversationType.php
@@ -0,0 +1,310 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ConversationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single conversation.
+ *
+ * @package php-ews\Type
+ */
+class ConversationType extends Type
+{
+ /**
+ * Contains a collection of strings that identify the categories that are
+ * applied to all conversation items in the current folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Categories;
+
+ /**
+ * Represents the identifier of a conversation.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ConversationId;
+
+ /**
+ * Represents the conversation topic.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $ConversationTopic;
+
+ /**
+ * Contains the aggregated flag status for conversation items in the current
+ * folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\FlagStatusType
+ */
+ public $FlagStatus;
+
+ /**
+ * Contains the category list for all conversation items in a mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $GlobalCategories;
+
+ /**
+ * Contains the aggregated flag status for all conversation items in a
+ * mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\FlagStatusType
+ */
+ public $GlobalFlagStatus;
+
+ /**
+ * Contains a value that indicates whether at least one conversation item in
+ * a mailbox has an attachment.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var boolean
+ */
+ public $GlobalHasAttachments;
+
+ /**
+ * Contains the aggregated importance for all conversation items in a
+ * mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ImportanceChoicesType
+ */
+ public $GlobalImportance;
+
+ /**
+ * Contains a list of item classes that represents all the item classes of
+ * the conversation items in a mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfItemClassType
+ */
+ public $GlobalItemClasses;
+
+ /**
+ * Contains the collection of item identifiers for all conversation items in
+ * a mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType
+ */
+ public $GlobalItemIds;
+
+ /**
+ * Contains the delivery time of the message that was last received in this
+ * conversation across all folders in the mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $GlobalLastDeliveryTime;
+
+ /**
+ * Contains the total number of conversation items in the mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var integer
+ */
+ public $GlobalMessageCount;
+
+ /**
+ * Contains the size of the conversation calculated from the size of all
+ * conversation items in the mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var integer
+ */
+ public $GlobalSize;
+
+ /**
+ * Contains the recipient list of a conversation aggregated across a
+ * mailbox.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $GlobalUniqueRecipients;
+
+ /**
+ * Contains a list of all the senders of conversation items in the mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $GlobalUniqueSenders;
+
+ /**
+ * Contains a list of all the people who have sent messages that are
+ * currently unread in this conversation across all folders in the mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $GlobalUniqueUnreadSenders;
+
+ /**
+ * Contains a count of all the unread conversation items in the mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var integer
+ */
+ public $GlobalUnreadCount;
+
+ /**
+ * Contains a value that indicates whether at least one conversation item in
+ * the current folder has an attachment.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var boolean
+ */
+ public $HasAttachments;
+
+ /**
+ * Contains the aggregated importance for all conversation items in the
+ * current folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ImportanceChoicesType
+ */
+ public $Importance;
+
+ /**
+ * Contains a list of item classes that represents all the item classes of
+ * the conversation items in the current folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfItemClassType
+ */
+ public $ItemClasses;
+
+ /**
+ * Contains the collection of item identifiers for all conversation items in
+ * the current folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseItemIdsType
+ */
+ public $ItemIds;
+
+ /**
+ * Contains the delivery time of the message that was last received in this
+ * conversation in the current folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $LastDeliveryTime;
+
+ /**
+ * Contains the total number of conversation items in the current folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var integer
+ */
+ public $MessageCount;
+
+ /**
+ * Contains the conversation size calculated from the size of all
+ * conversation items in the current folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var integer
+ */
+ public $Size;
+
+ /**
+ * Contains the recipient list of a conversation aggregated from a
+ * particular folder.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $UniqueRecipients;
+
+ /**
+ * Contains a list of all the senders of conversation items in the current
+ * folder.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $UniqueSenders;
+
+ /**
+ * Contains a list of all the people who have sent messages that are
+ * currently unread in this conversation in the current folder.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $UniqueUnreadSenders;
+
+ /**
+ * Contains the count of unread conversation items within a folder.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var integer
+ */
+ public $UnreadCount;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CreateRuleOperationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CreateRuleOperationType.php
new file mode 100644
index 00000000..d26153f7
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/CreateRuleOperationType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\CreateRuleOperationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an operation to create a new Inbox rule.
+ *
+ * @package php-ews\Type
+ */
+class CreateRuleOperationType extends RuleOperationType
+{
+ /**
+ * Represents a rule to be created in a user's mailbox.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RuleType
+ */
+ public $Rule;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DailyRecurrencePatternType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DailyRecurrencePatternType.php
new file mode 100644
index 00000000..70129f8e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DailyRecurrencePatternType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DailyRecurrencePatternType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes the frequency, in days, in which a calendar item or a task recurs.
+ *
+ * @package php-ews\Type
+ */
+class DailyRecurrencePatternType extends IntervalRecurrencePatternBaseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DailyRegeneratingPatternType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DailyRegeneratingPatternType.php
new file mode 100644
index 00000000..55fd1ef4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DailyRegeneratingPatternType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DailyRegeneratingPatternType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes the frequency, in days, in which a task is regenerated.
+ *
+ * @package php-ews\Type
+ */
+class DailyRegeneratingPatternType extends RegeneratingPatternBaseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeclineItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeclineItemType.php
new file mode 100644
index 00000000..a8cd62bb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeclineItemType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DeclineItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a Decline reply to a meeting request.
+ *
+ * @package php-ews\Type
+ */
+class DeclineItemType extends WellKnownResponseObjectType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DelegatePermissionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DelegatePermissionsType.php
new file mode 100644
index 00000000..09f82581
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DelegatePermissionsType.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DelegatePermissionsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Contains the delegate permission-level settings for a user.
+ *
+ * @package php-ews\Type
+ */
+class DelegatePermissionsType extends Type
+{
+ /**
+ * Contains the permissions for the default Calendar folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DelegateFolderPermissionLevelType
+ */
+ public $CalendarFolderPermissionLevel;
+
+ /**
+ * Contains the permissions for the default Contacts folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DelegateFolderPermissionLevelType
+ */
+ public $ContactsFolderPermissionLevel;
+
+ /**
+ * Contains the permissions for the default Inbox folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DelegateFolderPermissionLevelType
+ */
+ public $InboxFolderPermissionLevel;
+
+ /**
+ * Contains the permissions for the default Journal folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DelegateFolderPermissionLevelType
+ */
+ public $JournalFolderPermissionLevel;
+
+ /**
+ * Contains the permissions for the default Notes folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DelegateFolderPermissionLevelType
+ */
+ public $NotesFolderPermissionLevel;
+
+ /**
+ * Contains the permissions for the default Task folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DelegateFolderPermissionLevelType
+ */
+ public $TasksFolderPermissionLevel;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DelegateUserType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DelegateUserType.php
new file mode 100644
index 00000000..cad91d97
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DelegateUserType.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DelegateUserType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a single delegate to add or update in a mailbox or a delegate
+ * returned in a delegate management response.
+ *
+ * @package php-ews\Type
+ */
+class DelegateUserType extends Type
+{
+ /**
+ * Contains the delegate permission level settings.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\DelegatePermissionsType
+ */
+ public $DelegatePermissions;
+
+ /**
+ * Indicates whether a delegate receives copies of meeting-related messages
+ * that are addressed to the principal.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $ReceiveCopiesOfMeetingMessages;
+
+ /**
+ * Identifies the delegate.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserIdType
+ */
+ public $UserId;
+
+ /**
+ * Indicates whether a delegate has permission to view private calendar
+ * items in the principal's mailbox.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $ViewPrivateItems;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteFolderFieldType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteFolderFieldType.php
new file mode 100644
index 00000000..d9b68136
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteFolderFieldType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DeleteFolderFieldType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an operation to delete a given property from a folder during an
+ * UpdateFolder call.
+ *
+ * @package php-ews\Type
+ */
+class DeleteFolderFieldType extends FolderChangeDescriptionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteItemFieldType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteItemFieldType.php
new file mode 100644
index 00000000..852ca0ea
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteItemFieldType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DeleteItemFieldType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an operation to delete a given property from an item during an
+ * UpdateItem call.
+ *
+ * @package php-ews\Type
+ */
+class DeleteItemFieldType extends ItemChangeDescriptionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteRuleOperationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteRuleOperationType.php
new file mode 100644
index 00000000..6f98dc05
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeleteRuleOperationType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DeleteRuleOperationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an operation to delete an existing Inbox rule.
+ *
+ * @package php-ews\Type
+ */
+class DeleteRuleOperationType extends RuleOperationType
+{
+ /**
+ * Specifies the identifier of the rule to delete.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $RuleId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeletedOccurrenceInfoType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeletedOccurrenceInfoType.php
new file mode 100644
index 00000000..3dcb6462
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DeletedOccurrenceInfoType.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DeletedOccurrenceInfoType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a deleted occurrence of a recurring calendar item.
+ *
+ * @package php-ews\Type
+ */
+class DeletedOccurrenceInfoType extends Type
+{
+ /**
+ * Represents the start time of a deleted occurrence of a recurring calendar
+ * item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $Start;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DirectoryEntryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DirectoryEntryType.php
new file mode 100644
index 00000000..81d777c1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DirectoryEntryType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DirectoryEntryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a directory entry.
+ *
+ * @package php-ews\Type
+ */
+class DirectoryEntryType extends Type
+{
+ /**
+ * An identifier that contains an email address and display name that
+ * represents a meeting room.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Id;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DiscoverySearchConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DiscoverySearchConfigurationType.php
new file mode 100644
index 00000000..208a6b0e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DiscoverySearchConfigurationType.php
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DiscoverySearchConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a configuration for eDiscovery search.
+ *
+ * @package php-ews\Type
+ */
+class DiscoverySearchConfigurationType extends Type
+{
+ /**
+ * Specifies the identity of a hold that preserves the mailbox items.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $InPlaceHoldIdentity;
+
+ /**
+ * Identifies the culture to be used for the culture-specific format of date
+ * ranges.
+ *
+ * It also specifies the language used in a search query.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Language;
+
+ /**
+ * Specifies the managing organization.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ManagedByOrganization;
+
+ /**
+ * Specifies the identifier of the search.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $SearchId;
+
+ /**
+ * Specifies the name of an eDiscovery search query.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $SearchQuery;
+
+ /**
+ * Contains a list of mailboxes.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfSearchableMailboxesType
+ */
+ public $SearchableMailboxes;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistinguishedFolderIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistinguishedFolderIdType.php
new file mode 100644
index 00000000..f0e39068
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistinguishedFolderIdType.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DistinguishedFolderIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies folders that can be referenced by name.
+ *
+ * @package php-ews\Type
+ */
+class DistinguishedFolderIdType extends BaseFolderIdType
+{
+ /**
+ * Contains a string that identifies a version of a folder that is
+ * identified by the Id attribute.
+ *
+ * This attribute is optional. Use this attribute to make sure that the
+ * correct version of a folder is used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ChangeKey;
+
+ /**
+ * Identifies a default folder.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DistinguishedFolderIdNameType
+ */
+ public $Id;
+
+ /**
+ * Identifies a primary SMTP address.
+ *
+ * Proxy addresses are not allowed.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Mailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistinguishedGroupByType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistinguishedGroupByType.php
new file mode 100644
index 00000000..37166b83
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistinguishedGroupByType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DistinguishedGroupByType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents standard groupings for FindItem queries.
+ *
+ * @package php-ews\Type
+ */
+class DistinguishedGroupByType extends BaseGroupByType
+{
+ /**
+ * Represents the standard grouping and aggregating mechanisms for a grouped
+ * FindItem operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\StandardGroupByType
+ */
+ public $StandardGroupBy;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistributionListType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistributionListType.php
new file mode 100644
index 00000000..b366d224
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/DistributionListType.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\DistributionListType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a distribution list.
+ *
+ * @package php-ews\Type
+ */
+class DistributionListType extends ItemType
+{
+ /**
+ * Describes whether the contact is located in the Exchange store or in
+ * Active Directory Domain Services (AD DS).
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ContactSourceType
+ */
+ public $ContactSource;
+
+ /**
+ * Defines the display name of a distribution list.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Represents how a distribution list is filed in the Contacts folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $FileAs;
+
+ /**
+ * Contains a list of members of the distribution list.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\MembersListType
+ */
+ public $Members;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/Duration.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/Duration.php
new file mode 100644
index 00000000..5f5261d3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/Duration.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\Duration.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a time span.
+ *
+ * @package php-ews\Type
+ */
+class Duration extends Type
+{
+ /**
+ * Represents the end of the time span.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $EndTime;
+
+ /**
+ * Represents the start of the time span.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $StartTime;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EffectiveRightsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EffectiveRightsType.php
new file mode 100644
index 00000000..16306ce0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EffectiveRightsType.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\EffectiveRightsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the client's rights based on the permission settings for an item
+ * or folder.
+ *
+ * @package php-ews\Type
+ */
+class EffectiveRightsType extends Type
+{
+ /**
+ * Indicates whether a client can create an associated contents table.
+ *
+ * This property is only used on folder objects.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $CreateAssociated;
+
+ /**
+ * Indicates whether a client can create a contents table.
+ *
+ * This property is only used on folder objects.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $CreateContents;
+
+ /**
+ * Indicates whether a client can create a hierarchy table.
+ *
+ * This property is only used on folder objects.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $CreateHierarchy;
+
+ /**
+ * Indicates whether a client can delete a folder or item.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $Delete;
+
+ /**
+ * Indicates whether a client can modify a folder or item.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $Modify;
+
+ /**
+ * Indicates whether a client can read a folder or item.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var boolean
+ */
+ public $Read;
+
+ /**
+ * Indicates whether a private item can be viewed.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $ViewPrivateItems;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressAttributedValueType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressAttributedValueType.php
new file mode 100644
index 00000000..31031970
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressAttributedValueType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\EmailAddressAttributedValueType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines an instance of an array of email addresses and their associated
+ * attributions.
+ *
+ * @package php-ews\Type
+ */
+class EmailAddressAttributedValueType extends Type
+{
+ /**
+ * Specifies an array of attributions for its associated Value element.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfValueAttributionsType
+ */
+ public $Attributions;
+
+ /**
+ * Specifies the value of an EmailAddress associated with an attributions array.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressDictionaryEntryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressDictionaryEntryType.php
new file mode 100755
index 00000000..bdd5a54b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressDictionaryEntryType.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\EmailAddressDictionaryEntryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single e-mail address for a contact.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Create a common EntryType class.
+ * @todo Create a common TextEntryType class.
+ */
+class EmailAddressDictionaryEntryType extends Type
+{
+ /**
+ * The email address represented by this entry.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $_;
+
+ /**
+ * Identifies the e-mail address.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\EmailAddressKeyType
+ */
+ public $Key;
+
+ /**
+ * Defines the mailbox type of a mailbox user.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MailboxTypeType
+ */
+ public $MailboxType;
+
+ /**
+ * Defines the name of the mailbox user.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Name;
+
+ /**
+ * Defines the routing that is used for the mailbox.
+ *
+ * This attribute is optional and defaults to SMTP.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\RoutingType
+ */
+ public $RoutingType;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressDictionaryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressDictionaryType.php
new file mode 100644
index 00000000..c09fc492
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressDictionaryType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\EmailAddressDictionaryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a collection of e-mail addresses for a contact.
+ *
+ * @package php-ews\Type
+ */
+class EmailAddressDictionaryType extends Type
+{
+ /**
+ * Represents a single e-mail address for a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressDictionaryEntryType
+ */
+ public $Entry;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressType.php
new file mode 100644
index 00000000..cb98fad8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EmailAddressType.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\EmailAddressType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifier for a fully resolved email address
+ *
+ * @package php-ews\Type
+ */
+class EmailAddressType extends BaseEmailAddressType
+{
+ /**
+ * The e-mail address that is represented.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $EmailAddress;
+
+ /**
+ * Specifies the item identifier for the e-mail address.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * Specifies the type of mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MailboxTypeType
+ */
+ public $MailboxType;
+
+ /**
+ * Specifies the name of the mailbox that is associated with the e-mail
+ * address.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Name;
+
+ /**
+ * Specifies the type of routing for the e-mail address.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\RoutingType
+ */
+ public $RoutingType;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EncryptedSharedFolderDataType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EncryptedSharedFolderDataType.php
new file mode 100644
index 00000000..9e394097
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EncryptedSharedFolderDataType.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\EncryptedSharedFolderDataType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the encrypted data that a client can use to authorize the sharing
+ * of its calendar or contact data with other clients.
+ *
+ * @package php-ews\Type
+ */
+class EncryptedSharedFolderDataType extends Type
+{
+ /**
+ * Contains encrypted data that represents the shared data.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Determine if we need an EncryptedDataContainerType implementation.
+ */
+ public $Data;
+
+ /**
+ * Contains encrypted data that represents the identification token for the
+ * shared data.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Determine if we need an EncryptedDataContainerType implementation.
+ */
+ public $Token;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EndDateRecurrenceRangeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EndDateRecurrenceRangeType.php
new file mode 100644
index 00000000..68aa4116
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/EndDateRecurrenceRangeType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\EndDateRecurrenceRangeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes the start date and the end date of an item recurrence pattern.
+ *
+ * @package php-ews\Type
+ */
+class EndDateRecurrenceRangeType extends RecurrenceRangeBaseType
+{
+ /**
+ * Represents the end date of a recurring task or calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a date object that extends DateTime.
+ */
+ public $EndDate;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExchangeImpersonationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExchangeImpersonationType.php
new file mode 100644
index 00000000..eeec0647
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExchangeImpersonationType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ExchangeImpersonationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the account to impersonate within a request.
+ *
+ * @package php-ews\Type
+ */
+class ExchangeImpersonationType extends Type
+{
+ /**
+ * Represents an account to impersonate when you are using the
+ * ExchangeImpersonation SOAP header.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ConnectingSIDType
+ */
+ public $ConnectingSID;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExcludesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExcludesType.php
new file mode 100644
index 00000000..c0de79c3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExcludesType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ExcludesType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a bitwise mask of a specified property and a supplied value.
+ *
+ * @package php-ews\Type
+ */
+class ExcludesType extends SearchExpressionType
+{
+ /**
+ * Represents a hexadecimal or decimal mask to be used during an Excludes
+ * restriction operation.
+ *
+ * If the bitmask represents a hexadecimal number, it must be prefixed by 0x
+ * or 0X. Otherwise, it will be considered a decimal number.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ExcludesValueType
+ */
+ public $Bitmask;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExcludesValueType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExcludesValueType.php
new file mode 100644
index 00000000..17a67804
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExcludesValueType.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ExcludesValueType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a hexadecimal or decimal mask to be used during an Excludes
+ * restriction operation.
+ *
+ * @package php-ews\Type
+ */
+class ExcludesValueType extends Type
+{
+ /**
+ * Represents a decimal or hexadecimal bitmask.
+ *
+ * The value is represented by the following regular expression:
+ * ((0x|0X)[0-9A-Fa-f]*)|([0-9]*).
+ *
+ * The following are examples of hexadecimal values for this attribute:
+ * - 0x12AF
+ * - 0X334AE
+ *
+ * The following are examples of decimal values for this attribute:
+ * - 10
+ * - 255
+ * - 4562
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Determine if we need an ExcludesAttributeType class.
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExistsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExistsType.php
new file mode 100644
index 00000000..0cf02869
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExistsType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ExistsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that returns true if the supplied property
+ * exists on an item.
+ *
+ * @package php-ews\Type
+ */
+class ExistsType extends SearchExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedAttributeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedAttributeType.php
new file mode 100644
index 00000000..5f3d4386
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedAttributeType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ExtendedAttributeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Internal use only.
+ *
+ * @package php-ews\Type
+ */
+class ExtendedAttributeType extends Type
+{
+ /**
+ * Internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Name;
+
+ /**
+ * Internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedPropertyAttributedValueType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedPropertyAttributedValueType.php
new file mode 100644
index 00000000..97688a26
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedPropertyAttributedValueType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ExtendedPropertyAttributedValueType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines an extended property for a persona.
+ *
+ * @package php-ews\Type
+ */
+class ExtendedPropertyAttributedValueType extends Type
+{
+ /**
+ * Specifies an array of attributions for its associated Value element.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfValueAttributionsType
+ */
+ public $Attributions;
+
+ /**
+ * Specifies an extended property for a persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ExtendedPropertyType
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedPropertyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedPropertyType.php
new file mode 100644
index 00000000..c57bd3f4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ExtendedPropertyType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ExtendedPropertyType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies extended MAPI properties on folders and items.
+ *
+ * @package php-ews\Type
+ */
+class ExtendedPropertyType extends Type
+{
+ /**
+ * Identifies an extended MAPI property to get, set, or create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToExtendedFieldType
+ */
+ public $ExtendedFieldURI;
+
+ /**
+ * Contains the value of single-valued MAPI extended property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Value;
+
+ /**
+ * Contains a collection of values for a multivalued extended MAPI property.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPropertyValuesType
+ */
+ public $Values;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FailedSearchMailboxType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FailedSearchMailboxType.php
new file mode 100644
index 00000000..74c2cd8e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FailedSearchMailboxType.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FailedSearchMailboxType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Specifies the error message for a mailbox that failed on search.
+ *
+ * @package php-ews\Type
+ */
+class FailedSearchMailboxType extends Type
+{
+ /**
+ * Specifies the error code of the mailbox that failed the search.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $ErrorCode;
+
+ /**
+ * Represents the reason for the validation error.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ErrorMessage;
+
+ /**
+ * Specifies whether the mailbox is an archive.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsArchive;
+
+ /**
+ * Contains an identifier for the mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Mailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FieldOrderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FieldOrderType.php
new file mode 100644
index 00000000..fde9a9bc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FieldOrderType.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FieldOrderType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single field by which to sort results and indicates the
+ * direction for the sort.
+ *
+ * @package php-ews\Type
+ */
+class FieldOrderType extends Type
+{
+ /**
+ * Identifies MAPI properties.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToExtendedFieldType
+ */
+ public $ExtendedFieldURI;
+
+ /**
+ * Identifies frequently referenced properties by URI.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToUnindexedFieldType
+ */
+ public $FieldURI;
+
+ /**
+ * Identifies individual members of a dictionary.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToIndexedFieldType
+ */
+ public $IndexedFieldURI;
+
+ /**
+ * Describes the sort order direction.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SortDirectionType
+ */
+ public $Order;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FieldURIOrConstantType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FieldURIOrConstantType.php
new file mode 100644
index 00000000..8fbd38fa
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FieldURIOrConstantType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FieldURIOrConstantType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents either a property or a constant value to be used when comparing
+ * with another property.
+ *
+ * @package php-ews\Type
+ */
+class FieldURIOrConstantType extends SearchExpressionType
+{
+ /**
+ * Identifies a constant value in a restriction.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ConstantValueType
+ */
+ public $Constant;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FileAttachmentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FileAttachmentType.php
new file mode 100644
index 00000000..6dc28090
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FileAttachmentType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FileAttachmentType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a file that is attached to an item in the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class FileAttachmentType extends AttachmentType
+{
+
+ /**
+ * Contains the Base64-encoded contents of the file attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Consider using an object that takes a file stream and does the
+ * base64 conversion.
+ */
+ public $Content;
+
+ /**
+ * Indicates whether the file attachment is a contact picture.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsContactPhoto;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindFolderParentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindFolderParentType.php
new file mode 100644
index 00000000..f04a3b7a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindFolderParentType.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FindFolderParentType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the results of a search of a single root folder during a
+ * FindFolder operation.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Create a FindResponsePagingAttributes trait.
+ */
+class FindFolderParentType extends Type
+{
+ /**
+ * Represents the next denominator to use for the next request when you are
+ * using fraction page views.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $AbsoluteDenominator;
+
+ /**
+ * Contains an array of folders found by using the FindFolder operation.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfFoldersType
+ */
+ public $Folders;
+
+ /**
+ * Indicates whether the current results contain the last item in the query
+ * so that additional paging is not needed.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IncludesLastItemInRange;
+
+ /**
+ * Represents the next index that should be used for the next request when
+ * you are using an indexed page view.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $IndexedPagingOffset;
+
+ /**
+ * Represents the new numerator value to use for the next request when you
+ * are using fraction page views.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $NumeratorOffset;
+
+ /**
+ * Represents the total number of items in the view.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $TotalItemsInView;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindItemParentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindItemParentType.php
new file mode 100644
index 00000000..afb8a2a2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindItemParentType.php
@@ -0,0 +1,88 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FindItemParentType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the results of a search of a single root folder during a FindItem
+ * operation.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Create a FindResponsePagingAttributes trait.
+ */
+class FindItemParentType extends Type
+{
+ /**
+ * Represents the next denominator to use for the next request when you are
+ * using fraction page views.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $AbsoluteDenominator;
+
+ /**
+ * Contains a collection of groups found that have the search and
+ * aggregation criteria identified in the FindItem operation request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfGroupedItemsType
+ */
+ public $Groups;
+
+ /**
+ * Indicates whether the current results contain the last item in the query
+ * so that additional paging is not needed.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IncludesLastItemInRange;
+
+ /**
+ * Represents the next index that should be used for the next request when
+ * you are using an indexed page view.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $IndexedPagingOffset;
+
+ /**
+ * Contains an array of items found that have the search criteria identified
+ * in the FindItem operation request.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRealItemsType
+ */
+ public $Items;
+
+ /**
+ * Represents the new numerator value to use for the next request when you
+ * are using fraction page views.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $NumeratorOffset;
+
+ /**
+ * Represents the total number of items in the view.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $TotalItemsInView;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindMessageTrackingSearchResultType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindMessageTrackingSearchResultType.php
new file mode 100644
index 00000000..057b3ad6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FindMessageTrackingSearchResultType.php
@@ -0,0 +1,103 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FindMessageTrackingSearchResultType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single message result for a FindMessageTrackingReportResponse
+ * element.
+ *
+ * @package php-ews\Type
+ */
+class FindMessageTrackingSearchResultType extends Type
+{
+ /**
+ * Contains the name of the server in the forest that first accepted the
+ * message.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $FirstHopServer;
+
+ /**
+ * Contains an internal ID that identifies the message in the transport
+ * database.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $MessageTrackingReportId;
+
+ /**
+ * Contains the name of the server in the forest that previously accepted
+ * the message.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $PreviousHopServer;
+
+ /**
+ * Contains a list of one or more tracking properties.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTrackingPropertiesType
+ */
+ public $Properties;
+
+ /**
+ * Contains contact information for the alleged sender of an e-mail message.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $PurportedSender;
+
+ /**
+ * Contains a list of e-mail addresses that received this message.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $Recipients;
+
+ /**
+ * Contains the e-mail message sender’s address.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Sender;
+
+ /**
+ * Contains the e-mail message subject.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $Subject;
+
+ /**
+ * Contains the time that the message was submitted.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $SubmittedTime;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderChangeDescriptionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderChangeDescriptionType.php
new file mode 100644
index 00000000..2e85c99a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderChangeDescriptionType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FolderChangeDescriptionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for changes to individual folder properties.
+ *
+ * @package php-ews\Type
+ */
+class FolderChangeDescriptionType extends ChangeDescriptionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderChangeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderChangeType.php
new file mode 100644
index 00000000..0b0850c7
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderChangeType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FolderChangeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a collection of changes to be performed on a single folder.
+ *
+ * @package php-ews\Type
+ */
+class FolderChangeType extends Type
+{
+ /**
+ * Identifies MicrosoftExchange Server 2007 folders that can be referenced by
+ * name.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DistinguishedFolderIdType
+ */
+ public $DistinguishedFolderId;
+
+ /**
+ * Contains the identifier and change key of a folder to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $FolderId;
+
+ /**
+ * Defines the type of update that is performed on a folder that is
+ * identified by either the FolderId or DistinguishedFolderId element.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfFolderChangeDescriptionsType
+ */
+ public $Updates;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderIdType.php
new file mode 100644
index 00000000..7d1f428f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderIdType.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FolderIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the identifier of the parent folder that contains the item or
+ * folder.
+ *
+ * @package php-ews\Type
+ */
+class FolderIdType extends BaseFolderIdType
+{
+ /**
+ * Contains a string that identifies a version of a folder that is
+ * identified by the Id attribute.
+ *
+ * This attribute is optional. Use this attribute to make sure that the
+ * correct version of a folder is used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ChangeKey;
+
+ /**
+ * Contains a string that identifies a folder in the Exchange store.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Id;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderResponseShapeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderResponseShapeType.php
new file mode 100644
index 00000000..03c65812
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderResponseShapeType.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FolderResponseShapeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the folder properties to include in a GetFolder, FindFolder, or
+ * SyncFolderHierarchy response.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Create a common ResponseShapeType.
+ */
+class FolderResponseShapeType extends Type
+{
+ /**
+ * Identifies additional properties to return in a response.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPathsToElementType
+ */
+ public $AdditionalProperties;
+
+ /**
+ * Identifies the basic configuration of properties to return in a response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DefaultShapeNamesType
+ */
+ public $BaseShape;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderType.php
new file mode 100644
index 00000000..b640e2b8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FolderType.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a folder to create, get, find, synchronize, or update.
+ *
+ * @package php-ews\Type
+ */
+class FolderType extends BaseFolderType
+{
+ /**
+ * Contains all the configured permissions for a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\PermissionSetType
+ */
+ public $PermissionSet;
+
+ /**
+ * Represents the count of unread items within a given folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $UnreadCount;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ForwardItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ForwardItemType.php
new file mode 100644
index 00000000..ddd6ab89
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ForwardItemType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ForwardItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an Exchange store item to forward to recipients.
+ *
+ * @package php-ews\Type
+ */
+class ForwardItemType extends SmartResponseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FractionalPageViewType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FractionalPageViewType.php
new file mode 100644
index 00000000..87b73cbf
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FractionalPageViewType.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FractionalPageViewType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes where the paged view starts and the maximum number of folders
+ * returned in a FindFolder request.
+ *
+ * @package php-ews\Type
+ */
+class FractionalPageViewType extends BasePagingType
+{
+ /**
+ * Represents the denominator of the fractional offset from the start of the
+ * total number of folders in the result set.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Denominator;
+
+ /**
+ * Represents the numerator of the fractional offset from the start of the
+ * result set.
+ *
+ * The numerator must be equal to or less than the denominator.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Numerator;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyResponseType.php
new file mode 100644
index 00000000..5acdf47b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyResponseType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FreeBusyResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the free/busy information for a single mailbox user.
+ *
+ * @package php-ews\Type
+ */
+class FreeBusyResponseType extends Type
+{
+ /**
+ * Contains availability information for a specific user.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FreeBusyView
+ */
+ public $FreeBusyView;
+
+ /**
+ * Provides descriptive information about the response status.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType
+ */
+ public $ResponseMessage;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyView.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyView.php
new file mode 100644
index 00000000..0beeb9fc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyView.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FreeBusyView.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents availability information for a specific user.
+ *
+ * @package php-ews\Type
+ */
+class FreeBusyView extends Type
+{
+ /**
+ * Contains a set of unique calendar item occurrences that represent the
+ * requested user's availability.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfCalendarEvent
+ */
+ public $CalendarEventArray;
+
+ /**
+ * Represents the type of requested free/busy information returned in the
+ * response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\FreeBusyViewType
+ */
+ public $FreeBusyViewType;
+
+ /**
+ * Contains the merged free/busy stream of data.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $MergedFreeBusy;
+
+ /**
+ * Represents the time zone settings and working hours for the requested
+ * mailbox user.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\WorkingHours
+ */
+ public $WorkingHours;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyViewOptionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyViewOptionsType.php
new file mode 100644
index 00000000..fda79cf3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/FreeBusyViewOptionsType.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\FreeBusyViewOptionsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the type of free/busy information returned in a response.
+ *
+ * @package php-ews\Type
+ */
+class FreeBusyViewOptionsType extends Type
+{
+ /**
+ * Represents the time difference between two successive slots in the
+ * FreeBusyMerged view.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $MergedFreeBusyIntervalInMinutes;
+
+ /**
+ * Defines the type of calendar information that a client requests.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\FreeBusyViewType
+ */
+ public $RequestedView;
+
+ /**
+ * Identifies the time span queried for the user availability information.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\Duration
+ */
+ public $TimeWindow;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupAttendeeConflictData.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupAttendeeConflictData.php
new file mode 100644
index 00000000..cd700472
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupAttendeeConflictData.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\GroupAttendeeConflictData.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents aggregate conflict information about the number of users who are
+ * available, the number of users who have conflicts, and the number of users
+ * who do not have availability information in a distribution list for a
+ * suggested meeting time.
+ *
+ * @package php-ews\Type
+ */
+class GroupAttendeeConflictData extends AttendeeConflictData
+{
+ /**
+ * Represents the number of users, resources, and rooms in a distribution
+ * list.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $NumberOfMembers;
+
+ /**
+ * Represents the number of distribution list members who are available for
+ * a suggested meeting time.
+ *
+ * This element represents members for whom the status is Free.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $NumberOfMembersAvailable;
+
+ /**
+ * Represents the number of distribution list members who have a conflict
+ * with a suggested meeting time.
+ *
+ * This element represents members who have a Busy, OOF, or Tentative status.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $NumberOfMembersWithConflict;
+
+ /**
+ * Represents the number of group members who do not have published
+ * free/busy data to compare to a suggested meeting time.
+ *
+ * This element represents members of a distribution list that is too large
+ * or members who have No Data status.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $NumberOfMembersWithNoData;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupByType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupByType.php
new file mode 100644
index 00000000..3835ff2e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupByType.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\GroupByType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines an arbitrary grouping for FindItem queries.
+ *
+ * @package php-ews\Type
+ */
+class GroupByType extends BaseGroupByType
+{
+ /**
+ * Represents the field that is used to determine the order of groups in a
+ * response.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AggregateOnType
+ */
+ public $AggregateOn;
+
+ /**
+ * Identifies extended MAPI properties to get, set, or create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToExtendedFieldType
+ */
+ public $ExtendedFieldURI;
+
+ /**
+ * Identifies frequently referenced properties by URI.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToUnindexedFieldType
+ */
+ public $FieldURI;
+
+ /**
+ * Identifies individual members of a dictionary.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToIndexedFieldType
+ */
+ public $IndexedFieldURI;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupedItemsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupedItemsType.php
new file mode 100644
index 00000000..e57668ba
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/GroupedItemsType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\GroupedItemsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a collection of items that are the result of a grouped FindItem
+ * operation call.
+ *
+ * @package php-ews\Type
+ */
+class GroupedItemsType extends Type
+{
+ /**
+ * Represents the property value that is used to group items in a grouped
+ * FindItem operation call.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $GroupIndex;
+
+ /**
+ * Contains an array of grouped items.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRealItemsType
+ */
+ public $Items;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImAddressDictionaryEntryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImAddressDictionaryEntryType.php
new file mode 100644
index 00000000..0045afad
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImAddressDictionaryEntryType.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ImAddressDictionaryEntryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an instant messaging (IM) address for a contact.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Create a common EntryType class.
+ * @todo Create a common TextEntryType class.
+ */
+class ImAddressDictionaryEntryType extends Type
+{
+ /**
+ * Represents the IM address.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $_;
+
+ /**
+ * Identifies the IM address.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ImAddressKeyType
+ */
+ public $Key;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImAddressDictionaryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImAddressDictionaryType.php
new file mode 100644
index 00000000..952440b6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImAddressDictionaryType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ImAddressDictionaryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a collection of instant messaging addresses for a contact.
+ *
+ * @package php-ews\Type
+ */
+class ImAddressDictionaryType extends Type
+{
+ /**
+ * Represents an instant messaging address for a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ImAddressDictionaryEntryType
+ */
+ public $Entry;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImGroupType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImGroupType.php
new file mode 100644
index 00000000..baa5402f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImGroupType.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ImGroupType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines an instant messaging group.
+ *
+ * @package php-ews\Type
+ */
+class ImGroupType extends Type
+{
+ /**
+ * Contains the display name of a new instant messaging group contact or
+ * the display name of a new instant messaging group.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Specifies the instant messaging (IM) group identifier.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ExchangeStoreId;
+
+ /**
+ * Specifies an array of additional properties
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfExtendedPropertyType
+ */
+ public $ExtendedProperties;
+
+ /**
+ * Specifies the group class of an instant messaging (IM) group.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $GroupType;
+
+ /**
+ * Specifies the identifiers of the contacts that are part of the instant
+ * messaging (IM) group.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfItemIdsType
+ */
+ public $MemberCorrelationKey;
+
+ /**
+ * Represents the Simple Mail Transfer Protocol (SMTP) address of an account
+ * to be used for impersonation or a Simple Mail Transfer Protocol (SMTP)
+ * recipient address of a calendar or contact sharing request.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $SmtpAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImItemListType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImItemListType.php
new file mode 100644
index 00000000..49c2aca0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ImItemListType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ImItemListType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a list of instant messaging groups and instant messaging contacts.
+ *
+ * @package php-ews\Type
+ */
+class ImItemListType extends Type
+{
+ /**
+ * Represents an array of instant messaging (IM) groups.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfImGroupType
+ */
+ public $Groups;
+
+ /**
+ * Specifies an array of personas.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPeopleType
+ */
+ public $Personas;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IndexedPageViewType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IndexedPageViewType.php
new file mode 100644
index 00000000..7e3f58e1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IndexedPageViewType.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\IndexedPageViewType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes how paged conversation or item information is returned for a
+ * FindItem operation or FindConversation operation request.
+ *
+ * @package php-ews\Type
+ */
+class IndexedPageViewType extends BasePagingType
+{
+ /**
+ * Describes whether the page of items or conversations will start from the
+ * beginning or the end of the set of items or conversations that are found
+ * by using the search criteria.
+ *
+ * Seeking from the end always searches backward.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\IndexBasePointType
+ */
+ public $BasePoint;
+
+ /**
+ * Describes the offset from the BasePoint.
+ *
+ * If BasePoint is equal to Beginning, the offset is positive. If BasePoint
+ * is equal to End, the offset is handled as if it were negative. This
+ * identifies which item or conversation will be the first to be delivered
+ * in the response.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Offset;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IndividualAttendeeConflictData.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IndividualAttendeeConflictData.php
new file mode 100644
index 00000000..37b308c5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IndividualAttendeeConflictData.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\IndividualAttendeeConflictData.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a user's or contact's free/busy status for a time window that
+ * occurs at the same time as the suggested meeting time identified in the
+ * Suggestion element.
+ *
+ * @package php-ews\Type
+ */
+class IndividualAttendeeConflictData extends AttendeeConflictData
+{
+ /**
+ * Represents the free/busy status of a user for a suggested meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\LegacyFreeBusyType
+ */
+ public $BusyType;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InstalledAppType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InstalledAppType.php
new file mode 100644
index 00000000..96d9c7fe
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InstalledAppType.php
@@ -0,0 +1,173 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\InstalledAppType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Undocumented.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Update once documentation exists.
+ */
+class InstalledAppType extends Type
+{
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $ConsentState;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $Description;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $DisplayName;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var boolean
+ *
+ * @todo Update once documentation exists.
+ */
+ public $Enabled;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $HighResolutionIconUrl;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $IconUrl;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $Id;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $LicenseStatus;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $MarketplaceAssetId;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $ProviderName;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $Requirements;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ * @todo Make a DateTime object.
+ */
+ public $TrialExpirationDate;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $Type;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $Version;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InternetHeaderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InternetHeaderType.php
new file mode 100644
index 00000000..52b3f4e5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InternetHeaderType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\InternetHeaderType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the Internet message header for a given header within a headers
+ * collection.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Extend a string class.
+ */
+class InternetHeaderType extends Type
+{
+ /**
+ * The value of the header.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $_;
+
+ /**
+ * Identifies the header name.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $HeaderName;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IntervalRecurrencePatternBaseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IntervalRecurrencePatternBaseType.php
new file mode 100644
index 00000000..41c8b42a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IntervalRecurrencePatternBaseType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\IntervalRecurrencePatternBaseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for recurrence patterns with an interval.
+ *
+ * @package php-ews\Type
+ */
+abstract class IntervalRecurrencePatternBaseType extends RecurrencePatternBaseType
+{
+ /**
+ * Defines the interval between two consecutive recurring pattern items.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Interval;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InvalidRecipientType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InvalidRecipientType.php
new file mode 100644
index 00000000..328aeb1e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/InvalidRecipientType.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\InvalidRecipientType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the SMTP address of the invalid recipient and information about
+ * why the recipient is invalid.
+ *
+ * @package php-ews\Type
+ */
+class InvalidRecipientType extends Type
+{
+ /**
+ * Provides a text description of the status of the response.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $MessageText;
+
+ /**
+ * Provides an error code that identifies the specific error that the
+ * request encountered.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\InvalidRecipientResponseCodeType
+ */
+ public $ResponseCode;
+
+ /**
+ * Contains the SMTP address of the invalid recipient.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $SmtpAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsEqualToType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsEqualToType.php
new file mode 100644
index 00000000..885d4457
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsEqualToType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\IsEqualToType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and evaluates to true if they are equal.
+ *
+ * @package php-ews\Type
+ */
+class IsEqualToType extends TwoOperandExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsGreaterThanOrEqualToType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsGreaterThanOrEqualToType.php
new file mode 100644
index 00000000..8dac63b5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsGreaterThanOrEqualToType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\IsGreaterThanOrEqualToType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and returns true if the first property is
+ * greater than or equal to the second.
+ *
+ * @package php-ews\Type
+ */
+class IsGreaterThanOrEqualToType extends TwoOperandExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsGreaterThanType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsGreaterThanType.php
new file mode 100644
index 00000000..785bc70c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsGreaterThanType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\IsGreaterThanType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and returns true if the first property is
+ * greater.
+ *
+ * @package php-ews\Type
+ */
+class IsGreaterThanType extends TwoOperandExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsLessThanOrEqualToType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsLessThanOrEqualToType.php
new file mode 100644
index 00000000..16f7d687
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsLessThanOrEqualToType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\IsLessThanOrEqualToType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and returns true if the first property is
+ * less than or equal to the second.
+ *
+ * @package php-ews\Type
+ */
+class IsLessThanOrEqualToType extends TwoOperandExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsLessThanType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsLessThanType.php
new file mode 100644
index 00000000..14012353
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsLessThanType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\IsLessThanType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and returns true if the first property is
+ * less than the second.
+ *
+ * @package php-ews\Type
+ */
+class IsLessThanType extends TwoOperandExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsNotEqualToType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsNotEqualToType.php
new file mode 100644
index 00000000..dad615bd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/IsNotEqualToType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\IsNotEqualToType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and returns true if the first property is
+ * less than or equal to the second.
+ *
+ * @package php-ews\Type
+ */
+class IsNotEqualToType extends TwoOperandExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemAttachmentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemAttachmentType.php
new file mode 100644
index 00000000..aba1725b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemAttachmentType.php
@@ -0,0 +1,104 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ItemAttachmentType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an Exchange item that is attached to another Exchange item.
+ *
+ * @package php-ews\Type
+ */
+class ItemAttachmentType extends AttachmentType
+{
+ /**
+ * Represents an Exchange calendar item attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarItemType
+ */
+ public $CalendarItem;
+
+ /**
+ * Represents an Exchange contact item attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactItemType
+ */
+ public $Contact;
+
+ /**
+ * Represents a generic Exchange item attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemType
+ */
+ public $Item;
+
+ /**
+ * Represents a meeting cancellation in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingCancellationMessageType
+ */
+ public $MeetingCancellation;
+
+ /**
+ * Represents a meeting in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingMessageType
+ */
+ public $MeetingMessage;
+
+ /**
+ * Represents a meeting request in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingRequestMessageType
+ */
+ public $MeetingRequest;
+
+ /**
+ * Represents a meeting response in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingResponseMessageType
+ */
+ public $MeetingResponse;
+
+ /**
+ * Represents an Exchange e-mail message attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MessageType
+ */
+ public $Message;
+
+ /**
+ * Represents a post item in the Exchange store.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\PostItemType
+ */
+ public $PostItem;
+
+ /**
+ * Represents an Exchange task attachment.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TaskType
+ */
+ public $Task;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemChangeDescriptionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemChangeDescriptionType.php
new file mode 100644
index 00000000..3f457273
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemChangeDescriptionType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ItemChangeDescriptionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for changes to individual item properties.
+ *
+ * @package php-ews\Type
+ */
+class ItemChangeDescriptionType extends ChangeDescriptionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemChangeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemChangeType.php
new file mode 100644
index 00000000..e758cdf2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemChangeType.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ItemChangeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an item identifier and the updates to apply to the item.
+ *
+ * @package php-ews\Type
+ */
+class ItemChangeType extends Type
+{
+ /**
+ * Contains the unique identifier and change key of an item in the Exchange
+ * store.
+ *
+ * This element is required if the OccurrenceItemId or RecurringMasterItemId
+ * element is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * Identifies a single occurrence of a recurring item.
+ *
+ * This element is required if used. This element is required if the
+ * RecurringMasterItemId or ItemId element is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\OccurrenceItemIdType
+ */
+ public $OccurrenceItemId;
+
+ /**
+ * Identifies a recurrence master item by identifying one of its related
+ * occurrence items' identifiers.
+ *
+ * This element is required if used. This element is required if the
+ * OccurrenceItemId or ItemId element is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RecurringMasterItemIdType
+ */
+ public $RecurringMasterItemId;
+
+ /**
+ * Contains an array that defines append, set, and delete changes to item
+ * properties.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfItemChangeDescriptionsType
+ */
+ public $Updates;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemIdType.php
new file mode 100644
index 00000000..0d549331
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemIdType.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ItemIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Contains the unique identifier and change key of an item in the Exchange
+ * store.
+ *
+ * @package php-ews\Type
+ */
+class ItemIdType extends BaseItemIdType
+{
+ /**
+ * Identifies a specific version of an item.
+ *
+ * A ChangeKey is required for the following scenarios:
+ * - The UpdateItem element requires a ChangeKey if the ConflictResolution
+ * attribute is set to AutoResolve. AutoResolve is a default value. If the
+ * ChangeKey attribute is not included, the response will return a
+ * ResponseCode value equal to ErrorChangeKeyRequired.
+ * - The SendItem element requires a ChangeKey to test whether the attempted
+ * operation will act upon the most recent version of an item. If the
+ * ChangeKey attribute is not included in the ItemId or if the ChangeKey
+ * is empty, the response will return a ResponseCode value equal to
+ * ErrorStaleObject.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ChangeKey;
+
+ /**
+ * Identifies a specific item in the Exchange store.
+ *
+ * Id is case-sensitive; therefore, comparisons between Ids must be
+ * case-sensitive or binary.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Id;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemResponseShapeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemResponseShapeType.php
new file mode 100644
index 00000000..a48af464
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemResponseShapeType.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ItemResponseShapeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a set of properties to return in a GetItem operation, FindItem
+ * operation, or SyncFolderItems operation response.
+ *
+ * @package php-ews\Type
+ */
+class ItemResponseShapeType extends Type
+{
+ /**
+ * Identifies additional properties to return in a response.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPathsToElementType
+ */
+ public $AdditionalProperties;
+
+ /**
+ * Identifies the basic configuration of properties to return in an item or
+ * folder response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DefaultShapeNamesType
+ */
+ public $BaseShape;
+
+ /**
+ * Identifies how the body text is formatted in the response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\BodyTypeResponseType
+ */
+ public $BodyType;
+
+ /**
+ * Indicates whether the item HTML body is converted to UTF8.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $ConvertHtmlCodePageToUTF8;
+
+ /**
+ * Specifies whether HTML content filtering is enabled.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $FilterHtmlContent;
+
+ /**
+ * Specifies whether the Multipurpose Internet Mail Extensions (MIME)
+ * content of an item is returned in the response.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IncludeMimeContent;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemType.php
new file mode 100644
index 00000000..64c94034
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ItemType.php
@@ -0,0 +1,443 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a generic item in the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class ItemType extends Type
+{
+ /**
+ * Contains the items or files that are attached to an item in the Exchange
+ * store.
+ *
+ * This property is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAttachmentsType
+ */
+ public $Attachments;
+
+ /**
+ * Represents the actual body content of a message.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\BodyType
+ */
+ public $Body;
+
+ /**
+ * Represents a collection of strings that identify the categories to which
+ * an item in the mailbox belongs.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Categories;
+
+ /**
+ * Contains the identifier of an item or conversation.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ConversationId;
+
+ /**
+ * Represents the culture for a given item in a mailbox.
+ *
+ * Specified by using the RFC 1766 culture identifier; for example, en-US.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Culture;
+
+ /**
+ * Represents the date and time that a given item in the mailbox was
+ * created.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $DateTimeCreated;
+
+ /**
+ * Represents the date and time that an item in a mailbox was received.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $DateTimeReceived;
+
+ /**
+ * Represents the date and time that an item in a mailbox was sent.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $DateTimeSent;
+
+ /**
+ * Represents the display string that is used for the contents of the Cc
+ * line.
+ *
+ * This is the concatenated string of all Cc recipient display names.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $DisplayCc;
+
+ /**
+ * Represents the display string that is used for the contents of the To
+ * line.
+ *
+ * This is the concatenated string of all To recipient display names.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $DisplayTo;
+
+ /**
+ * Contains the client's rights based on the permission settings for the
+ * item or folder.
+ *
+ * This property is read-only.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\EffectiveRightsType
+ */
+ public $EffectiveRights;
+
+ /**
+ * Identifies extended properties on folders and items.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ExtendedPropertyType[]
+ */
+ public $ExtendedProperty = array();
+
+ /**
+ * Represents a property that is set to true if an item has at least one
+ * visible attachment.
+ *
+ * This property is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $HasAttachments;
+
+ /**
+ * Describes the importance of an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ImportanceChoicesType
+ */
+ public $Importance;
+
+ /**
+ * Represents the identifier of the item to which this item is a reply.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $InReplyTo;
+
+ /**
+ * Represents the collection of all Internet message headers that are
+ * contained in an item in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfInternetHeadersType
+ */
+ public $InternetMessageHeaders;
+
+ /**
+ * Indicates whether the item is associated with a folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsAssociated;
+
+ /**
+ * Indicates whether an item has not yet been sent.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsDraft;
+
+ /**
+ * Indicates whether a user sent an item to him or herself.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsFromMe;
+
+ /**
+ * Indicates whether the item had previously been sent.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsResend;
+
+ /**
+ * Indicates whether an item has been submitted to the Outbox default
+ * folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsSubmitted;
+
+ /**
+ * Indicates whether the item has been modified.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsUnmodified;
+
+ /**
+ * Represents the message class of an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ItemClassType
+ */
+ public $ItemClass;
+
+ /**
+ * Contains the unique identifier and change key of an item in the Exchange
+ * store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * Contains the display name of the last user to modify an item.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $LastModifiedName;
+
+ /**
+ * Indicates when an item was last modified.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $LastModifiedTime;
+
+ /**
+ * Contains the native Multipurpose Internet Mail Extensions (MIME) stream
+ * of an object that is represented in base64Binary format.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MimeContentType
+ */
+ public $MimeContent;
+
+ /**
+ * Represents the identifier of the parent folder that contains the item or
+ * folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $ParentFolderId;
+
+ /**
+ * Identifies the delegate in a delegate access scenario.
+ *
+ * @since Exchange 2007 SP1
+ * @deprecated Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $ReceivedBy;
+
+ /**
+ * Identifies the principal in a delegate access scenario.
+ *
+ * @since Exchange 2007 SP1
+ * @deprecated Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $ReceivedRepresenting;
+
+ /**
+ * Represents the date and time when the event occurs.
+ *
+ * This is used by the ReminderMinutesBeforeStart element to determine when
+ * the reminder is displayed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $ReminderDueBy;
+
+ /**
+ * Indicates whether a reminder has been set for an item in the Exchange
+ * store.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $ReminderIsSet;
+
+ /**
+ * Represents the number of minutes before an event when a reminder is
+ * displayed.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ *
+ * @todo Determine if we need a ReminderMinutesBeforeStartType
+ * implementation.
+ */
+ public $ReminderMinutesBeforeStart;
+
+ /**
+ * Contains a collection of all the response objects that are associated
+ * with an item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfResponseObjectsType
+ */
+ public $ResponseObjects;
+
+ /**
+ * Indicates the sensitivity level of an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SensitivityChoicesType
+ */
+ public $Sensitivity;
+
+ /**
+ * Represents the size in bytes of an item.
+ *
+ * This property is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Size;
+
+ /**
+ * Exchange store identifier of an item.
+ *
+ * @since Exchange 2010 SP2
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $StoreEntryId;
+
+ /**
+ * Represents the subject for Exchange store items and response objects.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Subject;
+
+ /**
+ * Represents an HTML fragment or plain text which represents the unique
+ * body of this conversation.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\BodyType
+ */
+ public $UniqueBody;
+
+ /**
+ * Represents a URL to concatenate to the Microsoft Office Outlook Web App
+ * endpoint to edit an item in Outlook Web App.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $WebClientEditFormQueryString;
+
+ /**
+ * Represents a URL to concatenate to the Microsoft Office Outlook Web App
+ * endpoint to read an item in Outlook Web App.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $WebClientReadFormQueryString;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/KeywordStatisticsSearchResultType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/KeywordStatisticsSearchResultType.php
new file mode 100644
index 00000000..00a58226
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/KeywordStatisticsSearchResultType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\KeywordStatisticsSearchResultType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single keyword search result.
+ *
+ * @package php-ews\Type
+ */
+class KeywordStatisticsSearchResultType extends Type
+{
+ /**
+ * Identifies how many times a keyword was found.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $ItemHits;
+
+ /**
+ * Specifies a single keyword.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Keyword;
+
+ /**
+ * Defines the total size of one or more mailbox items.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $Size;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailTips.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailTips.php
new file mode 100644
index 00000000..3c4096ba
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailTips.php
@@ -0,0 +1,120 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MailTips.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents values for various types of mail tips.
+ *
+ * @package php-ews\Type
+ */
+class MailTips extends Type
+{
+ /**
+ * Represents a customized mail tip message.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $CustomMailTip;
+
+ /**
+ * Indicates whether delivery restrictions will prevent the sender’s message
+ * from reaching the recipient.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $DeliveryRestricted;
+
+ /**
+ * Represents the count of external members in a group.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $ExternalMemberCount;
+
+ /**
+ * Indicates whether the recipient is invalid.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $InvalidRecipient;
+
+ /**
+ * Indicates whether the recipient's mailbox is being moderated.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsModerated;
+
+ /**
+ * Indicates whether the mailbox for the recipient is full.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $MailboxFull;
+
+ /**
+ * Represents the maximum message size the recipient can accept.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $MaxMessageSize;
+
+ /**
+ * Represents the response message and a duration time for sending the
+ * response message.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\OutOfOfficeMailTip
+ */
+ public $OutOfOffice;
+
+ /**
+ * Indicates that the mail tips in this element could not be evaluated
+ * before the server's processing timeout expired.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MailTipTypes
+ */
+ public $PendingMailTips;
+
+ /**
+ * Represents the mailbox of the recipient.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $RecipientAddress;
+
+ /**
+ * Represents the count of all members in a group.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $TotalMemberCount;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailTipsServiceConfiguration.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailTipsServiceConfiguration.php
new file mode 100644
index 00000000..bcef3440
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailTipsServiceConfiguration.php
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MailTipsServiceConfiguration.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents service configuration information for the mail tips service.
+ *
+ * @package php-ews\Type
+ */
+class MailTipsServiceConfiguration extends ServiceConfiguration
+{
+ /**
+ * Identifies the list of internal SMTP domains of the organization.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\SmtpDomainList
+ */
+ public $InternalDomains;
+
+ /**
+ * Represents the large audience threshold for a client.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $LargeAudienceThreshold;
+
+ /**
+ * Indicates whether the mail tips service is available.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $MailTipsEnabled;
+
+ /**
+ * Represents the maximum message size a recipient can accept.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $MaxMessageSize;
+
+ /**
+ * Indicates the maximum number of recipients that can be passed to the
+ * GetMailTips operation.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $MaxRecipientsPerGetMailTipsRequest;
+
+ /**
+ * Indicates whether consumers of the GetMailTips operation have to show
+ * mail tips that indicate the number of external recipients to which a
+ * message is addressed.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $ShowExternalRecipientCount;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxData.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxData.php
new file mode 100644
index 00000000..8ff96784
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxData.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MailboxData.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an individual mailbox user and options for the type of data to be
+ * returned about the mailbox user.
+ *
+ * @package php-ews\Type
+ */
+class MailboxData extends Type
+{
+ /**
+ * Represents the type of attendee identified in the Email property.
+ *
+ * This is used in requests for meeting suggestions.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MeetingAttendeeType
+ */
+ public $AttendeeType;
+
+ /**
+ * Represents the mailbox user for a GetUserAvailability query.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Email;
+
+ /**
+ * Specifies whether to return suggested times for calendar times that
+ * conflict among the attendees.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $ExcludeConflicts;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxHoldResultType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxHoldResultType.php
new file mode 100644
index 00000000..5dddbfa6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxHoldResultType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MailboxHoldResultType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the result of the mailbox hold request request.
+ *
+ * @package php-ews\Type
+ */
+class MailboxHoldResultType extends Type
+{
+ /**
+ * Contains the mailbox hold identifier.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $HoldId;
+
+ /**
+ * Specifies a list of one or more mailbox hold statuses.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfMailboxHoldStatusType
+ */
+ public $MailboxHoldStatuses;
+
+ /**
+ * Contains the search query for the hold.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Query;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxHoldStatusType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxHoldStatusType.php
new file mode 100644
index 00000000..3304dd50
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxHoldStatusType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MailboxHoldStatusType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the hold status of a mailbox.
+ *
+ * @package php-ews\Type
+ */
+class MailboxHoldStatusType extends Type
+{
+ /**
+ * Specifies additional information about the hold status of a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $AdditionalInfo;
+
+ /**
+ * Contains the identifier for a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Mailbox;
+
+ /**
+ * Specifies the hold status for a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\HoldStatusType
+ */
+ public $Status;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxQueryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxQueryType.php
new file mode 100644
index 00000000..8411c6af
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxQueryType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MailboxQueryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a query and the scope of a discovery search.
+ *
+ * @package php-ews\Type
+ */
+class MailboxQueryType extends Type
+{
+ /**
+ * Specifies a list of one or more mailboxes and associated search scopes
+ * for a discovery search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfMailboxSearchScopesType
+ */
+ public $MailboxSearchScopes;
+
+ /**
+ * Contains the search query for the hold.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Query;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxSearchScopeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxSearchScopeType.php
new file mode 100644
index 00000000..fc8be21b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxSearchScopeType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MailboxSearchScopeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a mailbox and a search scope for a discovery search.
+ *
+ * @package php-ews\Type
+ */
+class MailboxSearchScopeType extends Type
+{
+ /**
+ * Internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfExtendedAttributesType
+ */
+ public $ExtendedAttributes;
+
+ /**
+ * Contains an identifier for a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Mailbox;
+
+ /**
+ * Specifies a mailbox and a search scope for a discovery search.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MailboxSearchLocationType
+ */
+ public $SearchScope;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxStatisticsSearchResultType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxStatisticsSearchResultType.php
new file mode 100644
index 00000000..eccb1b9f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MailboxStatisticsSearchResultType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MailboxStatisticsSearchResultType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the results of a keyword search.
+ *
+ * @package php-ews\Type
+ */
+class MailboxStatisticsSearchResultType extends Type
+{
+ /**
+ * Contains a single keyword search result.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\KeywordStatisticsSearchResultType
+ */
+ public $KeywordStatisticsSearchResult;
+
+ /**
+ * Identifies the user's mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserMailboxType
+ */
+ public $UserMailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ManagedFolderInformationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ManagedFolderInformationType.php
new file mode 100644
index 00000000..fd0468f8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ManagedFolderInformationType.php
@@ -0,0 +1,108 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ManagedFolderInformationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Compound property for Managed Folder related information for Managed Folders.
+ *
+ * @package php-ews\Type
+ */
+class ManagedFolderInformationType extends Type
+{
+ /**
+ * Indicates whether a managed folder can be deleted by a customer.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $CanDelete;
+
+ /**
+ * Indicates whether a given managed folder can be renamed or moved by the
+ * customer.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $CanRenameOrMove;
+
+ /**
+ * Contains the comment that is associated with a managed folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Comment;
+
+ /**
+ * Describes the total size of all the contents of a managed folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $FolderSize;
+
+ /**
+ * Indicates whether the managed folder has a quota.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $HasQuota;
+
+ /**
+ * Specifies the URL that will be the default home page for the managed
+ * folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $HomePage;
+
+ /**
+ * Indicates whether the managed folder is the root for all managed folders.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsManagedFoldersRoot;
+
+ /**
+ * Contains the folder ID of the managed folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ManagedFolderId;
+
+ /**
+ * Indicates whether the managed folder comment must be displayed.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $MustDisplayComment;
+
+ /**
+ * Describes the storage quota for the managed folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $StorageQuota;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingCancellationMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingCancellationMessageType.php
new file mode 100644
index 00000000..caa7f5a2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingCancellationMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MeetingCancellationMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a meeting cancellation in the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class MeetingCancellationMessageType extends MeetingMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingMessageType.php
new file mode 100644
index 00000000..60f419b6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingMessageType.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MeetingMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a meeting in the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class MeetingMessageType extends MessageType
+{
+ /**
+ * Represents the calendar item that is associated with a MeetingMessage.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $AssociatedCalendarItemId;
+
+ /**
+ * Indicates the date and time that an instance of an iCalendar object was
+ * created.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $DateTimeStamp;
+
+ /**
+ * Indicates whether a meeting message item has been processed.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $HasBeenProcessed;
+
+ /**
+ * Indicates whether a meeting was handled by an account with delegate
+ * access.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsDelegated;
+
+ /**
+ * Indicates whether a meeting message is out-of-date.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsOutOfDate;
+
+ /**
+ * Used to identify a specific instance of a recurring calendar item.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $RecurrenceId;
+
+ /**
+ * Represents the type of recipient response received for a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ResponseTypeType
+ */
+ public $ResponseType;
+
+ /**
+ * Identifies a calendar item.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ public $UID;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingRequestMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingRequestMessageType.php
new file mode 100644
index 00000000..8dd888b6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingRequestMessageType.php
@@ -0,0 +1,423 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MeetingRequestMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a meeting cancellation in the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class MeetingRequestMessageType extends MeetingMessageType
+{
+ /**
+ * Represents the total number of calendar items that are adjacent to a
+ * meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $AdjacentMeetingCount;
+
+ /**
+ * Describes all calendar items that are adjacent to a meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAllItemsType
+ */
+ public $AdjacentMeetings;
+
+ /**
+ * Represents whether a new meeting time can be proposed for a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $AllowNewTimeProposal;
+
+ /**
+ * Represents the date and time when an attendee replied to a meeting
+ * request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $AppointmentReplyTime;
+
+ /**
+ * Specifies the sequence number of a version of an appointment.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $AppointmentSequenceNumber;
+
+ /**
+ * Specifies the status of the appointment.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $AppointmentState;
+
+ /**
+ * Represents the occurrence type of a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\CalendarItemTypeType
+ */
+ public $CalendarItemType;
+
+ /**
+ * Describes the type of conferencing that is performed with a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ConferenceType
+ */
+ public $ConferenceType;
+
+ /**
+ * Represents the number of meetings that conflict with the meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $ConflictingMeetingCount;
+
+ /**
+ * Identifies all items that conflict with a meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAllItemsType
+ */
+ public $ConflictingMeetings;
+
+ /**
+ * Contains an array of deleted occurrences of a recurring calendar item.
+ *
+ * This element is valid if CalendarItemType has the RecurringMaster value.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfDeletedOccurrencesType
+ */
+ public $DeletedOccurrences;
+
+ /**
+ * Represents the duration of a calendar item.
+ *
+ * This property is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Duration;
+
+ /**
+ * Represents the end of a duration.
+ *
+ * This element only applies to a single occurrence of a calendar item.
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $End;
+
+ /**
+ * Represents the end time zone of the calendar item.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeZoneDefinitionType
+ */
+ public $EndTimeZone;
+
+ /**
+ * Represents the first occurrence of a recurring calendar item.
+ *
+ * This element is valid if CalendarItemType has the RecurringMaster value.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\OccurrenceInfoType
+ */
+ public $FirstOccurrence;
+
+ /**
+ * Represents the intended status for the calendar item that is associated
+ * with the meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\LegacyFreeBusyType
+ */
+ public $IntendedFreeBusyStatus;
+
+ /**
+ * Indicates whether a calendar item or meeting request represents an
+ * all-day event.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsAllDayEvent;
+
+ /**
+ * Indicates whether an appointment or meeting has been cancelled.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsCancelled;
+
+ /**
+ * Indicates whether the calendar item is either a meeting or appointment.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsMeeting;
+
+ /**
+ * Indicates whether the meeting is online.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsOnlineMeeting;
+
+ /**
+ * Indicates whether a calendar item is part of a recurring item.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsRecurring;
+
+ /**
+ * Represents the last occurrence of a recurring calendar item.
+ *
+ * This element is valid if CalendarItemType has the RecurringMaster value.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\OccurrenceInfoType
+ */
+ public $LastOccurrence;
+
+ /**
+ * Represents the free/busy status of the calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\LegacyFreeBusyType
+ */
+ public $LegacyFreeBusyStatus;
+
+ /**
+ * Represents the location of a meeting or appointment.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Location;
+
+ /**
+ * Describes the type of the meeting request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MeetingRequestTypeType
+ */
+ public $MeetingRequestType;
+
+ /**
+ * Indicates whether a meeting request has been sent to requested attendees.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $MeetingRequestWasSent;
+
+ /**
+ * Represents the time zone of the location where the meeting is hosted.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeZoneType
+ */
+ public $MeetingTimeZone;
+
+ /**
+ * Contains the URL for the meeting workspace that is linked to by the
+ * calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $MeetingWorkspaceUrl;
+
+ /**
+ * Contains an array of recurring calendar item occurrences that have been
+ * modified so that they are different than the recurrence master item.
+ *
+ * This element is valid if CalendarItemType has the RecurringMaster value.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfOccurrenceInfoType
+ */
+ public $ModifiedOccurrences;
+
+ /**
+ * Contains the status of or response to a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ResponseTypeType
+ */
+ public $MyResponseType;
+
+ /**
+ * Specifies the URL for a Microsoft Netshow online meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $NetShowUrl;
+
+ /**
+ * Represents attendees that are not required to attend a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAttendeesType
+ */
+ public $OptionalAttendees;
+
+ /**
+ * Represents the organizer of a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $Organizer;
+
+ /**
+ * Represents the original start time of a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $OriginalStart;
+
+ /**
+ * Contains the recurrence pattern for calendar items and meeting requests.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RecurrenceType
+ */
+ public $Recurrence;
+
+ /**
+ * Represents attendees that are required to attend a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAttendeesType
+ */
+ public $RequiredAttendees;
+
+ /**
+ * Represents a scheduled resource for a meeting.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfAttendeesType
+ */
+ public $Resources;
+
+ /**
+ * Represents the start of a calendar item.
+ *
+ * This element only applies to a single occurrence of a calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $Start;
+
+ /**
+ * Represents the start time zone of the calendar item.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeZoneDefinitionType
+ */
+ public $StartTimeZone;
+
+ /**
+ * Provides a text description of a time zone.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $TimeZone;
+
+ /**
+ * Provides a description of when a meeting occurs.
+ *
+ * @since Exchange 2007
+ *
+ * @type string
+ */
+ public $When;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingResponseMessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingResponseMessageType.php
new file mode 100644
index 00000000..651aa4ec
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MeetingResponseMessageType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MeetingResponseMessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a meeting response in the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class MeetingResponseMessageType extends MeetingMessageType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MemberType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MemberType.php
new file mode 100644
index 00000000..1a17defe
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MemberType.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MemberType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a member of a distribution list.
+ *
+ * @package php-ews\Type
+ */
+class MemberType extends Type
+{
+ /**
+ * Provides a unique identifier for the distribution list member.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Key;
+
+ /**
+ * Represents the e-mail address of the distribution list member.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Mailbox;
+
+ /**
+ * Provides information about the status of a distribution list member.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MemberStatusType
+ */
+ public $Status;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MembersListType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MembersListType.php
new file mode 100644
index 00000000..645643f1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MembersListType.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MembersListType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the list of members for a distribution list.
+ *
+ * @package php-ews\Type
+ */
+class MembersListType extends Type
+{
+ /**
+ * Provides an identifier for a fully resolved e-mail address, and the
+ * status of that address on the server.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\MemberType[]
+ */
+ public $Member = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MessageTrackingReportType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MessageTrackingReportType.php
new file mode 100644
index 00000000..21a0b9a6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MessageTrackingReportType.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MessageTrackingReportType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single message that is returned in a GetMessageTrackingReport
+ * operation.
+ *
+ * @package php-ews\Type
+ */
+class MessageTrackingReportType extends Type
+{
+ /**
+ * Contains a list of the recipients of the e-mail message.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressesType
+ */
+ public $OriginalRecipients;
+
+ /**
+ * Contains a list of one or more tracking properties.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTrackingPropertiesType
+ */
+ public $Properties;
+
+ /**
+ * Contains contact information for the alleged sender of an e-mail message.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $PurportedSender;
+
+ /**
+ * Contains a list of one or more tracking events for the recipients.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientTrackingEventType
+ */
+ public $RecipientTrackingEvents;
+
+ /**
+ * Contains contact information for the sender of the e-mail message.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Sender;
+
+ /**
+ * Contains the subject of the e-mail message.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $Subject;
+
+ /**
+ * Contains the time of day that the e-mail message was submitted.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $SubmitTime;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MessageType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MessageType.php
new file mode 100644
index 00000000..b4b306d5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MessageType.php
@@ -0,0 +1,148 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MessageType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a Microsoft Exchange e-mail message.
+ *
+ * @package php-ews\Type
+ */
+class MessageType extends ItemType
+{
+ /**
+ * Represents a collection of recipients to receive a blind carbon copy
+ * (Bcc) of an e-mail.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $BccRecipients;
+
+ /**
+ * Represents a collection of recipients that will receive a copy of the
+ * message.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $CcRecipients;
+
+ /**
+ * Contains a binary ID that represents the thread to which this message
+ * belongs.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a base 64 class?
+ */
+ public $ConversationIndex;
+
+ /**
+ * Represents the conversation identifier.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ConversationTopic;
+
+ /**
+ * Represents the addressee from whom the message was sent.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $From;
+
+ /**
+ * Represents the Internet message identifier of an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $InternetMessageId;
+
+ /**
+ * Indicates whether the sender of an item requests a delivery receipt.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsDeliveryReceiptRequested;
+
+ /**
+ * Indicates whether a message has been read.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsRead;
+
+ /**
+ * Indicates whether the sender of an item requests a read receipt.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsReadReceiptRequested;
+
+ /**
+ * Indicates whether a response to an e-mail message is requested.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsResponseRequested;
+
+ /**
+ * Represents the Usenet header that is used to correlate replies with their
+ * original messages.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $References;
+
+ /**
+ * Identifies a set of addresses to which replies should be sent.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $ReplyTo;
+
+ /**
+ * Identifies the sender of an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SensitivityChoicesType
+ */
+ public $Sender;
+
+ /**
+ * Contains a set of recipients of a message.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $ToRecipients;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MimeContentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MimeContentType.php
new file mode 100644
index 00000000..733c2202
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MimeContentType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MimeContentType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the native Multipurpose Internet Mail Extensions (MIME) stream of
+ * an object that is represented in base64Binary format.
+ *
+ * @package php-ews\Type
+ */
+class MimeContentType extends Type
+{
+ /**
+ * A text value that represents a base64Binary MIME stream.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $_;
+
+ /**
+ * The International Standards Organization (ISO) name of the character set
+ * used in the MIME message.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $CharacterSet;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ModifiedEventType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ModifiedEventType.php
new file mode 100644
index 00000000..c2ba0a7a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ModifiedEventType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ModifiedEventType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an event in which an item or folder is modified.
+ *
+ * @package php-ews\Type
+ */
+class ModifiedEventType extends BaseObjectChangedEventType
+{
+ /**
+ * Represents the count of unread items within a given folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $UnreadCount;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MonthlyRegeneratingPatternType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MonthlyRegeneratingPatternType.php
new file mode 100644
index 00000000..22a0f57b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MonthlyRegeneratingPatternType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MonthlyRegeneratingPatternType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes the frequency, in months, of which task is regenerated.
+ *
+ * @package php-ews\Type
+ */
+class MonthlyRegeneratingPatternType extends RegeneratingPatternBaseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MovedCopiedEventType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MovedCopiedEventType.php
new file mode 100644
index 00000000..66d4ede8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MovedCopiedEventType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MovedCopiedEventType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an event in which an item or folder is copied.
+ *
+ * @package php-ews\Type
+ */
+class MovedCopiedEventType extends BaseObjectChangedEventType
+{
+ /**
+ * Represents the folder identifier of the original folder before it was
+ * copied.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $OldFolderId;
+
+ /**
+ * Contains the unique identifier of the original item before it was copied.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $OldItemId;
+
+ /**
+ * Contains the identifier of the original parent folder of an item or
+ * folder that was copied.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $OldParentFolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MultipleOperandBooleanExpressionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MultipleOperandBooleanExpressionType.php
new file mode 100644
index 00000000..3bb2f1d6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/MultipleOperandBooleanExpressionType.php
@@ -0,0 +1,143 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\MultipleOperandBooleanExpressionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for derived elements that represent a restriction formed by two or
+ * more Boolean operands.
+ *
+ * @package php-ews\Type
+ */
+abstract class MultipleOperandBooleanExpressionType extends Type
+{
+ /**
+ * Represents a search expression that enables you to perform a Boolean AND
+ * operation between two or more search expressions.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AndType
+ */
+ public $And;
+
+ /**
+ * Represents a search expression that determines whether a given property
+ * contains the supplied constant string value.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContainsExpressionType
+ */
+ public $Contains;
+
+ /**
+ * Performs a bitwise mask of the properties.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ExcludesType
+ */
+ public $Excludes;
+
+ /**
+ * Represents a search expression that returns true if the supplied property
+ * exists on an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ExistsType
+ */
+ public $Exists;
+
+ /**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and evaluates to true if they are
+ * equal.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\IsEqualToType
+ */
+ public $IsEqualTo;
+
+ /**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and returns true if the first property
+ * is greater than the value or property.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\IsGreaterThanType
+ */
+ public $IsGreaterThan;
+
+ /**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and returns true if the first property
+ * is greater than or equal to the value or property.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\IsGreaterThanOrEqualToType
+ */
+ public $IsGreaterThanOrEqualTo;
+
+ /**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and returns true if the first property
+ * is less than the value or property.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\IsLessThanType
+ */
+ public $IsLessThan;
+
+ /**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and returns true if the first property
+ * is less than or equal to the value or property.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\IsLessThanOrEqualToType
+ */
+ public $IsLessThanOrEqualTo;
+
+ /**
+ * Represents a search expression that compares a property with either a
+ * constant value or another property and returns true if the values are not
+ * the same.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\IsNotEqualToType
+ */
+ public $IsNotEqualTo;
+
+ /**
+ * Represents a search expression that negates the Boolean value of the
+ * search expression it contains.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\NotType
+ */
+ public $Not;
+
+ /**
+ * Represents a search expression that performs a logical OR operation on
+ * the search expression it contains. The Or element will return true if any
+ * of its children return true.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\OrType
+ */
+ public $Or;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NoEndRecurrenceRangeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NoEndRecurrenceRangeType.php
new file mode 100644
index 00000000..59426aab
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NoEndRecurrenceRangeType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\NoEndRecurrenceRangeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes the start date of an item recurrence pattern that does not have a
+ * defined end date.
+ *
+ * @package php-ews\Type
+ */
+class NoEndRecurrenceRangeType extends RecurrenceRangeBaseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemDetailResultType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemDetailResultType.php
new file mode 100644
index 00000000..8a9ace5f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemDetailResultType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\ArrayType\NonIndexableItemDetailResultType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the results of the GetNonIndexableItemDetails request.
+ *
+ * @package php-ews\Type
+ */
+class NonIndexableItemDetailResultType extends Type
+{
+ /**
+ * Specifies an array of mailboxes that failed on search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfFailedSearchMailboxesType
+ */
+ public $FailedMailboxes;
+
+ /**
+ * Contains an array of item details for non-indexable items.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfNonIndexableItemDetailsType
+ */
+ public $Items;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemDetailType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemDetailType.php
new file mode 100644
index 00000000..cfc977de
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemDetailType.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\NonIndexableItemDetailType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines detail information about an item that cannot be indexed.
+ *
+ * @package php-ews\Type
+ */
+class NonIndexableItemDetailType extends Type
+{
+ /**
+ * Contains the unique identifier and change key of an item in the Exchange
+ * store.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * Internal use only.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ErrorCode;
+
+ /**
+ * Describes the error that is returned in information about an item that
+ * cannot be indexed.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ErrorDescription;
+
+ /**
+ * Indicates whether the item is partially indexed.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsPartiallyIndexed;
+
+ /**
+ * Indicates whether a previous attempt to index the item was unsuccessful.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsPermanentFailure;
+
+ /**
+ * Specifies a value used for sorting.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $SortValue;
+
+ /**
+ * Represents the number of attempts that have been made to index the item.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $AttemptCount;
+
+ /**
+ * Contains the time and date at which the last attempt to index the item
+ * was made.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $LastAttemptTime;
+
+ /**
+ * Specifies additional information about the hold status of a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $AdditionalInfo;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemStatisticType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemStatisticType.php
new file mode 100644
index 00000000..f29b1da2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NonIndexableItemStatisticType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\NonIndexableItemStatisticType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a single statistic for an item that could not be indexed.
+ *
+ * @package php-ews\Type
+ */
+class NonIndexableItemStatisticType extends Type
+{
+ /**
+ * Represents the reason for the validation error.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ErrorMessage;
+
+ /**
+ * Specifies the total number of items in a search result.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $ItemCount;
+
+ /**
+ * Contains an identifier for a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Mailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NotType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NotType.php
new file mode 100644
index 00000000..e4811ee3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NotType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\NotType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that negates the Boolean value of the search
+ * expression that it contains.
+ *
+ * @package php-ews\Type
+ */
+class NotType extends MultipleOperandBooleanExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NotificationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NotificationType.php
new file mode 100644
index 00000000..fa677fd9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NotificationType.php
@@ -0,0 +1,120 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\NotificationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Contains information about the subscription and the events that have occurred
+ * since the last notification.
+ *
+ * @package php-ews\Type
+ */
+class NotificationType extends Type
+{
+ /**
+ * Represents an event in which an item or folder is copied.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MovedCopiedEventType
+ */
+ public $CopiedEvent;
+
+ /**
+ * Represents an event in which an item or folder is created.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\BaseObjectChangedEventType
+ */
+ public $CreatedEvent;
+
+ /**
+ * Represents an event in which an item or folder is deleted.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\BaseObjectChangedEventType
+ */
+ public $DeletedEvent;
+
+ /**
+ * Represents an event in which an item’s free/busy time has changed.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\BaseObjectChangedEventType
+ */
+ public $FreeBusyChangedEvent;
+
+ /**
+ * Represents an event in which an item or folder is modified.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ModifiedEventType
+ */
+ public $ModifiedEvent;
+
+ /**
+ * Indicates whether there are more events in the queue to be delivered to
+ * the client.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $MoreEvents;
+
+ /**
+ * Represents an event in which an item or folder is moved from one parent
+ * folder to another parent folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MovedCopiedEventType
+ */
+ public $MovedEvent;
+
+ /**
+ * Represents an event that is triggered by a new mail item in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\BaseObjectChangedEventType
+ */
+ public $NewMailEvent;
+
+ /**
+ * Represents the watermark of the latest event that was successfully
+ * communicated to the client for the subscription.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $PreviousWatermark;
+
+ /**
+ * Represents a notification that no new activity has occurred in the
+ * mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\BaseNotificationEventType
+ */
+ public $StatusEvent;
+
+ /**
+ * Represents the identifier for a subscription.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SubscriptionId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NumberedRecurrenceRangeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NumberedRecurrenceRangeType.php
new file mode 100644
index 00000000..d3358a10
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/NumberedRecurrenceRangeType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\NumberedRecurrenceRangeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes the start date and the number of occurrences of a recurring item.
+ *
+ * @package php-ews\Type
+ */
+class NumberedRecurrenceRangeType extends RecurrenceRangeBaseType
+{
+ /**
+ * Contains the number of occurrences of a recurring item.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $NumberOfOccurrences;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrenceInfoType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrenceInfoType.php
new file mode 100644
index 00000000..3b628d0a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrenceInfoType.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\OccurrenceInfoType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an occurrence of a recurring calendar item.
+ *
+ * @package php-ews\Type
+ */
+class OccurrenceInfoType extends Type
+{
+ /**
+ * Represents the end time of the first occurrence of a recurring calendar
+ * item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $End;
+
+ /**
+ * Contains the unique identifier and change key of the first occurrence of
+ * a recurring calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * Represents the original start time of the first occurrence of a recurring
+ * calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $OriginalStart;
+
+ /**
+ * Represents the start time of the first occurrence of a recurring calendar
+ * item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $Start;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrenceItemIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrenceItemIdType.php
new file mode 100644
index 00000000..48a6fabb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrenceItemIdType.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\OccurrenceItemIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a single occurrence of a recurring item.
+ *
+ * @package php-ews\Type
+ */
+class OccurrenceItemIdType extends BaseItemIdType
+{
+ /**
+ * Identifies a specific version of the recurring master or an item
+ * occurrence.
+ *
+ * If either the recurring master or any of its occurrences change, the
+ * changeKey changes. The ChangeKey is the same for the recurring master and
+ * all occurrences.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ChangeKey;
+
+ /**
+ * Identifies the index of the item occurrence.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $InstanceIndex;
+
+ /**
+ * Identifies the recurring master of a recurring item.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $RecurringMasterId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrencesRangeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrencesRangeType.php
new file mode 100644
index 00000000..7bac819e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OccurrencesRangeType.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\OccurrencesRangeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a range of calendar item occurrences for a repeating calendar item.
+ *
+ * @package php-ews\Type
+ */
+class OccurrencesRangeType extends Type
+{
+ /**
+ * Start date of the recurring item range.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $Start;
+
+ /**
+ * End date of the recurring item range.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $End;
+
+ /**
+ * Number of occurrences of the recurring item.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $Count;
+
+ /**
+ * Whether or not the client should compare the original start time with the
+ * new start time.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $CompareOriginalStartTime;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OpenAsAdminOrSystemServiceType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OpenAsAdminOrSystemServiceType.php
new file mode 100644
index 00000000..9fb13ba3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OpenAsAdminOrSystemServiceType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\OpenAsAdminOrSystemServiceType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * For internal use only. Not used by clients.
+ *
+ * @package php-ews\Type
+ */
+class OpenAsAdminOrSystemServiceType extends Type
+{
+ /**
+ * Not intended for client use.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $ConnectingSID;
+
+ /**
+ * Not intended for client use.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $LogonType;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OrType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OrType.php
new file mode 100644
index 00000000..ff586f42
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OrType.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\OrType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search expression that performs a logical OR on the search
+ * expression that it contains.
+ *
+ * Or will return true if any of its children return true. Or must have two or
+ * more children.
+ *
+ * @package php-ews\Type
+ */
+class OrType extends MultipleOperandBooleanExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OutOfOfficeMailTip.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OutOfOfficeMailTip.php
new file mode 100644
index 00000000..33ec45b5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/OutOfOfficeMailTip.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\OutOfOfficeMailTip.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the response message and a duration time for sending the response
+ * message.
+ *
+ * @package php-ews\Type
+ */
+class OutOfOfficeMailTip extends Type
+{
+ /**
+ * Contains the duration that the OOF status is enabled if the OofState
+ * element is set to Scheduled.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\Duration
+ */
+ public $Duration;
+
+ /**
+ * Contains an Out of Office (OOF) message and the language used for the
+ * message.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ReplyBody
+ */
+ public $ReplyBody;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToExtendedFieldType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToExtendedFieldType.php
new file mode 100644
index 00000000..061d65da
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToExtendedFieldType.php
@@ -0,0 +1,134 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PathToExtendedFieldType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * 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
+ *
+ * @package php-ews\Type
+ */
+class PathToExtendedFieldType extends BasePathToElementType
+{
+ /**
+ * Defines the well-known property set IDs for extended MAPI properties.
+ *
+ * If this attribute is used, the PropertySetId and PropertyTag attributes
+ * cannot be used. This attribute must be used with either the PropertyId or
+ * PropertyName attribute, and the PropertyType attribute.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DistinguishedPropertySetType
+ */
+ public $DistinguishedPropertySetId;
+
+ /**
+ * Identifies an extended property by its dispatch ID.
+ *
+ * The dispatch ID can be identified in either decimal or hexadecimal
+ * formats. This property must be coupled with either
+ * DistinguishedPropertySetId or PropertySetId. If this attribute is used,
+ * the PropertyName and PropertyTag attributes cannot be used.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $PropertyId;
+
+ /**
+ * Identifies an extended property by its name.
+ *
+ * This property must be coupled with either DistinguishedPropertySetId or
+ * PropertySetId. If this attribute is used, the PropertyId and PropertyTag
+ * attributes cannot be used.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $PropertyName;
+
+ /**
+ * Identifies a MAPI extended property set or namespace by its identifying
+ * GUID.
+ *
+ * If this attribute is used, the DistinguishedPropertySetId and PropertyTag
+ * attribute cannot be used. This attribute must be used with either the
+ * PropertyId or PropertyName attribute, and the PropertyType attribute.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $PropertySetId;
+
+ /**
+ * Identifies the property tag without the type part of the tag.
+ *
+ * The PropertyTag can be represented as either a hexadecimal or a short
+ * integer. The range between 0x8000 and 0xFFFE represents the custom range
+ * of properties. When a mailbox database encounters a custom property for
+ * the first time, it assigns that custom property a property tag within the
+ * custom property range of 0x8000-0xFFFE. A given custom property tag will
+ * most likely differ across databases. Therefore, a custom property request
+ * by property tag can return different properties on different databases.
+ *
+ * The use of the PropertyTag attribute is prohibited for custom properties.
+ * Instead, use the PropertySetId attribute and the PropertyName or
+ * PropertyId attribute.
+ *
+ * Important: Access any custom property between 0x8000 and 0xFFFE by using
+ * the GUID + name/ID.
+ *
+ * If the PropertyTag attribute is used, the DistinguishedPropertySetId,
+ * PropertySetId, PropertyName, and PropertyId attributes cannot be used.
+ *
+ * Note: You cannot use a property tag attribute for properties within the
+ * custom range 0x8000-0xFFFE. You must use a named property in this case.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $PropertyTag;
+
+ /**
+ * Represents the property type of a property tag.
+ *
+ * This corresponds to the least significant word in a property tag. The
+ * PropertyType Attribute table later in this topic contains the possible
+ * values for this attribute.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MapiPropertyTypeType
+ */
+ public $PropertyType;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToIndexedFieldType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToIndexedFieldType.php
new file mode 100644
index 00000000..c5033701
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToIndexedFieldType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PathToIndexedFieldType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies individual members of a dictionary.
+ *
+ * @package php-ews\Type
+ */
+class PathToIndexedFieldType extends BasePathToElementType
+{
+ /**
+ * Identifies the member of the dictionary to return.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $FieldIndex;
+
+ /**
+ * FieldURI property
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DictionaryURIType
+ */
+ public $FieldURI;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToUnindexedFieldType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToUnindexedFieldType.php
new file mode 100644
index 00000000..ceb3afc8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PathToUnindexedFieldType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PathToUnindexedFieldType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies frequently referenced properties by URI.
+ *
+ * @package php-ews\Type
+ */
+class PathToUnindexedFieldType extends BasePathToElementType
+{
+ /**
+ * Identifies the URI of the property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\UnindexedFieldURIType
+ */
+ public $FieldURI;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PeriodType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PeriodType.php
new file mode 100644
index 00000000..b135b5b5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PeriodType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PeriodType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the name, time offset, and unique identifier for a specific stage of
+ * the time zone.
+ *
+ * @package php-ews\Type
+ */
+class PeriodType extends Type
+{
+ /**
+ * An xs:duration value that represents the time offset from Coordinated
+ * Universal Time (UTC) for the period.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Bias;
+
+ /**
+ * A string value that represents the identifier for the period.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Id;
+
+ /**
+ * A string value that represents the descriptive name of the period.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Name;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PermissionSetType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PermissionSetType.php
new file mode 100644
index 00000000..3b8af14d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PermissionSetType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PermissionSetType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Contains all the permissions that are configured for a folder.
+ *
+ * @package php-ews\Type
+ */
+class PermissionSetType extends Type
+{
+ /**
+ * Contains the collection of permissions for a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPermissionsType
+ */
+ public $Permissions;
+
+ /**
+ * Contains an array of unknown entries that cannot be resolved against the
+ * Active Directory directory service.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfUnknownEntriesType
+ */
+ public $UnknownEntries;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PermissionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PermissionType.php
new file mode 100644
index 00000000..a6f947cb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PermissionType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PermissionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the access that a user has to a folder.
+ *
+ * @package php-ews\Type
+ */
+class PermissionType extends BasePermissionType
+{
+ /**
+ * Represents the combination of permissions that a user has on a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\PermissionLevelType
+ */
+ public $PermissionLevel;
+
+ /**
+ * Indicates whether a user has permission to read items within a folder.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\PermissionReadAccessType
+ */
+ public $ReadItems;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaAttributionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaAttributionType.php
new file mode 100644
index 00000000..6c0e0e93
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaAttributionType.php
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PersonaAttributionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines an instance in an array of attributes for a Persona.
+ *
+ * @package php-ews\Type
+ */
+class PersonaAttributionType extends Type
+{
+ /**
+ * Defines the display name of a folder, contact, distribution list,
+ * delegate user, or rule.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Contains the identifier and change key of a folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $FolderId;
+
+ /**
+ * Specifies a string that uniquely identifies an app or an attribution in a
+ * persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Id;
+
+ /**
+ * Contains a Boolean value that indicates whether the underlying contact or
+ * Active Directory recipient should be hidden or displayed as part of the
+ * persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsHidden;
+
+ /**
+ * Specifies a Boolean value that indicates whether the underlying contact
+ * or Active Directory recipient is a quick contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsQuickContact;
+
+ /**
+ * Specifies whether the underlying contact or Active Directory recipient
+ * can be written to.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsWritable;
+
+ /**
+ * Specifies the identifier of the contact or Active Directory recipient.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $SourceId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaPhoneNumberType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaPhoneNumberType.php
new file mode 100644
index 00000000..44d363f5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaPhoneNumberType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PersonaPhoneNumberType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a phone number and type information and is associated with a set
+ * of attributions.
+ *
+ * @package php-ews\Type
+ */
+class PersonaPhoneNumberType extends Type
+{
+ /**
+ * Specifies the phone number.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Number;
+
+ /**
+ * Specifies the type of phone number, for example, "Home" or "Business".
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Type;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaPostalAddressType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaPostalAddressType.php
new file mode 100644
index 00000000..39ba34de
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaPostalAddressType.php
@@ -0,0 +1,158 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PersonaPostalAddressType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a postal address associated with a persona.
+ *
+ * @package php-ews\Type
+ */
+class PersonaPostalAddressType extends Type
+{
+ /**
+ * Specifies the accuracy of the latitude and longitude of the associated
+ * postal address.
+ *
+ * @since Exchange 2013
+ *
+ * @var float
+ */
+ public $Accuracy;
+
+ /**
+ * Specifies the altitude of a postal address.
+ *
+ * @since Exchange 2013
+ *
+ * @var float
+ */
+ public $Altitude;
+
+ /**
+ * Specifies the accuracy of the altitude property for a postal address.
+ *
+ * @since Exchange 2013
+ *
+ * @var float
+ */
+ public $AltitudeAccuracy;
+
+ /**
+ * Represents the city name that is associated with a contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $City;
+
+ /**
+ * Identifies a country identifier in a postal address.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Country;
+
+ /**
+ * Specifies the formatted display value of the associated postal address.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $FormattedAddress;
+
+ /**
+ * Specifies the latitude of the location of the associated postal address.
+ *
+ * @since Exchange 2013
+ *
+ * @var float
+ */
+ public $Latitude;
+
+ /**
+ * Specifies information about the origin of the associated postal address,
+ * for example, a contact or a telephone book.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\LocationSourceType
+ */
+ public $LocationSource;
+
+ /**
+ * Contains a string specifying a Uniform Resource Identifier (URI) of the
+ * associated postal address.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $LocationUri;
+
+ /**
+ * Specifies the longitude of the location of the associated postal address.
+ *
+ * @since Exchange 2013
+ *
+ * @var float
+ */
+ public $Longitude;
+
+ /**
+ * Specifies the "post office box" portion of a postal address.
+ *
+ * @since Exchange 2013
+ *
+ * @var type
+ */
+ public $PostOfficeBox;
+
+ /**
+ * Represents the postal code for a contact item.
+ *
+ * @since Exchange 2013
+ *
+ * @var type
+ */
+ public $PostalCode;
+
+ /**
+ * Represents the state of residence for a contact item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $State;
+
+ /**
+ * Represents a street address for a contact item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Street;
+
+ /**
+ * Specifies the type of postal address or phone number.
+ *
+ * For example, "Home" or "Business".
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Type;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaResponseShapeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaResponseShapeType.php
new file mode 100644
index 00000000..dd13ede5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaResponseShapeType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PersonaResponseShapeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a set of properties for a persona.
+ *
+ * @package php-ews\Type
+ */
+class PersonaResponseShapeType extends Type
+{
+ /**
+ * Identifies additional properties.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPathsToElementType
+ */
+ public $AdditionalProperties;
+
+ /**
+ * Identifies the set of properties to return in an item or folder response.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DefaultShapeNamesType
+ */
+ public $BaseShape;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaType.php
new file mode 100644
index 00000000..596c80a9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PersonaType.php
@@ -0,0 +1,972 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PersonaType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a set of persona data.
+ *
+ * @package php-ews\Type
+ */
+class PersonaType extends Type
+{
+ /**
+ * Specifies an array of assistant names and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $AssistantNames;
+
+ /**
+ * Specifies an array of assistant phone numbers and the identifiers of
+ * their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $AssistantPhoneNumbers;
+
+ /**
+ * Specifies an array of attribution information for one or more of the
+ * contacts or Active Directory recipients aggregated into the associated
+ * persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPersonaAttributionsType
+ */
+ public $Attributions;
+
+ /**
+ * Specifies an array of birthdays, stored as strings, and the identifiers
+ * of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Birthdays;
+
+ /**
+ * Specifies an array of BodyContentAttributedValue elements.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfBodyContentAttributedValuesType
+ */
+ public $Bodies;
+
+ /**
+ * Specifies an array of business addresses and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPostalAddressAttributedValuesType
+ */
+ public $BusinessAddresses;
+
+ /**
+ * Specifies an array of business home pages and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $BusinessHomePages;
+
+ /**
+ * Specifies an array of business phone numbers and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $BusinessPhoneNumbers;
+
+ /**
+ * Specifies an array of BusinessPhoneNumber2 elements and the identifiers
+ * of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $BusinessPhoneNumbers2;
+
+ /**
+ * Specifies an array of call-back phone numbers and the identifiers of
+ * their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $CallbackPhones;
+
+ /**
+ * Specifies an array of car phone numbers and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $CarPhones;
+
+ /**
+ * Specifies an array of child names and identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringArrayAttributedValuesType
+ */
+ public $Children;
+
+ /**
+ * Represents the company name that is associated with a contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $CompanyName;
+
+ /**
+ * Contains an array of company names and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $CompanyNames;
+
+ /**
+ * Contains the sort key for a company name.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $CompanyNameSortKey;
+
+ /**
+ * Specifies when the persona was created.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $CreationTime;
+
+ /**
+ * Represents the contact's department at work.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Department;
+
+ /**
+ * Specifies an array of department names and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Departments;
+
+ /**
+ * Contains the display name of the persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Specifies the display name of the associated persona in the format,
+ * "First Name", "Last Name".
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayNameFirstLast;
+
+ /**
+ * Specifies the header for the display name, first name first.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayNameFirstLastHeader;
+
+ /**
+ * Contains the sort key for a display name in first name, last name order.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayNameFirstLastSortKey;
+
+ /**
+ * Specifies the display name of the associated persona in the format, "Last
+ * Name", "First Name".
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayNameLastFirst;
+
+ /**
+ * Specifies the header for the display name, last name first.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayNameLastFirstHeader;
+
+ /**
+ * Contains the sort key for a display name in last name, first name order.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayNameLastFirstSortKey;
+
+ /**
+ * Specifies the prefix of the display name of the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayNamePrefix;
+
+ /**
+ * Specifies an array of display name prefixes and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $DisplayNamePrefixes;
+
+ /**
+ * Specifies an array of display names and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $DisplayNames;
+
+ /**
+ * Specifies the fully resolved SMTP address for the site mailbox or the
+ * associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $EmailAddress;
+
+ /**
+ * Specifies an array of all email addresses of the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressesType
+ */
+ public $EmailAddresses;
+
+ /**
+ * Specifies an array of EmailAddressAttributedValue values and the
+ * identifiers of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressAttributedValuesType
+ */
+ public $Emails1;
+
+ /**
+ * Contains an array of EmailAddressAttributedValue values and the
+ * identifiers of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressAttributedValuesType
+ */
+ public $Emails2;
+
+ /**
+ * Specifies an array of EmailAddressAttributedValue values and the
+ * identifiers of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressAttributedValuesType
+ */
+ public $Emails3;
+
+ /**
+ * Contains the extended properties used for a persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfExtendedPropertyAttributedValueType
+ */
+ public $ExtendedProperties;
+
+ /**
+ * Represents how a contact or distribution list is filed in the Contacts
+ * folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $FileAs;
+
+ /**
+ * Specifies the header for the File As option.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $FileAsHeader;
+
+ /**
+ * Specifies the FileAs identifier.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $FileAsId;
+
+ /**
+ * Specifies an array of StringAttributedValue elements and the identifiers
+ * of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $FileAsIds;
+
+ /**
+ * Specifies an array of StringAttributedValue elements and the identifiers
+ * of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $FileAses;
+
+ /**
+ * Contains a list of folder identifiers.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfFolderIdType
+ */
+ public $FolderIds;
+
+ /**
+ * Represents a generational abbreviation that follows the full name of a
+ * contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Generation;
+
+ /**
+ * Specifies an array of generation values and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Generations;
+
+ /**
+ * Contains a contact's given name.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $GivenName;
+
+ /**
+ * Specifies an array of given name values and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $GivenNames;
+
+ /**
+ * Specifies an array of hobbies and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Hobbies;
+
+ /**
+ * Specifies an array of home addresses and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPostalAddressAttributedValuesType
+ */
+ public $HomeAddresses;
+
+ /**
+ * Specifies the city of the home address of the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $HomeCity;
+
+ /**
+ * Contains the sort key for the home city.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $HomeCitySortKey;
+
+ /**
+ * Specifies an array of home fax numbers and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $HomeFaxes;
+
+ /**
+ * Specifies an array of home phone numbers and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $HomePhones;
+
+ /**
+ * Specifies an array of HomePhone2 values and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $HomePhones2;
+
+ /**
+ * Contains the primary instant messaging address of a persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ImAddress;
+
+ /**
+ * Specifies an array of instant message addresses and the identifiers of
+ * their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $ImAddresses;
+
+ /**
+ * Specifies an array of instant message addresses and the identifiers of
+ * their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $ImAddresses2;
+
+ /**
+ * Specifies an array of instant message addresses and the identifiers of
+ * their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $ImAddresses3;
+
+ /**
+ * Specifies an array of initials values and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Initials;
+
+ /**
+ * Represents the location of a meeting, appointment, or persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Location;
+
+ /**
+ * Specifies an array of location values and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Locations;
+
+ /**
+ * Specifies an array of manager names and the identifiers of their source
+ * attributions for a persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Managers;
+
+ /**
+ * Represents the middle name of a contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $MiddleName;
+
+ /**
+ * Specifies an array of middle name values and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $MiddleNames;
+
+ /**
+ * Specifies an array of mobile phone numbers and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $MobilePhones;
+
+ /**
+ * Specifies an array of MobilePhone values and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $MobilePhones2;
+
+ /**
+ * Represents the nickname of a contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Nickname;
+
+ /**
+ * Specifies an array of nickname values and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Nicknames;
+
+ /**
+ * Specifies an array of office locations and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $OfficeLocations;
+
+ /**
+ * Specifies an array of organizational main phone numbers and the
+ * identifiers of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $OrganizationMainPhones;
+
+ /**
+ * Specifies an array of address values and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPostalAddressAttributedValuesType
+ */
+ public $OtherAddresses;
+
+ /**
+ * Specifies an array of fax phone number values and the identifiers of
+ * their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $OtherFaxes;
+
+ /**
+ * Specifies an array of phone values and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $OtherPhones2;
+
+ /**
+ * Specifies an array of telephone values and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $OtherTelephones;
+
+ /**
+ * Specifies an array of pager phone numbers and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $Pagers;
+
+ /**
+ * Specifies the persona identifier for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $PersonaId;
+
+ /**
+ * Specifies whether the information in the associated persona is complete
+ * or partial.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $PersonaObjectStatus;
+
+ /**
+ * Specifies the type of the persona.
+ *
+ * For example, a person or a distribution list.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $PersonaType;
+
+ /**
+ * Specifies an array of home pages and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $PersonalHomePages;
+
+ /**
+ * Specifies the default phone number of the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PersonaPhoneNumberType
+ */
+ public $PhoneNumber;
+
+ /**
+ * Specifies an array of Profession values and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Professions;
+
+ /**
+ * Specifies an array of radio phone numbers and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $RadioPhones;
+
+ /**
+ * Specifies an integer that represents how relevant the associated persona
+ * is to the client.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $RelevanceScore;
+
+ /**
+ * Specifies an array of school names and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Schools;
+
+ /**
+ * Specifies an array of spouse or partner names and the identifiers of
+ * their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $SpouseNames;
+
+ /**
+ * Represents the surname of a contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Surname;
+
+ /**
+ * Specifies an array of surname values and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Surnames;
+
+ /**
+ * Specifies an array of Telex numbers and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $TelexNumbers;
+
+ /**
+ * Represents the title of a contact.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Title;
+
+ /**
+ * Specifies an array of job titles and the identifiers of their source
+ * attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $Titles;
+
+ /**
+ * Specifies an array of TTY or TDD text telephone numbers and the
+ * identifiers of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $TTYTDDPhoneNumbers;
+
+ /**
+ * Specifies an array of wedding anniversary dates, stored as strings, and
+ * the identifiers of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $WeddingAnniversaries;
+
+ /**
+ * Specifies the city where the associated persona works.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $WorkCity;
+
+ /**
+ * Contains the sort key for the work city values associated with a persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $WorkCitySortKey;
+
+ /**
+ * Specifies an array of work fax numbers and the identifiers of their
+ * source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfPhoneNumberAttributedValuesType
+ */
+ public $WorkFaxes;
+
+ /**
+ * Specifies the phonetic Japanese company name of the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $YomiCompanyName;
+
+ /**
+ * Specifies an array of phonetic Japanese company names and the identifiers
+ * of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $YomiCompanyNames;
+
+ /**
+ * Represents the name that is used in Japan for the searchable or phonetic
+ * spelling for a Japanese first name.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $YomiFirstName;
+
+ /**
+ * Specifies an array of phonetic Japanese first names and the identifiers
+ * of their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $YomiFirstNames;
+
+ /**
+ * Represents the name that is used in Japan for the searchable or phonetic
+ * spelling for a Japanese last name.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $YomiLastName;
+
+ /**
+ * Specifies an array of phonetic Japanese last names and the identifiers of
+ * their source attributions for the associated persona.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringAttributedValuesType
+ */
+ public $YomiLastNames;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneCallIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneCallIdType.php
new file mode 100644
index 00000000..a7daff00
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneCallIdType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PhoneCallIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the identifier of a phone call.
+ *
+ * @package php-ews\Type
+ */
+class PhoneCallIdType extends Type
+{
+ /**
+ * Identifies the phone call to disconnect.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Id;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneCallInformationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneCallInformationType.php
new file mode 100644
index 00000000..0a35c327
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneCallInformationType.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PhoneCallInformationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the state information for a phone call.
+ *
+ * @package php-ews\Type
+ */
+class PhoneCallInformationType extends Type
+{
+ /**
+ * Specifies the cause of a connection failure.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ConnectionFailureCauseType
+ */
+ public $ConnectionFailureCause;
+
+ /**
+ * Specifies the state for a phone call.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\PhoneCallStateType
+ */
+ public $PhoneCallState;
+
+ /**
+ * Specifies the SIP response code.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $SIPResponseCode;
+
+ /**
+ * Specifies the SIP response text.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $SIPResponseText;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberAttributedValueType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberAttributedValueType.php
new file mode 100644
index 00000000..da006a43
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberAttributedValueType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PhoneNumberAttributedValueType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a phone number and its associated attributions.
+ *
+ * @package php-ews\Type
+ */
+class PhoneNumberAttributedValueType extends Type
+{
+ /**
+ * Specifies an array of attributions for the Value element.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfValueAttributionsType
+ */
+ public $Attributions;
+
+ /**
+ * Specifies a phone number and type information.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PersonaPhoneNumberType
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberDictionaryEntryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberDictionaryEntryType.php
new file mode 100644
index 00000000..c558c04e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberDictionaryEntryType.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PhoneNumberDictionaryEntryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a telephone number for a contact.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Create a common EntryType class.
+ * @todo Create a common TextEntryType class.
+ */
+class PhoneNumberDictionaryEntryType extends Type
+{
+ /**
+ * Value that represents the telephone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $_;
+
+ /**
+ * Identifies the telephone number.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\PhoneNumberKeyType
+ */
+ public $Key;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberDictionaryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberDictionaryType.php
new file mode 100644
index 00000000..98333160
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhoneNumberDictionaryType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PhoneNumberDictionaryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a collection of telephone numbers for a contact.
+ *
+ * @package php-ews\Type
+ */
+class PhoneNumberDictionaryType extends Type
+{
+ /**
+ * Represents a telephone number for a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PhoneNumberDictionaryEntryType
+ */
+ public $Entry;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhysicalAddressDictionaryEntryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhysicalAddressDictionaryEntryType.php
new file mode 100644
index 00000000..a24adf44
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhysicalAddressDictionaryEntryType.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PhysicalAddressDictionaryEntryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes a single physical address for a contact item.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Create a common EntryType class.
+ * @todo Create a common TextEntryType class.
+ */
+class PhysicalAddressDictionaryEntryType extends Type
+{
+ /**
+ * Represents the city name that is associated with a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $City;
+
+ /**
+ * Represents the country or region for a given physical address.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $CountryOrRegion;
+
+ /**
+ * Identifies a physical address.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\PhysicalAddressKeyType
+ */
+ public $Key;
+
+ /**
+ * Represents the postal code for a contact item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $PostalCode;
+
+ /**
+ * Represents the state of residence for a contact item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $State;
+
+ /**
+ * Represents a street address for a contact item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Street;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhysicalAddressDictionaryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhysicalAddressDictionaryType.php
new file mode 100644
index 00000000..2338685e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PhysicalAddressDictionaryType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PhysicalAddressDictionaryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a collection of physical addresses that are associated with a
+ * contact.
+ *
+ * @package php-ews\Type
+ */
+class PhysicalAddressDictionaryType extends Type
+{
+ /**
+ * Describes a single physical address for a contact item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PhysicalAddressDictionaryEntryType
+ */
+ public $Entry;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostItemType.php
new file mode 100644
index 00000000..b4766098
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostItemType.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PostItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a post item in the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class PostItemType extends ItemType
+{
+ /**
+ * Contains a binary ID that represents the thread to which this message
+ * belongs.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $ConversationIndex;
+
+ /**
+ * Represents the conversation identifier.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ConversationTopic;
+
+ /**
+ * Represents the address from which the post item was sent.
+ *
+ * The From element can only be set at creation time.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $From;
+
+ /**
+ * Represents the Internet message identifier of an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $InternetMessageId;
+
+ /**
+ * Indicates whether a message has been read.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsRead;
+
+ /**
+ * Represents the time that a PostItem was posted.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $PostedTime;
+
+ /**
+ * Represents the Usenet header that is used to associate replies with the
+ * original messages.
+ *
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $References;
+
+ /**
+ * Identifies the sender of an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $Sender;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostReplyItemBaseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostReplyItemBaseType.php
new file mode 100644
index 00000000..98c49a06
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostReplyItemBaseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PostReplyItemBaseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for posting item replies.
+ *
+ * @package php-ews\Type
+ */
+class PostReplyItemBaseType extends ResponseObjectType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostReplyItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostReplyItemType.php
new file mode 100644
index 00000000..40a9af4e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostReplyItemType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PostReplyItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a reply to a post item.
+ *
+ * @package php-ews\Type
+ */
+class PostReplyItemType extends PostReplyItemBaseType
+{
+ /**
+ * Represents the new body content of a post item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\BodyType
+ */
+ public $NewBodyContent;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostalAddressAttributedValueType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostalAddressAttributedValueType.php
new file mode 100644
index 00000000..1454a0ac
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PostalAddressAttributedValueType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PostalAddressAttributedValueType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines an instance of an array of postal addresses and their associated
+ * attributions.
+ *
+ * @package php-ews\Type
+ */
+class PostalAddressAttributedValueType extends Type
+{
+ /**
+ * Specifies an array of attributions for its associated Value element.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfValueAttributionsType
+ */
+ public $Attributions;
+
+ /**
+ * Specifies information associated with a postal address.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PersonaPostalAddressType
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PreviewItemMailboxType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PreviewItemMailboxType.php
new file mode 100644
index 00000000..46969626
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PreviewItemMailboxType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PreviewItemMailboxType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the mailbox identifier and the user’s primary Simple Mail Transfer
+ * Protocol (SMTP) address.
+ *
+ * @package php-ews\Type
+ */
+class PreviewItemMailboxType extends Type
+{
+ /**
+ * Specifies an identifier for the mailbox that is accessed by discovery
+ * search.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $MailboxId;
+
+ /**
+ * Specifies the primary Simple Mail Transfer Protocol (SMTP) address of the
+ * mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $PrimarySmtpAddress;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PreviewItemResponseShapeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PreviewItemResponseShapeType.php
new file mode 100644
index 00000000..44a4844a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PreviewItemResponseShapeType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PreviewItemResponseShapeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the requested property set to be returned in a discovery search.
+ *
+ * @package php-ews\Type
+ */
+class PreviewItemResponseShapeType extends Type
+{
+ /**
+ * Identifies additional properties.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPathsToElementType
+ */
+ public $AdditionalProperties;
+
+ /**
+ * Specifies either the default preview with all properties returned or a
+ * compact preview with fewer properties returned.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\PreviewItemBaseShapeType
+ */
+ public $BaseShape;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PrivateCatalogAddInsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PrivateCatalogAddInsType.php
new file mode 100644
index 00000000..c09e7c31
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PrivateCatalogAddInsType.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PrivateCatalogAddInsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Undocumented.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Update once documentation exists.
+ */
+class PrivateCatalogAddInsType extends Type
+{
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $ProductId;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\AddInStateType
+ *
+ * @todo Update once documentation exists.
+ */
+ public $State;
+
+ /**
+ * Undocumented.
+ *
+ * @since Exchange 2016
+ *
+ * @var string
+ *
+ * @todo Update once documentation exists.
+ */
+ public $Version;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProposeNewTimeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProposeNewTimeType.php
new file mode 100644
index 00000000..75c747bf
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProposeNewTimeType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ProposeNewTimeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a response object that indicates that a meeting attendee can
+ * propose a new meeting time.
+ *
+ * @package php-ews\Type
+ */
+class ProposeNewTimeType extends ResponseObjectType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleActionType.php
new file mode 100644
index 00000000..9cc8d3bc
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleActionType.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ProtectionRuleActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies what action must be executed if the condition part of a rule
+ * passes.
+ *
+ * @package php-ews\Type
+ */
+class ProtectionRuleActionType extends Type
+{
+ /**
+ * Specifies arguments to the action.
+ *
+ * This property should be left empty if the specified action does not
+ * require arguments to be specified. This property can include one or more
+ * values if an action requires one or more arguments. The
+ * RightsProtectMessage action will contain a single argument.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRuleArgumentType
+ */
+ public $Argument;
+
+ /**
+ * Identifies the name of the action.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Name;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleAndType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleAndType.php
new file mode 100644
index 00000000..708eeb62
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleAndType.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ProtectionRuleAndType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Specifies that all child elements must match to evaluate to true.
+ *
+ * @package php-ews\Type
+ */
+class ProtectionRuleAndType extends Type
+{
+ /**
+ * Evaluates to true if all recipients of an e-mail message are internal to
+ * the sender's organization.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $AllInternal;
+
+ /**
+ * Specifies that all child elements must match to evaluate to true.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRuleAndType
+ */
+ public $And;
+
+ /**
+ * Specifies that any recipient of the e-mail message matches any of the
+ * specified recipients in the child Value (ProtectionRuleValueType)
+ * elements.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRuleRecipientIsType
+ */
+ public $RecipientIs;
+
+ /**
+ * Specifies that the department of the sender matches any of the specified
+ * departments in the child Value (ProtectionRuleValueType) elements.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRuleSenderDepartmentsType
+ */
+ public $SenderDepartments;
+
+ /**
+ * Specifies a condition that always matches.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $True;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleArgumentType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleArgumentType.php
new file mode 100644
index 00000000..3c7d81ea
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleArgumentType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ProtectionRuleArgumentType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Specifies an argument to be passed to an action.
+ *
+ * @package php-ews\Type
+ */
+class ProtectionRuleArgumentType extends Type
+{
+ /**
+ * A non-empty string value that represents the value of an argument to the
+ * action part of a protection rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleConditionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleConditionType.php
new file mode 100644
index 00000000..d7cfdf65
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleConditionType.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ProtectionRuleConditionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a condition that must be satisfied for the action part of a rule
+ * to be executed.
+ *
+ * @package php-ews\Type
+ */
+class ProtectionRuleConditionType extends Type
+{
+ /**
+ * Evaluates to true if all recipients of an e-mail message are internal to
+ * the sender's organization.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $AllInternal;
+
+ /**
+ * Specifies that all child elements must match to evaluate to true.
+ *
+ * Specifies that there must be more than one protection rule child
+ * condition.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRuleAndType
+ */
+ public $And;
+
+ /**
+ * Specifies that any recipient of the e-mail message matches any of the
+ * specified recipients in the child Value (ProtectionRuleValueType)
+ * elements.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRuleRecipientIsType
+ */
+ public $RecipientIs;
+
+ /**
+ * Specifies that the department of the sender matches any of the specified
+ * departments in the child Value (ProtectionRuleValueType) elements.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRuleSenderDepartmentsType
+ */
+ public $SenderDepartments;
+
+ /**
+ * Specifies a condition that always matches.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $True;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleRecipientIsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleRecipientIsType.php
new file mode 100644
index 00000000..5a0ccf4b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleRecipientIsType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ProtectionRuleRecipientIsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Specifies that any recipient of the e-mail message matches any of the
+ * specified recipients in the child Value (ProtectionRuleValueType) elements.
+ *
+ * @package php-ews\Type
+ */
+class ProtectionRuleRecipientIsType extends Type
+{
+ /**
+ * Identifies a recipient.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleSenderDepartmentsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleSenderDepartmentsType.php
new file mode 100644
index 00000000..6f4fbf79
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleSenderDepartmentsType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ProtectionRuleSenderDepartmentsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Specifies that the department of the sender matches any of the specified
+ * departments in the child Value (ProtectionRuleValueType) elements.
+ *
+ * @package php-ews\Type
+ */
+class ProtectionRuleSenderDepartmentsType extends Type
+{
+ /**
+ * Identifies a single sender department.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleType.php
new file mode 100644
index 00000000..969a0d5a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRuleType.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ProtectionRuleType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single protection rule.
+ *
+ * @package php-ews\Type
+ */
+class ProtectionRuleType extends Type
+{
+ /**
+ * Identifies what action must be executed if the condition part of the rule
+ * matches.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRuleActionType
+ */
+ public $Action;
+
+ /**
+ * Identifies the condition that must be satisfied for the action part of
+ * the rule to be executed.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ProtectionRuleConditionType
+ */
+ public $Condition;
+
+ /**
+ * Identifies the name of the rule.
+ *
+ * This property is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Name;
+
+ /**
+ * Specifies the rule priority.
+ *
+ * This property is required with a minimum value of 1.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $Priority;
+
+ /**
+ * Specifies whether the rule is mandatory.
+ *
+ * If the rule is mandatory, this attribute value must be false
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $UserOverridable;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRulesServiceConfiguration.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRulesServiceConfiguration.php
new file mode 100644
index 00000000..b696b579
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ProtectionRulesServiceConfiguration.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ProtectionRulesServiceConfiguration.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents service configuration information for the protection rules
+ * service.
+ *
+ * @package php-ews\Type
+ */
+class ProtectionRulesServiceConfiguration extends ServiceConfiguration
+{
+ /**
+ * Identifies the list of internal SMTP domains of the organization.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\SmtpDomainList
+ */
+ public $InternalDomains;
+
+ /**
+ * Specifies how often, in whole hours, the client should request protection
+ * rules from the server.
+ *
+ * This attribute is required and its value must be an integer that is equal
+ * to or greater than 1.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $RefreshInterval;
+
+ /**
+ * An array of protection rules.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfProtectionRulesType
+ */
+ public $Rules;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PullSubscriptionRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PullSubscriptionRequestType.php
new file mode 100644
index 00000000..73bd4d51
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PullSubscriptionRequestType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PullSubscriptionRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a subscription to a pull-based event notification subscription.
+ *
+ * @package php-ews\Type
+ */
+class PullSubscriptionRequestType extends BaseSubscriptionRequestType
+{
+ /**
+ * Represents the duration, in minutes, that the subscription can remain
+ * idle without a GetEvents request from the client.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ *
+ * @todo Determine if we need SubscriptionTimeoutType.
+ */
+ public $Timeout;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PushSubscriptionRequestType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PushSubscriptionRequestType.php
new file mode 100644
index 00000000..4fb7ee2a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/PushSubscriptionRequestType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\PushSubscriptionRequestType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a subscription to a push-based event notification subscription.
+ *
+ * @package php-ews\Type
+ */
+class PushSubscriptionRequestType extends BaseSubscriptionRequestType
+{
+ /**
+ * Represents the frequency, specified in minutes, at which notification
+ * messages will be sent to the client when no events have occurred.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ *
+ * @todo Determine if we need SubscriptionStatusFrequencyType.
+ */
+ public $StatusFrequency;
+
+ /**
+ * Represents the location of the client Web service for push notifications.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $URL;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/QueryStringType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/QueryStringType.php
new file mode 100644
index 00000000..d37ed672
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/QueryStringType.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\QueryStringType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a mailbox query string based on Advanced Query Syntax (AQS).
+ *
+ * @package php-ews\Type
+ *
+ * @todo Create a base string class?
+ */
+class QueryStringType extends Type
+{
+ /**
+ * Text value of the query string.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @link http://msdn.microsoft.com/en-us/library/ee693615(v=exchg.150).aspx
+ */
+ public $_;
+
+ /**
+ * Indicates that the cache should be reset.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $ResetCache;
+
+ /**
+ * Indicates that deleted items should be returned.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $ReturnDeletedItems;
+
+ /**
+ * Indicates that highlighted terms should be returned.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $ReturnHighlightTerms;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecipientTrackingEventType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecipientTrackingEventType.php
new file mode 100644
index 00000000..18df04ca
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecipientTrackingEventType.php
@@ -0,0 +1,130 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RecipientTrackingEventType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents information for a single event for a recipient.
+ *
+ * @package php-ews\Type
+ */
+class RecipientTrackingEventType extends Type
+{
+ /**
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $BccRecipient;
+
+ /**
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $Date;
+
+ /**
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MessageTrackingDeliveryStatusType
+ */
+ public $DeliveryStatus;
+
+ /**
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $EventData;
+
+ /**
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MessageTrackingEventDescriptionType
+ */
+ public $EventDescription;
+
+ /**
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $HiddenRecipient;
+
+ /**
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $InternalId;
+
+ /**
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTrackingPropertiesType
+ */
+ public $Properties;
+
+ /**
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Recipient;
+
+ /**
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $RootAddress;
+
+ /**
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Server;
+
+ /**
+ * This element is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $UniquePathId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrencePatternBaseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrencePatternBaseType.php
new file mode 100644
index 00000000..a76a404c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrencePatternBaseType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RecurrencePatternBaseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for recurrence patterns.
+ *
+ * @package php-ews\Type
+ */
+abstract class RecurrencePatternBaseType extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrenceRangeBaseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrenceRangeBaseType.php
new file mode 100644
index 00000000..d1418fbe
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrenceRangeBaseType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RecurrenceRangeBaseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for recurrence ranges,
+ *
+ * @package php-ews\Type
+ */
+abstract class RecurrenceRangeBaseType extends Type
+{
+ /**
+ * Represents the start date of a recurring task or calendar item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a date object that extends DateTime.
+ */
+ public $StartDate;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrenceType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrenceType.php
new file mode 100644
index 00000000..e50975e3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurrenceType.php
@@ -0,0 +1,113 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RecurrenceType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the recurrence pattern for calendar items and meeting requests.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Implement RecurrencePatternTypes trait.
+ * @todo Implement RecurrenceRangeTypes trait.
+ */
+class RecurrenceType extends Type
+{
+ /**
+ * Represents a monthly recurrence pattern.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AbsoluteMonthlyRecurrencePatternType
+ */
+ public $AbsoluteMonthlyRecurrence;
+
+ /**
+ * Represents a yearly recurrence pattern.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\AbsoluteYearlyRecurrencePatternType
+ */
+ public $AbsoluteYearlyRecurrence;
+
+ /**
+ * Describes the frequency, in days, in which a calendar item or task
+ * recurs.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DailyRecurrencePatternType
+ */
+ public $DailyRecurrence;
+
+ /**
+ * Describes the start date and the end date of an item recurrence pattern.
+ *
+ * The use of this element excludes the use of the NoEndRecurrence and
+ * NumberedRecurrence elements.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EndDateRecurrenceRangeType
+ */
+ public $EndDateRecurrence;
+
+ /**
+ * Describes a recurrence pattern that does not have a defined end date.
+ *
+ * The use of this element excludes the use of the EndDateRecurrence and
+ * NumberedRecurrence elements.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\NoEndRecurrenceRangeType
+ */
+ public $NoEndRecurrence;
+
+ /**
+ * Describes the start date and the number of occurrences of a recurring
+ * item.
+ *
+ * The use of this element excludes the use of the NoEndRecurrence and
+ * EndDateRecurrence elements.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\NumberedRecurrenceRangeType
+ */
+ public $NumberedRecurrence;
+
+ /**
+ * Describes a relative monthly recurrence pattern for a recurring calendar
+ * item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RelativeMonthlyRecurrencePatternType
+ */
+ public $RelativeMonthlyRecurrence;
+
+ /**
+ * Describes a relative yearly recurrence pattern.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RelativeYearlyRecurrencePatternType
+ */
+ public $RelativeYearlyRecurrence;
+
+ /**
+ * Describes the frequency, in weeks, and the days that a calendar item or
+ * task recurs.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\WeeklyRecurrencePatternType
+ */
+ public $WeeklyRecurrence;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringDateTransitionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringDateTransitionType.php
new file mode 100644
index 00000000..65ca16eb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringDateTransitionType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RecurringDateTransitionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a time zone transition that occurs on a specific date each year.
+ *
+ * @package php-ews\Type
+ */
+class RecurringDateTransitionType extends RecurringTimeTransitionType
+{
+ /**
+ * The day of the month on which the time zone transition occurs.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $Day;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringDayTransitionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringDayTransitionType.php
new file mode 100644
index 00000000..589176e2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringDayTransitionType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RecurringDayTransitionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a time zone transition that occurs on the same day each year.
+ *
+ * @package php-ews\Type
+ */
+class RecurringDayTransitionType extends RecurringTimeTransitionType
+{
+ /**
+ * The day of the week on which the time zone transition occurs.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DayOfWeekType
+ */
+ public $DayOfWeek;
+
+ /**
+ * The occurrence of the day of the week in the month that the time zone
+ * transition occurs.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\Occurrence
+ */
+ public $Occurrence;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringMasterItemIdRanges.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringMasterItemIdRanges.php
new file mode 100644
index 00000000..cbd261c8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringMasterItemIdRanges.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RecurringMasterItemIdRanges.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines an occurrence range.
+ *
+ * @package php-ews\Type
+ */
+class RecurringMasterItemIdRanges extends ItemIdType
+{
+ /**
+ * Specifies an array of recurrence ranges.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfOccurrenceRangesType
+ */
+ public $Ranges;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringMasterItemIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringMasterItemIdType.php
new file mode 100644
index 00000000..9ff28aac
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringMasterItemIdType.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RecurringMasterItemIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a recurrence master item by identifying the identifiers of one of
+ * its related occurrence items.
+ *
+ * @package php-ews\Type
+ */
+class RecurringMasterItemIdType extends BaseItemIdType
+{
+ /**
+ * Identifies a specific version of a single occurrence of a recurring
+ * master item.
+ *
+ * Additionally, the recurring master item is also identified because it and
+ * the single occurrence will contain the same change key.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ChangeKey;
+
+ /**
+ * Identifies a single occurrence of a recurring master item.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $OccurrenceId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringTimeTransitionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringTimeTransitionType.php
new file mode 100644
index 00000000..88aaacd9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RecurringTimeTransitionType.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RecurringTimeTransitionType;
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for recurring time transitions.
+ *
+ * @package php-ews\Type
+ */
+abstract class RecurringTimeTransitionType extends TransitionType
+{
+ /**
+ * The month in which the time transition occurs.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $Month;
+
+ /**
+ * The duration offset from Coordinated Universal Time (UTC) for the time
+ * transition.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $TimeOffset;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReferenceItemResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReferenceItemResponseType.php
new file mode 100644
index 00000000..f2f8a981
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReferenceItemResponseType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ReferenceItemResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for responding to items with a reference.
+ *
+ * ObjectName property is prohibited.
+ *
+ * @package php-ews\Type
+ */
+class ReferenceItemResponseType extends ResponseObjectType
+{
+ /**
+ * {@inheritdoc}
+ *
+ * @prohibited
+ */
+ public $ObjectName;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RegeneratingPatternBaseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RegeneratingPatternBaseType.php
new file mode 100644
index 00000000..49675aec
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RegeneratingPatternBaseType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RegeneratingPatternBaseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for regenerating patterns.
+ *
+ * @package php-ews\Type
+ */
+abstract class RegeneratingPatternBaseType extends IntervalRecurrencePatternBaseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RelativeMonthlyRecurrencePatternType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RelativeMonthlyRecurrencePatternType.php
new file mode 100644
index 00000000..d119092a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RelativeMonthlyRecurrencePatternType.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RelativeMonthlyRecurrencePatternType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes a relative monthly recurrence pattern.
+ *
+ * @package php-ews\Type
+ */
+class RelativeMonthlyRecurrencePatternType extends
+ IntervalRecurrencePatternBaseType
+{
+ /**
+ * Describes which week is used in a relative monthly recurrence pattern.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DayOfWeekIndexType
+ */
+ public $DayOfWeekIndex;
+
+ /**
+ * Describes which days of the week are in the relative monthly recurrence
+ * pattern.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DayOfWeekType
+ */
+ public $DaysOfWeek;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RelativeYearlyRecurrencePatternType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RelativeYearlyRecurrencePatternType.php
new file mode 100644
index 00000000..634ab9ec
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RelativeYearlyRecurrencePatternType.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RelativeYearlyRecurrencePatternType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes a relative yearly recurrence pattern.
+ *
+ * @package php-ews\Type
+ */
+class RelativeYearlyRecurrencePatternType extends RecurrencePatternBaseType
+{
+ /**
+ * Describes which week in a month is used in a relative yearly recurrence
+ * pattern.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DayOfWeekIndexType
+ */
+ public $DayOfWeekIndex;
+
+ /**
+ * Describes the days of the week that are used in item recurrence patterns.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DayOfWeekType
+ */
+ public $DaysOfWeek;
+
+ /**
+ * Describes the month when a yearly recurring item occurs.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\MonthNamesType
+ */
+ public $Month;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReminderItemActionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReminderItemActionType.php
new file mode 100644
index 00000000..f52dd527
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReminderItemActionType.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ReminderItemActionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the action for a reminder item.
+ *
+ * @package php-ews\Type
+ */
+class ReminderItemActionType extends Type
+{
+ /**
+ * Specifies the action to take on the reminder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ReminderActionType
+ */
+ public $ActionType;
+
+ /**
+ * Contains the unique identifier and change key of an item in the Exchange
+ * store.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * Specifies a new time for a reminder.
+ *
+ * This is used when the ActionType element is set to Snooze, in order to
+ * delay the reminder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $NewReminderTime;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReminderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReminderType.php
new file mode 100644
index 00000000..b8492502
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReminderType.php
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ReminderType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a reminder for a task or a calendar item.
+ *
+ * @package php-ews\Type
+ */
+class ReminderType extends Type
+{
+ /**
+ * The end date of the item the reminder is for.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $EndDate;
+
+ /**
+ * The unique identifier of the reminder.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * The location for the item the reminder is for.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Location;
+
+ /**
+ * The unique identifier of the recurring master item for the reminder.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $RecurringMasterItemId;
+
+ /**
+ * Specified whether the reminder is for a calendar item or a task.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ReminderGroup
+ */
+ public $ReminderGroup;
+
+ /**
+ * The time for the reminder to occur.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $ReminderTime;
+
+ /**
+ * The start date of the item the reminder is for.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $StartDate;
+
+ /**
+ * The subject of the item the reminder is for.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Subject;
+
+ /**
+ * The unique identifier of the calendar item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $UID;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RemoveItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RemoveItemType.php
new file mode 100644
index 00000000..28d25295
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RemoveItemType.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RemoveItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a response object that is used to remove a meeting item when a
+ * MeetingCancellation message is received.
+ *
+ * @package php-ews\Type
+ */
+class RemoveItemType extends ResponseObjectType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyAllToItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyAllToItemType.php
new file mode 100644
index 00000000..f9183caa
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyAllToItemType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ReplyAllToItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a reply to the sender and all identified recipients of an item in
+ * the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class ReplyAllToItemType extends SmartResponseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyBody.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyBody.php
new file mode 100644
index 00000000..68ac62f4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyBody.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ReplyBody.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the out of office (OOF) response that is sent to addresses outside
+ * the recipient's domain or trusted domains.
+ *
+ * @package php-ews\Type
+ */
+class ReplyBody extends Type
+{
+ /**
+ * Specifies the language used in the ExternalReply message.
+ *
+ * The possible values for this attribute are defined by IETF RFC 3066.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $lang;
+
+ /**
+ * Contains the OOF response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Message;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyToItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyToItemType.php
new file mode 100644
index 00000000..3c05cfda
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ReplyToItemType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ReplyToItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a reply to the sender of an item in the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class ReplyToItemType extends SmartResponseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RequestAttachmentIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RequestAttachmentIdType.php
new file mode 100644
index 00000000..90089569
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RequestAttachmentIdType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RequestAttachmentIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a single attachment.
+ *
+ * @package php-ews\Type
+ */
+class RequestAttachmentIdType extends BaseItemIdType
+{
+ /**
+ * Specifies the attachment identifier.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Id;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RequestServerVersion.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RequestServerVersion.php
new file mode 100644
index 00000000..d327faa5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RequestServerVersion.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RequestServerVersion.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the Microsoft Exchange Server version of a request.
+ *
+ * @package php-ews\Type
+ */
+class RequestServerVersion extends Type
+{
+ /**
+ * Identifies the Exchange Server version used in the request.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ExchangeVersionType
+ */
+ public $Version;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResolutionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResolutionType.php
new file mode 100644
index 00000000..0f295c28
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResolutionType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ResolutionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single resolved entity.
+ *
+ * @package php-ews\Type
+ */
+class ResolutionType extends Type
+{
+ /**
+ * Represents an Exchange contact item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactItemType
+ */
+ public $Contact;
+
+ /**
+ * Identifies a mail-enabled Active Directory directory service object.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Mailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResponseObjectCoreType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResponseObjectCoreType.php
new file mode 100644
index 00000000..5dc8fbe6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResponseObjectCoreType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ResponseObjectCoreType;
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Internal abstract base type for reply objects.
+ *
+ * @package php-ews\Type
+ */
+abstract class ResponseObjectCoreType extends MessageType
+{
+ /**
+ * 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.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ObjectName;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResponseObjectType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResponseObjectType.php
new file mode 100644
index 00000000..c9e46f0c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ResponseObjectType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ResponseObjectType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Base type for reply objects.
+ *
+ * @package php-ews\Type
+ */
+abstract class ResponseObjectType extends ResponseObjectCoreType
+{
+ /**
+ * Item identifier that is related to a response object.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $ReferenceItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RestrictionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RestrictionType.php
new file mode 100644
index 00000000..5cbb70cd
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RestrictionType.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RestrictionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the restriction or query that is used to filter items or folders
+ * in FindItem/FindFolder and search folder operations.
+ *
+ * @package php-ews\Type
+ */
+class RestrictionType extends MultipleOperandBooleanExpressionType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RetentionPolicyTagType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RetentionPolicyTagType.php
new file mode 100644
index 00000000..c6a4dbeb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RetentionPolicyTagType.php
@@ -0,0 +1,101 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RetentionPolicyTagType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the retention policy for a mailbox item.
+ *
+ * @package php-ews\Type
+ */
+class RetentionPolicyTagType extends Type
+{
+ /**
+ * Specifies the descriptive text for the retention policy.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Description;
+
+ /**
+ * Defines the display name of the retention policy tag.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Indicates whether the mailbox is an archive mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsArchive;
+
+ /**
+ * Indicates whether the retention policy is visible to users.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsVisible;
+
+ /**
+ * Indicates whether the user opted in to the retention policy.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $OptedInto;
+
+ /**
+ * Specifies the action performed on items with the retention tag.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\RetentionActionType
+ */
+ public $RetentionAction;
+
+ /**
+ * Specifies the retention tag identifier.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $RetentionId;
+
+ /**
+ * Specifies the number of days that the retention policy is in effect.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $RetentionPeriod;
+
+ /**
+ * Specifies the type of folder used in a retention policy.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ElcFolderType
+ */
+ public $Type;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RoomType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RoomType.php
new file mode 100644
index 00000000..efc5985e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RoomType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RoomType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a meeting room.
+ *
+ * @package php-ews\Type
+ */
+class RoomType extends DirectoryEntryType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RootItemIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RootItemIdType.php
new file mode 100644
index 00000000..4ecb27d3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RootItemIdType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RootItemIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies the root item of a deleted item.
+ *
+ * @package php-ews\Type
+ */
+class RootItemIdType extends BaseItemIdType
+{
+ /**
+ * Identifies the new change key of the root item of a deleted item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $RootItemChangeKey;
+
+ /**
+ * Identifies the root item of a deleted item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $RootItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleActionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleActionsType.php
new file mode 100644
index 00000000..f3a0f218
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleActionsType.php
@@ -0,0 +1,140 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RuleActionsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the set of actions that are available to be taken on a message
+ * when conditions are fulfilled.
+ *
+ * @package php-ews\Type
+ */
+class RuleActionsType extends Type
+{
+ /**
+ * Represents the categories that are stamped on e-mail messages.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $AssignCategories;
+
+ /**
+ * Identifies the ID of the folder that e-mail items will be copied to.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $CopyToFolder;
+
+ /**
+ * Indicates whether messages are to be moved to the Deleted Items folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $Delete;
+
+ /**
+ * Indicates the e-mail addresses to which messages are to be forwarded as
+ * attachments.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressesType
+ */
+ public $ForwardAsAttachmentToRecipients;
+
+ /**
+ * Indicates the e-mail addresses to which messages are to be forwarded.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressesType
+ */
+ public $ForwardToRecipients;
+
+ /**
+ * Specifies the importance that is to be stamped on messages.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ImportanceChoicesType
+ */
+ public $MarkImportance;
+
+ /**
+ * Indicates whether messages are to be marked as read.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $MarkAsRead;
+
+ /**
+ * Identifies the ID of the folder that e-mail items will be moved to.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TargetFolderIdType
+ */
+ public $MoveToFolder;
+
+ /**
+ * Indicates whether messages are to be permanently deleted and not saved to
+ * the Deleted Items folder.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $PermanentDelete;
+
+ /**
+ * Indicates the e-mail addresses to which messages are to be redirected.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressesType
+ */
+ public $RedirectToRecipients;
+
+ /**
+ * Indicates the mobile phone numbers to which a Short Message Service (SMS)
+ * alert is to be sent.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressesType
+ */
+ public $SendSMSAlertToRecipients;
+
+ /**
+ * Indicates the ID of the template message that is to be sent as a reply to
+ * incoming messages.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ServerReplyWithMessage;
+
+ /**
+ * Indicates whether subsequent rules are to be evaluated.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $StopProcessingRules;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleOperationErrorType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleOperationErrorType.php
new file mode 100644
index 00000000..9e86642a
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleOperationErrorType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RuleOperationErrorType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a rule operation error.
+ *
+ * @package php-ews\Type
+ */
+class RuleOperationErrorType extends Type
+{
+ /**
+ * Indicates the index of the operation in the request that caused the rule
+ * operation error.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $OperationIndex;
+
+ /**
+ * Represents an array of rule validation errors on each rule field that has
+ * an error.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRuleValidationErrorsType
+ */
+ public $ValidationErrors;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleOperationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleOperationType.php
new file mode 100644
index 00000000..c4f70a72
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleOperationType.php
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RuleOperationType;
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+abstract class RuleOperationType extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicateDateRangeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicateDateRangeType.php
new file mode 100644
index 00000000..c4205b3c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicateDateRangeType.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RulePredicateDateRangeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Specifies the date range within which incoming messages have to have been
+ * received in order for the condition or exception to apply.
+ *
+ * @package php-ews\Type
+ */
+class RulePredicateDateRangeType extends Type
+{
+ /**
+ * Specifies the rule time period and indicates that the rule condition is
+ * met before this value.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $EndDateTime;
+
+ /**
+ * Specifies the rule time period and indicates that the rule condition is
+ * met after this value.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $StartDateTime;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicateSizeRangeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicateSizeRangeType.php
new file mode 100644
index 00000000..f792c0e0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicateSizeRangeType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RulePredicateSizeRangeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Specifies the minimum and maximum sizes that incoming messages must be in
+ * order for the condition or exception to apply.
+ *
+ * @package php-ews\Type
+ */
+class RulePredicateSizeRangeType extends Type
+{
+ /**
+ * Specifies the maximum size that a message must be in order for the
+ * condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $MaximumSize;
+
+ /**
+ * Specifies the minimum size that a message must be in order for the
+ * condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $MinimumSize;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicatesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicatesType.php
new file mode 100644
index 00000000..cbb34bc3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RulePredicatesType.php
@@ -0,0 +1,369 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RulePredicatesType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies the conditions that, when fulfilled, will trigger the rule actions
+ * for a rule.
+ *
+ * @package php-ews\Type
+ */
+class RulePredicatesType extends Type
+{
+ /**
+ * Contains the categories that must be applied to an incoming message in
+ * order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Categories;
+
+ /**
+ * Indicates the strings that must appear in the body of incoming messages
+ * in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $ContainsBodyStrings;
+
+ /**
+ * Indicates the strings that must appear in the headers of incoming
+ * messages in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $ContainsHeaderStrings;
+
+ /**
+ * Indicates the strings that must appear in either the ToRecipients or
+ * CcRecipients properties of incoming messages in order for the condition
+ * or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $ContainsRecipientStrings;
+
+ /**
+ * Indicates the strings that must appear in the From property of incoming
+ * messages in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $ContainsSenderStrings;
+
+ /**
+ * Indicates the strings that must appear in either the body or the subject
+ * of incoming messages in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $ContainsSubjectOrBodyStrings;
+
+ /**
+ * Indicates the strings that must appear in the subject of incoming
+ * messages in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $ContainsSubjectStrings;
+
+ /**
+ * Specifies the flag for action value that must appear on incoming messages
+ * in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\FlaggedForActionType
+ */
+ public $FlaggedForAction;
+
+ /**
+ * Indicates the e-mail addresses from which incoming messages must be sent
+ * in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressesType
+ */
+ public $FromAddresses;
+
+ /**
+ * Represents the e-mail account names from which incoming messages have to
+ * have been aggregated in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $FromConnectedAccounts;
+
+ /**
+ * Indicates whether incoming messages have to have attachments in order for
+ * the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $HasAttachments;
+
+ /**
+ * Specifies the importance that is stamped on incoming messages in order
+ * for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ImportanceChoicesType
+ */
+ public $Importance;
+
+ /**
+ * Indicates whether incoming messages must be approval requests in order
+ * for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsApprovalRequest;
+
+ /**
+ * Indicates whether incoming messages must be automatic forwards in order
+ * for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsAutomaticForward;
+
+ /**
+ * Indicates whether incoming messages must be automatic replies in order
+ * for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsAutomaticReply;
+
+ /**
+ * Indicates whether incoming messages must be S/MIME encrypted in order for
+ * the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsEncrypted;
+
+ /**
+ * Indicates whether incoming messages must be meeting requests in order for
+ * the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsMeetingRequest;
+
+ /**
+ * Indicates whether incoming messages must be meeting responses in order
+ * for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsMeetingResponse;
+
+ /**
+ * Indicates whether incoming messages must be non-delivery reports (NDRs)
+ * in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsNDR;
+
+ /**
+ * Indicates whether incoming messages must be permission controlled (RMS
+ * protected) in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsPermissionControlled;
+
+ /**
+ * Indicates whether incoming messages must be read receipts in order for
+ * the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsReadReceipt;
+
+ /**
+ * Indicates whether incoming messages must be S/MIME signed in order for\
+ * the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsSigned;
+
+ /**
+ * Indicates whether incoming messages must be voice mail messages in order
+ * for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsVoicemail;
+
+ /**
+ * Represents the item classes that must be stamped on incoming messages in
+ * order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $ItemClasses;
+
+ /**
+ * Represents the message classifications that must be stamped on incoming
+ * messages in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $MessageClassifications;
+
+ /**
+ * Indicates whether the owner of the mailbox must not be in the
+ * ToRecipients property of the incoming messages in order for the condition
+ * or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $NotSentToMe;
+
+ /**
+ * Indicates the sensitivity that must be stamped on incoming messages in
+ * order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SensitivityChoicesType
+ */
+ public $Sensitivity;
+
+ /**
+ * Indicates whether the owner of the mailbox has to be in the CcRecipients
+ * property of incoming messages in order for the condition or exception to
+ * apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $SentCcMe;
+
+ /**
+ * Indicates whether the owner of the mailbox has to be the only one in the
+ * ToRecipients property of incoming messages in order for the condition or
+ * exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $SentOnlyToMe;
+
+ /**
+ * Indicates the e-mail addresses that incoming messages have to have been
+ * sent to in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfEmailAddressesType
+ */
+ public $SentToAddresses;
+
+ /**
+ * Indicates whether the owner of the mailbox has to be in the ToRecipients
+ * property of incoming messages in order for the condition or exception to
+ * apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $SentToMe;
+
+ /**
+ * Indicates whether the owner of the mailbox has to be in either a
+ * ToRecipients or CcRecipients property of incoming messages in order for
+ * the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $SentToOrCcMe;
+
+ /**
+ * Specifies the date range within which incoming messages have to have been
+ * received in order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RulePredicateDateRangeType
+ */
+ public $WithinDateRange;
+
+ /**
+ * Specifies the minimum and maximum sizes that incoming messages must be in
+ * order for the condition or exception to apply.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RulePredicateSizeRangeType
+ */
+ public $WithinSizeRange;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleType.php
new file mode 100644
index 00000000..70593425
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleType.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RuleType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single rule in a user's mailbox.
+ *
+ * @package php-ews\Type
+ */
+class RuleType extends Type
+{
+ /**
+ * Represents the actions to be taken on a message when the conditions are
+ * fulfilled.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RuleActionsType
+ */
+ public $Actions;
+
+ /**
+ * Identifies the conditions that, when fulfilled, will trigger the rule
+ * actions for a rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RulePredicatesType
+ */
+ public $Conditions;
+
+ /**
+ * Contains the display name of a rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Identifies the exceptions that represent all the available rule exception
+ * conditions for the inbox rule.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RulePredicatesType
+ */
+ public $Exceptions;
+
+ /**
+ * Indicates whether the rule is enabled.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsEnabled;
+
+ /**
+ * Indicates whether the rule is in an error condition.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsInError;
+
+ /**
+ * Indicates whether the rule cannot be modified with the managed code APIs.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IsNotSupported;
+
+ /**
+ * Indicates the order in which a rule is to be run.
+ *
+ * @since Exchange 2010
+ *
+ * @var integer
+ */
+ public $Priority;
+
+ /**
+ * Specifies the rule identifier.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $RuleId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleValidationErrorType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleValidationErrorType.php
new file mode 100644
index 00000000..ae8f625e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/RuleValidationErrorType.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\RuleValidationErrorType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single validation error on a particular rule property value,
+ * predicate property value, or action property value.
+ *
+ * @package php-ews\Type
+ */
+class RuleValidationErrorType extends Type
+{
+ /**
+ * Represents a rule validation error code that describes what failed
+ * validation for each rule predicate or action.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\RuleValidationErrorCodeType
+ */
+ public $ErrorCode;
+
+ /**
+ * Represents the reason for the validation error.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $ErrorMessage;
+
+ /**
+ * Specifies the URI to the rule field that caused the validation error.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\RuleFieldURIType
+ */
+ public $FieldUri;
+
+ /**
+ * Represents the value of the field that caused the validation error.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $FieldValue;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchExpressionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchExpressionType.php
new file mode 100644
index 00000000..6e2b31ea
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchExpressionType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SearchExpressionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the substituted element within a restriction.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Determine which classes need to extend this.
+ */
+abstract class SearchExpressionType extends Type
+{
+ /**
+ * Identifies MAPI properties.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToExtendedFieldType
+ */
+ public $ExtendedFieldURI;
+
+ /**
+ * Identifies frequently referenced properties by URI.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToUnindexedFieldType
+ */
+ public $FieldURI;
+
+ /**
+ * Identifies individual members of a dictionary.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PathToIndexedFieldType
+ */
+ public $IndexedFieldURI;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchFolderType.php
new file mode 100644
index 00000000..4404f067
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchFolderType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SearchFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a search folder that is contained in a mailbox.
+ *
+ * @package php-ews\Type
+ */
+class SearchFolderType extends FolderType
+{
+ /**
+ * Contains the parameters that define a search folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SearchParametersType
+ */
+ public $SearchParameters;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchMailboxesResultType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchMailboxesResultType.php
new file mode 100644
index 00000000..4de63da8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchMailboxesResultType.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SearchMailboxesResultType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the result of a SearchMailboxes request.
+ *
+ * @package php-ews\Type
+ */
+class SearchMailboxesResultType extends Type
+{
+ /**
+ * Contains a list of mailboxes and associated queries for discovery search.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfMailboxQueriesType
+ */
+ public $SearchQueries;
+
+ /**
+ * Contains the type of search to perform.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SearchResultType
+ */
+ public $ResultType;
+
+ /**
+ * Specifies the total number of items in a search result.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $ItemCount;
+
+ /**
+ * Specifies the total size of one or more mailbox items.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $Size;
+
+ /**
+ * Specifies the number of pages returned in a search result pagination.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $PageItemCount;
+
+ /**
+ * Specifies the number of items to return in a search result pagination.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $PageItemSize;
+
+ /**
+ * Specifies a list of one or more KeywordStat elements.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfKeywordStatisticsSearchResultsType
+ */
+ public $KeywordStats;
+
+ /**
+ * Specifies a list of items available for preview.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfSearchPreviewItemsType
+ */
+ public $Items;
+
+ /**
+ *
+ *
+ * @since Exchange 2013
+ *
+ * @var
+ */
+ public $FailedMailboxes;
+
+ /**
+ *
+ *
+ * @since Exchange 2013
+ *
+ * @var
+ */
+ public $Refiners;
+
+ /**
+ *
+ *
+ * @since Exchange 2013
+ *
+ * @var
+ */
+ public $MailboxStats;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchParametersType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchParametersType.php
new file mode 100644
index 00000000..b0493321
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchParametersType.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SearchParametersType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the parameters that define a search folder.
+ *
+ * @package php-ews\Type
+ */
+class SearchParametersType extends Type
+{
+ /**
+ * Represents the collection of folders that will be mined to determine the
+ * contents of a search folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $BaseFolderIds;
+
+ /**
+ * Represents the restriction or query that is used to filter items or
+ * folders in FindItem/FindFolder and search folder operations.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RestrictionType
+ */
+ public $Restriction;
+
+ /**
+ * Describes how a search folder traverses the folder hierarchy.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SearchFolderTraversalType
+ */
+ public $Traversal;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchPreviewItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchPreviewItemType.php
new file mode 100644
index 00000000..4c0033d9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchPreviewItemType.php
@@ -0,0 +1,221 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SearchPreviewItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines an item preview for a discovery search.
+ *
+ * @package php-ews\Type
+ */
+class SearchPreviewItemType extends Type
+{
+ /**
+ * Represents a collection of recipients to receive a blind carbon copy
+ * (Bcc) of an e-mail message.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $BccRecipients;
+
+ /**
+ * Represents a collection of recipients that will receive a copy of the
+ * message.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $CcRecipients;
+
+ /**
+ * Specifies the time at which the item was created.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $CreatedTime;
+
+ /**
+ * Specifies an array of additional properties.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfExtendedPropertyType
+ */
+ public $ExtendedProperties;
+
+ /**
+ * Specifies whether the item has attachments.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $HasAttachment;
+
+ /**
+ * Specifies the identifier of the item.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $Id;
+
+ /**
+ * Describes the importance of an item or the aggregated importance of all
+ * items in a conversation in the current folder.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ImportanceChoicesType
+ */
+ public $Importance;
+
+ /**
+ * Represents the message class of an item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ItemClassType
+ */
+ public $ItemClass;
+
+ /**
+ * Contains the mailbox identifier and the user’s primary Simple Mail
+ * Transfer Protocol (SMTP) address.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\PreviewItemMailboxType
+ */
+ public $Mailbox;
+
+ /**
+ * Specifies the link to preview an item in Microsoft Outlook Web App.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $OwaLink;
+
+ /**
+ * Specifies the identifier of the parent item in a search preview.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ParentId;
+
+ /**
+ * Specifies the first 256 characters of an item for display.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Preview;
+
+ /**
+ * Indicates whether a client can read a folder or item.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $Read;
+
+ /**
+ * Specifies the time at which an item was received.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $ReceivedTime;
+
+ /**
+ * Specifies the e-mail address of the person who sent an item.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Sender;
+
+ /**
+ * Specifies the time at which the item was sent.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $SentTime;
+
+ /**
+ * Specifies the total size of one or more mailbox items.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $Size;
+
+ /**
+ * Specifies a value used for sorting.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $SortValue;
+
+ /**
+ * Represents the subject property of Exchange store items.
+ *
+ * The subject is limited to 255 characters.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Subject;
+
+ /**
+ * Specifies a list of recipients to whom the item was sent.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfSmtpAddressType
+ */
+ public $ToRecipients;
+
+ /**
+ * Specifies a unique hash value used for de-duplication.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $UniqueHash;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchableMailboxType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchableMailboxType.php
new file mode 100644
index 00000000..2f095732
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SearchableMailboxType.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SearchableMailboxType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a mailbox that may be searched.
+ *
+ * @package php-ews\Type
+ */
+class SearchableMailboxType extends Type
+{
+ /**
+ * Defines the display name of the mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Contains the external email address of the mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ExternalEmailAddress;
+
+ /**
+ * Specifies the globally unique identifier of the mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Guid;
+
+ /**
+ * Indicates whether the mailbox is external to the organization.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsExternalMailbox;
+
+ /**
+ * Specifies a Boolean value that indicates whether the entity is a
+ * distribution group or a mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsMembershipGroup;
+
+ /**
+ * Specifies the primary Simple Mail Transfer Protocol (SMTP) address of the
+ * mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $PrimarySmtpAddress;
+
+ /**
+ * Specifies the reference identifier for the mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $ReferenceId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SeekToConditionPageViewType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SeekToConditionPageViewType.php
new file mode 100644
index 00000000..6424e609
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SeekToConditionPageViewType.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SeekToConditionPageViewType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the condition that is used to identify the end of a search, the
+ * starting index of a search, the maximum entries to return, and the search
+ * directions for a FindItem or FindConversation search.
+ *
+ * @package php-ews\Type
+ */
+class SeekToConditionPageViewType extends Type
+{
+ /**
+ * The text value of the BasePoint attribute is the base point from where
+ * the search will start.
+ *
+ * A text value of Beginning indicates that the search will start at the
+ * beginning of the result set. A text value of End indicates that the
+ * search will start at the end of the result set.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\IndexBasePointType
+ */
+ public $BasePoint;
+
+ /**
+ * The maximum number of items that can be returned in a result set.
+ *
+ * @since Exchange 2013
+ *
+ * @var integer
+ */
+ public $MaxEntriesReturned;
+
+ /**
+ * The condition that is used to identify the end of a search for a FindItem
+ * or a FindConversation operation.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\RestrictionType
+ */
+ public $Condition;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SendNotificationResultType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SendNotificationResultType.php
new file mode 100644
index 00000000..daf4aea1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SendNotificationResultType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SendNotificationResultType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the response of a client application to a push notification.
+ *
+ * @package php-ews\Type
+ */
+class SendNotificationResultType extends Type
+{
+ /**
+ * Describes the status of a push subscription.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SubscriptionStatusType
+ */
+ public $SubscriptionStatus;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializableTimeZone.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializableTimeZone.php
new file mode 100644
index 00000000..08937510
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializableTimeZone.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SerializableTimeZone.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a time zone.
+ *
+ * @package php-ews\Type
+ */
+class SerializableTimeZone extends Type
+{
+ /**
+ * Represents the general offset from Coordinated Universal Time (UTC).
+ *
+ * This value is in minutes.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Bias;
+
+ /**
+ * Represents an offset from the time relative to UTC represented by the
+ * Bias (UTC) element in regions where daylight saving time is observed.
+ *
+ * This element also contains information about when the transition to
+ * daylight saving time from standard time occurs.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SerializableTimeZoneTime
+ */
+ public $DaylightTime;
+
+ /**
+ * Represents an offset from the time relative to UTC represented by the
+ * Bias (UTC) element.
+ *
+ * This element also contains information about the transition to standard
+ * time from daylight saving time in regions where daylight saving time is
+ * observed.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SerializableTimeZoneTime
+ */
+ public $StandardTime;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializableTimeZoneTime.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializableTimeZoneTime.php
new file mode 100644
index 00000000..a9b0f849
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializableTimeZoneTime.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SerializableTimeZoneTime.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an offset from the time relative to Coordinated Universal Time
+ * (UTC) that is represented by the Bias (UTC) element in regions where daylight
+ * saving time is observed.
+ *
+ * This class also contains information about when the transition to daylight
+ * saving time from standard time occurs.
+ *
+ * @package php-ews\Type
+ */
+class SerializableTimeZoneTime extends Type
+{
+ /**
+ * Represents the offset from the UTC offset that is identified by the Bias
+ * (UTC) element for standard time and daylight saving time.
+ *
+ * This value is in minutes.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Bias;
+
+ /**
+ * Represents the day of the week when the transition to and from standard
+ * time and daylight saving time occurs.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DayOfWeekType
+ */
+ public $DayOfWeek;
+
+ /**
+ * Represents the nth occurrence of the day that is specified in the
+ * DayOfWeek element that represents the date of transition from and to
+ * standard time and daylight saving time.
+ *
+ * The maximum value for this element can be either 4 or 5, depending on the
+ * month and year.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $DayOrder;
+
+ /**
+ * Represents the transition month of the year to and from standard time and
+ * daylight saving time.
+ *
+ * The value represents the ordinal rank of the month by occurrence and must
+ * be a number between 1 and 12
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Month;
+
+ /**
+ * Represents the transition time of day to and from standard time and
+ * daylight saving time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Create a Time class that extends DateTime.
+ */
+ public $Time;
+
+ /**
+ * Used to define a time zone that changes depending on the year.
+ *
+ * The year format is YYYY.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ public $Year;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializedSecurityContextType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializedSecurityContextType.php
new file mode 100644
index 00000000..24e72fb1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SerializedSecurityContextType.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SerializedSecurityContextType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines token serialization in server-to-server authentication.
+ *
+ * @package php-ews\Type
+ */
+class SerializedSecurityContextType extends Type
+{
+ /**
+ * Represents a collection of Active Directory directory service group
+ * object security identifiers.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfGroupIdentifiersType
+ */
+ public $GroupSids;
+
+ /**
+ * Represents the primary Simple Mail Transfer Protocol (SMTP) address of an
+ * account to be used for server-to-server authorization.
+ *
+ * @var string
+ */
+ public $PrimarySmtpAddress;
+
+ /**
+ * Represents the group security identifier and attributes for a restricted
+ * group.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfRestrictedGroupIdentifiersType
+ */
+ public $RestrictedGroupSids;
+
+ /**
+ * Represents the security descriptor definition language (SDDL) form of the
+ * user security identifier in a serialized security context SOAP header.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $UserSid;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ServerVersionInfo.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ServerVersionInfo.php
new file mode 100644
index 00000000..1536c2e9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ServerVersionInfo.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ServerVersionInfo.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the Microsoft Exchange Server version number.
+ *
+ * @package php-ews\Type
+ */
+class ServerVersionInfo extends Type
+{
+ /**
+ * Describes the major build number.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $MajorBuildNumber;
+
+ /**
+ * Describes the major version number.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $MajorVersion;
+
+ /**
+ * Describes the minor build number.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $MinorBuildNumber;
+
+ /**
+ * Describes the minor version number.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $MinorVersion;
+
+ /**
+ * Describes the Exchange Web Services (EWS) schema version.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Version;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ServiceConfiguration.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ServiceConfiguration.php
new file mode 100644
index 00000000..deed4189
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/ServiceConfiguration.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\ServiceConfiguration.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * This "base class" is available for ErrorCode / ErrorMessage elements if those
+ * become necessary in the future.
+ *
+ * @package php-ews\Type
+ */
+class ServiceConfiguration extends Type
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetFolderFieldType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetFolderFieldType.php
new file mode 100644
index 00000000..27eec53c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetFolderFieldType.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SetFolderFieldType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an update that sets the value for a single property on a folder in
+ * an UpdateFolder operation.
+ *
+ * @package php-ews\Type
+ */
+class SetFolderFieldType extends FolderChangeDescriptionType
+{
+ /**
+ * Represents a folder that primarily contains calendar items.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarFolderType
+ */
+ public $CalendarFolder;
+
+ /**
+ * Represents a Contacts folder in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactsFolderType
+ */
+ public $ContactsFolder;
+
+ /**
+ * Identifies a folder to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderType
+ */
+ public $Folder;
+
+ /**
+ * Represents a search folder that is contained in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SearchFolderType
+ */
+ public $SearchFolder;
+
+ /**
+ * Represents a Tasks folder that is contained in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TasksFolderType
+ */
+ public $TasksFolder;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetItemFieldType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetItemFieldType.php
new file mode 100644
index 00000000..bad83e2d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetItemFieldType.php
@@ -0,0 +1,114 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SetItemFieldType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an update to a single property of an item in an UpdateItem
+ * operation.
+ *
+ * @package php-ews\Type
+ */
+class SetItemFieldType extends ItemChangeDescriptionType
+{
+ /**
+ * Represents an Exchange calendar item to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarItemType
+ */
+ public $CalendarItem;
+
+ /**
+ * Represents an Exchange contact item to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactItemType
+ */
+ public $Contact;
+
+ /**
+ * Represents a distribution list to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DistributionListType
+ */
+ public $DistributionList;
+
+ /**
+ * Represents an item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemType
+ */
+ public $Item;
+
+ /**
+ * Represents a meeting cancellation to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingCancellationMessageType
+ */
+ public $MeetingCancellation;
+
+ /**
+ * Represents a meeting message to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingMessageType
+ */
+ public $MeetingMessage;
+
+ /**
+ * Represents a meeting request to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingRequestMessageType
+ */
+ public $MeetingRequest;
+
+ /**
+ * Represents a meeting response to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingResponseMessageType
+ */
+ public $MeetingResponse;
+
+ /**
+ * Represents an Exchange e-mail message to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MessageType
+ */
+ public $Message;
+
+ /**
+ * Represents a post to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PostItemType
+ */
+ public $PostItem;
+
+ /**
+ * Represents a task to update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TaskType
+ */
+ public $Task;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetRuleOperationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetRuleOperationType.php
new file mode 100644
index 00000000..2c67a126
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SetRuleOperationType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SetRuleOperationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an operation to update an existing rule.
+ *
+ * @package php-ews\Type
+ */
+class SetRuleOperationType extends RuleOperationType
+{
+ /**
+ * Represents a rule in a user's mailbox.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\RuleType
+ */
+ public $Rule;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SidAndAttributesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SidAndAttributesType.php
new file mode 100644
index 00000000..b1326aa8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SidAndAttributesType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SidAndAttributesType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single security identifier and attribute for an Active Directory
+ * directory service object group of which the account is a member.
+ *
+ * @package php-ews\Type
+ */
+class SidAndAttributesType extends Type
+{
+ /**
+ * Contains group attributes.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Attributes;
+
+ /**
+ * Represents the security descriptor definition language (SDDL) form of a
+ * security identifier (SID) that represents the group.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $SecurityIdentifier;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SingleRecipientType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SingleRecipientType.php
new file mode 100644
index 00000000..5249f96c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SingleRecipientType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SingleRecipientType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies the delegate in a delegate access scenario.
+ *
+ * @package php-ews\Type
+ */
+class SingleRecipientType extends Type
+{
+ /**
+ * Identifies a mail-enabled Active Directory directory service object.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\EmailAddressType
+ */
+ public $Mailbox;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmartResponseBaseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmartResponseBaseType.php
new file mode 100644
index 00000000..8ad124f0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmartResponseBaseType.php
@@ -0,0 +1,122 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SmartResponseBaseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for smart responses.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Extend ResponseObjectType?
+ * @link https://msdn.microsoft.com/en-us/library/office/exchangewebservices.smartresponsebasetype(v=exchg.150).aspx
+ */
+class SmartResponseBaseType extends Type
+{
+ /**
+ * Represents a collection of recipients to receive a blind carbon copy
+ * (Bcc) of an e-mail.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $BccRecipients;
+
+ /**
+ * Represents the actual body content of a message.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\BodyType
+ */
+ public $Body;
+
+ /**
+ * Represents a collection of recipients that will receive a copy of the
+ * message.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $CcRecipients;
+
+ /**
+ * Represents the address from which the message was sent.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $From;
+
+ /**
+ * Indicates whether the sender of an item requests a delivery receipt.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsDeliveryReceiptRequested;
+
+ /**
+ * Indicates whether the sender of an item requests a read receipt.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsReadReceiptRequested;
+
+ /**
+ * Identifies the delegate in a delegate access scenario.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $ReceivedBy;
+
+ /**
+ * Identifies the principal in a delegate access scenario.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\SingleRecipientType
+ */
+ public $ReceivedRepresenting;
+
+ /**
+ * Identifies the item to which the response object refers.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ReferenceItemId;
+
+ /**
+ * Represents the subject property of Exchange store items.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Subject;
+
+ /**
+ * Contains a set of recipients of an item.
+ *
+ * These are the primary recipients of an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfRecipientsType
+ */
+ public $ToRecipients;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmartResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmartResponseType.php
new file mode 100644
index 00000000..9408b43c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmartResponseType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SmartResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for smart responses that include new body content.
+ *
+ * @package php-ews\Type
+ */
+class SmartResponseType extends SmartResponseBaseType
+{
+ /**
+ * Represents the actual body content of a message.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\BodyType
+ */
+ public $NewBodyContent;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmtpDomain.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmtpDomain.php
new file mode 100644
index 00000000..d9c85157
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmtpDomain.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SmtpDomain.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single SMTP domain.
+ *
+ * @package php-ews\Type
+ */
+class SmtpDomain extends Type
+{
+ /**
+ * Identifies the name of a domain.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Name;
+
+ /**
+ * Indicates whether subdomains of the domain identified by the Name
+ * attribute are considered internal.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $IncludeSubdomains;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmtpDomainList.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmtpDomainList.php
new file mode 100644
index 00000000..fbac6101
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SmtpDomainList.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SmtpDomainList.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a list of internal SMTP domains of the organization.
+ *
+ * @package php-ews\Type
+ */
+class SmtpDomainList extends Type
+{
+ /**
+ * Identifies a single SMTP domain.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\SmtpDomain
+ */
+ public $Domain;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StreamingSubscriptionRequest.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StreamingSubscriptionRequest.php
new file mode 100644
index 00000000..c42cf597
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StreamingSubscriptionRequest.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\StreamingSubscriptionRequest.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a subscription to a streaming event notification subscription.
+ *
+ * @package php-ews\Type
+ */
+class StreamingSubscriptionRequest extends Type
+{
+ /**
+ * Contains a collection of event notifications that are used to create a
+ * subscription.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfNotificationEventTypesType
+ */
+ public $EventTypes;
+
+ /**
+ * Contains an array of folder identifiers that are used to identify folders
+ * to monitor for event notifications.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfBaseFolderIdsType
+ */
+ public $FolderIds;
+
+ /**
+ * Indicates whether the server will subscribe to all folders in the user's
+ * mailbox.
+ *
+ * A value of true indicates that the server will subscribe.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var boolean
+ */
+ public $SubscribeToAllFolders;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringArrayAttributedValueType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringArrayAttributedValueType.php
new file mode 100644
index 00000000..282695a8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringArrayAttributedValueType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\StringArrayAttributedValueType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines an instance of an array of string data.
+ *
+ * @package php-ews\Type
+ */
+class StringArrayAttributedValueType extends Type
+{
+ /**
+ * Specifies an array of attributions for its associated Value element.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfValueAttributionsType
+ */
+ public $Attributions;
+
+ /**
+ * Contains the value of the extended property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringAttributedValueType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringAttributedValueType.php
new file mode 100644
index 00000000..54d90258
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringAttributedValueType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\StringAttributedValueType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an attribute associated with a persona element.
+ *
+ * @package php-ews\Type
+ */
+class StringAttributedValueType extends Type
+{
+ /**
+ * Specifies an array of attributions for the Value element.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfValueAttributionsType
+ */
+ public $Attributions;
+
+ /**
+ * Contains the value of the property.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringType.php
new file mode 100644
index 00000000..ce58fd91
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/StringType.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\StringType;
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for string types.
+ *
+ * @package php-ews\Type
+ */
+abstract class StringType extends Type
+{
+ /**
+ * Value of the element.
+ *
+ * @var string
+ */
+ public $_;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/Suggestion.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/Suggestion.php
new file mode 100644
index 00000000..dbbaf0df
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/Suggestion.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\Suggestion.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single meeting suggestion.
+ *
+ * @package php-ews\Type
+ */
+class Suggestion extends Type
+{
+ /**
+ * Contains an array of information that describes conflicts between users
+ * and resources and the suggested meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfAttendeeConflictData
+ */
+ public $AttendeeConflictDataArray;
+
+ /**
+ * Represents whether the suggested meeting time occurs during scheduled
+ * work hours.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsWorkTime;
+
+ /**
+ * Represents a suggested meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $MeetingTime;
+
+ /**
+ * Represents the quality of the suggested meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SuggestionQuality
+ */
+ public $SuggestionQuality;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionDayResult.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionDayResult.php
new file mode 100644
index 00000000..b7b4d6f1
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionDayResult.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SuggestionDayResult.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single day that contains suggested meeting times.
+ *
+ * @package php-ews\Type
+ */
+class SuggestionDayResult extends Type
+{
+ /**
+ * Represents the date that contains the suggested meeting times.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $Date;
+
+ /**
+ * Represents the quality of the day for containing quality suggested
+ * meeting times.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SuggestionQuality
+ */
+ public $DayQuality;
+
+ /**
+ * Contains an array of meeting suggestions.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfSuggestion
+ */
+ public $SuggestionArray;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionsResponseType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionsResponseType.php
new file mode 100644
index 00000000..b1884c91
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionsResponseType.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SuggestionsResponseType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents response status information and suggestion data for requested
+ * meeting suggestions.
+ *
+ * @package php-ews\Type
+ */
+class SuggestionsResponseType extends Type
+{
+ /**
+ * Provides descriptive information about the response status.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Response\ResponseMessageType
+ */
+ public $ResponseMessage;
+
+ /**
+ * Contains an array of meeting suggestions organized by date.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfSuggestionDayResult
+ */
+ public $SuggestionDayResultArray;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionsViewOptionsType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionsViewOptionsType.php
new file mode 100644
index 00000000..a1e03275
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuggestionsViewOptionsType.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SuggestionsViewOptionsType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the options for obtaining meeting suggestion information.
+ *
+ * @package php-ews\Type
+ */
+class SuggestionsViewOptionsType extends Type
+{
+ /**
+ * Represents the start time of a meeting that you want to update with the
+ * suggested meeting time results.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $CurrentMeetingTime;
+
+ /**
+ * Identifies the time span that is queried for detailed information about
+ * suggested meeting times.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\Duration
+ */
+ public $DetailedSuggestionsWindow;
+
+ /**
+ * This element is not used.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $GlobalObjectId;
+
+ /**
+ * Specifies the percentage of attendees that must have the time period open
+ * for the time period to qualify as a good suggested meeting time.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $GoodThreshold;
+
+ /**
+ * Specifies the number of suggested results for meeting times outside
+ * regular working hours per day.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $MaximumNonWorkHourResultsByDay;
+
+ /**
+ * Specifies the number of suggested meeting times per day returned in the
+ * response.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $MaximumResultsByDay;
+
+ /**
+ * Specifies the length of the meeting to be suggested.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $MeetingDurationInMinutes;
+
+ /**
+ * Specifies the quality of meeting suggestions to be returned in the
+ * response.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\SuggestionQuality
+ */
+ public $MinimumSuggestionQuality;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuppressReadReceiptType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuppressReadReceiptType.php
new file mode 100644
index 00000000..841c615c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SuppressReadReceiptType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SuppressReadReceiptType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Used to suppress read receipts.
+ *
+ * @package php-ews\Type
+ */
+class SuppressReadReceiptType extends ReferenceItemResponseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyChangesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyChangesType.php
new file mode 100644
index 00000000..06b1e6b0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyChangesType.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SyncFolderHierarchyChangesType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a sequenced array of change types that represent the type of
+ * differences between the folders on the client and the folders on the computer
+ * that is running Microsoft Exchange Server 2007.
+ *
+ * @package php-ews\Type
+ */
+class SyncFolderHierarchyChangesType extends Type
+{
+ /**
+ * Identifies a single folder to create in the local client store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SyncFolderHierarchyCreateOrUpdateType
+ */
+ public $Create;
+
+ /**
+ * Identifies a single folder to delete in the local client store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SyncFolderHierarchyDeleteType
+ */
+ public $Delete;
+
+ /**
+ * Identifies a single folder to update in the local client store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SyncFolderHierarchyCreateOrUpdateType
+ */
+ public $Update;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyCreateOrUpdateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyCreateOrUpdateType.php
new file mode 100644
index 00000000..a46932aa
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyCreateOrUpdateType.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SyncFolderHierarchyCreateOrUpdateType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a single folder to create in the local client store.
+ *
+ * @package php-ews\Type
+ */
+class SyncFolderHierarchyCreateOrUpdateType extends Type
+{
+ /**
+ * Represents a folder that primarily contains calendar items.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarFolderType
+ */
+ public $CalendarFolder;
+
+ /**
+ * Represents a contact folder in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactsFolderType
+ */
+ public $ContactsFolder;
+
+ /**
+ * Defines the folder to create, get, find, synchronize, or update.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderType
+ */
+ public $Folder;
+
+ /**
+ * Represents a search folder contained in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SearchFolderType
+ */
+ public $SearchFolder;
+
+ /**
+ * Represents a task folder contained in a mailbox.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TasksFolderType
+ */
+ public $TasksFolder;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyDeleteType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyDeleteType.php
new file mode 100644
index 00000000..f0a8edd4
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderHierarchyDeleteType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SyncFolderHierarchyDeleteType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a single folder to delete in the local client store.
+ *
+ * @package php-ews\Type
+ */
+class SyncFolderHierarchyDeleteType extends Type
+{
+ /**
+ * Contains the identifier and change key of a folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $FolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsChangesType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsChangesType.php
new file mode 100644
index 00000000..46713e5d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsChangesType.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SyncFolderItemsChangesType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a sequence array of change types that represent the types of
+ * differences between the items on the client and the items on the Exchange
+ * server.
+ *
+ * @package php-ews\Type
+ */
+class SyncFolderItemsChangesType extends Type
+{
+ /**
+ * Identifies a single item to create in the local client store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SyncFolderItemsCreateOrUpdateType[]
+ */
+ public $Create = array();
+
+ /**
+ * Identifies a single item to delete in the local client store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SyncFolderItemsDeleteType[]
+ */
+ public $Delete = array();
+
+ /**
+ * Returned in SyncFolderItems operation responses when an item has been
+ * read.
+ *
+ * This property is read-only.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\SyncFolderItemsReadFlagType[]
+ */
+ public $ReadFlagChange = array();
+
+ /**
+ * Identifies a single item to update in the local client store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SyncFolderItemsCreateOrUpdateType[]
+ */
+ public $Update = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsCreateOrUpdateType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsCreateOrUpdateType.php
new file mode 100644
index 00000000..3220b983
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsCreateOrUpdateType.php
@@ -0,0 +1,115 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SyncFolderItemsCreateOrUpdateType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a single item to create in the local client store.
+ *
+ * @package php-ews\Type
+ */
+class SyncFolderItemsCreateOrUpdateType extends Type
+{
+ /**
+ * Represents an Exchange calendar item to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\CalendarItemType
+ */
+ public $CalendarItem;
+
+ /**
+ * Represents an Exchange contact item to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ContactItemType
+ */
+ public $Contact;
+
+ /**
+ * Represents a distribution list to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DistributionListType
+ */
+ public $DistributionList;
+
+ /**
+ * Represents a generic Exchange item to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemType
+ */
+ public $Item;
+
+ /**
+ * Represents a meeting cancellation to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingCancellationMessageType
+ */
+ public $MeetingCancellation;
+
+ /**
+ * Represents a meeting message to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingMessageType
+ */
+ public $MeetingMessage;
+
+ /**
+ * Represents a meeting request to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingRequestMessageType
+ */
+ public $MeetingRequest;
+
+ /**
+ * Represents a meeting response to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MeetingResponseMessageType
+ */
+ public $MeetingResponse;
+
+ /**
+ * Represents an Exchange e-mail message to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MessageType
+ */
+ public $Message;
+
+ /**
+ * Represents an Exchange post to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\PostItemType
+ */
+ public $PostItem;
+
+ /**
+ * Represents a task to create.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TaskType
+ */
+ public $Task;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsDeleteType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsDeleteType.php
new file mode 100644
index 00000000..3f0536e6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsDeleteType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SyncFolderItemsDeleteType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a single item to delete in the local client store.
+ *
+ * @package php-ews\Type
+ */
+class SyncFolderItemsDeleteType extends Type
+{
+ /**
+ * Contains the unique identifier and change key of an item in the Exchange store.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsReadFlagType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsReadFlagType.php
new file mode 100644
index 00000000..87c51de3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/SyncFolderItemsReadFlagType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\SyncFolderItemsReadFlagType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies whether or not an item has been read.
+ *
+ * @package php-ews\Type
+ */
+class SyncFolderItemsReadFlagType extends Type
+{
+ /**
+ * Indicates whether the read-flag has been set to true.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsRead;
+
+ /**
+ * Identifies the item for which the read-flag has been changed.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TargetFolderIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TargetFolderIdType.php
new file mode 100644
index 00000000..d4b0219e
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TargetFolderIdType.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TargetFolderIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Indicates the folder that is targeted for actions that use folders.
+ *
+ * @package php-ews\Type
+ */
+class TargetFolderIdType extends Type
+{
+ /**
+ * Specifies the identifier of an address list.
+ *
+ * @since Exchange 2013
+ *
+ * @var \jamesiarmes\PhpEws\Type\AddressListIdType
+ */
+ public $AddressListId;
+
+ /**
+ * Identifies folders that can be referenced by name.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DistinguishedFolderIdType
+ */
+ public $DistinguishedFolderId;
+
+ /**
+ * Contains the identifier and change key of the context folder.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $FolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TaskRecurrenceType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TaskRecurrenceType.php
new file mode 100644
index 00000000..7795713d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TaskRecurrenceType.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TaskRecurrenceType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the recurrence pattern for recurring tasks.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Implement TaskRecurrencePatternTypes trait.
+ * @todo Implement RecurrenceRangeTypes trait.
+ */
+class TaskRecurrenceType extends RecurrenceType
+{
+ /**
+ * Describes how many days after the completion of the current task the next
+ * occurrence will be due.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\DailyRegeneratingPatternType
+ */
+ public $DailyRegeneration;
+
+ /**
+ * Describes how many months after the completion of the current task the
+ * next occurrence will be due.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\MonthlyRegeneratingPatternType
+ */
+ public $MonthlyRegeneration;
+
+ /**
+ * Describes how many weeks after the completion of the current task the
+ * next occurrence will be due.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\WeeklyRegeneratingPatternType
+ */
+ public $WeeklyRegeneration;
+
+ /**
+ * Describes how many years after the completion of the current task the
+ * next occurrence will be due.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\YearlyRegeneratingPatternType
+ */
+ public $YearlyRegeneration;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TaskType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TaskType.php
new file mode 100644
index 00000000..7d23fed8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TaskType.php
@@ -0,0 +1,243 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TaskType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a task in the Exchange store.
+ *
+ * @package php-ews\Type
+ */
+class TaskType extends ItemType
+{
+ /**
+ * Represents the actual amount of time that is spent on a task.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $ActualWork;
+
+ /**
+ * Represents the time when a task is assigned to a contact.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $AssignedTime;
+
+ /**
+ * Holds billing information for a task.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $BillingInformation;
+
+ /**
+ * Specifies the version of the task.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $ChangeCount;
+
+ /**
+ * Represents the collection of companies that are associated with a contact
+ * or task.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Companies;
+
+ /**
+ * Represents the date on which a task is completed.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $CompleteDate;
+
+ /**
+ * Contains a list of contacts that are associated with a task.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfStringsType
+ */
+ public $Contacts;
+
+ /**
+ * Represents the status of a delegated task.
+ *
+ * This is a read-only property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\TaskDelegateStateType
+ */
+ public $DelegationState;
+
+ /**
+ * Contains the name of the delegator who assigned the task.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Delegator;
+
+ /**
+ * Represents the date when a task item is due.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $DueDate;
+
+ /**
+ * Indicates whether the task is editable or not.
+ *
+ * The following values are possible:
+ * - 0: The default for all task items.
+ * - 1: A task request.
+ * - 2: A task acceptance from a recipient of a task request.
+ * - 3: A task declination from a recipient of a task request.
+ * - 4: An update to a previous task request.
+ * - 5: Not used.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $IsAssignmentEditable;
+
+ /**
+ * Indicates whether the task has been completed or not.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsComplete;
+
+ /**
+ * Indicates whether a task is part of a recurring item.
+ *
+ * This element is read-only.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsRecurring;
+
+ /**
+ * Indicates whether the task is owned by a team or not.
+ *
+ * @since Exchange 2007
+ *
+ * @var boolean
+ */
+ public $IsTeamTask;
+
+ /**
+ * Represents mileage for a task item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Mileage;
+
+ /**
+ * Represents the owner of a task.
+ *
+ * This is a read-only property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $Owner;
+
+ /**
+ * Describes the completion status of a task.
+ *
+ * @since Exchange 2007
+ *
+ * @var float
+ */
+ public $PercentComplete;
+
+ /**
+ * Contains recurrence information for recurring tasks.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RecurrenceType
+ */
+ public $Recurrence;
+
+ /**
+ * Represents the start date of a task item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a DateTime object.
+ */
+ public $StartDate;
+
+ /**
+ * Represents the status of a task item.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\TaskStatusType
+ */
+ public $Status;
+
+ /**
+ * Contains an explanation of the task status.
+ *
+ * This is a read-only property.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $StatusDescription;
+
+ /**
+ * Contains a description of how much work is associated with an item.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $TotalWork;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TasksFolderType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TasksFolderType.php
new file mode 100644
index 00000000..5039a838
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TasksFolderType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TasksFolderType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a Tasks folder that is contained in a mailbox.
+ *
+ * @package php-ews\Type
+ */
+class TasksFolderType extends FolderType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TentativelyAcceptItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TentativelyAcceptItemType.php
new file mode 100644
index 00000000..a729262c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TentativelyAcceptItemType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TentativelyAcceptItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a Tentative reply to a meeting request.
+ *
+ * @package php-ews\Type
+ */
+class TentativelyAcceptItemType extends WellKnownResponseObjectType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeChangeType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeChangeType.php
new file mode 100644
index 00000000..f0312b58
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeChangeType.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TimeChangeType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the date and time when a time change occurs.
+ *
+ * @package php-ews\Type
+ */
+class TimeChangeType extends Type
+{
+ /**
+ * Represents the date when the time changes from standard time or daylight
+ * saving time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a Date object that extends DateTime.
+ */
+ public $AbsoluteDate;
+
+ /**
+ * Describes the offset from the BaseOffset.
+ *
+ * Together with the BaseOffset element, the Offset element identifies
+ * whether the time is standard time or daylight saving time.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $Offset;
+
+ /**
+ * Describes a relative yearly recurrence pattern for a time zone transition
+ * date.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\RelativeYearlyRecurrencePatternType
+ */
+ public $RelativeYearlyRecurrence;
+
+ /**
+ * Describes the time when the time changes between standard time and
+ * daylight saving time.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @todo Make a Time object that extends DateTime.
+ */
+ public $Time;
+
+ /**
+ * Name of the time zone.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $TimeZoneName;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneContextType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneContextType.php
new file mode 100644
index 00000000..14d8aa93
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneContextType.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TimeZoneContextType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the time zone definition that is to be used as the default when
+ * assigning the time zone for the DateTime properties of objects that are
+ * created, updated, and retrieved by using Exchange Web Services (EWS).
+ *
+ * @package php-ews\Type
+ */
+class TimeZoneContextType extends Type
+{
+ /**
+ * Specifies the periods and transitions that define a time zone.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeZoneDefinitionType
+ */
+ public $TimeZoneDefinition;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneDefinitionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneDefinitionType.php
new file mode 100644
index 00000000..bceb3cab
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneDefinitionType.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TimeZoneDefinitionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a timezone.
+ *
+ * @package php-ews\Type
+ */
+class TimeZoneDefinitionType extends Type
+{
+ /**
+ * Unique identifier of the time zone definition.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Id;
+
+ /**
+ * Descriptive name of the time zone definition.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Name;
+
+ /**
+ * Array of Period elements that define the time offset at different stages
+ * of the time zone.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\NonEmptyArrayOfPeriodsType
+ */
+ public $Periods;
+
+ /**
+ * Array of time zone transitions.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTransitionsType
+ */
+ public $Transitions;
+
+ /**
+ * Array of TransitionsGroup elements that specify time zone transitions.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfTransitionsGroupsType
+ */
+ public $TransitionsGroups;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneType.php
new file mode 100644
index 00000000..7f9dcf1c
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TimeZoneType.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TimeZoneType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a time zone.
+ *
+ * @package php-ews\Type
+ */
+class TimeZoneType extends Type
+{
+ /**
+ * Represents the hourly offset from UTC for the current time zone.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $BaseOffset;
+
+ /**
+ * Represents the date and time when the time changes from standard time to
+ * daylight saving time.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeChangeType
+ */
+ public $Daylight;
+
+ /**
+ * Represents the date and time when the time changes from daylight saving
+ * time to standard time.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\TimeChangeType
+ */
+ public $Standard;
+
+ /**
+ * The name of the time zone.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ */
+ public $TimeZoneName;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TooBigGroupAttendeeConflictData.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TooBigGroupAttendeeConflictData.php
new file mode 100644
index 00000000..a8ca9d46
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TooBigGroupAttendeeConflictData.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TooBigGroupAttendeeConflictData.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an attendee that was resolved as a distribution list but the
+ * distribution list was too large to expand.
+ *
+ * @package php-ews\Type
+ */
+class TooBigGroupAttendeeConflictData extends AttendeeConflictData
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TrackingPropertyType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TrackingPropertyType.php
new file mode 100644
index 00000000..61bdf1b8
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TrackingPropertyType.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TrackingPropertyType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a name and value pair of strings that is used to create properties
+ * for message tracking reports.
+ *
+ * @package php-ews\Type
+ */
+class TrackingPropertyType extends Type
+{
+ /**
+ * Defines a name for the message tracking report property.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $Name;
+
+ /**
+ * Defines a value for the message tracking report property.
+ *
+ * This element is optional.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ */
+ public $Value;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TransitionTargetType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TransitionTargetType.php
new file mode 100644
index 00000000..d37695b0
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TransitionTargetType.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TransitionTargetType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Specifies the target of the time zone transition.
+ *
+ * The target is either a time zone period or a group of time zone transitions.
+ *
+ * @package php-ews\Type
+ */
+class TransitionTargetType extends StringType
+{
+ /**
+ * Indicates whether the time zone transition target is a time zone period
+ * or of a group of time zone transitions.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\TransitionTargetKindType
+ */
+ public $Kind;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TransitionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TransitionType.php
new file mode 100644
index 00000000..23bc486d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TransitionType.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TransitionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a time zone transition.
+ *
+ * @package php-ews\Type
+ *
+ * @todo Alter RecurringDateTransitionType to extend this class.
+ */
+class TransitionType extends Type
+{
+ /**
+ * Specifies the Period or TransitionsGroup that is the target of the time
+ * zone transition.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\TransitionTargetType
+ */
+ public $To;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TwoOperandExpressionType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TwoOperandExpressionType.php
new file mode 100644
index 00000000..ecfcc665
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/TwoOperandExpressionType.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\TwoOperandExpressionType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class for search expressions with two operands.
+ *
+ * @package php-ews\Type
+ */
+abstract class TwoOperandExpressionType extends SearchExpressionType
+{
+ /**
+ * Represents either a property or a constant value to be used when
+ * comparing with another property.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\FieldURIOrConstantType
+ */
+ public $FieldURIOrConstant;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UnifiedMessageServiceConfiguration.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UnifiedMessageServiceConfiguration.php
new file mode 100644
index 00000000..f5efd960
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UnifiedMessageServiceConfiguration.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UnifiedMessageServiceConfiguration.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents service configuration information for the Unified Messaging
+ * service.
+ *
+ * @package php-ews\Type
+ */
+class UnifiedMessageServiceConfiguration extends ServiceConfiguration
+{
+ /**
+ * Identifies the Play-on-Phone dial string.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $PlayOnPhoneDialString;
+
+ /**
+ * Indicates whether the Play-on-Phone feature is enabled.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $PlayOnPhoneEnabled;
+
+ /**
+ * Indicates whether Unified Messaging is enabled for an account.
+ *
+ * This element is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var boolean
+ */
+ public $UmEnabled;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UnknownAttendeeConflictData.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UnknownAttendeeConflictData.php
new file mode 100644
index 00000000..431677ea
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UnknownAttendeeConflictData.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UnknownAttendeeConflictData.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents an unresolvable attendee or an attendee that is not a user,
+ * distribution list, or contact.
+ *
+ * @package php-ews\Type
+ */
+class UnknownAttendeeConflictData extends AttendeeConflictData
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UploadItemType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UploadItemType.php
new file mode 100644
index 00000000..ba3a2c80
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UploadItemType.php
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UploadItemType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a single item to upload into a mailbox.
+ *
+ * @package php-ews\Type
+ */
+class UploadItemType extends Type
+{
+ /**
+ * Specifies the action for uploading an item into a mailbox.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\CreateActionType
+ */
+ public $CreateAction;
+
+ /**
+ * Contains the data of a single item to upload into a mailbox.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $Data;
+
+ /**
+ * Specifies whether the uploaded item is a folder associated item.
+ *
+ * A value of true indicates that the item is a folder associated item.
+ *
+ * This attribute is optional.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var boolean
+ */
+ public $IsAssociated;
+
+ /**
+ * Contains the unique identifier and change key of an item to create or
+ * update in the Exchange store.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * Represents the identifier of the parent folder where a new item is
+ * created or that contains the item to update.
+ *
+ * @since Exchange 2010 SP1
+ *
+ * @var \jamesiarmes\PhpEws\Type\FolderIdType
+ */
+ public $ParentFolderId;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryEntryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryEntryType.php
new file mode 100644
index 00000000..5fad0cc3
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryEntryType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UserConfigurationDictionaryEntryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the contents of a single dictionary entry property.
+ *
+ * @package php-ews\Type
+ */
+class UserConfigurationDictionaryEntryType extends Type
+{
+ /**
+ * Specifies the dictionary key for a dictionary property.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserConfigurationDictionaryObjectType
+ */
+ public $DictionaryKey;
+
+ /**
+ * Specifies the dictionary value for a dictionary property.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserConfigurationDictionaryObjectType
+ */
+ public $DictionaryValue;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryObjectType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryObjectType.php
new file mode 100644
index 00000000..9c771ff2
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryObjectType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UserConfigurationDictionaryObjectType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the value of a dictionary property.
+ *
+ * @package php-ews\Type
+ */
+class UserConfigurationDictionaryObjectType extends Type
+{
+ /**
+ * Specifies the dictionary object type.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\UserConfigurationDictionaryObjectTypesType
+ */
+ public $Type;
+
+ /**
+ * Specifies the dictionary object value as a string.ß
+ *
+ * @since Exchange 2010
+ *
+ * @var string[]
+ */
+ public $Value = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryType.php
new file mode 100644
index 00000000..b7bf4991
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationDictionaryType.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UserConfigurationDictionaryType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a set of dictionary property entries for a user configuration object.
+ *
+ * @package php-ews\Type
+ */
+class UserConfigurationDictionaryType extends Type
+{
+ /**
+ * Specifies the contents of a single dictionary entry property.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserConfigurationDictionaryEntryType[]
+ */
+ public $DictionaryEntry = array();
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationNameType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationNameType.php
new file mode 100644
index 00000000..b8031c84
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationNameType.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UserConfigurationNameType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the name of a user configuration object. The user configuration
+ * object name is the identifier for a user configuration object.
+ *
+ * @package php-ews\Type
+ */
+class UserConfigurationNameType extends TargetFolderIdType
+{
+ /**
+ * The name of a user configuration object.
+ *
+ * This attribute is required.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $Name;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationType.php
new file mode 100644
index 00000000..9cf068e9
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserConfigurationType.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UserConfigurationType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines a single user configuration object.
+ *
+ * @package php-ews\Type
+ */
+class UserConfigurationType extends Type
+{
+ /**
+ * Contains binary data property content for a user configuration object.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $BinaryData;
+
+ /**
+ * Defines a set of dictionary property entries for a user configuration
+ * object.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserConfigurationDictionaryType
+ */
+ public $Dictionary;
+
+ /**
+ * Defines the user configuration object item identifier.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\ItemIdType
+ */
+ public $ItemId;
+
+ /**
+ * Represents the name of a user configuration object.
+ *
+ * This element must be used when you create a user configuration object.
+ *
+ * @since Exchange 2010
+ *
+ * @var \jamesiarmes\PhpEws\Type\UserConfigurationNameType
+ */
+ public $UserConfigurationName;
+
+ /**
+ * Contains XML data property content for a user configuration object.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @todo Create a base64 class?
+ */
+ public $XmlData;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserIdType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserIdType.php
new file mode 100644
index 00000000..5691d959
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserIdType.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UserIdType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Identifies a delegate user or a user who has folder access permissions.
+ *
+ * @package php-ews\Type
+ */
+class UserIdType extends Type
+{
+ /**
+ * Defines the display name of a folder, contact, distribution list, or
+ * delegate user.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ public $DisplayName;
+
+ /**
+ * Identifies Anonymous and Default user accounts for delegate access.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DistinguishedUserType
+ */
+ public $DistinguishedUser;
+
+ /**
+ * Identifies an external delegate user or an external user who has folder
+ * access permissions.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ */
+ public $ExternalUserIdentity;
+
+ /**
+ * Represents the primary Simple Mail Transfer Protocol (SMTP) address of an
+ * account to be used for delegate access.
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ public $PrimarySmtpAddress;
+
+ /**
+ * Represents the security descriptor definition language (SDDL) form of the
+ * security identifier (SID).
+ *
+ * @since Exchange 2007 SP1
+ *
+ * @var string
+ */
+ public $SID;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserMailboxType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserMailboxType.php
new file mode 100644
index 00000000..918774d6
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserMailboxType.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UserMailboxType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents a user mailbox.
+ *
+ * @package php-ews\Type
+ */
+class UserMailboxType extends Type
+{
+ /**
+ * The text value of the Id attribute is the identifier of the mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var string
+ */
+ public $Id;
+
+ /**
+ * Whether the mailbox is an archive mailbox.
+ *
+ * @since Exchange 2013
+ *
+ * @var boolean
+ */
+ public $IsArchive;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserOofSettings.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserOofSettings.php
new file mode 100644
index 00000000..bfecf7d5
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/UserOofSettings.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\UserOofSettings.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Defines the Out of Office (OOF) settings.
+ *
+ * @package php-ews\Type
+ */
+class UserOofSettings extends Type
+{
+ /**
+ * Contains the duration for which the OOF status is enabled if the OofState
+ * element is set to Scheduled.
+ *
+ * If the OofState element is set to Enabled or Disabled, the value of this
+ * element is ignored.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\Duration
+ */
+ public $Duration;
+
+ /**
+ * Contains a value that determines to whom external OOF messages are sent.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\ExternalAudience
+ */
+ public $ExternalAudience;
+
+ /**
+ * Contains the OOF response sent to addresses outside the recipient's
+ * domain or trusted domains.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ReplyBody
+ */
+ public $ExternalReply;
+
+ /**
+ * Contains the OOF response sent to other users in the user's domain or
+ * trusted domain.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\ReplyBody
+ */
+ public $InternalReply;
+
+ /**
+ * Contains the user's OOF state.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\OofState
+ */
+ public $OofState;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WeeklyRecurrencePatternType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WeeklyRecurrencePatternType.php
new file mode 100644
index 00000000..86c30c8b
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WeeklyRecurrencePatternType.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\WeeklyRecurrencePatternType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes a weekly recurrence pattern.
+ *
+ * @package php-ews\Type
+ */
+class WeeklyRecurrencePatternType extends IntervalRecurrencePatternBaseType
+{
+ /**
+ * Describes which days of the week are in the weekly recurrence pattern.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DaysOfWeekType
+ */
+ public $DaysOfWeek;
+
+ /**
+ * Specifies the first day of the week.
+ *
+ * @since Exchange 2010
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DayOfWeekType
+ */
+ public $FirstDayOfWeek;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WeeklyRegeneratingPatternType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WeeklyRegeneratingPatternType.php
new file mode 100644
index 00000000..2d752210
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WeeklyRegeneratingPatternType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\WeeklyRegeneratingPatternType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes the frequency, in weeks, in which a task is regenerated.
+ *
+ * @package php-ews\Type
+ */
+class WeeklyRegeneratingPatternType extends RegeneratingPatternBaseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WellKnownResponseObjectType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WellKnownResponseObjectType.php
new file mode 100644
index 00000000..f659cbeb
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WellKnownResponseObjectType.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\WellKnownResponseObjectType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Base class fot meeting request replies.
+ *
+ * @package php-ews\Type
+ */
+abstract class WellKnownResponseObjectType extends ResponseObjectType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WorkingHours.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WorkingHours.php
new file mode 100644
index 00000000..da9fc282
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WorkingHours.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\WorkingHours.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the time zone settings and working hours for the requested mailbox
+ * user.
+ *
+ * @package php-ews\Type
+ */
+class WorkingHours extends Type
+{
+ /**
+ * Contains elements that identify time zone information.
+ *
+ * This element also contains information about the transition between
+ * standard time and daylight saving time.
+ *
+ * This element is required if the WorkingHours element is used.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\Type\SerializableTimeZone
+ */
+ public $TimeZone;
+
+ /**
+ * Contains working period information for the mailbox user.
+ *
+ * This element is required if the WorkingHours element is used.
+ *
+ * @since Exchange 2007
+ *
+ * @var \jamesiarmes\PhpEws\ArrayType\ArrayOfWorkingPeriod
+ */
+ public $WorkingPeriodArray;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WorkingPeriod.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WorkingPeriod.php
new file mode 100644
index 00000000..1375234d
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/WorkingPeriod.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\WorkingPeriod.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+use \jamesiarmes\PhpEws\Type;
+
+/**
+ * Represents the work week days and hours of the mailbox user.
+ *
+ * @package php-ews\Type
+ */
+class WorkingPeriod extends Type
+{
+ /**
+ * Contains the list of working days scheduled for the mailbox user.
+ *
+ * @since Exchange 2007
+ *
+ * @var string
+ *
+ * @see \jamesiarmes\PhpEws\Enumeration\DaysOfWeekType
+ */
+ public $DayOfWeek;
+
+ /**
+ * Represents the end of the working day for a mailbox user.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $EndTimeInMinutes;
+
+ /**
+ * Represents the start of the working day for a mailbox user.
+ *
+ * @since Exchange 2007
+ *
+ * @var integer
+ */
+ public $StartTimeInMinutes;
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/YearlyRegeneratingPatternType.php b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/YearlyRegeneratingPatternType.php
new file mode 100644
index 00000000..7381d89f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/Type/YearlyRegeneratingPatternType.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Contains \jamesiarmes\PhpEws\Type\YearlyRegeneratingPatternType.
+ */
+
+namespace jamesiarmes\PhpEws\Type;
+
+/**
+ * Describes the frequency, in years, in which a task is regenerated.
+ *
+ * @package php-ews\Type
+ */
+class YearlyRegeneratingPatternType extends RegeneratingPatternBaseType
+{
+
+}
diff --git a/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/messages.xsd b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/messages.xsd
new file mode 100644
index 00000000..de89495f
--- /dev/null
+++ b/modules-available/locationinfo/exchange-includes/jamesiarmes/PhpEws/assets/messages.xsd
@@ -0,0 +1,4523 @@
+<xs:schema id="messages"
+ elementFormDefault="qualified"
+ xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
+ xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://schemas.microsoft.com/exchange/services/2006/messages">
+ <!-- Import common types. -->
+ <xs:import namespace="http://schemas.microsoft.com/exchange/services/2006/types" schemaLocation="types.xsd"/>
+ <!-- Basic response type -->
+ <!-- Common to all responses -->
+ <xs:simpleType name="ResponseCodeType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the message keys that can be returned by response error messages
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NoError"/>
+ <xs:enumeration value="ErrorAccessDenied"/>
+ <xs:enumeration value="ErrorAccessModeSpecified"/>
+ <xs:enumeration value="ErrorAccountDisabled"/>
+ <xs:enumeration value="ErrorAddDelegatesFailed"/>
+ <xs:enumeration value="ErrorAddressSpaceNotFound"/>
+ <xs:enumeration value="ErrorADOperation"/>
+ <xs:enumeration value="ErrorADSessionFilter"/>
+ <xs:enumeration value="ErrorADUnavailable"/>
+ <xs:enumeration value="ErrorAutoDiscoverFailed"/>
+ <xs:enumeration value="ErrorAffectedTaskOccurrencesRequired"/>
+ <xs:enumeration value="ErrorAttachmentNestLevelLimitExceeded" />
+ <xs:enumeration value="ErrorAttachmentSizeLimitExceeded"/>
+ <xs:enumeration value="ErrorArchiveFolderPathCreation"/>
+ <xs:enumeration value="ErrorArchiveMailboxNotEnabled"/>
+ <xs:enumeration value="ErrorArchiveMailboxServiceDiscoveryFailed"/>
+ <xs:enumeration value="ErrorAvailabilityConfigNotFound"/>
+ <xs:enumeration value="ErrorBatchProcessingStopped"/>
+ <xs:enumeration value="ErrorCalendarCannotMoveOrCopyOccurrence"/>
+ <xs:enumeration value="ErrorCalendarCannotUpdateDeletedItem"/>
+ <xs:enumeration value="ErrorCalendarCannotUseIdForOccurrenceId"/>
+ <xs:enumeration value="ErrorCalendarCannotUseIdForRecurringMasterId"/>
+ <xs:enumeration value="ErrorCalendarDurationIsTooLong"/>
+ <xs:enumeration value="ErrorCalendarEndDateIsEarlierThanStartDate"/>
+ <xs:enumeration value="ErrorCalendarFolderIsInvalidForCalendarView"/>
+ <xs:enumeration value="ErrorCalendarInvalidAttributeValue"/>
+ <xs:enumeration value="ErrorCalendarInvalidDayForTimeChangePattern"/>
+ <xs:enumeration value="ErrorCalendarInvalidDayForWeeklyRecurrence"/>
+ <xs:enumeration value="ErrorCalendarInvalidPropertyState"/>
+ <xs:enumeration value="ErrorCalendarInvalidPropertyValue"/>
+ <xs:enumeration value="ErrorCalendarInvalidRecurrence"/>
+ <xs:enumeration value="ErrorCalendarInvalidTimeZone"/>
+ <xs:enumeration value="ErrorCalendarIsCancelledForAccept"/>
+ <xs:enumeration value="ErrorCalendarIsCancelledForDecline"/>
+ <xs:enumeration value="ErrorCalendarIsCancelledForRemove"/>
+ <xs:enumeration value="ErrorCalendarIsCancelledForTentative"/>
+ <xs:enumeration value="ErrorCalendarIsDelegatedForAccept"/>
+ <xs:enumeration value="ErrorCalendarIsDelegatedForDecline"/>
+ <xs:enumeration value="ErrorCalendarIsDelegatedForRemove"/>
+ <xs:enumeration value="ErrorCalendarIsDelegatedForTentative"/>
+ <xs:enumeration value="ErrorCalendarIsNotOrganizer"/>
+ <xs:enumeration value="ErrorCalendarIsOrganizerForAccept"/>
+ <xs:enumeration value="ErrorCalendarIsOrganizerForDecline"/>
+ <xs:enumeration value="ErrorCalendarIsOrganizerForRemove"/>
+ <xs:enumeration value="ErrorCalendarIsOrganizerForTentative"/>
+ <xs:enumeration value="ErrorCalendarOccurrenceIndexIsOutOfRecurrenceRange"/>
+ <xs:enumeration value="ErrorCalendarOccurrenceIsDeletedFromRecurrence"/>
+ <xs:enumeration value="ErrorCalendarOutOfRange"/>
+ <xs:enumeration value="ErrorCalendarMeetingRequestIsOutOfDate"/>
+ <xs:enumeration value="ErrorCalendarViewRangeTooBig"/>
+ <xs:enumeration value="ErrorCallerIsInvalidADAccount"/>
+ <xs:enumeration value="ErrorCannotAccessDeletedPublicFolder"/>
+ <xs:enumeration value="ErrorCannotArchiveCalendarContactTaskFolderException"/>
+ <xs:enumeration value="ErrorCannotArchiveItemsInPublicFolders"/>
+ <xs:enumeration value="ErrorCannotArchiveItemsInArchiveMailbox"/>
+ <xs:enumeration value="ErrorCannotCreateCalendarItemInNonCalendarFolder"/>
+ <xs:enumeration value="ErrorCannotCreateContactInNonContactFolder"/>
+ <xs:enumeration value="ErrorCannotCreatePostItemInNonMailFolder"/>
+ <xs:enumeration value="ErrorCannotCreateTaskInNonTaskFolder"/>
+ <xs:enumeration value="ErrorCannotDeleteObject"/>
+ <xs:enumeration value="ErrorCannotDisableMandatoryExtension"/>
+ <xs:enumeration value="ErrorCannotFindUser"/>
+ <xs:enumeration value="ErrorCannotGetSourceFolderPath"/>
+ <xs:enumeration value="ErrorCannotGetExternalEcpUrl"/>
+ <xs:enumeration value="ErrorCannotOpenFileAttachment"/>
+ <xs:enumeration value="ErrorCannotDeleteTaskOccurrence"/>
+ <xs:enumeration value="ErrorCannotEmptyFolder"/>
+ <xs:enumeration value="ErrorCannotSetCalendarPermissionOnNonCalendarFolder"/>
+ <xs:enumeration value="ErrorCannotSetNonCalendarPermissionOnCalendarFolder"/>
+ <xs:enumeration value="ErrorCannotSetPermissionUnknownEntries"/>
+ <xs:enumeration value="ErrorCannotSpecifySearchFolderAsSourceFolder"/>
+ <xs:enumeration value="ErrorCannotUseFolderIdForItemId"/>
+ <xs:enumeration value="ErrorCannotUseItemIdForFolderId"/>
+ <xs:enumeration value="ErrorChangeKeyRequired"/>
+ <xs:enumeration value="ErrorChangeKeyRequiredForWriteOperations"/>
+ <xs:enumeration value="ErrorClientDisconnected"/>
+ <xs:enumeration value="ErrorClientIntentInvalidStateDefinition"/>
+ <xs:enumeration value="ErrorClientIntentNotFound"/>
+ <xs:enumeration value="ErrorConnectionFailed"/>
+ <xs:enumeration value="ErrorContainsFilterWrongType"/>
+ <xs:enumeration value="ErrorContentConversionFailed"/>
+ <xs:enumeration value="ErrorContentIndexingNotEnabled"/>
+ <xs:enumeration value="ErrorCorruptData"/>
+ <xs:enumeration value="ErrorCreateItemAccessDenied"/>
+ <xs:enumeration value="ErrorCreateManagedFolderPartialCompletion"/>
+ <xs:enumeration value="ErrorCreateSubfolderAccessDenied"/>
+ <xs:enumeration value="ErrorCrossMailboxMoveCopy"/>
+ <xs:enumeration value="ErrorCrossSiteRequest"/>
+ <xs:enumeration value="ErrorDataSizeLimitExceeded"/>
+ <xs:enumeration value="ErrorDataSourceOperation"/>
+ <xs:enumeration value="ErrorDelegateAlreadyExists"/>
+ <xs:enumeration value="ErrorDelegateCannotAddOwner"/>
+ <xs:enumeration value="ErrorDelegateMissingConfiguration"/>
+ <xs:enumeration value="ErrorDelegateNoUser"/>
+ <xs:enumeration value="ErrorDelegateValidationFailed"/>
+ <xs:enumeration value="ErrorDeleteDistinguishedFolder"/>
+ <xs:enumeration value="ErrorDeleteItemsFailed"/>
+ <xs:enumeration value="ErrorDeleteUnifiedMessagingPromptFailed"/>
+ <xs:enumeration value="ErrorDistinguishedUserNotSupported"/>
+ <xs:enumeration value="ErrorDistributionListMemberNotExist"/>
+ <xs:enumeration value="ErrorDuplicateInputFolderNames"/>
+ <xs:enumeration value="ErrorDuplicateUserIdsSpecified"/>
+ <xs:enumeration value="ErrorEmailAddressMismatch"/>
+ <xs:enumeration value="ErrorEventNotFound"/>
+ <xs:enumeration value="ErrorExceededConnectionCount"/>
+ <xs:enumeration value="ErrorExceededSubscriptionCount"/>
+ <xs:enumeration value="ErrorExceededFindCountLimit"/>
+ <xs:enumeration value="ErrorExpiredSubscription"/>
+ <xs:enumeration value="ErrorExtensionNotFound"/>
+ <xs:enumeration value="ErrorFolderCorrupt"/>
+ <xs:enumeration value="ErrorFolderNotFound"/>
+ <xs:enumeration value="ErrorFolderPropertRequestFailed"/>
+ <xs:enumeration value="ErrorFolderSave"/>
+ <xs:enumeration value="ErrorFolderSaveFailed"/>
+ <xs:enumeration value="ErrorFolderSavePropertyError"/>
+ <xs:enumeration value="ErrorFolderExists"/>
+ <xs:enumeration value="ErrorFreeBusyGenerationFailed"/>
+ <xs:enumeration value="ErrorGetServerSecurityDescriptorFailed"/>
+ <xs:enumeration value="ErrorImContactLimitReached"/>
+ <xs:enumeration value="ErrorImGroupDisplayNameAlreadyExists"/>
+ <xs:enumeration value="ErrorImGroupLimitReached"/>
+ <xs:enumeration value="ErrorImpersonateUserDenied"/>
+ <xs:enumeration value="ErrorImpersonationDenied"/>
+ <xs:enumeration value="ErrorImpersonationFailed"/>
+ <xs:enumeration value="ErrorIncorrectSchemaVersion"/>
+ <xs:enumeration value="ErrorIncorrectUpdatePropertyCount"/>
+ <xs:enumeration value="ErrorIndividualMailboxLimitReached"/>
+ <xs:enumeration value="ErrorInsufficientResources"/>
+ <xs:enumeration value="ErrorInternalServerError"/>
+ <xs:enumeration value="ErrorInternalServerTransientError"/>
+ <xs:enumeration value="ErrorInvalidAccessLevel"/>
+ <xs:enumeration value="ErrorInvalidArgument"/>
+ <xs:enumeration value="ErrorInvalidAttachmentId"/>
+ <xs:enumeration value="ErrorInvalidAttachmentSubfilter"/>
+ <xs:enumeration value="ErrorInvalidAttachmentSubfilterTextFilter"/>
+ <xs:enumeration value="ErrorInvalidAuthorizationContext"/>
+ <xs:enumeration value="ErrorInvalidChangeKey"/>
+ <xs:enumeration value="ErrorInvalidClientSecurityContext"/>
+ <xs:enumeration value="ErrorInvalidCompleteDate"/>
+ <xs:enumeration value="ErrorInvalidContactEmailAddress"/>
+ <xs:enumeration value="ErrorInvalidContactEmailIndex"/>
+ <xs:enumeration value="ErrorInvalidCrossForestCredentials"/>
+ <xs:enumeration value="ErrorInvalidDelegatePermission"/>
+ <xs:enumeration value="ErrorInvalidDelegateUserId"/>
+ <xs:enumeration value="ErrorInvalidExcludesRestriction"/>
+ <xs:enumeration value="ErrorInvalidExpressionTypeForSubFilter"/>
+ <xs:enumeration value="ErrorInvalidExtendedProperty"/>
+ <xs:enumeration value="ErrorInvalidExtendedPropertyValue"/>
+ <xs:enumeration value="ErrorInvalidFolderId"/>
+ <xs:enumeration value="ErrorInvalidFolderTypeForOperation"/>
+ <xs:enumeration value="ErrorInvalidFractionalPagingParameters"/>
+ <xs:enumeration value="ErrorInvalidFreeBusyViewType"/>
+ <xs:enumeration value="ErrorInvalidId"/>
+ <xs:enumeration value="ErrorInvalidIdEmpty"/>
+ <xs:enumeration value="ErrorInvalidIdMalformed"/>
+ <xs:enumeration value="ErrorInvalidIdMalformedEwsLegacyIdFormat"/>
+ <xs:enumeration value="ErrorInvalidIdMonikerTooLong"/>
+ <xs:enumeration value="ErrorInvalidIdNotAnItemAttachmentId"/>
+ <xs:enumeration value="ErrorInvalidIdReturnedByResolveNames"/>
+ <xs:enumeration value="ErrorInvalidIdStoreObjectIdTooLong"/>
+ <xs:enumeration value="ErrorInvalidIdTooManyAttachmentLevels"/>
+ <xs:enumeration value="ErrorInvalidIdXml"/>
+ <xs:enumeration value="ErrorInvalidImContactId"/>
+ <xs:enumeration value="ErrorInvalidImDistributionGroupSmtpAddress"/>
+ <xs:enumeration value="ErrorInvalidImGroupId"/>
+ <xs:enumeration value="ErrorInvalidIndexedPagingParameters"/>
+ <xs:enumeration value="ErrorInvalidInternetHeaderChildNodes"/>
+ <xs:enumeration value="ErrorInvalidItemForOperationArchiveItem"/>
+ <xs:enumeration value="ErrorInvalidItemForOperationCreateItemAttachment"/>
+ <xs:enumeration value="ErrorInvalidItemForOperationCreateItem"/>
+ <xs:enumeration value="ErrorInvalidItemForOperationAcceptItem"/>
+ <xs:enumeration value="ErrorInvalidItemForOperationDeclineItem"/>
+ <xs:enumeration value="ErrorInvalidItemForOperationCancelItem"/>
+ <xs:enumeration value="ErrorInvalidItemForOperationExpandDL"/>
+ <xs:enumeration value="ErrorInvalidItemForOperationRemoveItem"/>
+ <xs:enumeration value="ErrorInvalidItemForOperationSendItem"/>
+ <xs:enumeration value="ErrorInvalidItemForOperationTentative"/>
+ <xs:enumeration value="ErrorInvalidLogonType"/>
+ <xs:enumeration value="ErrorInvalidLikeRequest"/>
+ <xs:enumeration value="ErrorInvalidMailbox"/>
+ <xs:enumeration value="ErrorInvalidManagedFolderProperty"/>
+ <xs:enumeration value="ErrorInvalidManagedFolderQuota"/>
+ <xs:enumeration value="ErrorInvalidManagedFolderSize"/>
+ <xs:enumeration value="ErrorInvalidMergedFreeBusyInterval"/>
+ <xs:enumeration value="ErrorInvalidNameForNameResolution"/>
+ <xs:enumeration value="ErrorInvalidOperation"/>
+ <xs:enumeration value="ErrorInvalidNetworkServiceContext"/>
+ <xs:enumeration value="ErrorInvalidOofParameter"/>
+ <xs:enumeration value="ErrorInvalidPagingMaxRows"/>
+ <xs:enumeration value="ErrorInvalidParentFolder"/>
+ <xs:enumeration value="ErrorInvalidPercentCompleteValue"/>
+ <xs:enumeration value="ErrorInvalidPermissionSettings"/>
+ <xs:enumeration value="ErrorInvalidPhoneCallId"/>
+ <xs:enumeration value="ErrorInvalidPhoneNumber"/>
+ <xs:enumeration value="ErrorInvalidUserInfo"/>
+ <xs:enumeration value="ErrorInvalidPropertyAppend"/>
+ <xs:enumeration value="ErrorInvalidPropertyDelete"/>
+ <xs:enumeration value="ErrorInvalidPropertyForExists"/>
+ <xs:enumeration value="ErrorInvalidPropertyForOperation"/>
+ <xs:enumeration value="ErrorInvalidPropertyRequest"/>
+ <xs:enumeration value="ErrorInvalidPropertySet"/>
+ <xs:enumeration value="ErrorInvalidPropertyUpdateSentMessage"/>
+ <xs:enumeration value="ErrorInvalidProxySecurityContext"/>
+ <xs:enumeration value="ErrorInvalidPullSubscriptionId"/>
+ <xs:enumeration value="ErrorInvalidPushSubscriptionUrl"/>
+ <xs:enumeration value="ErrorInvalidRecipients"/>
+ <xs:enumeration value="ErrorInvalidRecipientSubfilter"/>
+ <xs:enumeration value="ErrorInvalidRecipientSubfilterComparison"/>
+ <xs:enumeration value="ErrorInvalidRecipientSubfilterOrder"/>
+ <xs:enumeration value="ErrorInvalidRecipientSubfilterTextFilter"/>
+ <xs:enumeration value="ErrorInvalidReferenceItem"/>
+ <xs:enumeration value="ErrorInvalidRequest"/>
+ <xs:enumeration value="ErrorInvalidRestriction"/>
+ <xs:enumeration value="ErrorInvalidRetentionTagTypeMismatch"/>
+ <xs:enumeration value="ErrorInvalidRetentionTagInvisible"/>
+ <xs:enumeration value="ErrorInvalidRetentionTagInheritance"/>
+ <xs:enumeration value="ErrorInvalidRetentionTagIdGuid"/>
+ <xs:enumeration value="ErrorInvalidRoutingType"/>
+ <xs:enumeration value="ErrorInvalidScheduledOofDuration"/>
+ <xs:enumeration value="ErrorInvalidSchemaVersionForMailboxVersion"/>
+ <xs:enumeration value="ErrorInvalidSecurityDescriptor"/>
+ <xs:enumeration value="ErrorInvalidSendItemSaveSettings"/>
+ <xs:enumeration value="ErrorInvalidSerializedAccessToken"/>
+ <xs:enumeration value="ErrorInvalidServerVersion"/>
+ <xs:enumeration value="ErrorInvalidSid"/>
+ <xs:enumeration value="ErrorInvalidSIPUri"/>
+ <xs:enumeration value="ErrorInvalidSmtpAddress"/>
+ <xs:enumeration value="ErrorInvalidSubfilterType"/>
+ <xs:enumeration value="ErrorInvalidSubfilterTypeNotAttendeeType"/>
+ <xs:enumeration value="ErrorInvalidSubfilterTypeNotRecipientType"/>
+ <xs:enumeration value="ErrorInvalidSubscription"/>
+ <xs:enumeration value="ErrorInvalidSubscriptionRequest"/>
+ <xs:enumeration value="ErrorInvalidSyncStateData"/>
+ <xs:enumeration value="ErrorInvalidTimeInterval"/>
+ <xs:enumeration value="ErrorInvalidUserOofSettings"/>
+ <xs:enumeration value="ErrorInvalidUserPrincipalName"/>
+ <xs:enumeration value="ErrorInvalidUserSid"/>
+ <xs:enumeration value="ErrorInvalidUserSidMissingUPN"/>
+ <xs:enumeration value="ErrorInvalidValueForProperty"/>
+ <xs:enumeration value="ErrorInvalidWatermark"/>
+ <xs:enumeration value="ErrorIPGatewayNotFound"/>
+ <xs:enumeration value="ErrorIrresolvableConflict"/>
+ <xs:enumeration value="ErrorItemCorrupt"/>
+ <xs:enumeration value="ErrorItemNotFound"/>
+ <xs:enumeration value="ErrorItemPropertyRequestFailed"/>
+ <xs:enumeration value="ErrorItemSave"/>
+ <xs:enumeration value="ErrorItemSavePropertyError"/>
+ <xs:enumeration value="ErrorLegacyMailboxFreeBusyViewTypeNotMerged"/>
+ <xs:enumeration value="ErrorLocalServerObjectNotFound"/>
+ <xs:enumeration value="ErrorLogonAsNetworkServiceFailed"/>
+ <xs:enumeration value="ErrorMailboxConfiguration"/>
+ <xs:enumeration value="ErrorMailboxDataArrayEmpty"/>
+ <xs:enumeration value="ErrorMailboxDataArrayTooBig"/>
+ <xs:enumeration value="ErrorMailboxHoldNotFound"/>
+ <xs:enumeration value="ErrorMailboxLogonFailed"/>
+ <xs:enumeration value="ErrorMailboxMoveInProgress"/>
+ <xs:enumeration value="ErrorMailboxStoreUnavailable"/>
+ <xs:enumeration value="ErrorMailRecipientNotFound"/>
+ <xs:enumeration value="ErrorMailTipsDisabled"/>
+ <xs:enumeration value="ErrorManagedFolderAlreadyExists"/>
+ <xs:enumeration value="ErrorManagedFolderNotFound"/>
+ <xs:enumeration value="ErrorManagedFoldersRootFailure"/>
+ <xs:enumeration value="ErrorMeetingSuggestionGenerationFailed"/>
+ <xs:enumeration value="ErrorMessageDispositionRequired"/>
+ <xs:enumeration value="ErrorMessageSizeExceeded"/>
+ <xs:enumeration value="ErrorMimeContentConversionFailed"/>
+ <xs:enumeration value="ErrorMimeContentInvalid"/>
+ <xs:enumeration value="ErrorMimeContentInvalidBase64String"/>
+ <xs:enumeration value="ErrorMissingArgument"/>
+ <xs:enumeration value="ErrorMissingEmailAddress"/>
+ <xs:enumeration value="ErrorMissingEmailAddressForManagedFolder"/>
+ <xs:enumeration value="ErrorMissingInformationEmailAddress"/>
+ <xs:enumeration value="ErrorMissingInformationReferenceItemId"/>
+ <xs:enumeration value="ErrorMissingItemForCreateItemAttachment"/>
+ <xs:enumeration value="ErrorMissingManagedFolderId"/>
+ <xs:enumeration value="ErrorMissingRecipients"/>
+ <xs:enumeration value="ErrorMissingUserIdInformation"/>
+ <xs:enumeration value="ErrorMoreThanOneAccessModeSpecified"/>
+ <xs:enumeration value="ErrorMoveCopyFailed"/>
+ <xs:enumeration value="ErrorMoveDistinguishedFolder"/>
+ <xs:enumeration value="ErrorMultiLegacyMailboxAccess"/>
+ <xs:enumeration value="ErrorNameResolutionMultipleResults"/>
+ <xs:enumeration value="ErrorNameResolutionNoMailbox"/>
+ <xs:enumeration value="ErrorNameResolutionNoResults"/>
+ <xs:enumeration value="ErrorNoApplicableProxyCASServersAvailable"/>
+ <xs:enumeration value="ErrorNoCalendar"/>
+ <xs:enumeration value="ErrorNoDestinationCASDueToKerberosRequirements"/>
+ <xs:enumeration value="ErrorNoDestinationCASDueToSSLRequirements"/>
+ <xs:enumeration value="ErrorNoDestinationCASDueToVersionMismatch"/>
+ <xs:enumeration value="ErrorNoFolderClassOverride"/>
+ <xs:enumeration value="ErrorNoFreeBusyAccess"/>
+ <xs:enumeration value="ErrorNonExistentMailbox"/>
+ <xs:enumeration value="ErrorNonPrimarySmtpAddress"/>
+ <xs:enumeration value="ErrorNoPropertyTagForCustomProperties"/>
+ <xs:enumeration value="ErrorNoPublicFolderReplicaAvailable"/>
+ <xs:enumeration value="ErrorNoPublicFolderServerAvailable"/>
+ <xs:enumeration value="ErrorNoRespondingCASInDestinationSite"/>
+ <xs:enumeration value="ErrorNotDelegate"/>
+ <xs:enumeration value="ErrorNotEnoughMemory"/>
+ <xs:enumeration value="ErrorObjectTypeChanged"/>
+ <xs:enumeration value="ErrorOccurrenceCrossingBoundary"/>
+ <xs:enumeration value="ErrorOccurrenceTimeSpanTooBig" />
+ <xs:enumeration value="ErrorOperationNotAllowedWithPublicFolderRoot" />
+ <xs:enumeration value="ErrorParentFolderIdRequired"/>
+ <xs:enumeration value="ErrorParentFolderNotFound"/>
+ <xs:enumeration value="ErrorPasswordChangeRequired"/>
+ <xs:enumeration value="ErrorPasswordExpired"/>
+ <xs:enumeration value="ErrorPhoneNumberNotDialable"/>
+ <xs:enumeration value="ErrorPropertyUpdate"/>
+ <xs:enumeration value="ErrorPromptPublishingOperationFailed"/>
+ <xs:enumeration value="ErrorPropertyValidationFailure"/>
+ <xs:enumeration value="ErrorProxiedSubscriptionCallFailure"/>
+ <xs:enumeration value="ErrorProxyCallFailed"/>
+ <xs:enumeration value="ErrorProxyGroupSidLimitExceeded"/>
+ <xs:enumeration value="ErrorProxyRequestNotAllowed"/>
+ <xs:enumeration value="ErrorProxyRequestProcessingFailed"/>
+ <xs:enumeration value="ErrorProxyServiceDiscoveryFailed"/>
+ <xs:enumeration value="ErrorProxyTokenExpired"/>
+ <xs:enumeration value="ErrorPublicFolderMailboxDiscoveryFailed"/>
+ <xs:enumeration value="ErrorPublicFolderOperationFailed"/>
+ <xs:enumeration value="ErrorPublicFolderRequestProcessingFailed"/>
+ <xs:enumeration value="ErrorPublicFolderServerNotFound"/>
+ <xs:enumeration value="ErrorPublicFolderSyncException"/>
+ <xs:enumeration value="ErrorQueryFilterTooLong"/>
+ <xs:enumeration value="ErrorQuotaExceeded"/>
+ <xs:enumeration value="ErrorReadEventsFailed"/>
+ <xs:enumeration value="ErrorReadReceiptNotPending"/>
+ <xs:enumeration value="ErrorRecurrenceEndDateTooBig"/>
+ <xs:enumeration value="ErrorRecurrenceHasNoOccurrence"/>
+ <xs:enumeration value="ErrorRemoveDelegatesFailed"/>
+ <xs:enumeration value="ErrorRequestAborted"/>
+ <xs:enumeration value="ErrorRequestStreamTooBig"/>
+ <xs:enumeration value="ErrorRequiredPropertyMissing"/>
+ <xs:enumeration value="ErrorResolveNamesInvalidFolderType"/>
+ <xs:enumeration value="ErrorResolveNamesOnlyOneContactsFolderAllowed"/>
+ <xs:enumeration value="ErrorResponseSchemaValidation"/>
+ <xs:enumeration value="ErrorRestrictionTooLong"/>
+ <xs:enumeration value="ErrorRestrictionTooComplex"/>
+ <xs:enumeration value="ErrorResultSetTooBig"/>
+ <xs:enumeration value="ErrorInvalidExchangeImpersonationHeaderData"/>
+ <xs:enumeration value="ErrorSavedItemFolderNotFound"/>
+ <xs:enumeration value="ErrorSchemaValidation"/>
+ <xs:enumeration value="ErrorSearchFolderNotInitialized"/>
+ <xs:enumeration value="ErrorSendAsDenied"/>
+ <xs:enumeration value="ErrorSendMeetingCancellationsRequired"/>
+ <xs:enumeration value="ErrorSendMeetingInvitationsOrCancellationsRequired"/>
+ <xs:enumeration value="ErrorSendMeetingInvitationsRequired"/>
+ <xs:enumeration value="ErrorSentMeetingRequestUpdate"/>
+ <xs:enumeration value="ErrorSentTaskRequestUpdate"/>
+ <xs:enumeration value="ErrorServerBusy"/>
+ <xs:enumeration value="ErrorServiceDiscoveryFailed"/>
+ <xs:enumeration value="ErrorStaleObject"/>
+ <xs:enumeration value="ErrorSubmissionQuotaExceeded"/>
+ <xs:enumeration value="ErrorSubscriptionAccessDenied"/>
+ <xs:enumeration value="ErrorSubscriptionDelegateAccessNotSupported"/>
+ <xs:enumeration value="ErrorSubscriptionNotFound"/>
+ <xs:enumeration value="ErrorSubscriptionUnsubscribed"/>
+ <xs:enumeration value="ErrorSyncFolderNotFound"/>
+ <xs:enumeration value="ErrorTeamMailboxNotFound"/>
+ <xs:enumeration value="ErrorTeamMailboxNotLinkedToSharePoint"/>
+ <xs:enumeration value="ErrorTeamMailboxUrlValidationFailed"/>
+ <xs:enumeration value="ErrorTeamMailboxNotAuthorizedOwner"/>
+ <xs:enumeration value="ErrorTeamMailboxActiveToPendingDelete"/>
+ <xs:enumeration value="ErrorTeamMailboxFailedSendingNotifications"/>
+ <xs:enumeration value="ErrorTeamMailboxErrorUnknown"/>
+ <xs:enumeration value="ErrorTimeIntervalTooBig"/>
+ <xs:enumeration value="ErrorTimeoutExpired"/>
+ <xs:enumeration value="ErrorTimeZone"/>
+ <xs:enumeration value="ErrorToFolderNotFound"/>
+ <xs:enumeration value="ErrorTokenSerializationDenied"/>
+ <xs:enumeration value="ErrorTooManyObjectsOpened"/>
+ <xs:enumeration value="ErrorUpdatePropertyMismatch"/>
+ <xs:enumeration value="ErrorUnifiedGroupMailboxAADCreationFailed"/>
+ <xs:enumeration value="ErrorUnifiedGroupMailboxAADDeleteFailed"/>
+ <xs:enumeration value="ErrorUnifiedGroupMailboxNamingPolicy"/>
+ <xs:enumeration value="ErrorUnifiedGroupMailboxDeleteFailed"/>
+ <xs:enumeration value="ErrorUnifiedGroupMailboxNotFound"/>
+ <xs:enumeration value="ErrorUnifiedGroupMailboxUpdateDelayed"/>
+ <xs:enumeration value="ErrorUnifiedGroupMailboxUpdatedPartialProperties"/>
+ <xs:enumeration value="ErrorUnifiedGroupMailboxUpdateFailed"/>
+ <xs:enumeration value="ErrorUnifiedGroupMailboxProvisionFailed"/>
+ <xs:enumeration value="ErrorUnifiedMessagingDialPlanNotFound"/>
+ <xs:enumeration value="ErrorUnifiedMessagingReportDataNotFound"/>
+ <xs:enumeration value="ErrorUnifiedMessagingPromptNotFound"/>
+ <xs:enumeration value="ErrorUnifiedMessagingRequestFailed"/>
+ <xs:enumeration value="ErrorUnifiedMessagingServerNotFound"/>
+ <xs:enumeration value="ErrorUnableToGetUserOofSettings"/>
+ <xs:enumeration value="ErrorUnableToRemoveImContactFromGroup"/>
+ <xs:enumeration value="ErrorUnsupportedSubFilter"/>
+ <xs:enumeration value="ErrorUnsupportedCulture"/>
+ <xs:enumeration value="ErrorUnsupportedMapiPropertyType"/>
+ <xs:enumeration value="ErrorUnsupportedMimeConversion"/>
+ <xs:enumeration value="ErrorUnsupportedPathForQuery"/>
+ <xs:enumeration value="ErrorUnsupportedPathForSortGroup"/>
+ <xs:enumeration value="ErrorUnsupportedPropertyDefinition"/>
+ <xs:enumeration value="ErrorUnsupportedQueryFilter"/>
+ <xs:enumeration value="ErrorUnsupportedRecurrence"/>
+ <xs:enumeration value="ErrorUnsupportedTypeForConversion"/>
+ <xs:enumeration value="ErrorUpdateDelegatesFailed"/>
+ <xs:enumeration value="ErrorUserNotUnifiedMessagingEnabled"/>
+ <xs:enumeration value="ErrorVoiceMailNotImplemented"/>
+ <xs:enumeration value="ErrorValueOutOfRange"/>
+ <xs:enumeration value="ErrorVirusDetected"/>
+ <xs:enumeration value="ErrorVirusMessageDeleted"/>
+ <xs:enumeration value="ErrorWebRequestInInvalidState"/>
+ <xs:enumeration value="ErrorWin32InteropError"/>
+ <xs:enumeration value="ErrorWorkingHoursSaveFailed"/>
+ <xs:enumeration value="ErrorWorkingHoursXmlMalformed"/>
+ <xs:enumeration value="ErrorWrongServerVersion"/>
+ <xs:enumeration value="ErrorWrongServerVersionDelegate"/>
+ <xs:enumeration value="ErrorMissingInformationSharingFolderId"/>
+ <xs:enumeration value="ErrorDuplicateSOAPHeader" />
+ <xs:enumeration value="ErrorSharingSynchronizationFailed" />
+ <xs:enumeration value="ErrorSharingNoExternalEwsAvailable" />
+ <xs:enumeration value="ErrorFreeBusyDLLimitReached"/>
+ <xs:enumeration value="ErrorInvalidGetSharingFolderRequest" />
+ <xs:enumeration value="ErrorNotAllowedExternalSharingByPolicy" />
+ <xs:enumeration value="ErrorUserNotAllowedByPolicy" />
+ <xs:enumeration value="ErrorPermissionNotAllowedByPolicy" />
+ <xs:enumeration value="ErrorOrganizationNotFederated" />
+ <xs:enumeration value="ErrorMailboxFailover" />
+ <xs:enumeration value="ErrorInvalidExternalSharingInitiator" />
+ <xs:enumeration value="ErrorMessageTrackingPermanentError" />
+ <xs:enumeration value="ErrorMessageTrackingTransientError" />
+ <xs:enumeration value="ErrorMessageTrackingNoSuchDomain" />
+ <xs:enumeration value="ErrorUserWithoutFederatedProxyAddress" />
+ <xs:enumeration value="ErrorInvalidOrganizationRelationshipForFreeBusy" />
+ <xs:enumeration value="ErrorInvalidFederatedOrganizationId" />
+ <xs:enumeration value="ErrorInvalidExternalSharingSubscriber" />
+ <xs:enumeration value="ErrorInvalidSharingData" />
+ <xs:enumeration value="ErrorInvalidSharingMessage" />
+ <xs:enumeration value="ErrorNotSupportedSharingMessage" />
+ <xs:enumeration value="ErrorApplyConversationActionFailed" />
+ <xs:enumeration value="ErrorInboxRulesValidationError" />
+ <xs:enumeration value="ErrorOutlookRuleBlobExists" />
+ <xs:enumeration value="ErrorRulesOverQuota" />
+ <xs:enumeration value="ErrorNewEventStreamConnectionOpened" />
+ <xs:enumeration value="ErrorMissedNotificationEvents" />
+ <xs:enumeration value="ErrorDuplicateLegacyDistinguishedName" />
+ <xs:enumeration value="ErrorInvalidClientAccessTokenRequest" />
+ <xs:enumeration value="ErrorNoSpeechDetected" />
+ <xs:enumeration value="ErrorUMServerUnavailable" />
+ <xs:enumeration value="ErrorRecipientNotFound" />
+ <xs:enumeration value="ErrorRecognizerNotInstalled" />
+ <xs:enumeration value="ErrorSpeechGrammarError" />
+ <xs:enumeration value="ErrorInvalidManagementRoleHeader" />
+ <xs:enumeration value="ErrorLocationServicesDisabled"/>
+ <xs:enumeration value="ErrorLocationServicesRequestTimedOut"/>
+ <xs:enumeration value="ErrorLocationServicesRequestFailed"/>
+ <xs:enumeration value="ErrorLocationServicesInvalidRequest"/>
+ <xs:enumeration value="ErrorWeatherServiceDisabled"/>
+ <xs:enumeration value="ErrorMailboxScopeNotAllowedWithoutQueryString" />
+ <xs:enumeration value="ErrorArchiveMailboxSearchFailed" />
+ <xs:enumeration value="ErrorGetRemoteArchiveFolderFailed" />
+ <xs:enumeration value="ErrorFindRemoteArchiveFolderFailed" />
+ <xs:enumeration value="ErrorGetRemoteArchiveItemFailed" />
+ <xs:enumeration value="ErrorExportRemoteArchiveItemsFailed" />
+ <xs:enumeration value="ErrorInvalidPhotoSize" />
+ <xs:enumeration value="ErrorSearchQueryHasTooManyKeywords"/>
+ <xs:enumeration value="ErrorSearchTooManyMailboxes"/>
+ <xs:enumeration value="ErrorInvalidRetentionTagNone"/>
+ <xs:enumeration value="ErrorDiscoverySearchesDisabled"/>
+ <xs:enumeration value="ErrorCalendarSeekToConditionNotSupported"/>
+ <xs:enumeration value="ErrorCalendarIsGroupMailboxForAccept"/>
+ <xs:enumeration value="ErrorCalendarIsGroupMailboxForDecline"/>
+ <xs:enumeration value="ErrorCalendarIsGroupMailboxForTentative"/>
+ <xs:enumeration value="ErrorCalendarIsGroupMailboxForSuppressReadReceipt"/>
+ <xs:enumeration value="ErrorOrganizationAccessBlocked"/>
+ <xs:enumeration value="ErrorInvalidLicense"/>
+ <xs:enumeration value="ErrorMessagePerFolderCountReceiveQuotaExceeded"/>
+ <xs:enumeration value="ErrorInvalidBulkActionType"/>
+ <xs:enumeration value="ErrorInvalidKeepNCount"/>
+ <xs:enumeration value="ErrorInvalidKeepNType"/>
+ <xs:enumeration value="ErrorNoOAuthServerAvailableForRequest"/>
+ <xs:enumeration value="ErrorInstantSearchSessionExpired"/>
+ <xs:enumeration value="ErrorInstantSearchTimeout"/>
+ <xs:enumeration value="ErrorInstantSearchFailed"/>
+ <xs:enumeration value="ErrorUnsupportedUserForExecuteSearch"/>
+ <xs:enumeration value="ErrorDuplicateExtendedKeywordDefinition"/>
+ <xs:enumeration value="ErrorMissingExchangePrincipal"/>
+ <xs:enumeration value="ErrorUnexpectedUnifiedGroupsCount"/>
+ <xs:enumeration value="ErrorParsingXMLResponse"/>
+ <xs:enumeration value="ErrorInvalidFederationOrganizationIdentifier"/>
+ <xs:enumeration value="ErrorInvalidSweepRule"/>
+ <xs:enumeration value="ErrorInvalidSweepRuleOperationType"/>
+ <xs:enumeration value="ErrorTargetDomainNotSupported"/>
+ <xs:enumeration value="ErrorInvalidInternetWebProxyOnLocalServer"/>
+ <xs:enumeration value="ErrorNoSenderRestrictionsSettingsFoundInRequest"/>
+ <xs:enumeration value="ErrorDuplicateSenderRestrictionsInputFound"/>
+ <xs:enumeration value="ErrorSenderRestrictionsUpdateFailed"/>
+ <xs:enumeration value="ErrorMessageSubmissionBlocked"/>
+ <xs:enumeration value="ErrorExceededMessageLimit"/>
+ <xs:enumeration value="ErrorExceededMaxRecipientLimitBlock"/>
+ <xs:enumeration value="ErrorAccountSuspend"/>
+ <xs:enumeration value="ErrorExceededMaxRecipientLimit"/>
+ <xs:enumeration value="ErrorMessageBlocked"/>
+ <xs:enumeration value="ErrorAccountSuspendShowTierUpgrade"/>
+ <xs:enumeration value="ErrorExceededMessageLimitShowTierUpgrade"/>
+ <xs:enumeration value="ErrorExceededMaxRecipientLimitShowTierUpgrade"/>
+ <xs:enumeration value="ErrorInvalidLongitude"/>
+ <xs:enumeration value="ErrorInvalidLatitude"/>
+ <xs:enumeration value="ErrorProxySoapException"/>
+ <xs:enumeration value="ErrorUnifiedGroupAlreadyExists"/>
+ <xs:enumeration value="ErrorUnifiedGroupAadAuthorizationRequestDenied"/>
+ <xs:enumeration value="ErrorUnifiedGroupCreationDisabled"/>
+ <xs:enumeration value="ErrorMarketPlaceExtensionAlreadyInstalledForOrg"/>
+ <xs:enumeration value="ErrorExtensionAlreadyInstalledForOrg"/>
+ <xs:enumeration value="ErrorNewerExtensionAlreadyInstalled"/>
+ <xs:enumeration value="ErrorNewerMarketPlaceExtensionAlreadyInstalled"/>
+ <xs:enumeration value="ErrorInvalidExtensionId"/>
+ <xs:enumeration value="ErrorCannotUninstallProvidedExtensions"/>
+ <xs:enumeration value="ErrorNoRbacPermissionToInstallMarketPlaceExtensions"/>
+ <xs:enumeration value="ErrorNoRbacPermissionToInstallReadWriteMailboxExtensions"/>
+ <xs:enumeration value="ErrorInvalidReportMessageActionType"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ResponseMessageType">
+ <xs:sequence minOccurs="0">
+ <xs:element name="MessageText" type="xs:string" minOccurs="0"/>
+ <xs:element name="ResponseCode" type="m:ResponseCodeType" minOccurs="0"/>
+ <xs:element name="DescriptiveLinkKey" type="xs:int" minOccurs="0"/>
+ <xs:element name="MessageXml" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="ResponseClass" type="t:ResponseClassType" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="ArrayOfResponseMessagesType">
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="CreateItemResponseMessage" type="m:ItemInfoResponseMessageType"/>
+ <xs:element name="DeleteItemResponseMessage" type="m:DeleteItemResponseMessageType"/>
+ <xs:element name="GetItemResponseMessage" type="m:ItemInfoResponseMessageType"/>
+ <xs:element name="UpdateItemResponseMessage" type="m:UpdateItemResponseMessageType"/>
+ <xs:element name="UpdateItemInRecoverableItemsResponseMessage" type="m:UpdateItemInRecoverableItemsResponseMessageType"/>
+ <xs:element name="SendItemResponseMessage" type="m:ResponseMessageType"/>
+ <xs:element name="DeleteFolderResponseMessage" type="m:ResponseMessageType"/>
+ <xs:element name="EmptyFolderResponseMessage" type="m:ResponseMessageType"/>
+ <xs:element name="CreateFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
+ <xs:element name="GetFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
+ <xs:element name="FindFolderResponseMessage" type="m:FindFolderResponseMessageType"/>
+ <xs:element name="UpdateFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
+ <xs:element name="MoveFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
+ <xs:element name="CopyFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
+ <xs:element name="CreateFolderPathResponseMessage" type="m:FolderInfoResponseMessageType"/>
+ <xs:element name="CreateAttachmentResponseMessage" type="m:AttachmentInfoResponseMessageType"/>
+ <xs:element name="DeleteAttachmentResponseMessage" type="m:DeleteAttachmentResponseMessageType"/>
+ <xs:element name="GetAttachmentResponseMessage" type="m:AttachmentInfoResponseMessageType"/>
+ <xs:element name="UploadItemsResponseMessage" type="m:UploadItemsResponseMessageType"/>
+ <xs:element name="ExportItemsResponseMessage" type="m:ExportItemsResponseMessageType"/>
+ <xs:element name="MarkAllItemsAsReadResponseMessage" type="m:ResponseMessageType"/>
+ <xs:element name="GetClientAccessTokenResponseMessage" type="m:GetClientAccessTokenResponseMessageType"/>
+ <xs:element name="GetAppManifestsResponseMessage" type="m:ResponseMessageType"/>
+ <xs:element name="SetClientExtensionResponseMessage" type="m:ResponseMessageType"/>
+ <xs:element name="GetOMEConfigurationResponseMessage" type="m:ResponseMessageType"/>
+ <xs:element name="SetOMEConfigurationResponseMessage" type="m:ResponseMessageType"/>
+ <!-- Generic response to enumerating the items below a folder -->
+ <xs:element name="FindItemResponseMessage" type="m:FindItemResponseMessageType"/>
+ <xs:element name="MoveItemResponseMessage" type="m:ItemInfoResponseMessageType"/>
+ <xs:element name="ArchiveItemResponseMessage" type="m:ItemInfoResponseMessageType"/>
+ <xs:element name="CopyItemResponseMessage" type="m:ItemInfoResponseMessageType"/>
+ <!-- ANR responses -->
+ <xs:element name="ResolveNamesResponseMessage" type="m:ResolveNamesResponseMessageType"/>
+ <xs:element name="ExpandDLResponseMessage" type="m:ExpandDLResponseMessageType"/>
+ <!-- GetServerTimeZones response -->
+ <xs:element name="GetServerTimeZonesResponseMessage" type="m:GetServerTimeZonesResponseMessageType"/>
+ <!-- Notification responses -->
+ <xs:element name="GetEventsResponseMessage" type="m:GetEventsResponseMessageType"/>
+ <xs:element name="GetStreamingEventsResponseMessage" type="m:GetStreamingEventsResponseMessageType"/>
+ <xs:element name="SubscribeResponseMessage" type="m:SubscribeResponseMessageType"/>
+ <xs:element name="UnsubscribeResponseMessage" type="m:ResponseMessageType"/>
+ <!-- Send Notification response -->
+ <xs:element name="SendNotificationResponseMessage" type="m:SendNotificationResponseMessageType" />
+ <!-- Sync responses -->
+ <xs:element name="SyncFolderHierarchyResponseMessage" type="m:SyncFolderHierarchyResponseMessageType"/>
+ <xs:element name="SyncFolderItemsResponseMessage" type="m:SyncFolderItemsResponseMessageType"/>
+ <!-- Managed Folder responses -->
+ <xs:element name="CreateManagedFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
+ <!-- ConvertId response-->
+ <xs:element name="ConvertIdResponseMessage" type="m:ConvertIdResponseMessageType"/>
+ <!-- Sharing responses-->
+ <xs:element name="GetSharingMetadataResponseMessage" type="m:GetSharingMetadataResponseMessageType"/>
+ <xs:element name="RefreshSharingFolderResponseMessage" type="m:RefreshSharingFolderResponseMessageType"/>
+ <xs:element name="GetSharingFolderResponseMessage" type="m:GetSharingFolderResponseMessageType"/>
+ <!-- UserConfiguration responses-->
+ <xs:element name="CreateUserConfigurationResponseMessage" type="m:ResponseMessageType"/>
+ <xs:element name="DeleteUserConfigurationResponseMessage" type="m:ResponseMessageType"/>
+ <xs:element name="GetUserConfigurationResponseMessage" type="m:GetUserConfigurationResponseMessageType"/>
+ <xs:element name="GetSpecificUserConfigurationResponseMessage" type="m:GetSpecificUserConfigurationResponseMessageType"/>
+ <xs:element name="UpdateUserConfigurationResponseMessage" type="m:ResponseMessageType"/>
+ <xs:element name="GetRoomListsResponse" type="m:GetRoomListsResponseMessageType"/>
+ <xs:element name="GetRoomsResponse" type="m:GetRoomsResponseMessageType"/>
+ <xs:element name="GetRemindersResponse" type="m:GetRemindersResponseMessageType"/>
+ <xs:element name="PerformReminderActionResponse" type="m:PerformReminderActionResponseMessageType"/>
+ <!-- ApplyConversation response-->
+ <xs:element name="ApplyConversationActionResponseMessage" type="m:ApplyConversationActionResponseMessageType"/>
+ <!-- FindMailboxStatisticsByKeywords response-->
+ <xs:element name="FindMailboxStatisticsByKeywordsResponseMessage" type="m:FindMailboxStatisticsByKeywordsResponseMessageType"/>
+ <!-- GetSearchableMailboxes response -->
+ <xs:element name="GetSearchableMailboxesResponseMessage" type="m:GetSearchableMailboxesResponseMessageType"/>
+ <!-- SearchMailboxes response -->
+ <xs:element name="SearchMailboxesResponseMessage" type="m:SearchMailboxesResponseMessageType"/>
+ <!-- GetDiscoverySearchConfiguration response -->
+ <xs:element name="GetDiscoverySearchConfigurationResponseMessage" type="m:GetDiscoverySearchConfigurationResponseMessageType"/>
+ <!-- GetHoldOnMailboxes response -->
+ <xs:element name="GetHoldOnMailboxesResponseMessage" type="m:GetHoldOnMailboxesResponseMessageType"/>
+ <!-- SetHoldOnMailboxes response -->
+ <xs:element name="SetHoldOnMailboxesResponseMessage" type="m:SetHoldOnMailboxesResponseMessageType"/>
+ <!-- GetNonIndexableItemStatistics response -->
+ <xs:element name="GetNonIndexableItemStatisticsResponseMessage" type="m:GetNonIndexableItemStatisticsResponseMessageType"/>
+ <!-- GetNonIndexableItemDetails response -->
+ <xs:element name="GetNonIndexableItemDetailsResponseMessage" type="m:GetNonIndexableItemDetailsResponseMessageType"/>
+ <!-- FindPeople response -->
+ <xs:element name="FindPeopleResponseMessage" type="m:FindPeopleResponseMessageType"/>
+ <!-- FindTags response -->
+ <xs:element name="FindTagsResponseMessage" type="m:FindTagsResponseMessageType"/>
+ <!-- AddTag response -->
+ <xs:element name="AddTagResponseMessage" type="m:AddTagResponseMessageType"/>
+ <!-- HideTag response -->
+ <xs:element name="HideTagResponseMessage" type="m:HideTagResponseMessageType"/>
+ <!-- GetPasswordExpirationDate response -->
+ <xs:element name="GetPasswordExpirationDateResponse" type="m:GetPasswordExpirationDateResponseMessageType"/>
+ <!-- GetPersona response -->
+ <xs:element name="GetPersonaResponseMessage" type="m:GetPersonaResponseMessageType"/>
+ <!-- GetConversationItems response -->
+ <xs:element name="GetConversationItemsResponseMessage" type="m:GetConversationItemsResponseMessageType"/>
+ <!-- GetUserRetentionPolicyTags response -->
+ <xs:element name="GetUserRetentionPolicyTagsResponseMessage" type="m:GetUserRetentionPolicyTagsResponseMessageType"/>
+ <!-- GetUserPhoto response -->
+ <xs:element name="GetUserPhotoResponseMessage" type="m:GetUserPhotoResponseMessageType"/>
+ <!-- MarkAsJunk response-->
+ <xs:element name="MarkAsJunkResponseMessage" type="m:MarkAsJunkResponseMessageType" />
+ <!-- ReportMessage response-->
+ <xs:element name="ReportMessageResponseMessage" type="m:ReportMessageResponseMessageType" />
+ <!-- PostModernGroupItem response-->
+ <xs:element name="PostModernGroupItemResponseMessage" type="m:ItemInfoResponseMessageType"/>
+ <!-- GetLastPrivateCatalogUpdate response-->
+ <xs:element name="GetLastPrivateCatalogUpdateResponseMessage" type="m:ResponseMessageType"/>
+ <!-- GetPrivateCatalogAddIns response -->
+ <xs:element name="GetPrivateCatalogAddInsResponseMessage" type="m:ResponseMessageType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- Base types for all messages. -->
+ <xs:complexType name="BaseResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ResponseMessages" type="m:ArrayOfResponseMessagesType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="BaseRequestType" abstract="true"/>
+ <!-- Folder Service messages. -->
+ <xs:complexType name="GetFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="FolderShape" type="t:FolderResponseShapeType"/>
+ <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetFolder" type="m:GetFolderType"/>
+
+ <!-- Upload Items -->
+ <!-- request -->
+ <xs:complexType name="UploadItemsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Items" type="t:NonEmptyArrayOfUploadItemsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="UploadItems" type="m:UploadItemsType"/>
+
+ <!-- upload Items response message -->
+ <xs:complexType name="UploadItemsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <!-- upload items response -->
+ <xs:complexType name="UploadItemsResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="UploadItemsResponse" type="m:UploadItemsResponseType"/>
+
+ <!-- ExportItems -->
+ <xs:complexType name="ExportItemsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemIds" type="t:NonEmptyArrayOfItemIdsType" minOccurs ="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="ExportItems" type="m:ExportItemsType"/>
+
+ <!-- ExportItems response message -->
+ <xs:complexType name="ExportItemsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs ="0" maxOccurs ="1"/>
+ <xs:element name="Data" type="xs:base64Binary" minOccurs="0" maxOccurs ="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- ExportItems response type -->
+ <xs:complexType name="ExportItemsResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="ExportItemsResponse" type="m:ExportItemsResponseType"/>
+
+
+ <!-- Creating a folder. -->
+ <xs:complexType name="CreateFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ParentFolderId" type="t:TargetFolderIdType"/>
+ <xs:element name="Folders" type="t:NonEmptyArrayOfFoldersType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateFolder" type="m:CreateFolderType"/>
+ <!-- Enumerate folders beneath the elements of a list of folders (Reading, 1) -->
+ <xs:complexType name="FindFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="FolderShape" type="t:FolderResponseShapeType"/>
+ <xs:choice maxOccurs="1" minOccurs="0">
+ <xs:element name="IndexedPageFolderView" type="t:IndexedPageViewType"/>
+ <xs:element name="FractionalPageFolderView" type="t:FractionalPageViewType"/>
+ </xs:choice>
+ <xs:element name="Restriction" type="t:RestrictionType" minOccurs="0"/>
+ <xs:element name="ParentFolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
+ </xs:sequence>
+ <xs:attribute name="Traversal" type="t:FolderQueryTraversalType" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="FindFolder" type="m:FindFolderType"/>
+ <!-- Generic response to reading a folder's properties. -->
+ <xs:complexType name="FolderInfoResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Folders" type="t:ArrayOfFoldersType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <!-- FindFolder response type-->
+ <xs:complexType name="FindFolderResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="RootFolder" type="t:FindFolderParentType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="FindFolderResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="FindFolderResponse" type="m:FindFolderResponseType"/>
+ <!-- Deleting a folder. -->
+ <xs:complexType name="DeleteFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
+ </xs:sequence>
+ <xs:attribute name="DeleteType" type="t:DisposalType" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DeleteFolder" type="m:DeleteFolderType"/>
+ <xs:complexType name="DeleteFolderResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DeleteFolderResponse" type="m:DeleteFolderResponseType"/>
+ <!-- Emptying a folder. -->
+ <xs:complexType name="EmptyFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
+ </xs:sequence>
+ <xs:attribute name="DeleteType" type="t:DisposalType" use="required"/>
+ <xs:attribute name="DeleteSubFolders" type="xs:boolean" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="EmptyFolder" type="m:EmptyFolderType"/>
+ <xs:complexType name="EmptyFolderResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="EmptyFolderResponse" type="m:EmptyFolderResponseType"/>
+ <!-- Base for Move/Copy folders -->
+ <xs:complexType name="BaseMoveCopyFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ToFolderId" type="t:TargetFolderIdType"/>
+ <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <!-- Move folders -->
+ <xs:complexType name="MoveFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseMoveCopyFolderType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <!-- Copy folders -->
+ <xs:complexType name="CopyFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseMoveCopyFolderType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="MoveFolder" type="m:MoveFolderType"/>
+ <xs:element name="CopyFolder" type="m:CopyFolderType"/>
+ <xs:complexType name="UpdateFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="FolderChanges" type="t:NonEmptyArrayOfFolderChangesType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="UpdateFolder" type="m:UpdateFolderType"/>
+ <xs:complexType name="CreateFolderResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateFolderResponse" type="m:CreateFolderResponseType"/>
+ <xs:complexType name="GetFolderResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetFolderResponse" type="m:GetFolderResponseType"/>
+ <xs:complexType name="UpdateFolderResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="UpdateFolderResponse" type="m:UpdateFolderResponseType"/>
+ <xs:complexType name="MoveFolderResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="CopyFolderResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="MoveFolderResponse" type="m:MoveFolderResponseType"/>
+ <xs:element name="CopyFolderResponse" type="m:CopyFolderResponseType"/>
+
+ <xs:complexType name="CreateFolderPathType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ParentFolderId" type="t:TargetFolderIdType"/>
+ <xs:element name="RelativeFolderPath" type="t:NonEmptyArrayOfFoldersType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateFolderPath" type="m:CreateFolderPathType"/>
+ <xs:complexType name="CreateFolderPathResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateFolderPathResponse" type="m:CreateFolderPathResponseType"/>
+ <!-- Reading an item. -->
+
+ <xs:complexType name="GetItemType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemShape" type="t:ItemResponseShapeType"/>
+ <xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetItem" type="m:GetItemType"/>
+
+ <xs:complexType name="CreateItemType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SavedItemFolderId" type="t:TargetFolderIdType" minOccurs="0"/>
+ <xs:element name="Items" type="t:NonEmptyArrayOfAllItemsType"/>
+ </xs:sequence>
+ <xs:attribute name="MessageDisposition" type="t:MessageDispositionType" use="optional"/>
+ <xs:attribute name="SendMeetingInvitations" type="t:CalendarItemCreateOrDeleteOperationType" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateItem" type="m:CreateItemType"/>
+
+ <xs:complexType name="UpdateItemType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SavedItemFolderId" type="t:TargetFolderIdType" minOccurs="0"/>
+ <xs:element name="ItemChanges" type="t:NonEmptyArrayOfItemChangesType"/>
+ </xs:sequence>
+ <xs:attribute name="ConflictResolution" type="t:ConflictResolutionType" use="required"/>
+ <xs:attribute name="MessageDisposition" type="t:MessageDispositionType" use="optional"/>
+ <xs:attribute name="SendMeetingInvitationsOrCancellations" type="t:CalendarItemUpdateOperationType" use="optional"/>
+ <xs:attribute name="SuppressReadReceipts" type="xs:boolean" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateItem" type="m:UpdateItemType"/>
+
+ <xs:complexType name="ItemInfoResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Items" type="t:ArrayOfRealItemsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="UpdateItemResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ItemInfoResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ConflictResults" type="t:ConflictResultsType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Updating a draft item in dumpster-->
+
+ <xs:complexType name="UpdateItemInRecoverableItemsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" />
+ <xs:element name="Updates" type="t:NonEmptyArrayOfItemChangeDescriptionsType" minOccurs="0"/>
+ <xs:element name="Attachments" type="t:NonEmptyArrayOfAttachmentsType" minOccurs="0"/>
+ <xs:element name="MakeItemImmutable" type="xs:boolean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateItemInRecoverableItems" type="m:UpdateItemInRecoverableItemsType"/>
+
+ <xs:complexType name="UpdateItemInRecoverableItemsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ItemInfoResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Attachments" type="t:ArrayOfAttachmentsType" minOccurs="0"/>
+ <xs:element name="ConflictResults" type="t:ConflictResultsType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Deleting an item. -->
+
+ <xs:complexType name="DeleteItemType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType"/>
+ </xs:sequence>
+ <xs:attribute name="DeleteType" type="t:DisposalType" use="required" />
+ <xs:attribute name="SendMeetingCancellations" type="t:CalendarItemCreateOrDeleteOperationType" use="optional"/>
+ <xs:attribute name="AffectedTaskOccurrences" type="t:AffectedTaskOccurrencesType" use="optional"/>
+ <xs:attribute name="SuppressReadReceipts" type="xs:boolean" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="DeleteItem" type="m:DeleteItemType"/>
+
+ <!-- Attachment info response message -->
+
+ <xs:complexType name="AttachmentInfoResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Attachments" type="t:ArrayOfAttachmentsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Delete attachment response message -->
+
+ <xs:complexType name="DeleteAttachmentResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="RootItemId" type="t:RootItemIdType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Base for Move/Copy items between folders -->
+
+ <xs:complexType name="BaseMoveCopyItemType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ToFolderId" type="t:TargetFolderIdType"/>
+ <xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType"/>
+ <xs:element name="ReturnNewItemIds" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <!-- Move items between folders -->
+ <xs:complexType name="MoveItemType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseMoveCopyItemType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <!-- Copy items between folders -->
+ <xs:complexType name="CopyItemType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseMoveCopyItemType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="MoveItem" type="m:MoveItemType"/>
+ <xs:element name="CopyItem" type="m:CopyItemType"/>
+
+ <!-- Archive Items to a folder in archive. -->
+ <xs:complexType name="ArchiveItemType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ArchiveSourceFolderId" type="t:TargetFolderIdType"/>
+ <xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="ArchiveItem" type="m:ArchiveItemType"/>
+
+ <!-- Send an email or post a note to a folder. -->
+ <xs:complexType name="SendItemType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType"/>
+ <xs:element name="SavedItemFolderId" type="t:TargetFolderIdType" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="SaveItemToFolder" type="xs:boolean" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SendItem" type="m:SendItemType"/>
+
+ <!-- Response to a command to send or post an item -->
+ <xs:complexType name="SendItemResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SendItemResponse" type="m:SendItemResponseType"/>
+
+ <xs:complexType name="QueryStringType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="ResetCache" type="xs:boolean" use="optional"/>
+ <xs:attribute name="ReturnHighlightTerms" type="xs:boolean" use="optional"/>
+ <xs:attribute name="ReturnDeletedItems" type="xs:boolean" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- Enumerate items in a list of folders (Reading, 2) -->
+ <xs:complexType name="FindItemType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemShape" type="t:ItemResponseShapeType"/>
+ <xs:choice minOccurs="0">
+ <xs:element name="IndexedPageItemView" type="t:IndexedPageViewType"/>
+ <xs:element name="FractionalPageItemView" type="t:FractionalPageViewType"/>
+ <xs:element name="SeekToConditionPageItemView" type="t:SeekToConditionPageViewType"/>
+ <xs:element name="CalendarView" type="t:CalendarViewType"/>
+ <xs:element name="ContactsView" type="t:ContactsViewType"/>
+ </xs:choice>
+ <xs:choice minOccurs="0">
+ <xs:element name="GroupBy" type="t:GroupByType"/>
+ <xs:element name="DistinguishedGroupBy" type="t:DistinguishedGroupByType"/>
+ </xs:choice>
+ <xs:element name="Restriction" type="t:RestrictionType" minOccurs="0"/>
+ <xs:element name="SortOrder" type="t:NonEmptyArrayOfFieldOrdersType" minOccurs="0"/>
+ <xs:element name="ParentFolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
+ <xs:element name="QueryString" type="m:QueryStringType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="Traversal" type="t:ItemQueryTraversalType" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindItem" type="m:FindItemType"/>
+
+ <!-- Enumerate Conversation in a folder -->
+ <xs:complexType name="FindConversationType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element name="IndexedPageItemView" type="t:IndexedPageViewType"/>
+ <xs:element name="SeekToConditionPageItemView" type="t:SeekToConditionPageViewType"/>
+ </xs:choice>
+ <xs:element name="SortOrder" type="t:NonEmptyArrayOfFieldOrdersType" minOccurs="0"/>
+ <xs:element name="ParentFolderId" type="t:TargetFolderIdType" minOccurs="1"/>
+ <xs:element name="MailboxScope" type="t:MailboxSearchLocationType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="QueryString" type="m:QueryStringType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ConversationShape" type="t:ConversationResponseShapeType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="Traversal" type="t:ConversationQueryTraversalType" use="optional"/>
+ <xs:attribute name="ViewFilter" type="t:ViewFilterType" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindConversation" type="m:FindConversationType"/>
+
+ <xs:complexType name="FindConversationResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Conversations" type="t:ArrayOfConversationsType" minOccurs="0" />
+ <xs:element name="HighlightTerms" type="t:ArrayOfHighlightTermsType" minOccurs="0" />
+ <xs:element name="TotalConversationsInView" type="xs:int" minOccurs="0" />
+ <xs:element name="IndexedOffset" type="xs:int" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindConversationResponse" type="m:FindConversationResponseMessageType"/>
+
+ <!-- Instant Search API v1.0 -->
+
+ <xs:complexType name="PerformInstantSearchRequest">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SearchSessionId" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="ItemType" type="t:InstantSearchItemType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="QueryOptions" type="t:QueryOptionsType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SearchRequestId" type="xs:long" minOccurs="1" maxOccurs="1" />
+ <xs:element name="KqlQuery" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="FolderScope" type="t:ArrayOfFolderIdType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="DistinguishedFolderScope" type="t:ArrayOfDistinguishedFolderIdType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsDeepTraversal" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="WaitOnSearchResults" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="PerformInstantSearch" type="m:PerformInstantSearchRequest"/>
+
+ <xs:complexType name="PerformInstantSearchResponse">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Payload" type="t:InstantSearchPayloadType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="PerformInstantSearchResponse" type="m:PerformInstantSearchResponse"/>
+
+ <xs:complexType name="EndInstantSearchSessionRequest">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SessionId" type="xs:string" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="EndInstantSearchSession" type="m:EndInstantSearchSessionRequest"/>
+
+
+ <!-- Apply Actions to a conversation -->
+
+ <xs:complexType name="ApplyConversationActionType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ConversationActions" type="t:NonEmptyArrayOfApplyConversationActionType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="ApplyConversationAction" type="m:ApplyConversationActionType"/>
+
+ <!-- ApplyConversationAction response -->
+ <xs:complexType name="ApplyConversationActionResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="ApplyConversationActionResponse" type="m:ApplyConversationActionResponseType"/>
+
+ <xs:complexType name="ApplyConversationActionResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Enumerate People in a folder -->
+ <xs:complexType name="FindPeopleType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="PersonaShape" type="t:PersonaResponseShapeType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="IndexedPageItemView" type="t:IndexedPageViewType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Restriction" type="t:RestrictionType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AggregationRestriction" type="t:RestrictionType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SortOrder" type="t:NonEmptyArrayOfFieldOrdersType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ParentFolderId" type="t:TargetFolderIdType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="QueryString" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SearchPeopleSuggestionIndex" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="TopicQueryString" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Context" type="t:ArrayOfContextProperty" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="QuerySources" type="t:ArrayOfPeopleQuerySource" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindPeople" type="m:FindPeopleType"/>
+
+ <xs:complexType name="FindPeopleResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="People" type="t:ArrayOfPeopleType" minOccurs="0"/>
+ <xs:element name="TotalNumberOfPeopleInView" type="xs:int" minOccurs="0" />
+ <xs:element name="FirstMatchingRowIndex" type="xs:int" minOccurs="0" />
+ <xs:element name="FirstLoadedRowIndex" type="xs:int" minOccurs="0" />
+ <xs:element name="TransactionId" type="t:GuidType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindPeopleResponse" type="m:FindPeopleResponseMessageType"/>
+
+ <!-- Enumerate Tags in a folder -->
+ <xs:complexType name="FindTagsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="IndexedPageItemView" type="t:IndexedPageViewType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SortOrder" type="t:NonEmptyArrayOfFieldOrdersType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="QueryString" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Context" type="t:ArrayOfContextProperty" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindTags" type="m:FindTagsType"/>
+
+ <xs:complexType name="FindTagsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Tags" type="t:ArrayOfStringsType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindTagsResponse" type="m:FindTagsResponseMessageType"/>
+
+ <!-- Add tag -->
+ <xs:complexType name="AddTagType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Tag" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="AppName" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddTag" type="m:AddTagType"/>
+
+ <xs:complexType name="AddTagResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="WasSuccessful" type="xs:boolean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddTagResponse" type="m:AddTagResponseMessageType"/>
+
+ <!-- Hide tag -->
+ <xs:complexType name="HideTagType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Tag" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="HideTag" type="m:HideTagType"/>
+
+ <xs:complexType name="HideTagResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="WasSuccessful" type="xs:boolean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="HideTagResponse" type="m:HideTagResponseMessageType"/>
+
+ <!-- Get a specific Persona -->
+ <xs:complexType name="GetPersonaType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="PersonaId" type="t:ItemIdType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="EmailAddress" type="t:EmailAddressType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ParentFolderId" type="t:TargetFolderIdType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ItemLinkId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetPersona" type="m:GetPersonaType"/>
+
+ <xs:complexType name="GetPersonaResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Persona" type="t:PersonaType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetPersonaResponseMessage" type="m:GetPersonaResponseMessageType"/>
+
+ <!-- Creating attachments -->
+ <xs:complexType name="CreateAttachmentType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ParentItemId" type="t:ItemIdType" minOccurs="1" />
+ <xs:element name="Attachments" type="t:NonEmptyArrayOfAttachmentsType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateAttachment" type="m:CreateAttachmentType" />
+ <xs:complexType name="CreateAttachmentResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateAttachmentResponse" type="m:CreateAttachmentResponseType"/>
+
+ <!-- Deleting attachments -->
+ <xs:complexType name="DeleteAttachmentType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="AttachmentIds" type="t:NonEmptyArrayOfRequestAttachmentIdsType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DeleteAttachment" type="m:DeleteAttachmentType" />
+ <xs:complexType name="DeleteAttachmentResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DeleteAttachmentResponse" type="m:DeleteAttachmentResponseType"/>
+
+ <!-- Accessing attachments -->
+ <xs:complexType name="GetAttachmentType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="AttachmentShape" type="t:AttachmentResponseShapeType" minOccurs="0"/>
+ <xs:element name="AttachmentIds" type="t:NonEmptyArrayOfRequestAttachmentIdsType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetAttachment" type="m:GetAttachmentType" />
+ <xs:complexType name="GetAttachmentResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetAttachmentResponse" type="m:GetAttachmentResponseType"/>
+
+ <xs:complexType name="CreateItemResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateItemResponse" type="m:CreateItemResponseType"/>
+ <xs:complexType name="UpdateItemResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="UpdateItemResponse" type="m:UpdateItemResponseType"/>
+ <xs:complexType name="UpdateItemInRecoverableItemsResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="UpdateItemInRecoverableItemsResponse" type="m:UpdateItemInRecoverableItemsResponseType"/>
+ <xs:complexType name="GetItemResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetItemResponse" type="m:GetItemResponseType"/>
+ <xs:complexType name="MoveItemResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="CopyItemResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="MoveItemResponse" type="m:MoveItemResponseType"/>
+ <xs:element name="CopyItemResponse" type="m:CopyItemResponseType"/>
+
+ <!-- DeleteItem response -->
+ <xs:complexType name="DeleteItemResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DeleteItemResponse" type="m:DeleteItemResponseType"/>
+
+ <xs:complexType name="DeleteItemResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- FindItem response type-->
+ <xs:complexType name="FindItemResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="RootFolder" type="t:FindItemParentType" minOccurs="0"/>
+ <xs:element name="HighlightTerms" type="t:ArrayOfHighlightTermsType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="FindItemResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="FindItemResponse" type="m:FindItemResponseType"/>
+
+ <xs:complexType name="ArchiveItemResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="ArchiveItemResponse" type="m:ArchiveItemResponseType"/>
+
+ <xs:complexType name="GetClientAccessTokenType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="TokenRequests" type="t:NonEmptyArrayOfClientAccessTokenRequestsType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetClientAccessToken" type="m:GetClientAccessTokenType"/>
+
+ <xs:complexType name="GetClientAccessTokenResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Token" type="t:ClientAccessTokenType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="GetClientAccessTokenResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetClientAccessTokenResponse" type="m:GetClientAccessTokenResponseType"/>
+
+ <!-- CRUD operations for focused/other overrides -->
+ <!-- Retrieve overrides -->
+ <xs:complexType name="GetFocusedOtherOverridesRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetFocusedOtherOverrides" type="m:GetFocusedOtherOverridesRequestType" />
+
+ <xs:complexType name="GetFocusedOtherOverridesResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Overrides" type="t:ArrayOfInferenceClassificationOverridesType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetFocusedOtherOverridesResponse" type="m:GetFocusedOtherOverridesResponseType"/>
+
+ <!-- Create or update override -->
+ <xs:complexType name="CreateOrUpdateFocusedOtherOverrideRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SenderSmtpAddress" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SenderDisplayName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="AlwaysClassifyAs" type="t:InferenceClassificationType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateOrUpdateFocusedOtherOverride" type="m:CreateOrUpdateFocusedOtherOverrideRequestType" />
+
+ <xs:complexType name="CreateOrUpdateFocusedOtherOverrideResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Override" type="t:InferenceClassificationOverrideType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateOrUpdateFocusedOtherOverrideResponse" type="m:CreateOrUpdateFocusedOtherOverrideResponseType"/>
+
+ <!-- Delete FocusedOtherOverride -->
+ <xs:complexType name="DeleteFocusedOtherOverrideRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Id" type="t:GuidType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DeleteFocusedOtherOverride" type="m:DeleteFocusedOtherOverrideRequestType" />
+
+
+ <xs:complexType name="DeleteFocusedOtherOverrideResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Override" type="t:InferenceClassificationOverrideType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DeleteFocusedOtherOverrideResponse" type="m:DeleteFocusedOtherOverrideResponseType"/>
+
+ <!-- Util Service messages -->
+ <!-- ResolveNames request -->
+
+ <xs:complexType name="ResolveNamesType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ParentFolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType" minOccurs="0"/>
+ <xs:element name="UnresolvedEntry" type="t:NonEmptyStringType" />
+ </xs:sequence>
+ <xs:attribute name="ReturnFullContactData" type="xs:boolean" use="required" />
+ <xs:attribute name="SearchScope" type="t:ResolveNamesSearchScopeType" default="ActiveDirectoryContacts" />
+ <xs:attribute name="ContactDataShape" type="t:DefaultShapeNamesType" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="ResolveNames" type="m:ResolveNamesType"/>
+
+ <!-- ResolveNames response -->
+
+ <xs:complexType name="ResolveNamesResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ResolutionSet" type="t:ArrayOfResolutionType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ResolveNamesResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="ResolveNamesResponse" type="m:ResolveNamesResponseType"/>
+
+ <!-- GetPasswordExpirationDate -->
+
+ <xs:complexType name="GetPasswordExpirationDateType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="MailboxSmtpAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetPasswordExpirationDate" type="m:GetPasswordExpirationDateType"/>
+
+ <!-- GetPasswordExpirationDate response message -->
+
+ <xs:complexType name="GetPasswordExpirationDateResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="PasswordExpirationDate" type="xs:dateTime"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetPasswordExpirationDateResponse" type="m:GetPasswordExpirationDateResponseMessageType"/>
+
+ <!-- MailTips -->
+
+ <xs:complexType name="GetMailTipsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SendingAs" type="t:EmailAddressType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Recipients" type="t:ArrayOfRecipientsType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="MailTipsRequested" type="t:MailTipTypes" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetMailTips" type="m:GetMailTipsType"/>
+
+ <xs:element name="GetMailTipsResponse" type="m:GetMailTipsResponseMessageType"/>
+
+ <xs:complexType name="GetMailTipsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ResponseMessages" type="m:ArrayOfMailTipsResponseMessageType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfMailTipsResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MailTipsResponseMessageType" type="m:MailTipsResponseMessageType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MailTipsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MailTips" type="t:MailTips" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- PlayOnPhone Request -->
+ <xs:complexType name="PlayOnPhoneType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="DialString" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="PlayOnPhone" type="m:PlayOnPhoneType"/>
+
+ <!-- PlayOnPhone Response -->
+ <xs:complexType name="PlayOnPhoneResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="PhoneCallId" type="t:PhoneCallIdType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="PlayOnPhoneResponse" type="m:PlayOnPhoneResponseMessageType"/>
+
+ <!-- GetPhoneCallInformation Request -->
+ <xs:complexType name="GetPhoneCallInformationType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="PhoneCallId" type="t:PhoneCallIdType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetPhoneCallInformation" type="m:GetPhoneCallInformationType"/>
+
+ <!-- GetPhoneCallInformation Response -->
+ <xs:complexType name="GetPhoneCallInformationResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="PhoneCallInformation" type="t:PhoneCallInformationType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetPhoneCallInformationResponse" type="m:GetPhoneCallInformationResponseMessageType"/>
+
+ <!-- DisconnectPhoneCall Request -->
+ <xs:complexType name="DisconnectPhoneCallType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="PhoneCallId" type="t:PhoneCallIdType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="DisconnectPhoneCall" type="m:DisconnectPhoneCallType"/>
+
+ <!-- DisconnectPhoneCall Response -->
+ <xs:complexType name="DisconnectPhoneCallResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="DisconnectPhoneCallResponse" type="m:DisconnectPhoneCallResponseMessageType"/>
+
+ <!-- ExpandDL request -->
+
+ <xs:complexType name="ExpandDLType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Mailbox" type="t:EmailAddressType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="ExpandDL" type="m:ExpandDLType"/>
+
+ <!-- ExpandDL response -->
+
+ <xs:complexType name="ExpandDLResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="DLExpansion" type="t:ArrayOfDLExpansionType" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="t:FindResponsePagingAttributes" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ExpandDLResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="ExpandDLResponse" type="m:ExpandDLResponseType"/>
+
+ <!-- Get TimeZones -->
+
+ <xs:complexType name="GetServerTimeZonesType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Ids" type="t:NonEmptyArrayOfTimeZoneIdType" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="ReturnFullTimeZoneData" type="xs:boolean" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetServerTimeZones" type="m:GetServerTimeZonesType"/>
+
+ <!-- TimeZones response -->
+
+ <xs:complexType name="GetServerTimeZonesResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="TimeZoneDefinitions" type="t:ArrayOfTimeZoneDefinitionType" minOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="GetServerTimeZonesResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetServerTimeZonesResponse" type="m:GetServerTimeZonesResponseType"/>
+
+ <!-- CreateManagedFolder request type. -->
+ <xs:complexType name="CreateManagedFolderRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="FolderNames" type="t:NonEmptyArrayOfFolderNamesType"/>
+ <xs:element name="Mailbox" type="t:EmailAddressType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateManagedFolder" type="m:CreateManagedFolderRequestType"/>
+ <!-- CreateManagedFolder response type. -->
+ <xs:complexType name="CreateManagedFolderResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="CreateManagedFolderResponse" type="m:CreateManagedFolderResponseType"/>
+ <!-- Subscribe request -->
+ <xs:complexType name="SubscribeType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:choice>
+ <xs:element name="PullSubscriptionRequest" type="t:PullSubscriptionRequestType"/>
+ <xs:element name="PushSubscriptionRequest" type="t:PushSubscriptionRequestType"/>
+ <xs:element name="StreamingSubscriptionRequest" type="t:StreamingSubscriptionRequestType"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="Subscribe" type="m:SubscribeType"/>
+ <!-- Subscribe response -->
+ <xs:complexType name="SubscribeResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="SubscriptionId" type="t:SubscriptionIdType" minOccurs="0"/>
+ <xs:element name="Watermark" type="t:WatermarkType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="SubscribeResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="SubscribeResponse" type="m:SubscribeResponseType"/>
+ <!-- Unsubscribe request -->
+ <xs:complexType name="UnsubscribeType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SubscriptionId" type="t:SubscriptionIdType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="Unsubscribe" type="m:UnsubscribeType"/>
+ <!-- Unsubscribe response -->
+ <xs:complexType name="UnsubscribeResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UnsubscribeResponse" type="m:UnsubscribeResponseType"/>
+ <!-- GetEvents request -->
+ <xs:complexType name="GetEventsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SubscriptionId" type="t:SubscriptionIdType"/>
+ <xs:element name="Watermark" type="t:WatermarkType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetEvents" type="m:GetEventsType"/>
+ <!-- GetEvents response -->
+ <xs:complexType name="GetEventsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Notification" type="t:NotificationType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="GetEventsResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetEventsResponse" type="m:GetEventsResponseType"/>
+
+ <!-- GetStreamingEvents request -->
+ <xs:complexType name="GetStreamingEventsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SubscriptionIds"
+ type="t:NonEmptyArrayOfSubscriptionIdsType"/>
+ <xs:element name="ConnectionTimeout"
+ type="t:StreamingSubscriptionConnectionTimeoutType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetStreamingEvents" type="m:GetStreamingEventsType"/>
+ <!-- GetStreamingEvents response -->
+ <xs:complexType name="GetStreamingEventsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Notifications" type="t:NonEmptyArrayOfNotificationsType"
+ minOccurs="0"/>
+ <xs:element name="ErrorSubscriptionIds"
+ type="t:NonEmptyArrayOfSubscriptionIdsType" minOccurs="0"/>
+ <xs:element name="ConnectionStatus"
+ type="t:ConnectionStatusType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="GetStreamingEventsResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetStreamingEventsResponse" type="m:GetStreamingEventsResponseType"/>
+
+ <!-- SendNotification request -->
+ <xs:complexType name="SendNotificationResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Notification" type="t:NotificationType" minOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SendNotificationResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SendNotification" type="m:SendNotificationResponseType"/>
+
+ <!-- SendNotification response -->
+ <xs:complexType name="SendNotificationResultType">
+ <xs:sequence>
+ <xs:element name="SubscriptionStatus" type="t:SubscriptionStatusType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="SendNotificationResult" type="m:SendNotificationResultType"/>
+
+ <!-- Sync Service messages. -->
+ <xs:complexType name="SyncFolderHierarchyType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="FolderShape" type="t:FolderResponseShapeType" minOccurs="1"/>
+ <xs:element name="SyncFolderId" type="t:TargetFolderIdType" minOccurs="0" />
+ <xs:element name="SyncState" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SyncFolderHierarchy" type="m:SyncFolderHierarchyType"/>
+
+ <xs:complexType name="SyncFolderHierarchyResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="SyncState" type="xs:string" minOccurs="0"/>
+ <xs:element name="IncludesLastFolderInRange" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="Changes" type="t:SyncFolderHierarchyChangesType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="SyncFolderHierarchyResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SyncFolderHierarchyResponse" type="m:SyncFolderHierarchyResponseType"/>
+
+ <xs:complexType name="SyncFolderItemsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemShape" type="t:ItemResponseShapeType" minOccurs="1"/>
+ <xs:element name="SyncFolderId" type="t:TargetFolderIdType" minOccurs="1"/>
+ <xs:element name="SyncState" type="xs:string" minOccurs="0"/>
+ <xs:element name="Ignore" type="t:ArrayOfBaseItemIdsType" minOccurs="0"/>
+ <xs:element name="MaxChangesReturned" type="t:MaxSyncChangesReturnedType" minOccurs="1"/>
+ <xs:element name="SyncScope" type="t:SyncFolderItemsScopeType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SyncFolderItems" type="m:SyncFolderItemsType"/>
+
+ <xs:complexType name="SyncFolderItemsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="SyncState" type="xs:string" minOccurs="0"/>
+ <xs:element name="IncludesLastItemInRange" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="Changes" type="t:SyncFolderItemsChangesType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="SyncFolderItemsResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SyncFolderItemsResponse" type="m:SyncFolderItemsResponseType"/>
+
+ <!-- Availability Service message definitions -->
+
+ <!-- GetUserAvailabilityRequest -->
+
+ <xs:complexType name="GetUserAvailabilityRequestType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" ref="t:TimeZone" />
+ <xs:element name="MailboxDataArray" type="t:ArrayOfMailboxData" />
+ <xs:element minOccurs="0" maxOccurs="1" ref="t:FreeBusyViewOptions" />
+ <xs:element minOccurs="0" maxOccurs="1" ref="t:SuggestionsViewOptions" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetUserAvailabilityRequest" type="m:GetUserAvailabilityRequestType" />
+
+ <!-- FreeBusyResponse -->
+
+ <xs:complexType name="FreeBusyResponseType">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="ResponseMessage" type="m:ResponseMessageType" />
+ <xs:element minOccurs="0" maxOccurs="1" name="FreeBusyView" type="t:FreeBusyView" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfFreeBusyResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="FreeBusyResponse" type="m:FreeBusyResponseType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SuggestionsResponseType">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="ResponseMessage" type="m:ResponseMessageType" />
+ <xs:element minOccurs="0" maxOccurs="1" name="SuggestionDayResultArray" type="t:ArrayOfSuggestionDayResult" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- GetUserAvailabilityResponse -->
+
+ <xs:complexType name="GetUserAvailabilityResponseType">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="FreeBusyResponseArray" type="m:ArrayOfFreeBusyResponse" />
+ <xs:element minOccurs="0" maxOccurs="1" name="SuggestionsResponse" type="m:SuggestionsResponseType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="GetUserAvailabilityResponse" type="m:GetUserAvailabilityResponseType" />
+
+ <!-- GetUserOofSettingsRequest -->
+
+ <xs:complexType name="GetUserOofSettingsRequest">
+ <xs:complexContent mixed="false">
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" ref="t:Mailbox" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetUserOofSettingsRequest" type="m:GetUserOofSettingsRequest" />
+
+ <!-- GetUserOofSettingsResponse -->
+
+ <xs:complexType name="GetUserOofSettingsResponse">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="ResponseMessage" type="m:ResponseMessageType" />
+ <xs:element minOccurs="0" maxOccurs="1" ref="t:OofSettings" />
+ <xs:element minOccurs="0" maxOccurs="1" name="AllowExternalOof" type="t:ExternalAudience" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="GetUserOofSettingsResponse" type="m:GetUserOofSettingsResponse" />
+
+ <!-- SetUserOofSettingsRequest -->
+
+ <xs:complexType name="SetUserOofSettingsRequest">
+ <xs:complexContent mixed="false">
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" ref="t:Mailbox" />
+ <xs:element minOccurs="1" maxOccurs="1" ref="t:UserOofSettings" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="SetUserOofSettingsRequest" type="m:SetUserOofSettingsRequest" />
+
+ <!-- SetUserOofSettingsResponse -->
+
+ <xs:complexType name="SetUserOofSettingsResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="ResponseMessage" type="m:ResponseMessageType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="SetUserOofSettingsResponse" type="m:SetUserOofSettingsResponse" />
+
+ <!-- ConvertId web method and response -->
+ <xs:complexType name="ConvertIdType">
+ <xs:annotation>
+ <xs:documentation>
+ Converts the passed source ids into the destination format. Change keys are not
+ returned.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SourceIds" type="t:NonEmptyArrayOfAlternateIdsType" minOccurs ="1" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="DestinationFormat" type="t:IdFormatType" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="ConvertId" type="m:ConvertIdType"/>
+
+ <xs:complexType name="ConvertIdResponseType">
+ <xs:annotation>
+ <xs:documentation>Response type for the ConvertId web method</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="ConvertIdResponse" type="m:ConvertIdResponseType"/>
+
+ <xs:complexType name="ConvertIdResponseMessageType">
+ <xs:annotation>
+ <xs:documentation>
+ 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.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="AlternateId" type="t:AlternateIdBaseType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- GetDelegate web method and response -->
+ <xs:complexType name="GetDelegateType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseDelegateType">
+ <xs:sequence>
+ <xs:element name="UserIds" type="t:ArrayOfUserIdType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ <xs:attribute name="IncludePermissions" type="xs:boolean" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetDelegate" type="m:GetDelegateType"/>
+
+ <xs:complexType name="GetDelegateResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseDelegateResponseMessageType">
+ <xs:sequence>
+ <xs:element name="DeliverMeetingRequests" type="t:DeliverMeetingRequestsType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfDelegateUserResponseMessageType">
+ <xs:sequence>
+ <xs:element name="DelegateUserResponseMessageType" type="m:DelegateUserResponseMessageType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DelegateUserResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="DelegateUser" type="t:DelegateUserType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetDelegateResponse" type="m:GetDelegateResponseMessageType"/>
+
+ <!-- AddDelegate web method and response -->
+ <xs:complexType name="AddDelegateType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseDelegateType">
+ <xs:sequence>
+ <xs:element name="DelegateUsers" type="t:ArrayOfDelegateUserType" />
+ <xs:element name="DeliverMeetingRequests" type="t:DeliverMeetingRequestsType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddDelegate" type="m:AddDelegateType"/>
+
+ <!-- AddDelegate response -->
+ <xs:complexType name="BaseDelegateResponseMessageType" abstract="true">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ResponseMessages" type="m:ArrayOfDelegateUserResponseMessageType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="BaseDelegateType" abstract="true">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Mailbox" type="t:EmailAddressType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AddDelegateResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseDelegateResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddDelegateResponse" type="m:AddDelegateResponseMessageType"/>
+
+ <!-- RemoveDelegate request -->
+ <xs:complexType name="RemoveDelegateType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseDelegateType">
+ <xs:sequence>
+ <xs:element name="UserIds" type="t:ArrayOfUserIdType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="RemoveDelegate" type="m:RemoveDelegateType"/>
+
+ <!-- RemoveDelegate response -->
+ <xs:complexType name="RemoveDelegateResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseDelegateResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="RemoveDelegateResponse" type="m:RemoveDelegateResponseMessageType"/>
+
+ <!-- UpdateDelegate request -->
+ <xs:complexType name="UpdateDelegateType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseDelegateType">
+ <xs:sequence>
+ <xs:element name="DelegateUsers" type="t:ArrayOfDelegateUserType" minOccurs="0" />
+ <xs:element name="DeliverMeetingRequests" type="t:DeliverMeetingRequestsType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateDelegate" type="m:UpdateDelegateType"/>
+
+ <!-- UpdateDelegate response -->
+ <xs:complexType name="UpdateDelegateResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseDelegateResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:element name="UpdateDelegateResponse" type="m:UpdateDelegateResponseMessageType"/>
+
+ <!-- GetSharingMetadata request -->
+ <xs:complexType name="GetSharingMetadataType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="IdOfFolderToShare" type="t:FolderIdType"/>
+ <xs:element name="SenderSmtpAddress" type="t:NonEmptyStringType"/>
+ <xs:element name="Recipients" type="t:ArrayOfSmtpAddressType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetSharingMetadata" type="m:GetSharingMetadataType"/>
+
+ <!-- GetSharingMetadata response -->
+ <xs:complexType name="GetSharingMetadataResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence minOccurs="0">
+ <xs:element name="EncryptedSharedFolderDataCollection" type="t:ArrayOfEncryptedSharedFolderDataType"/>
+ <xs:element name="InvalidRecipients" type="t:ArrayOfInvalidRecipientsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetSharingMetadataResponse" type="m:GetSharingMetadataResponseMessageType"/>
+
+ <!-- RefreshSharingFolder request -->
+ <xs:complexType name="RefreshSharingFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SharingFolderId" type="t:FolderIdType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="RefreshSharingFolder" type="m:RefreshSharingFolderType"/>
+
+ <!-- RefreshSharingFolder response -->
+ <xs:complexType name="RefreshSharingFolderResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="RefreshSharingFolderResponse" type="m:RefreshSharingFolderResponseMessageType"/>
+
+ <!-- GetSharingFolder request -->
+ <xs:complexType name="GetSharingFolderType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SmtpAddress" type="t:NonEmptyStringType"/>
+ <xs:element name="DataType" type="t:SharingDataType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SharedFolderId" type="t:NonEmptyStringType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetSharingFolder" type="m:GetSharingFolderType"/>
+
+ <!-- GetSharingFolder response -->
+ <xs:complexType name="GetSharingFolderResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence minOccurs="0">
+ <xs:element name="SharingFolderId" type="t:FolderIdType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetSharingFolderResponse" type="m:GetSharingFolderResponseMessageType"/>
+
+ <!-- CreateUserConfiguration request -->
+ <xs:complexType name="CreateUserConfigurationType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="UserConfiguration" type="t:UserConfigurationType" minOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="CreateUserConfiguration" type="m:CreateUserConfigurationType"/>
+
+ <!-- CreateUserConfiguration response -->
+ <xs:complexType name="CreateUserConfigurationResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="CreateUserConfigurationResponse" type="m:CreateUserConfigurationResponseType"/>
+
+ <!-- DeleteUserConfiguration request -->
+ <xs:complexType name="DeleteUserConfigurationType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="UserConfigurationName" type="t:UserConfigurationNameType" minOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="DeleteUserConfiguration" type="m:DeleteUserConfigurationType"/>
+
+ <!-- DeleteUserConfiguration response -->
+ <xs:complexType name="DeleteUserConfigurationResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="DeleteUserConfigurationResponse" type="m:DeleteUserConfigurationResponseType"/>
+
+ <!-- GetUserConfiguration request -->
+ <xs:complexType name="GetUserConfigurationType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="UserConfigurationName" type="t:UserConfigurationNameType" minOccurs="1" />
+ <xs:element name="UserConfigurationProperties" type="t:UserConfigurationPropertyType" minOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetUserConfiguration" type="m:GetUserConfigurationType"/>
+
+ <!-- GetUserConfiguration response -->
+ <xs:complexType name="GetUserConfigurationResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="UserConfiguration" type="t:UserConfigurationType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="GetUserConfigurationResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetUserConfigurationResponse" type="m:GetUserConfigurationResponseType"/>
+
+ <!-- GetSpecificUserConfiguration request -->
+ <xs:complexType name="GetSpecificUserConfigurationType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="UserConfigurationName" type="t:UserConfigurationNameType" minOccurs="1" />
+ <xs:element name="UserConfigurationProperties" type="t:UserConfigurationPropertyType" minOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetSpecificUserConfiguration" type="m:GetSpecificUserConfigurationType"/>
+
+ <!-- GetSpecificUserConfiguration response -->
+ <xs:complexType name="GetSpecificUserConfigurationResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="UserConfiguration" type="t:UserConfigurationType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="GetSpecificUserConfigurationResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetSpecificUserConfigurationResponse" type="m:GetSpecificUserConfigurationResponseType"/>
+
+ <!-- UpdateUserConfiguration request -->
+ <xs:complexType name="UpdateUserConfigurationType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="UserConfiguration" type="t:UserConfigurationType" minOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateUserConfiguration" type="m:UpdateUserConfigurationType"/>
+
+ <!-- UpdateUserConfiguration response -->
+ <xs:complexType name="UpdateUserConfigurationResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateUserConfigurationResponse" type="m:UpdateUserConfigurationResponseType"/>
+
+ <!-- TeamMailbox requests -->
+ <xs:complexType name="SetTeamMailboxRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="EmailAddress" type="t:EmailAddressType" />
+ <xs:element name="SharePointSiteUrl" type="xs:string" />
+ <xs:element name="State" type="t:TeamMailboxLifecycleStateType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SetTeamMailbox" type="m:SetTeamMailboxRequestType" />
+
+ <xs:complexType name="UnpinTeamMailboxRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="EmailAddress" type="t:EmailAddressType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="UnpinTeamMailbox" type="m:UnpinTeamMailboxRequestType" />
+
+ <!-- TeamMailbox responses -->
+ <xs:complexType name="SetTeamMailboxResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SetTeamMailboxResponse" type="m:SetTeamMailboxResponseMessageType" />
+
+ <xs:complexType name="UnpinTeamMailboxResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="UnpinTeamMailboxResponse" type="m:UnpinTeamMailboxResponseMessageType" />
+
+ <!-- Get Rooms Service Message Definitions -->
+
+ <!-- GetRoomLists Request -->
+ <xs:complexType name="GetRoomListsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType" />
+ <!-- We Don't Need Input For GetRoomLists. -->
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetRoomLists" type="m:GetRoomListsType"/>
+
+ <!-- GetRoomLists Response -->
+ <xs:complexType name="GetRoomListsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="RoomLists" type="t:ArrayOfEmailAddressesType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetRoomListsResponse" type="m:GetRoomListsResponseMessageType"/>
+
+ <!-- GetRoomsRequest -->
+ <xs:complexType name="GetRoomsType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <!--Input Will Be A Single RoomList of Type EmailAddressType-->
+ <xs:element name="RoomList" type="t:EmailAddressType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetRooms" type="m:GetRoomsType" />
+
+ <!-- GetRoomsResponse -->
+ <xs:complexType name="GetRoomsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <!--Output Should Be Rooms of Type ArrayOfRoomsType, Created In Types.xsd, Which Contains EmailAddress-->
+ <!--Keep In Mind, Availability Service Requests For ArrayOfMailboxData-->
+ <xs:element name="Rooms" type="t:ArrayOfRoomsType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetRoomsResponse" type="m:GetRoomsResponseMessageType" />
+
+ <!-- GetRemindersRequest -->
+ <xs:complexType name="GetRemindersType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="BeginTime" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="EndTime" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="MaxItems" minOccurs="0" maxOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="0"/>
+ <xs:maxInclusive value="200"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="ReminderType" minOccurs="0" maxOccurs="1">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="All" />
+ <xs:enumeration value="Current" />
+ <xs:enumeration value="Old" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetReminders" type="m:GetRemindersType" />
+
+ <!-- GetRemindersResponse -->
+ <xs:complexType name="GetRemindersResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Reminders" type="t:ArrayOfRemindersType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetRemindersResponse" type="m:GetRemindersResponseMessageType" />
+
+ <!-- PerformReminderActionRequest -->
+ <xs:complexType name="PerformReminderActionType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ReminderItemActions" type="t:NonEmptyArrayOfReminderItemActionType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="PerformReminderAction" type="m:PerformReminderActionType" />
+
+ <!-- PerformReminderActionResponse-->
+ <xs:complexType name="PerformReminderActionResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="UpdatedItemIds" type="t:NonEmptyArrayOfItemIdsType" minOccurs ="1" maxOccurs ="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="PerformReminderActionResponse" type="m:PerformReminderActionResponseMessageType" />
+
+ <!-- GetServiceConfiguration -->
+
+ <xs:complexType name="ArrayOfServiceConfigurationType">
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="ConfigurationName" type="t:ServiceConfigurationType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="GetServiceConfigurationType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="ActingAs" type="t:EmailAddressType"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="RequestedConfiguration" type="m:ArrayOfServiceConfigurationType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="ConfigurationRequestDetails" type="t:ConfigurationRequestDetailsType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetServiceConfiguration" type="m:GetServiceConfigurationType"/>
+
+ <xs:element name="GetServiceConfigurationResponse" type="m:GetServiceConfigurationResponseMessageType"/>
+
+ <xs:complexType name="GetServiceConfigurationResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ResponseMessages" type="m:ArrayOfServiceConfigurationResponseMessageType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfServiceConfigurationResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ServiceConfigurationResponseMessageType" type="m:ServiceConfigurationResponseMessageType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ServiceConfigurationResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MailTipsConfiguration" type="t:MailTipsServiceConfiguration" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="UnifiedMessagingConfiguration" type="t:UnifiedMessageServiceConfiguration" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ProtectionRulesConfiguration" type="t:ProtectionRulesServiceConfiguration" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="PolicyNudgeRulesConfiguration" type="t:PolicyNudgeRulesServiceConfiguration" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SharePointURLsConfiguration" type="t:SharePointURLsServiceConfiguration" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- MessageTracking -->
+ <xs:complexType name="FindMessageTrackingReportRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:all>
+ <xs:element name="Scope" type="t:NonEmptyStringType" />
+ <xs:element name="Domain" type="t:NonEmptyStringType" />
+ <xs:element name="Sender" type="t:EmailAddressType" minOccurs="0"/>
+ <xs:element name="PurportedSender" type="t:EmailAddressType" minOccurs="0" />
+ <xs:element name="Recipient" type="t:EmailAddressType" minOccurs="0"/>
+ <xs:element name="Subject" type="xs:string" minOccurs="0"/>
+ <xs:element name="StartDateTime" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="EndDateTime" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="MessageId" type="t:NonEmptyStringType" minOccurs="0"/>
+ <xs:element name="FederatedDeliveryMailbox" type="t:EmailAddressType" minOccurs="0" />
+ <xs:element name="DiagnosticsLevel" type="xs:string" minOccurs="0" />
+ <xs:element name="ServerHint" type="xs:string" minOccurs="0" />
+ <xs:element name="Properties" type="t:ArrayOfTrackingPropertiesType" minOccurs="0" />
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindMessageTrackingReport" type="m:FindMessageTrackingReportRequestType"/>
+
+ <xs:complexType name="FindMessageTrackingReportResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Diagnostics" type="t:ArrayOfStringsType" minOccurs="0"/>
+ <xs:element name="MessageTrackingSearchResults" type="t:ArrayOfFindMessageTrackingSearchResultType" minOccurs="0" />
+ <xs:element name="ExecutedSearchScope" type="xs:string" minOccurs="0" />
+ <xs:element name="Errors" type="t:ArrayOfArraysOfTrackingPropertiesType" minOccurs="0" />
+ <xs:element name="Properties" type="t:ArrayOfTrackingPropertiesType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindMessageTrackingReportResponse" type="m:FindMessageTrackingReportResponseMessageType" />
+
+ <xs:complexType name="GetMessageTrackingReportRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:all>
+ <xs:element name="Scope" type="t:NonEmptyStringType" />
+ <xs:element name="ReportTemplate" type="t:MessageTrackingReportTemplateType" />
+ <xs:element name="RecipientFilter" type="t:EmailAddressType" minOccurs="0"/>
+ <xs:element name="MessageTrackingReportId" type="t:NonEmptyStringType" />
+ <xs:element name="ReturnQueueEvents" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="DiagnosticsLevel" type="xs:string" minOccurs="0" />
+ <xs:element name="Properties" type="t:ArrayOfTrackingPropertiesType" minOccurs="0" />
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetMessageTrackingReport" type="m:GetMessageTrackingReportRequestType" />
+
+ <xs:complexType name="GetMessageTrackingReportResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MessageTrackingReport" type="t:MessageTrackingReportType" minOccurs="0" />
+ <xs:element name="Diagnostics" type="t:ArrayOfStringsType" minOccurs="0"/>
+ <xs:element name="Errors" type="t:ArrayOfArraysOfTrackingPropertiesType" minOccurs="0" />
+ <xs:element name="Properties" type="t:ArrayOfTrackingPropertiesType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetMessageTrackingReportResponse" type="m:GetMessageTrackingReportResponseMessageType" />
+
+ <!-- Inbox Rules -->
+ <xs:complexType name="GetInboxRulesRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="MailboxSmtpAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetInboxRules" type="m:GetInboxRulesRequestType" />
+
+ <xs:complexType name="GetInboxRulesResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="OutlookRuleBlobExists" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="InboxRules" type="t:ArrayOfRulesType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetInboxRulesResponse" type="m:GetInboxRulesResponseType" />
+
+ <xs:complexType name="UpdateInboxRulesRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="MailboxSmtpAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="RemoveOutlookRuleBlob" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Operations" type="t:ArrayOfRuleOperationsType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateInboxRules" type="m:UpdateInboxRulesRequestType" />
+
+ <xs:complexType name="UpdateInboxRulesResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="RuleOperationErrors" type="t:ArrayOfRuleOperationErrorsType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateInboxRulesResponse" type="m:UpdateInboxRulesResponseType" />
+
+ <!-- FindMailboxStatisticsByKeywords web method and response -->
+ <xs:complexType name="FindMailboxStatisticsByKeywordsType">
+ <xs:annotation>
+ <xs:documentation>
+ Request type for the FindMailboxStatisticsByKeywords web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Mailboxes" type="t:ArrayOfUserMailboxesType" minOccurs="1"/>
+ <xs:element name="Keywords" type="t:ArrayOfStringsType" minOccurs="1"/>
+ <xs:element name="Language" type="xs:string" minOccurs="0"/>
+ <xs:element name="Senders" type="t:ArrayOfSmtpAddressType" minOccurs="0"/>
+ <xs:element name="Recipients" type="t:ArrayOfSmtpAddressType" minOccurs="0"/>
+ <xs:element name="FromDate" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="ToDate" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="MessageTypes" type="t:ArrayOfSearchItemKindsType" minOccurs="0"/>
+ <xs:element name="SearchDumpster" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="IncludePersonalArchive" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="IncludeUnsearchableItems" type="xs:boolean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="FindMailboxStatisticsByKeywords" type="m:FindMailboxStatisticsByKeywordsType"/>
+
+ <xs:complexType name="FindMailboxStatisticsByKeywordsResponseType">
+ <xs:annotation>
+ <xs:documentation>
+ Response type for the FindMailboxStatisticsByKeywords web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="FindMailboxStatisticsByKeywordsResponse" type="m:FindMailboxStatisticsByKeywordsResponseType"/>
+
+ <xs:complexType name="FindMailboxStatisticsByKeywordsResponseMessageType">
+ <xs:annotation>
+ <xs:documentation>
+ Response message type for the FindMailboxStatisticsByKeywords web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MailboxStatisticsSearchResult" type="t:MailboxStatisticsSearchResultType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- GetSearchableMailboxes web method and response -->
+ <xs:complexType name="GetSearchableMailboxesType">
+ <xs:annotation>
+ <xs:documentation>
+ Request type for the GetSearchableMailboxes web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SearchFilter" type="xs:string" minOccurs="0"/>
+ <xs:element name="ExpandGroupMembership" type="xs:boolean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetSearchableMailboxes" type="m:GetSearchableMailboxesType"/>
+
+ <xs:complexType name="GetSearchableMailboxesResponseMessageType">
+ <xs:annotation>
+ <xs:documentation>
+ Response message type for the GetSearchableMailboxes web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="SearchableMailboxes" type="t:ArrayOfSearchableMailboxesType"/>
+ <xs:element name="FailedMailboxes" type="t:ArrayOfFailedSearchMailboxesType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetSearchableMailboxesResponse" type="m:GetSearchableMailboxesResponseMessageType"/>
+
+ <!-- SearchMailboxes web method and response -->
+ <xs:complexType name="SearchMailboxesType">
+ <xs:annotation>
+ <xs:documentation>
+ Request type for the SearchMailboxes web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SearchQueries" type="t:NonEmptyArrayOfMailboxQueriesType" minOccurs="1"/>
+ <xs:element name="ResultType" type="t:SearchResultType" minOccurs="1"/>
+ <xs:element name="PreviewItemResponseShape" type="t:PreviewItemResponseShapeType" minOccurs="0"/>
+ <xs:element name="SortBy" type="t:FieldOrderType" minOccurs="0"/>
+ <xs:element name="Language" type="xs:string" minOccurs="0"/>
+ <xs:element name="Deduplication" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="PageSize" type="xs:int" minOccurs="0"/>
+ <xs:element name="PageItemReference" type="xs:string" minOccurs="0"/>
+ <xs:element name="PageDirection" type="t:SearchPageDirectionType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SearchMailboxes" type="m:SearchMailboxesType"/>
+
+ <xs:complexType name="SearchMailboxesResponseType">
+ <xs:annotation>
+ <xs:documentation>
+ Response type for the SearchMailboxes web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SearchMailboxesResponse" type="m:SearchMailboxesResponseType"/>
+
+ <xs:complexType name="SearchMailboxesResponseMessageType">
+ <xs:annotation>
+ <xs:documentation>
+ Response message type for the SearchMailboxes web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="SearchMailboxesResult" type="t:SearchMailboxesResultType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- GetDiscoverySearchConfiguration web method and response -->
+ <xs:complexType name="GetDiscoverySearchConfigurationType">
+ <xs:annotation>
+ <xs:documentation>
+ Request type for the GetDiscoverySearchConfiguration web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SearchId" type="xs:string" minOccurs="0"/>
+ <xs:element name="ExpandGroupMembership" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="InPlaceHoldConfigurationOnly" type="xs:boolean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetDiscoverySearchConfiguration" type="m:GetDiscoverySearchConfigurationType"/>
+
+ <xs:complexType name="GetDiscoverySearchConfigurationResponseMessageType">
+ <xs:annotation>
+ <xs:documentation>
+ Response message type for the GetDiscoverySearchConfiguration web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="DiscoverySearchConfigurations" type="t:ArrayOfDiscoverySearchConfigurationType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetDiscoverySearchConfigurationResponse" type="m:GetDiscoverySearchConfigurationResponseMessageType"/>
+
+ <!-- GetHoldOnMailboxes web method and response -->
+ <xs:complexType name="GetHoldOnMailboxesType">
+ <xs:annotation>
+ <xs:documentation>
+ Request type for the GetHoldOnMailboxes web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="HoldId" type="xs:string" minOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetHoldOnMailboxes" type="m:GetHoldOnMailboxesType"/>
+
+ <xs:complexType name="GetHoldOnMailboxesResponseMessageType">
+ <xs:annotation>
+ <xs:documentation>
+ Response message type for the GetHoldOnMailboxes web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MailboxHoldResult" type="t:MailboxHoldResultType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetHoldOnMailboxesResponse" type="m:GetHoldOnMailboxesResponseMessageType"/>
+
+ <!-- SetHoldOnMailboxes web method and response -->
+ <xs:complexType name="SetHoldOnMailboxesType">
+ <xs:annotation>
+ <xs:documentation>
+ Request type for the SetHoldOnMailboxes web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ActionType" type="t:HoldActionType" minOccurs="1"/>
+ <xs:element name="HoldId" type="xs:string" minOccurs="1"/>
+ <xs:element name="Query" type="xs:string" minOccurs="1"/>
+ <xs:element name="Mailboxes" type="t:ArrayOfStringsType" minOccurs="0"/>
+ <xs:element name="Language" type="xs:string" minOccurs="0"/>
+ <xs:element name="IncludeNonIndexableItems" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="Deduplication" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="InPlaceHoldIdentity" type="xs:string" minOccurs="0"/>
+ <xs:element name="ItemHoldPeriod" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SetHoldOnMailboxes" type="m:SetHoldOnMailboxesType"/>
+
+ <xs:complexType name="SetHoldOnMailboxesResponseMessageType">
+ <xs:annotation>
+ <xs:documentation>
+ Response message type for the SetHoldOnMailboxes web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MailboxHoldResult" type="t:MailboxHoldResultType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="SetHoldOnMailboxesResponse" type="m:SetHoldOnMailboxesResponseMessageType"/>
+
+ <!-- GetNonIndexableItemStatistics web method and response -->
+ <xs:complexType name="GetNonIndexableItemStatisticsType">
+ <xs:annotation>
+ <xs:documentation>
+ Request type for the GetNonIndexableItemStatistics web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Mailboxes" type="t:NonEmptyArrayOfLegacyDNsType" minOccurs="1"/>
+ <xs:element name="SearchArchiveOnly" type="xs:boolean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetNonIndexableItemStatistics" type="m:GetNonIndexableItemStatisticsType"/>
+
+ <xs:complexType name="GetNonIndexableItemStatisticsResponseMessageType">
+ <xs:annotation>
+ <xs:documentation>
+ Response message type for the GetNonIndexableItemStatistics web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="NonIndexableItemStatistics" type="t:ArrayOfNonIndexableItemStatisticsType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetNonIndexableItemStatisticsResponse" type="m:GetNonIndexableItemStatisticsResponseMessageType"/>
+
+ <!-- GetNonIndexableItemDetails web method and response -->
+ <xs:complexType name="GetNonIndexableItemDetailsType">
+ <xs:annotation>
+ <xs:documentation>
+ Request type for the GetNonIndexableItemDetails web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Mailboxes" type="t:NonEmptyArrayOfLegacyDNsType" minOccurs="1"/>
+ <xs:element name="PageSize" type="xs:int" minOccurs="0"/>
+ <xs:element name="PageItemReference" type="xs:string" minOccurs="0"/>
+ <xs:element name="PageDirection" type="t:SearchPageDirectionType" minOccurs="0"/>
+ <xs:element name="SearchArchiveOnly" type="xs:boolean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetNonIndexableItemDetails" type="m:GetNonIndexableItemDetailsType"/>
+
+ <xs:complexType name="GetNonIndexableItemDetailsResponseMessageType">
+ <xs:annotation>
+ <xs:documentation>
+ Response message type for the GetNonIndexableItemDetails web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="NonIndexableItemDetailsResult" type="t:NonIndexableItemDetailResultType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetNonIndexableItemDetailsResponse" type="m:GetNonIndexableItemDetailsResponseMessageType"/>
+
+ <!-- MarkAllItemsAsRead request -->
+ <xs:complexType name="MarkAllItemsAsReadType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ReadFlag" type="xs:boolean" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SuppressReadReceipts" type="xs:boolean" minOccurs="1" maxOccurs="1" />
+ <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="MarkAllItemsAsRead" type="m:MarkAllItemsAsReadType"/>
+
+ <!-- MarkAllItemsAsRead response -->
+ <xs:complexType name="MarkAllItemsAsReadResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="MarkAllItemsAsReadResponse" type="m:MarkAllItemsAsReadResponseType"/>
+
+ <!-- GetConversationItems request -->
+ <xs:complexType name="GetConversationItemsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemShape" type="t:ItemResponseShapeType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="FoldersToIgnore" type="t:NonEmptyArrayOfBaseFolderIdsType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="MaxItemsToReturn" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SortOrder" type="t:ConversationNodeSortOrder" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MailboxScope" type="t:MailboxSearchLocationType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Conversations" type="t:ArrayOfConversationRequestsType" minOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetConversationItems" type="m:GetConversationItemsType"/>
+
+ <!-- GetConversationItems response -->
+ <xs:complexType name="GetConversationItemsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Conversation" type="t:ConversationResponseType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="GetConversationItemsResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetConversationItemsResponse" type="m:GetConversationItemsResponseType"/>
+
+ <!-- GetOMEConfiguration request -->
+ <xs:complexType name="GetOMEConfigurationType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetOMEConfiguration" type="m:GetOMEConfigurationType" />
+
+ <!-- GetOMEConfiguration response -->
+ <xs:complexType name="OMEConfigurationResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Xml" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetOMEConfigurationResponse" type="m:OMEConfigurationResponseType"/>
+
+ <!-- SetOMEConfiguration request -->
+ <xs:complexType name="SetOMEConfigurationType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Xml" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="SetOMEConfiguration" type="m:SetOMEConfigurationType"/>
+
+ <!-- SetOMEConfiguration response -->
+ <xs:complexType name="SetOMEConfigurationResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="SetOMEConfigurationResponse" type="m:SetOMEConfigurationResponseType"/>
+
+ <!-- GetAppManifests request -->
+ <xs:complexType name="GetAppManifestsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ApiVersionSupported" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SchemaVersionSupported" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IncludeAllInstalledAddIns" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IncludeEntitlementData" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IncludeManifestData" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IncludeCustomAppsData" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ExtensionIds" type="m:ListOfExtensionIdsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="AddIns" type="m:ArrayOfPrivateCatalogAddInsType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="ListOfExtensionIdsType">
+ <xs:list itemType="t:GuidType" />
+ </xs:simpleType>
+
+ <xs:element name="GetAppManifests" type="m:GetAppManifestsType"/>
+
+ <!-- GetAppManifests response -->
+ <xs:complexType name="GetAppManifestsResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:choice>
+ <xs:element name="Apps" type="t:ArrayOfAppsType" maxOccurs="1"/>
+ <xs:element name="Manifests" type="m:ArrayOfAppManifestsType" maxOccurs="1"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfAppManifestsType">
+ <xs:sequence>
+ <xs:element name="Manifest" type="xs:base64Binary" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="GetAppManifestsResponse" type="m:GetAppManifestsResponseType"/>
+
+ <!-- GetAppMarketplaceUrl request -->
+ <xs:complexType name="GetAppMarketplaceUrlType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetAppMarketplaceUrl" type="m:GetAppMarketplaceUrlType"/>
+
+ <!-- GetAppMarketplaceUrl response -->
+ <xs:complexType name="GetAppMarketplaceUrlResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="AppMarketplaceUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ConnectorsManagementUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetAppMarketplaceUrlResponse" type="m:GetAppMarketplaceUrlResponseMessageType"/>
+
+ <!-- MarkAsJunk request -->
+ <xs:complexType name="MarkAsJunkType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="IsJunk" type="xs:boolean" use="required" />
+ <xs:attribute name="MoveItem" type="xs:boolean" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="MarkAsJunk" type="m:MarkAsJunkType" />
+
+ <!-- MarkAsJunk response -->
+ <xs:complexType name="MarkAsJunkResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="MarkAsJunkResponse" type="m:MarkAsJunkResponseType" />
+
+ <xs:complexType name="MarkAsJunkResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:sequence>
+ <xs:element name="MovedItemId" type="t:ItemIdType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- ReportMessage request -->
+ <xs:complexType name="ReportMessageType">
+ <xs:complexContent mixed="false">
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="ReportAction" type="t:ReportMessageActionType" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="ReportMessage" type="m:ReportMessageType" />
+
+ <!-- ReportMessage response -->
+ <xs:complexType name="ReportMessageResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="ReportMessageResponse" type="m:ReportMessageResponseType" />
+
+ <xs:complexType name="ReportMessageResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:sequence>
+ <xs:element name="MovedItemId" type="t:ItemIdType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- InstallApp request -->
+ <xs:complexType name="InstallAppType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Manifest" type="xs:base64Binary" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="MarketplaceAssetId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="MarketplaceContentMarket" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SendWelcomeEmail" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ManifestUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="InstallApp" type="m:InstallAppType"/>
+
+ <!-- InstallApp response -->
+ <xs:complexType name="InstallAppResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="WasFirstInstall" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Extension" type="t:InstalledAppType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="InstallAppResponse" type="m:InstallAppResponseType"/>
+
+ <!-- UninstallApp request -->
+ <xs:complexType name="UninstallAppType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ID" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="UninstallApp" type="m:UninstallAppType"/>
+
+ <!-- UninstallApp response -->
+ <xs:complexType name="UninstallAppResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="UninstallAppResponse" type="m:UninstallAppResponseType"/>
+
+ <!-- DisableApp request -->
+ <xs:complexType name="DisableAppType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ID" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="DisableReason" type="t:DisableReasonType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DisableApp" type="m:DisableAppType"/>
+
+ <!-- DisableApp response -->
+ <xs:complexType name="DisableAppResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DisableAppResponse" type="m:DisableAppResponseType"/>
+
+ <!-- AddNewImContactToGroup request -->
+ <xs:complexType name="AddNewImContactToGroupType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ImAddress" type="t:NonEmptyStringType"/>
+ <xs:element name="DisplayName" type="t:NonEmptyStringType" minOccurs="0"/>
+ <xs:element name="GroupId" type="t:ItemIdType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddNewImContactToGroup" type="m:AddNewImContactToGroupType"/>
+
+ <!-- AddNewImContactToGroup response-->
+ <xs:complexType name="AddNewImContactToGroupResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Persona" type="t:PersonaType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddNewImContactToGroupResponse" type="m:AddNewImContactToGroupResponseMessageType"/>
+
+ <!-- AddNewTelUriContactToGroup request -->
+ <xs:complexType name="AddNewTelUriContactToGroupType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="TelUriAddress" type="t:NonEmptyStringType"/>
+ <xs:element name="ImContactSipUriAddress" type="t:NonEmptyStringType"/>
+ <xs:element name="ImTelephoneNumber" type="t:NonEmptyStringType"/>
+ <xs:element name="GroupId" type="t:ItemIdType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddNewTelUriContactToGroup" type="m:AddNewTelUriContactToGroupType"/>
+
+ <!-- AddNewTelUriContactToGroup response-->
+ <xs:complexType name="AddNewTelUriContactToGroupResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Persona" type="t:PersonaType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddNewTelUriContactToGroupResponse" type="m:AddNewTelUriContactToGroupResponseMessageType"/>
+
+ <!-- AddImContactToGroup request -->
+ <xs:complexType name="AddImContactToGroupType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ContactId" type="t:ItemIdType"/>
+ <xs:element name="GroupId" type="t:ItemIdType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddImContactToGroup" type="m:AddImContactToGroupType"/>
+
+ <!-- AddImContactToGroup response-->
+ <xs:complexType name="AddImContactToGroupResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddImContactToGroupResponse" type="m:AddImContactToGroupResponseMessageType"/>
+
+ <!-- RemoveImContactFromGroup request -->
+ <xs:complexType name="RemoveImContactFromGroupType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ContactId" type="t:ItemIdType"/>
+ <xs:element name="GroupId" type="t:ItemIdType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="RemoveImContactFromGroup" type="m:RemoveImContactFromGroupType"/>
+
+ <!-- RemoveImContactFromGroup response-->
+ <xs:complexType name="RemoveImContactFromGroupResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="RemoveImContactFromGroupResponse" type="m:RemoveImContactFromGroupResponseMessageType"/>
+
+ <!-- AddImGroup request -->
+ <xs:complexType name="AddImGroupType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="DisplayName" type="t:NonEmptyStringType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddImGroup" type="m:AddImGroupType"/>
+
+ <!-- AddImGroup response-->
+ <xs:complexType name="AddImGroupResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ImGroup" type="t:ImGroupType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddImGroupResponse" type="m:AddImGroupResponseMessageType"/>
+
+ <!-- AddDistributionGroupToImList request -->
+ <xs:complexType name="AddDistributionGroupToImListType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SmtpAddress" type="t:NonEmptyStringType"/>
+ <xs:element name="DisplayName" type="t:NonEmptyStringType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddDistributionGroupToImList" type="m:AddDistributionGroupToImListType"/>
+
+ <!-- AddDistributionGroupToImList response-->
+ <xs:complexType name="AddDistributionGroupToImListResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ImGroup" type="t:ImGroupType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="AddDistributionGroupToImListResponse" type="m:AddDistributionGroupToImListResponseMessageType"/>
+
+ <!-- GetImItemList request -->
+ <xs:complexType name="GetImItemListType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ExtendedProperties" type="t:NonEmptyArrayOfExtendedFieldURIs" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetImItemList" type="m:GetImItemListType"/>
+
+ <!-- GetImItemList response-->
+ <xs:complexType name="GetImItemListResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ImItemList" type="t:ImItemListType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetImItemListResponse" type="m:GetImItemListResponseMessageType"/>
+
+ <!-- GetImItems request -->
+ <xs:complexType name="GetImItemsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ContactIds" type="t:NonEmptyArrayOfBaseItemIdsType" minOccurs="0"/>
+ <xs:element name="GroupIds" type="t:NonEmptyArrayOfBaseItemIdsType" minOccurs="0"/>
+ <xs:element name="ExtendedProperties" type="t:NonEmptyArrayOfExtendedFieldURIs" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetImItems" type="m:GetImItemsType"/>
+
+ <!-- GetImItems response-->
+ <xs:complexType name="GetImItemsResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="ImItemList" type="t:ImItemListType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetImItemsResponse" type="m:GetImItemsResponseMessageType"/>
+
+ <!-- RemoveContactFromImList request -->
+ <xs:complexType name="RemoveContactFromImListType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ContactId" type="t:ItemIdType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="RemoveContactFromImList" type="m:RemoveContactFromImListType"/>
+
+ <!-- RemoveContactFromImList response-->
+ <xs:complexType name="RemoveContactFromImListResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="RemoveContactFromImListResponse" type="m:RemoveContactFromImListResponseMessageType"/>
+
+ <!-- RemoveDistributionGroupFromImList request -->
+ <xs:complexType name="RemoveDistributionGroupFromImListType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="GroupId" type="t:ItemIdType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="RemoveDistributionGroupFromImList" type="m:RemoveDistributionGroupFromImListType"/>
+
+ <!-- RemoveDistributionGroupFromImList response-->
+ <xs:complexType name="RemoveDistributionGroupFromImListResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="RemoveDistributionGroupFromImListResponse" type="m:RemoveDistributionGroupFromImListResponseMessageType"/>
+
+ <!-- RemoveImGroup request -->
+ <xs:complexType name="RemoveImGroupType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="GroupId" type="t:ItemIdType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="RemoveImGroup" type="m:RemoveImGroupType"/>
+
+ <!-- RemoveImGroup response-->
+ <xs:complexType name="RemoveImGroupResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="RemoveImGroupResponse" type="m:RemoveImGroupResponseMessageType"/>
+
+ <!-- SetImGroup request -->
+ <xs:complexType name="SetImGroupType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="GroupId" type="t:ItemIdType"/>
+ <xs:element name="NewDisplayName" type="t:NonEmptyStringType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="SetImGroup" type="m:SetImGroupType"/>
+
+ <!-- SetImGroup response-->
+ <xs:complexType name="SetImGroupResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="SetImGroupResponse" type="m:SetImGroupResponseMessageType"/>
+
+ <!-- SetImListMigrationCompleted request -->
+ <xs:complexType name="SetImListMigrationCompletedType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ImListMigrationCompleted" type="xs:boolean"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="SetImListMigrationCompleted" type="m:SetImListMigrationCompletedType"/>
+
+ <!-- SetImListMigrationCompleted response-->
+ <xs:complexType name="SetImListMigrationCompletedResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="SetImListMigrationCompletedResponse" type="m:SetImListMigrationCompletedResponseMessageType"/>
+
+ <!-- GetUserRetentionPolicyTags web method and response -->
+ <xs:complexType name="GetUserRetentionPolicyTagsType">
+ <xs:annotation>
+ <xs:documentation>
+ Request type for the GetUserRetentionPolicyTags web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent mixed="false">
+ <xs:extension base="m:BaseRequestType" />
+ <!-- We Don't Need Input For GetUserRetentionPolicyTags. -->
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetUserRetentionPolicyTags" type="m:GetUserRetentionPolicyTagsType" />
+
+ <xs:complexType name="GetUserRetentionPolicyTagsResponseMessageType">
+ <xs:annotation>
+ <xs:documentation>
+ Response message type for the GetUserRetentionPolicyTags web method.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="RetentionPolicyTags" type="t:ArrayOfRetentionPolicyTagsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetUserRetentionPolicyTagsResponse" type="m:GetUserRetentionPolicyTagsResponseMessageType"/>
+
+ <!-- GetUserPhoto request -->
+ <xs:complexType name="GetUserPhotoType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Email" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SizeRequested" type="t:UserPhotoSizeType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="TypeRequested" type="t:UserPhotoTypeType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetUserPhoto" type="m:GetUserPhotoType"/>
+
+ <!-- GetUserPhoto response -->
+ <xs:complexType name="GetUserPhotoResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="HasChanged" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="PictureData" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="GetUserPhotoResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetUserPhotoResponse" type="m:GetUserPhotoResponseMessageType"/>
+
+ <xs:complexType name="GetMeetingSpaceType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetMeetingSpace" type="m:GetMeetingSpaceType"/>
+
+ <xs:complexType name="GetMeetingSpaceResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MeetingSpace" type="t:MeetingSpaceType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetMeetingSpaceResponseMessage" type="m:GetMeetingSpaceResponseMessageType"/>
+
+ <xs:complexType name="CreateMeetingSpaceType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="MeetingSpace" type="t:MeetingSpaceType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="CreateMeetingSpace" type="m:CreateMeetingSpaceType"/>
+
+ <xs:complexType name="CreateMeetingSpaceResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MeetingSpace" type="t:MeetingSpaceType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="CreateMeetingSpaceResponseMessage" type="m:CreateMeetingSpaceResponseMessageType"/>
+
+ <xs:complexType name="UpdateMeetingSpaceType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="MeetingSpace" type="t:MeetingSpaceType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateMeetingSpace" type="m:UpdateMeetingSpaceType"/>
+
+ <xs:complexType name="UpdateMeetingSpaceResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MeetingSpace" type="t:MeetingSpaceType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateMeetingSpaceResponseMessage" type="m:UpdateMeetingSpaceResponseMessageType"/>
+
+ <xs:complexType name="FindMeetingSpaceByJoinUrlType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="JoinUrl" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindMeetingSpaceByJoinUrl" type="m:FindMeetingSpaceByJoinUrlType"/>
+
+ <xs:complexType name="FindMeetingSpaceByJoinUrlResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MeetingSpace" type="t:MeetingSpaceType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="FindMeetingSpaceByJoinUrlResponseMessage" type="m:FindMeetingSpaceByJoinUrlResponseMessageType"/>
+
+ <xs:complexType name="DeleteMeetingSpaceType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="DeleteMeetingSpace" type="m:DeleteMeetingSpaceType"/>
+
+ <xs:complexType name="DeleteMeetingSpaceResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="DeleteMeetingSpaceResponseMessage" type="m:DeleteMeetingSpaceResponseMessageType"/>
+
+ <xs:complexType name="GetMeetingInstanceRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetMeetingInstanceRequest" type="m:GetMeetingInstanceRequestType"/>
+
+ <xs:complexType name="GetMeetingInstanceResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MeetingInstance" type="t:MeetingInstanceType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetMeetingInstanceResponse" type="m:GetMeetingInstanceResponseMessageType"/>
+
+ <xs:complexType name="CreateMeetingInstanceRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="MeetingInstance" type="t:MeetingInstanceType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="CreateMeetingInstanceRequest" type="m:CreateMeetingInstanceRequestType"/>
+
+ <xs:complexType name="CreateMeetingInstanceResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MeetingInstance" type="t:MeetingInstanceType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="CreateMeetingInstanceResponse" type="m:CreateMeetingInstanceResponseMessageType"/>
+
+ <xs:complexType name="UpdateMeetingInstanceRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="MeetingInstance" type="t:MeetingInstanceType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ContentActivitiesToAdd" type="t:NonEmptyArrayOfContentActivities" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ParticipantActivitiesToAdd" type="t:NonEmptyArrayOfParticipantActivities" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateMeetingInstanceRequest" type="m:UpdateMeetingInstanceRequestType"/>
+
+ <xs:complexType name="UpdateMeetingInstanceResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MeetingInstance" type="t:MeetingInstanceType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="UpdateMeetingInstanceResponse" type="m:UpdateMeetingInstanceResponseMessageType"/>
+
+ <xs:complexType name="DeleteMeetingInstanceRequestType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="DeleteMeetingInstanceRequest" type="m:DeleteMeetingInstanceRequestType"/>
+
+ <xs:complexType name="DeleteMeetingInstanceResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="DeleteMeetingInstanceResponse" type="m:DeleteMeetingInstanceResponseMessageType"/>
+
+ <!-- SetUserPhoto Request -->
+ <xs:complexType name="SetUserPhotoType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Email" type="t:NonEmptyStringType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Content" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="TypeRequested" type="t:UserPhotoTypeType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SetUserPhoto" type="m:SetUserPhotoType"/>
+
+ <!-- SetUserPhoto Response -->
+ <xs:complexType name="SetUserPhotoResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="SetUserPhotoResponse" type="m:SetUserPhotoResponseMessageType"/>
+
+ <!-- RegisterConsent Request -->
+ <xs:complexType name="RegisterConsentType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ConsentState" type="t:ConsentStateType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="RegisterConsent" type="m:RegisterConsentType"/>
+
+ <!-- RegisterConsent Response -->
+ <xs:complexType name="RegisterConsentResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="RegisterConsentResponse" type="m:RegisterConsentResponseMessageType"/>
+
+ <!-- FindAvailableMeetingTimes Request -->
+ <xs:complexType name="FindAvailableMeetingTimesType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Attendees" type="t:ArrayOfSmtpAddressType" minOccurs="0" />
+ <xs:element name="SearchWindowStart" type="xs:dateTime"/>
+ <xs:element name="SearchWindowDuration" type="xs:duration"/>
+ <xs:element name="MeetingDurationInMinutes" type="xs:int" minOccurs="0" />
+ <xs:element name="Location" type="xs:string" minOccurs="0" />
+ <xs:element name="MaxCandidates" type="xs:int" minOccurs="0" />
+ <xs:element name="ActivityDomain" type="t:ActivityDomainType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="FindAvailableMeetingTimes" type="m:FindAvailableMeetingTimesType"/>
+
+ <!-- FindAvailableMeetingTimes Response -->
+ <xs:complexType name="FindAvailableMeetingTimesResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MeetingTimeCandidates" type="t:ArrayOfMeetingTimeCandidate" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="EmptySuggestionsHint" type="t:EmptySuggestionReason" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="FindAvailableMeetingTimesResponse" type="m:FindAvailableMeetingTimesResponseMessageType"/>
+
+ <!-- FindMeetingTimeCandidates Request -->
+ <xs:complexType name="FindMeetingTimeCandidatesType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="AttendeeConstraints" type="t:FindMeetingTimesAttendeeConstraints" minOccurs="0" />
+ <xs:element name="LocationConstraints" type="t:FindMeetingTimesLocationConstraints" minOccurs="0" />
+ <xs:element name="SearchConstraints" type="t:FindMeetingTimesSearchConstraints" minOccurs="0" />
+ <xs:element name="Constraints" type="t:FindMeetingTimesConstraints" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="FindMeetingTimeCandidates" type="m:FindMeetingTimeCandidatesType"/>
+
+ <!-- FindMeetingTimeCandidates Response -->
+ <xs:complexType name="FindMeetingTimeCandidatesResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="MeetingTimeCandidates" type="t:ArrayOfMeetingTimeCandidate" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="FindMeetingTimeCandidatesResponse" type="m:FindMeetingTimeCandidatesResponseMessageType"/>
+
+ <!-- Instant Search API v2.0 -->
+
+ <!-- Start Search Session -->
+ <xs:complexType name="StartSearchSession">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SearchSessionId" type="t:GuidType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="WarmupOptions" type="t:WarmupOptionsType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SuggestionTypes" type="t:SuggestionKindType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SearchScope" type="t:ArrayOfSearchScopeType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="IdFormat" type="t:IdFormatType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ApplicationId" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Scenario" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="StartSearchSession" type="m:StartSearchSession"/>
+
+ <xs:complexType name="StartSearchSessionResponseMessage">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="StartSearchSessionResponse" type="m:StartSearchSessionResponseMessage"/>
+
+ <!-- GetSearchSuggestions -->
+ <xs:complexType name="GetSearchSuggestions">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SearchSessionId" type="t:GuidType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Query" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SuggestionTypes" type="t:SuggestionKindType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SuggestionsPrimer" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MaxSuggestionsCountPerSuggestionType" type="xs:long" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SearchScope" type="t:ArrayOfSearchScopeType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Scenario" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetSearchSuggestions" type="m:GetSearchSuggestions"/>
+
+ <xs:complexType name="GetSearchSuggestionsResponseMessage">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="SearchSuggestions" type="t:SearchSuggestionsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="GetSearchSuggestionsResponse" type="m:GetSearchSuggestionsResponseMessage"/>
+
+ <!-- DeleteSearchSuggestion -->
+ <xs:complexType name="DeleteSearchSuggestion">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SearchSessionId" type="t:GuidType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Query" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SuggestionTypes" type="t:SuggestionKindType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SearchScope" type="t:ArrayOfSearchScopeType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Scenario" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DeleteSearchSuggestion" type="m:DeleteSearchSuggestion"/>
+
+ <xs:complexType name="DeleteSearchSuggestionResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="Response" type="t:DeleteSearchSuggestionResponseType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="DeleteSearchSuggestionResponse" type="m:DeleteSearchSuggestionResponseMessageType"/>
+
+ <!-- ExecuteSearchRequest -->
+ <xs:complexType name="ExecuteSearch">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="ApplicationId" type="t:SearchApplicationIdType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Scenario" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SearchSessionId" type="t:GuidType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SearchScope" type="t:ArrayOfSearchScopeType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Query" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="AnalyzedQuery" type="t:AnalyzedQuery" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ResultRowCount" type="xs:long" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ResultRowOffset" type="xs:long" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MaxResultsCountHint" type="xs:long" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MaxPreviewLength" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SearchRefiners" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="SearchRefiner" type="t:DynamicRefinerQueryType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ExtendedKeywords" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ExtendedKeywordDefinition" type="t:ExtendedKeywordDefinitionType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="RetrieveRefiners" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MaxRefinersCountPerRefinerType" type="xs:long" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IdFormat" type="t:IdFormatType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ItemTypes" type="t:ItemTypesFilterType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="PropertySetName" type="t:SearchResultsPropertySetNameType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SearchRestrictions" type="t:RestrictionType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IncludeDeleted" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SortOrder" type="t:ExecuteSearchSortOrderType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="KeywordMatchOption" type="t:MatchOptionsType" default="Prefix" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ReturnAdditionalIds" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="ExecuteSearch" type="m:ExecuteSearch"/>
+
+ <xs:complexType name="ExecuteSearchResponseMessage">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="SearchResults" type="t:SearchResultsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="ExecuteSearchResponse" type="m:ExecuteSearchResponseMessage"/>
+
+ <!-- EndSearchSession -->
+ <xs:complexType name="EndSearchSession">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="SearchSessionId" type="t:GuidType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="EndSearchSession" type="m:EndSearchSession"/>
+
+ <xs:complexType name="EndSearchSessionResponseMessage">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="EndSearchSessionResponse" type="m:EndSearchSessionResponseMessage"/>
+
+ <!-- GetLastPrivateCatalogUpdate request -->
+ <xs:complexType name="GetLastPrivateCatalogUpdateType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Client" type="t:OfficeClientType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetLastPrivateCatalogUpdate" type="m:GetLastPrivateCatalogUpdateType"/>
+
+ <!-- GetLastPrivateCatalogUpdate response -->
+ <xs:complexType name="GetLastPrivateCatalogUpdateResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:choice maxOccurs="1" minOccurs="0">
+ <xs:element name="LastUpdate" type="xs:dateTime"/>
+ <xs:element name="CatalogHash" type="xs:string"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetLastPrivateCatalogUpdateResponse" type="m:GetLastPrivateCatalogUpdateResponseType"/>
+
+ <!-- GetPrivateCatalogAddIns request -->
+ <xs:complexType name="GetPrivateCatalogAddInsType">
+ <xs:complexContent>
+ <xs:extension base="m:BaseRequestType">
+ <xs:sequence>
+ <xs:element name="Client" type="t:OfficeClientType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="GetPrivateCatalogAddIns" type="m:GetPrivateCatalogAddInsType"/>
+
+ <!-- GetPrivateCatalogAddIns response -->
+ <xs:complexType name="GetPrivateCatalogAddInsResponseType">
+ <xs:complexContent>
+ <xs:extension base="m:ResponseMessageType">
+ <xs:sequence>
+ <xs:element name="AddIns" type="m:ArrayOfPrivateCatalogAddInsType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfPrivateCatalogAddInsType">
+ <xs:sequence>
+ <xs:element name="AddIn" type="m:PrivateCatalogAddInsType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PrivateCatalogAddInsType">
+ <xs:attribute name="ProductId" type="xs:string" use="required"/>
+ <xs:attribute name="State" type="t:AddInStateType" use="required"/>
+ <xs:attribute name="Version" type="t:VersionType" use="required"/>
+ </xs:complexType>
+
+ <xs:element name="GetPrivateCatalogAddInsResponse" type="m:GetPrivateCatalogAddInsResponseType"/>
+</xs:schema>
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 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://schemas.microsoft.com/exchange/services/2006/messages"
+ xmlns:s="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://schemas.microsoft.com/exchange/services/2006/messages"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
+ <wsdl:types>
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:import namespace="http://schemas.microsoft.com/exchange/services/2006/messages" schemaLocation="messages.xsd"/>
+ </xs:schema>
+ </wsdl:types>
+ <wsdl:message name="FindAvailableMeetingTimesSoapIn">
+ <wsdl:part name="request" element="tns:FindAvailableMeetingTimes"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="FindAvailableMeetingTimesSoapOut">
+ <wsdl:part name="FindAvailableMeetingTimesResult" element="tns:FindAvailableMeetingTimesResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="FindMeetingTimeCandidatesSoapIn">
+ <wsdl:part name="request" element="tns:FindMeetingTimeCandidates"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ </wsdl:message>
+ <wsdl:message name="FindMeetingTimeCandidatesSoapOut">
+ <wsdl:part name="FindMeetingTimeCandidatesResult" element="tns:FindMeetingTimeCandidatesResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="UploadItemsSoapIn">
+ <wsdl:part name="request" element="tns:UploadItems"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="UploadItemsSoapOut">
+ <wsdl:part name="UploadItemsResult" element="tns:UploadItemsResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="ExportItemsSoapIn">
+ <wsdl:part name="request" element="tns:ExportItems"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="ExportItemsSoapOut">
+ <wsdl:part name="ExportItemsResult" element="tns:ExportItemsResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="ConvertIdSoapIn">
+ <wsdl:part name="request" element="tns:ConvertId"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="ConvertIdSoapOut">
+ <wsdl:part name="ConvertIdResult" element="tns:ConvertIdResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetFolderSoapIn">
+ <wsdl:part name="request" element="tns:GetFolder" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="GetFolderSoapOut">
+ <wsdl:part name="GetFolderResult" element="tns:GetFolderResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="CreateFolderSoapIn">
+ <wsdl:part name="request" element="tns:CreateFolder" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ </wsdl:message>
+ <wsdl:message name="CreateFolderSoapOut">
+ <wsdl:part name="CreateFolderResult" element="tns:CreateFolderResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="CreateFolderPathSoapIn">
+ <wsdl:part name="request" element="tns:CreateFolderPath" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ </wsdl:message>
+ <wsdl:message name="CreateFolderPathSoapOut">
+ <wsdl:part name="CreateFolderPathResult" element="tns:CreateFolderPathResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="CreateManagedFolderSoapIn">
+ <wsdl:part name="request" element="tns:CreateManagedFolder" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="CreateManagedFolderSoapOut">
+ <wsdl:part name="CreateManagedFolderResult" element="tns:CreateManagedFolderResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteFolderSoapIn">
+ <wsdl:part name="request" element="tns:DeleteFolder" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteFolderSoapOut">
+ <wsdl:part name="DeleteFolderResult" element="tns:DeleteFolderResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="EmptyFolderSoapIn">
+ <wsdl:part name="request" element="tns:EmptyFolder" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="EmptyFolderSoapOut">
+ <wsdl:part name="EmptyFolderResult" element="tns:EmptyFolderResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateFolderSoapIn">
+ <wsdl:part name="request" element="tns:UpdateFolder" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateFolderSoapOut">
+ <wsdl:part name="UpdateFolderResult" element="tns:UpdateFolderResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="MoveFolderSoapIn">
+ <wsdl:part name="request" element="tns:MoveFolder" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="MoveFolderSoapOut">
+ <wsdl:part name="MoveFolderResult" element="tns:MoveFolderResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="CopyFolderSoapIn">
+ <wsdl:part name="request" element="tns:CopyFolder" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="CopyFolderSoapOut">
+ <wsdl:part name="CopyFolderResult" element="tns:CopyFolderResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="FindFolderSoapIn">
+ <wsdl:part name="request" element="tns:FindFolder"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="FindFolderSoapOut">
+ <wsdl:part name="FindFolderResult" element="tns:FindFolderResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetItemSoapIn">
+ <wsdl:part name="request" element="tns:GetItem" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ <wsdl:part name="DateTimePrecision" element="t:DateTimePrecision" />
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="GetItemSoapOut">
+ <wsdl:part name="GetItemResult" element="tns:GetItemResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="CreateItemSoapIn">
+ <wsdl:part name="request" element="tns:CreateItem" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ </wsdl:message>
+ <wsdl:message name="CreateItemSoapOut">
+ <wsdl:part name="CreateItemResult" element="tns:CreateItemResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteItemSoapIn">
+ <wsdl:part name="request" element="tns:DeleteItem" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteItemSoapOut">
+ <wsdl:part name="DeleteItemResult" element="tns:DeleteItemResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateItemSoapIn">
+ <wsdl:part name="request" element="tns:UpdateItem" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateItemSoapOut">
+ <wsdl:part name="UpdateItemResult" element="tns:UpdateItemResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateItemInRecoverableItemsSoapIn">
+ <wsdl:part name="request" element="tns:UpdateItemInRecoverableItems" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateItemInRecoverableItemsSoapOut">
+ <wsdl:part name="UpdateItemInRecoverableItemsResult" element="tns:UpdateItemInRecoverableItemsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="SendItemSoapIn">
+ <wsdl:part name="request" element="tns:SendItem" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="SendItemSoapOut">
+ <wsdl:part name="SendItemResult" element="tns:SendItemResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="MoveItemSoapIn">
+ <wsdl:part name="request" element="tns:MoveItem" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="MoveItemSoapOut">
+ <wsdl:part name="MoveItemResult" element="tns:MoveItemResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="CopyItemSoapIn">
+ <wsdl:part name="request" element="tns:CopyItem" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="CopyItemSoapOut">
+ <wsdl:part name="CopyItemResult" element="tns:CopyItemResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="ArchiveItemSoapIn">
+ <wsdl:part name="request" element="tns:ArchiveItem" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="ArchiveItemSoapOut">
+ <wsdl:part name="ArchiveItemResult" element="tns:ArchiveItemResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="CreateAttachmentSoapIn">
+ <wsdl:part name="request" element="tns:CreateAttachment" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ </wsdl:message>
+ <wsdl:message name="CreateAttachmentSoapOut">
+ <wsdl:part name="CreateAttachmentResult" element="tns:CreateAttachmentResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteAttachmentSoapIn">
+ <wsdl:part name="request" element="tns:DeleteAttachment" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteAttachmentSoapOut">
+ <wsdl:part name="DeleteAttachmentResult" element="tns:DeleteAttachmentResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetAttachmentSoapIn">
+ <wsdl:part name="request" element="tns:GetAttachment" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ </wsdl:message>
+ <wsdl:message name="GetAttachmentSoapOut">
+ <wsdl:part name="GetAttachmentResult" element="tns:GetAttachmentResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetClientAccessTokenSoapIn">
+ <wsdl:part name="request" element="tns:GetClientAccessToken" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetClientAccessTokenSoapOut">
+ <wsdl:part name="GetClientAccessTokenResult" element="tns:GetClientAccessTokenResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetFocusedOtherOverridesSoapIn">
+ <wsdl:part name="request" element="tns:GetFocusedOtherOverrides"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetFocusedOtherOverridesSoapOut">
+ <wsdl:part name="GetFocusedOtherOverridesResult" element="tns:GetFocusedOtherOverridesResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="CreateOrUpdateFocusedOtherOverrideSoapIn">
+ <wsdl:part name="request" element="tns:CreateOrUpdateFocusedOtherOverride"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="CreateOrUpdateFocusedOtherOverrideSoapOut">
+ <wsdl:part name="CreateOrUpdateFocusedOtherOverrideResult" element="tns:CreateOrUpdateFocusedOtherOverrideResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteFocusedOtherOverrideSoapIn">
+ <wsdl:part name="request" element="tns:DeleteFocusedOtherOverride"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteFocusedOtherOverrideSoapOut">
+ <wsdl:part name="DeleteFocusedOtherOverrideResult" element="tns:DeleteFocusedOtherOverrideResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="ResolveNamesSoapIn">
+ <wsdl:part name="request" element="tns:ResolveNames" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="ResolveNamesSoapOut">
+ <wsdl:part name="ResolveNamesResult" element="tns:ResolveNamesResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="ExpandDLSoapIn">
+ <wsdl:part name="request" element="tns:ExpandDL" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="ExpandDLSoapOut">
+ <wsdl:part name="ExpandDLResult" element="tns:ExpandDLResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetServerTimeZonesSoapIn">
+ <wsdl:part name="request" element="tns:GetServerTimeZones" />
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetServerTimeZonesSoapOut">
+ <wsdl:part name="GetServerTimeZonesResult" element="tns:GetServerTimeZonesResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="FindItemSoapIn">
+ <wsdl:part name="request" element="tns:FindItem"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+ <wsdl:part name="DateTimePrecision" element="t:DateTimePrecision" />
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="FindItemSoapOut">
+ <wsdl:part name="FindItemResult" element="tns:FindItemResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="SubscribeSoapIn">
+ <wsdl:part name="request" element="tns:Subscribe" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="SubscribeSoapOut">
+ <wsdl:part name="SubscribeResult" element="tns:SubscribeResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="UnsubscribeSoapIn">
+ <wsdl:part name="request" element="tns:Unsubscribe" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="UnsubscribeSoapOut">
+ <wsdl:part name="UnsubscribeResult" element="tns:UnsubscribeResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetEventsSoapIn">
+ <wsdl:part name="request" element="tns:GetEvents" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetEventsSoapOut">
+ <wsdl:part name="GetEventsResult" element="tns:GetEventsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetStreamingEventsSoapIn">
+ <wsdl:part name="request" element="tns:GetStreamingEvents" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetStreamingEventsSoapOut">
+ <wsdl:part name="GetStreamingEventsResult" element="tns:GetStreamingEventsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="SyncFolderHierarchySoapIn">
+ <wsdl:part name="request" element="tns:SyncFolderHierarchy" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="SyncFolderHierarchySoapOut">
+ <wsdl:part name="SyncFolderHierarchyResult" element="tns:SyncFolderHierarchyResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="SyncFolderItemsSoapIn">
+ <wsdl:part name="request" element="tns:SyncFolderItems" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="SyncFolderItemsSoapOut">
+ <wsdl:part name="SyncFolderItemsResult" element="tns:SyncFolderItemsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetDelegateSoapIn">
+ <wsdl:part name="request" element="tns:GetDelegate" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetDelegateSoapOut">
+ <wsdl:part name="GetDelegateResult" element="tns:GetDelegateResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="AddDelegateSoapIn">
+ <wsdl:part name="request" element="tns:AddDelegate" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="AddDelegateSoapOut">
+ <wsdl:part name="AddDelegateResult" element="tns:AddDelegateResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="RemoveDelegateSoapIn">
+ <wsdl:part name="request" element="tns:RemoveDelegate" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="RemoveDelegateSoapOut">
+ <wsdl:part name="RemoveDelegateResult" element="tns:RemoveDelegateResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateDelegateSoapIn">
+ <wsdl:part name="request" element="tns:UpdateDelegate" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateDelegateSoapOut">
+ <wsdl:part name="UpdateDelegateResult" element="tns:UpdateDelegateResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="CreateUserConfigurationSoapIn">
+ <wsdl:part name="request" element="tns:CreateUserConfiguration" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="CreateUserConfigurationSoapOut">
+ <wsdl:part name="CreateUserConfigurationResult" element="tns:CreateUserConfigurationResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteUserConfigurationSoapIn">
+ <wsdl:part name="request" element="tns:DeleteUserConfiguration" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteUserConfigurationSoapOut">
+ <wsdl:part name="DeleteUserConfigurationResult" element="tns:DeleteUserConfigurationResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetUserConfigurationSoapIn">
+ <wsdl:part name="request" element="tns:GetUserConfiguration" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetUserConfigurationSoapOut">
+ <wsdl:part name="GetUserConfigurationResult" element="tns:GetUserConfigurationResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetSpecificUserConfigurationSoapIn">
+ <wsdl:part name="request" element="tns:GetSpecificUserConfiguration" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetSpecificUserConfigurationSoapOut">
+ <wsdl:part name="GetSpecificUserConfigurationResult" element="tns:GetSpecificUserConfigurationResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateUserConfigurationSoapIn">
+ <wsdl:part name="request" element="tns:UpdateUserConfiguration" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateUserConfigurationSoapOut">
+ <wsdl:part name="UpdateUserConfigurationResult" element="tns:UpdateUserConfigurationResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- Availability Service messages -->
+ <wsdl:message name="GetUserAvailabilitySoapIn">
+ <wsdl:part name="GetUserAvailabilityRequest" element="tns:GetUserAvailabilityRequest" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetUserAvailabilitySoapOut">
+ <wsdl:part name="GetUserAvailabilityResult" element="tns:GetUserAvailabilityResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetUserOofSettingsSoapIn">
+ <wsdl:part name="GetUserOofSettingsRequest" element="tns:GetUserOofSettingsRequest" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetUserOofSettingsSoapOut">
+ <wsdl:part name="GetUserOofSettingsResult" element="tns:GetUserOofSettingsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="SetUserOofSettingsSoapIn">
+ <wsdl:part name="SetUserOofSettingsRequest" element="tns:SetUserOofSettingsRequest" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="SetUserOofSettingsSoapOut">
+ <wsdl:part name="SetUserOofSettingsResult" element="tns:SetUserOofSettingsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- MailTips Messages -->
+ <wsdl:message name="GetMailTipsSoapIn">
+ <wsdl:part name="request" element="tns:GetMailTips" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ </wsdl:message>
+ <wsdl:message name="GetMailTipsSoapOut">
+ <wsdl:part name="GetMailTipsResult" element="tns:GetMailTipsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- UM Messages -->
+ <wsdl:message name="PlayOnPhoneSoapIn">
+ <wsdl:part name="request" element="tns:PlayOnPhone"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="PlayOnPhoneSoapOut">
+ <wsdl:part name="PlayOnPhoneResult" element="tns:PlayOnPhoneResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetPhoneCallInformationSoapIn">
+ <wsdl:part name="request" element="tns:GetPhoneCallInformation"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetPhoneCallInformationSoapOut">
+ <wsdl:part name="GetPhoneCallInformationResult" element="tns:GetPhoneCallInformationResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="DisconnectPhoneCallSoapIn">
+ <wsdl:part name="request" element="tns:DisconnectPhoneCall"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="DisconnectPhoneCallSoapOut">
+ <wsdl:part name="DisconnectPhoneCallResult" element="tns:DisconnectPhoneCallResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+
+ <!-- Sharing Messages -->
+ <wsdl:message name="GetSharingMetadataSoapIn">
+ <wsdl:part name="request" element="tns:GetSharingMetadata" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetSharingMetadataSoapOut">
+ <wsdl:part name="GetSharingMetadataResult" element="tns:GetSharingMetadataResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="RefreshSharingFolderSoapIn">
+ <wsdl:part name="request" element="tns:RefreshSharingFolder" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="RefreshSharingFolderSoapOut">
+ <wsdl:part name="RefreshSharingFolderResult" element="tns:RefreshSharingFolderResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetSharingFolderSoapIn">
+ <wsdl:part name="request" element="tns:GetSharingFolder" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetSharingFolderSoapOut">
+ <wsdl:part name="GetSharingFolderResult" element="tns:GetSharingFolderResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- SetTeamMailbox -->
+ <wsdl:message name="SetTeamMailboxSoapIn">
+ <wsdl:part name="request" element="tns:SetTeamMailbox"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="SetTeamMailboxSoapOut">
+ <wsdl:part name="SetTeamMailboxResult" element="tns:SetTeamMailboxResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- UnpinTeamMailbox -->
+ <wsdl:message name="UnpinTeamMailboxSoapIn">
+ <wsdl:part name="request" element="tns:UnpinTeamMailbox"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="UnpinTeamMailboxSoapOut">
+ <wsdl:part name="UnpinTeamMailboxResult" element="tns:UnpinTeamMailboxResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- Find A Room Service Messages -->
+
+ <!-- GetRoomLists Service Messages -->
+ <wsdl:message name="GetRoomListsSoapIn">
+ <wsdl:part name="GetRoomListsRequest" element="tns:GetRoomLists" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetRoomListsSoapOut">
+ <wsdl:part name="GetRoomListsResult" element="tns:GetRoomListsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- GetRooms Service Messages -->
+ <wsdl:message name="GetRoomsSoapIn">
+ <wsdl:part name="GetRoomsRequest" element="tns:GetRooms" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetRoomsSoapOut">
+ <wsdl:part name="GetRoomsResult" element="tns:GetRoomsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- GetServiceConfiguration Messages -->
+ <wsdl:message name="GetServiceConfigurationSoapIn">
+ <wsdl:part name="request" element="tns:GetServiceConfiguration" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ </wsdl:message>
+ <wsdl:message name="GetServiceConfigurationSoapOut">
+ <wsdl:part name="GetServiceConfigurationResult" element="tns:GetServiceConfigurationResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- MessageTracking Messages -->
+ <wsdl:message name="FindMessageTrackingReportSoapIn">
+ <wsdl:part name="request" element="tns:FindMessageTrackingReport"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="FindMessageTrackingReportSoapOut">
+ <wsdl:part name="FindMessageTrackingReportResult" element="tns:FindMessageTrackingReportResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetMessageTrackingReportSoapIn">
+ <wsdl:part name="request" element="tns:GetMessageTrackingReport"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetMessageTrackingReportSoapOut">
+ <wsdl:part name="GetMessageTrackingReportResult" element="tns:GetMessageTrackingReportResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- Conversation Messages-->
+ <wsdl:message name="FindConversationSoapIn">
+ <wsdl:part name="request" element="tns:FindConversation" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion" />
+ </wsdl:message>
+ <wsdl:message name="FindConversationSoapOut">
+ <wsdl:part name="FindConversationResult" element="tns:FindConversationResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
+ </wsdl:message>
+
+ <wsdl:message name="ApplyConversationActionSoapIn">
+ <wsdl:part name="request" element="tns:ApplyConversationAction" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion" />
+ </wsdl:message>
+ <wsdl:message name="ApplyConversationActionSoapOut">
+ <wsdl:part name="ApplyConversationActionResult" element="tns:ApplyConversationActionResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
+ </wsdl:message>
+
+ <wsdl:message name="GetConversationItemsSoapIn">
+ <wsdl:part name="request" element="tns:GetConversationItems" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion" />
+ </wsdl:message>
+ <wsdl:message name="GetConversationItemsSoapOut">
+ <wsdl:part name="GetConversationItemsResult" element="tns:GetConversationItemsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
+ </wsdl:message>
+
+ <!-- FindPeople Messages-->
+ <wsdl:message name="FindPeopleSoapIn">
+ <wsdl:part name="request" element="tns:FindPeople" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion" />
+ </wsdl:message>
+ <wsdl:message name="FindPeopleSoapOut">
+ <wsdl:part name="FindPeopleResult" element="tns:FindPeopleResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
+ </wsdl:message>
+
+ <!-- FindTags Messages-->
+ <wsdl:message name="FindTagsSoapIn">
+ <wsdl:part name="request" element="tns:FindTags" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion" />
+ </wsdl:message>
+ <wsdl:message name="FindTagsSoapOut">
+ <wsdl:part name="FindTagsResult" element="tns:FindTagsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
+ </wsdl:message>
+
+ <!-- AddTag Messages-->
+ <wsdl:message name="AddTagSoapIn">
+ <wsdl:part name="request" element="tns:AddTag" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion" />
+ </wsdl:message>
+ <wsdl:message name="AddTagSoapOut">
+ <wsdl:part name="AddTagResult" element="tns:AddTagResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
+ </wsdl:message>
+
+ <!-- HideTag Messages-->
+ <wsdl:message name="HideTagSoapIn">
+ <wsdl:part name="request" element="tns:HideTag" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion" />
+ </wsdl:message>
+ <wsdl:message name="HideTagSoapOut">
+ <wsdl:part name="HideTagResult" element="tns:HideTagResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
+ </wsdl:message>
+
+ <!-- GetPersona Messages-->
+ <wsdl:message name="GetPersonaSoapIn">
+ <wsdl:part name="request" element="tns:GetPersona" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion" />
+ </wsdl:message>
+ <wsdl:message name="GetPersonaSoapOut">
+ <wsdl:part name="GetPersonaResult" element="tns:GetPersonaResponseMessage" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
+ </wsdl:message>
+
+ <!-- Inbox Rules Messages -->
+ <wsdl:message name="GetInboxRulesSoapIn">
+ <wsdl:part name="request" element="tns:GetInboxRules" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion" />
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext" />
+ </wsdl:message>
+ <wsdl:message name="GetInboxRulesSoapOut">
+ <wsdl:part name="GetInboxRulesResult" element="tns:GetInboxRulesResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
+ </wsdl:message>
+
+ <wsdl:message name="UpdateInboxRulesSoapIn">
+ <wsdl:part name="request" element="tns:UpdateInboxRules" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion" />
+ <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext" />
+ </wsdl:message>
+ <wsdl:message name="UpdateInboxRulesSoapOut">
+ <wsdl:part name="UpdateInboxRulesResult" element="tns:UpdateInboxRulesResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
+ </wsdl:message>
+
+ <wsdl:message name="GetPasswordExpirationDateSoapIn">
+ <wsdl:part name="request" element="tns:GetPasswordExpirationDate" />
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetPasswordExpirationDateSoapOut">
+ <wsdl:part name="GetPasswordExpirationDateResult" element="tns:GetPasswordExpirationDateResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- Mailbox Search Messages -->
+ <wsdl:message name="GetSearchableMailboxesSoapIn">
+ <wsdl:part name="request" element="tns:GetSearchableMailboxes"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="GetSearchableMailboxesSoapOut">
+ <wsdl:part name="GetSearchableMailboxesResult" element="tns:GetSearchableMailboxesResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="SearchMailboxesSoapIn">
+ <wsdl:part name="request" element="tns:SearchMailboxes"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="SearchMailboxesSoapOut">
+ <wsdl:part name="SearchMailboxesResult" element="tns:SearchMailboxesResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetDiscoverySearchConfigurationSoapIn">
+ <wsdl:part name="request" element="tns:GetDiscoverySearchConfiguration"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="GetDiscoverySearchConfigurationSoapOut">
+ <wsdl:part name="GetDiscoverySearchConfigurationResult" element="tns:GetDiscoverySearchConfigurationResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetHoldOnMailboxesSoapIn">
+ <wsdl:part name="request" element="tns:GetHoldOnMailboxes"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="GetHoldOnMailboxesSoapOut">
+ <wsdl:part name="GetHoldOnMailboxesResult" element="tns:GetHoldOnMailboxesResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="SetHoldOnMailboxesSoapIn">
+ <wsdl:part name="request" element="tns:SetHoldOnMailboxes"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="SetHoldOnMailboxesSoapOut">
+ <wsdl:part name="SetHoldOnMailboxesResult" element="tns:SetHoldOnMailboxesResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetNonIndexableItemStatisticsSoapIn">
+ <wsdl:part name="request" element="tns:GetNonIndexableItemStatistics"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="GetNonIndexableItemStatisticsSoapOut">
+ <wsdl:part name="GetNonIndexableItemStatisticsResult" element="tns:GetNonIndexableItemStatisticsResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+ <wsdl:message name="GetNonIndexableItemDetailsSoapIn">
+ <wsdl:part name="request" element="tns:GetNonIndexableItemDetails"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="GetNonIndexableItemDetailsSoapOut">
+ <wsdl:part name="GetNonIndexableItemDetailsResult" element="tns:GetNonIndexableItemDetailsResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="MarkAllItemsAsReadSoapIn">
+ <wsdl:part name="request" element="tns:MarkAllItemsAsRead" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="MarkAllItemsAsReadSoapOut">
+ <wsdl:part name="MarkAllItemsAsReadResult" element="tns:MarkAllItemsAsReadResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="MarkAsJunkSoapIn">
+ <wsdl:part name="request" element="tns:MarkAsJunk" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="MarkAsJunkSoapOut">
+ <wsdl:part name="MarkAsJunkResult" element="tns:MarkAsJunkResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="ReportMessageSoapIn">
+ <wsdl:part name="request" element="tns:ReportMessage" />
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="ReportMessageSoapOut">
+ <wsdl:part name="ReportMessageResult" element="tns:ReportMessageResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetAppManifestsSoapIn">
+ <wsdl:part name="request" element="tns:GetAppManifests" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetAppManifestsSoapOut">
+ <wsdl:part name="GetAppManifestsResult" element="tns:GetAppManifestsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="InstallAppSoapIn">
+ <wsdl:part name="request" element="tns:InstallApp" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="InstallAppSoapOut">
+ <wsdl:part name="InstallAppResult" element="tns:InstallAppResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="UninstallAppSoapIn">
+ <wsdl:part name="request" element="tns:UninstallApp" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="UninstallAppSoapOut">
+ <wsdl:part name="UninstallAppResult" element="tns:UninstallAppResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="DisableAppSoapIn">
+ <wsdl:part name="request" element="tns:DisableApp" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="DisableAppSoapOut">
+ <wsdl:part name="DisableAppResult" element="tns:DisableAppResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- RegisterConsent Messages -->
+ <wsdl:message name="RegisterConsentSoapIn">
+ <wsdl:part name="request" element="tns:RegisterConsent"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="RegisterConsentSoapOut">
+ <wsdl:part name="RegisterConsentResult" element="tns:RegisterConsentResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetAppMarketplaceUrlSoapIn">
+ <wsdl:part name="request" element="tns:GetAppMarketplaceUrl" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetAppMarketplaceUrlSoapOut">
+ <wsdl:part name="GetAppMarketplaceUrlResult" element="tns:GetAppMarketplaceUrlResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- Unified contact store Messages -->
+ <wsdl:message name="AddNewImContactToGroupSoapIn">
+ <wsdl:part name="request" element="tns:AddNewImContactToGroup"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="AddNewImContactToGroupSoapOut">
+ <wsdl:part name="AddNewImContactToGroupResult" element="tns:AddNewImContactToGroupResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="AddNewTelUriContactToGroupSoapIn">
+ <wsdl:part name="request" element="tns:AddNewTelUriContactToGroup"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="AddNewTelUriContactToGroupSoapOut">
+ <wsdl:part name="AddNewTelUriContactToGroupResult" element="tns:AddNewTelUriContactToGroupResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="AddImContactToGroupSoapIn">
+ <wsdl:part name="request" element="tns:AddImContactToGroup"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="AddImContactToGroupSoapOut">
+ <wsdl:part name="AddImContactToGroupResult" element="tns:AddImContactToGroupResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="RemoveImContactFromGroupSoapIn">
+ <wsdl:part name="request" element="tns:RemoveImContactFromGroup"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="RemoveImContactFromGroupSoapOut">
+ <wsdl:part name="RemoveImContactFromGroupResult" element="tns:RemoveImContactFromGroupResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="AddImGroupSoapIn">
+ <wsdl:part name="request" element="tns:AddImGroup"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="AddImGroupSoapOut">
+ <wsdl:part name="AddImGroupResult" element="tns:AddImGroupResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="AddDistributionGroupToImListSoapIn">
+ <wsdl:part name="request" element="tns:AddDistributionGroupToImList"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="AddDistributionGroupToImListSoapOut">
+ <wsdl:part name="AddDistributionGroupToImListResult" element="tns:AddDistributionGroupToImListResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetImItemListSoapIn">
+ <wsdl:part name="request" element="tns:GetImItemList"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetImItemListSoapOut">
+ <wsdl:part name="GetImItemListResult" element="tns:GetImItemListResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetImItemsSoapIn">
+ <wsdl:part name="request" element="tns:GetImItems"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetImItemsSoapOut">
+ <wsdl:part name="GetImItemsResult" element="tns:GetImItemsResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="RemoveContactFromImListSoapIn">
+ <wsdl:part name="request" element="tns:RemoveContactFromImList"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="RemoveContactFromImListSoapOut">
+ <wsdl:part name="RemoveContactFromImListResult" element="tns:RemoveContactFromImListResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="RemoveDistributionGroupFromImListSoapIn">
+ <wsdl:part name="request" element="tns:RemoveDistributionGroupFromImList"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="RemoveDistributionGroupFromImListSoapOut">
+ <wsdl:part name="RemoveDistributionGroupFromImListResult" element="tns:RemoveDistributionGroupFromImListResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="RemoveImGroupSoapIn">
+ <wsdl:part name="request" element="tns:RemoveImGroup"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="RemoveImGroupSoapOut">
+ <wsdl:part name="RemoveImGroupResult" element="tns:RemoveImGroupResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="SetImGroupSoapIn">
+ <wsdl:part name="request" element="tns:SetImGroup"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="SetImGroupSoapOut">
+ <wsdl:part name="SetImGroupResult" element="tns:SetImGroupResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="SetImListMigrationCompletedSoapIn">
+ <wsdl:part name="request" element="tns:SetImListMigrationCompleted"/>
+ <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="SetImListMigrationCompletedSoapOut">
+ <wsdl:part name="SetImListMigrationCompletedResult" element="tns:SetImListMigrationCompletedResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- MRM Messages -->
+ <wsdl:message name="GetUserRetentionPolicyTagsSoapIn">
+ <wsdl:part name="request" element="tns:GetUserRetentionPolicyTags"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetUserRetentionPolicyTagsSoapOut">
+ <wsdl:part name="GetUserRetentionPolicyTagsResult" element="tns:GetUserRetentionPolicyTagsResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- Photos -->
+ <wsdl:message name="GetUserPhotoSoapIn">
+ <wsdl:part name="request" element="tns:GetUserPhoto"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetUserPhotoSoapOut">
+ <wsdl:part name="GetUserPhotoResult" element="tns:GetUserPhotoResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="SetUserPhotoSoapIn">
+ <wsdl:part name="request" element="tns:SetUserPhoto"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="SetUserPhotoSoapOut">
+ <wsdl:part name="SetUserPhotoResult" element="tns:SetUserPhotoResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetMeetingSpaceSoapIn">
+ <wsdl:part name="request" element="tns:GetMeetingSpace"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="GetMeetingSpaceSoapOut">
+ <wsdl:part name="GetMeetingSpaceResult" element="tns:GetMeetingSpaceResponseMessage"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="DeleteMeetingSpaceSoapIn">
+ <wsdl:part name="request" element="tns:DeleteMeetingSpace"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteMeetingSpaceSoapOut">
+ <wsdl:part name="DeleteMeetingSpaceResult" element="tns:DeleteMeetingSpaceResponseMessage"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="UpdateMeetingSpaceSoapIn">
+ <wsdl:part name="request" element="tns:UpdateMeetingSpace"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateMeetingSpaceSoapOut">
+ <wsdl:part name="UpdateMeetingSpaceResult" element="tns:UpdateMeetingSpaceResponseMessage"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="CreateMeetingSpaceSoapIn">
+ <wsdl:part name="request" element="tns:CreateMeetingSpace"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="CreateMeetingSpaceSoapOut">
+ <wsdl:part name="CreateMeetingSpaceResult" element="tns:CreateMeetingSpaceResponseMessage"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="FindMeetingSpaceByJoinUrlSoapIn">
+ <wsdl:part name="request" element="tns:FindMeetingSpaceByJoinUrl"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="FindMeetingSpaceByJoinUrlSoapOut">
+ <wsdl:part name="FindMeetingSpaceByJoinUrlResult" element="tns:FindMeetingSpaceByJoinUrlResponseMessage"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="GetMeetingInstanceSoapIn">
+ <wsdl:part name="request" element="tns:GetMeetingInstanceRequest"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="GetMeetingInstanceSoapOut">
+ <wsdl:part name="GetMeetingInstanceResult" element="tns:GetMeetingInstanceResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="DeleteMeetingInstanceSoapIn">
+ <wsdl:part name="request" element="tns:DeleteMeetingInstanceRequest"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteMeetingInstanceSoapOut">
+ <wsdl:part name="DeleteMeetingInstanceResult" element="tns:DeleteMeetingInstanceResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="UpdateMeetingInstanceSoapIn">
+ <wsdl:part name="request" element="tns:UpdateMeetingInstanceRequest"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="UpdateMeetingInstanceSoapOut">
+ <wsdl:part name="UpdateMeetingInstanceResult" element="tns:UpdateMeetingInstanceResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:message name="CreateMeetingInstanceSoapIn">
+ <wsdl:part name="request" element="tns:CreateMeetingInstanceRequest"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ <wsdl:part name="ManagementRole" element="t:ManagementRole"/>
+ </wsdl:message>
+ <wsdl:message name="CreateMeetingInstanceSoapOut">
+ <wsdl:part name="CreateMeetingInstanceResult" element="tns:CreateMeetingInstanceResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- Start Search Session Messages -->
+ <wsdl:message name="StartSearchSessionSoapIn">
+ <wsdl:part name="request" element="tns:StartSearchSession"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="StartSearchSessionSoapOut">
+ <wsdl:part name="StartSearchSessionResult" element="tns:StartSearchSessionResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- Get Search Suggestions Messages -->
+ <wsdl:message name="GetSearchSuggestionsSoapIn">
+ <wsdl:part name="request" element="tns:GetSearchSuggestions"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetSearchSuggestionsSoapOut">
+ <wsdl:part name="GetSearchSuggestionsResult" element="tns:GetSearchSuggestionsResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- Delete Search Suggestion Messages -->
+ <wsdl:message name="DeleteSearchSuggestionSoapIn">
+ <wsdl:part name="request" element="tns:DeleteSearchSuggestion"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="DeleteSearchSuggestionSoapOut">
+ <wsdl:part name="DeleteSearchSuggestionResult" element="tns:DeleteSearchSuggestionResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- Execute Search Messages> -->
+ <wsdl:message name="ExecuteSearchSoapIn">
+ <wsdl:part name="request" element="tns:ExecuteSearch"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="ExecuteSearchSoapOut">
+ <wsdl:part name="ExecuteSearchResult" element="tns:ExecuteSearchResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- End search Session Messages -->
+ <wsdl:message name="EndSearchSessionSoapIn">
+ <wsdl:part name="request" element="tns:EndSearchSession"/>
+ <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="EndSearchSessionSoapOut">
+ <wsdl:part name="EndSearchSessionResult" element="tns:EndSearchSessionResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- GetLastPrivateCatalogUpdate Messages -->
+ <wsdl:message name="GetLastPrivateCatalogUpdateSoapIn">
+ <wsdl:part name="request" element="tns:GetLastPrivateCatalogUpdate"/>
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetLastPrivateCatalogUpdateSoapOut">
+ <wsdl:part name="GetLastPrivateCatalogUpdateResult" element="tns:GetLastPrivateCatalogUpdateResponse"/>
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <!-- GetPrivateCatalogAddIns Messages -->
+ <wsdl:message name="GetPrivateCatalogAddInsSoapIn">
+ <wsdl:part name="request" element="tns:GetPrivateCatalogAddIns" />
+ <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+ </wsdl:message>
+ <wsdl:message name="GetPrivateCatalogAddInsSoapOut">
+ <wsdl:part name="GetPrivateCatalogAddInsResult" element="tns:GetPrivateCatalogAddInsResponse" />
+ <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+ </wsdl:message>
+
+ <wsdl:portType name="ExchangeServicePortType">
+ <wsdl:operation name="ResolveNames">
+ <wsdl:input message="tns:ResolveNamesSoapIn" />
+ <wsdl:output message="tns:ResolveNamesSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="ExpandDL">
+ <wsdl:input message="tns:ExpandDLSoapIn" />
+ <wsdl:output message="tns:ExpandDLSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="GetServerTimeZones">
+ <wsdl:input message="tns:GetServerTimeZonesSoapIn" />
+ <wsdl:output message="tns:GetServerTimeZonesSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="FindFolder">
+ <wsdl:input message="tns:FindFolderSoapIn"/>
+ <wsdl:output message="tns:FindFolderSoapOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="FindItem">
+ <wsdl:input message="tns:FindItemSoapIn"/>
+ <wsdl:output message="tns:FindItemSoapOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="GetFolder">
+ <wsdl:input message="tns:GetFolderSoapIn" />
+ <wsdl:output message="tns:GetFolderSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="UploadItems">
+ <wsdl:input message="tns:UploadItemsSoapIn" />
+ <wsdl:output message="tns:UploadItemsSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="ExportItems">
+ <wsdl:input message="tns:ExportItemsSoapIn" />
+ <wsdl:output message="tns:ExportItemsSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="ConvertId">
+ <wsdl:input message="tns:ConvertIdSoapIn"/>
+ <wsdl:output message="tns:ConvertIdSoapOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="CreateFolder">
+ <wsdl:input message="tns:CreateFolderSoapIn" />
+ <wsdl:output message="tns:CreateFolderSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="CreateFolderPath">
+ <wsdl:input message="tns:CreateFolderPathSoapIn" />
+ <wsdl:output message="tns:CreateFolderPathSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="DeleteFolder">
+ <wsdl:input message="tns:DeleteFolderSoapIn" />
+ <wsdl:output message="tns:DeleteFolderSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="EmptyFolder">
+ <wsdl:input message="tns:EmptyFolderSoapIn" />
+ <wsdl:output message="tns:EmptyFolderSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="UpdateFolder">
+ <wsdl:input message="tns:UpdateFolderSoapIn" />
+ <wsdl:output message="tns:UpdateFolderSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="MoveFolder">
+ <wsdl:input message="tns:MoveFolderSoapIn" />
+ <wsdl:output message="tns:MoveFolderSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="CopyFolder">
+ <wsdl:input message="tns:CopyFolderSoapIn" />
+ <wsdl:output message="tns:CopyFolderSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="Subscribe">
+ <wsdl:input message="tns:SubscribeSoapIn" />
+ <wsdl:output message="tns:SubscribeSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="Unsubscribe">
+ <wsdl:input message="tns:UnsubscribeSoapIn" />
+ <wsdl:output message="tns:UnsubscribeSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="GetEvents">
+ <wsdl:input message="tns:GetEventsSoapIn" />
+ <wsdl:output message="tns:GetEventsSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="GetStreamingEvents">
+ <wsdl:input message="tns:GetStreamingEventsSoapIn" />
+ <wsdl:output message="tns:GetStreamingEventsSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="SyncFolderHierarchy">
+ <wsdl:input message="tns:SyncFolderHierarchySoapIn" />
+ <wsdl:output message="tns:SyncFolderHierarchySoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="SyncFolderItems">
+ <wsdl:input message="tns:SyncFolderItemsSoapIn" />
+ <wsdl:output message="tns:SyncFolderItemsSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="CreateManagedFolder">
+ <wsdl:input message="tns:CreateManagedFolderSoapIn" />
+ <wsdl:output message="tns:CreateManagedFolderSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="GetItem">
+ <wsdl:input message="tns:GetItemSoapIn" />
+ <wsdl:output message="tns:GetItemSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="CreateItem">
+ <wsdl:input message="tns:CreateItemSoapIn" />
+ <wsdl:output message="tns:CreateItemSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="DeleteItem">
+ <wsdl:input message="tns:DeleteItemSoapIn" />
+ <wsdl:output message="tns:DeleteItemSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="UpdateItem">
+ <wsdl:input message="tns:UpdateItemSoapIn" />
+ <wsdl:output message="tns:UpdateItemSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="UpdateItemInRecoverableItems">
+ <wsdl:input message="tns:UpdateItemInRecoverableItemsSoapIn" />
+ <wsdl:output message="tns:UpdateItemInRecoverableItemsSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="SendItem">
+ <wsdl:input message="tns:SendItemSoapIn" />
+ <wsdl:output message="tns:SendItemSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="MoveItem">
+ <wsdl:input message="tns:MoveItemSoapIn" />
+ <wsdl:output message="tns:MoveItemSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="CopyItem">
+ <wsdl:input message="tns:CopyItemSoapIn" />
+ <wsdl:output message="tns:CopyItemSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="ArchiveItem">
+ <wsdl:input message="tns:ArchiveItemSoapIn" />
+ <wsdl:output message="tns:ArchiveItemSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="CreateAttachment">
+ <wsdl:input message="tns:CreateAttachmentSoapIn" />
+ <wsdl:output message="tns:CreateAttachmentSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="DeleteAttachment">
+ <wsdl:input message="tns:DeleteAttachmentSoapIn" />
+ <wsdl:output message="tns:DeleteAttachmentSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="GetAttachment">
+ <wsdl:input message="tns:GetAttachmentSoapIn" />
+ <wsdl:output message="tns:GetAttachmentSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="GetClientAccessToken">
+ <wsdl:input message="tns:GetClientAccessTokenSoapIn" />
+ <wsdl:output message="tns:GetClientAccessTokenSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="GetDelegate">
+ <wsdl:input message="tns:GetDelegateSoapIn" />
+ <wsdl:output message="tns:GetDelegateSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="AddDelegate">
+ <wsdl:input message="tns:AddDelegateSoapIn" />
+ <wsdl:output message="tns:AddDelegateSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="RemoveDelegate">
+ <wsdl:input message="tns:RemoveDelegateSoapIn" />
+ <wsdl:output message="tns:RemoveDelegateSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="UpdateDelegate">
+ <wsdl:input message="tns:UpdateDelegateSoapIn" />
+ <wsdl:output message="tns:UpdateDelegateSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="CreateUserConfiguration">
+ <wsdl:input message="tns:CreateUserConfigurationSoapIn" />
+ <wsdl:output message="tns:CreateUserConfigurationSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="DeleteUserConfiguration">
+ <wsdl:input message="tns:DeleteUserConfigurationSoapIn" />
+ <wsdl:output message="tns:DeleteUserConfigurationSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="GetUserConfiguration">
+ <wsdl:input message="tns:GetUserConfigurationSoapIn" />
+ <wsdl:output message="tns:GetUserConfigurationSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="GetSpecificUserConfiguration">
+ <wsdl:input message="tns:GetSpecificUserConfigurationSoapIn" />
+ <wsdl:output message="tns:GetSpecificUserConfigurationSoapOut" />
+ </wsdl:operation>
+ <wsdl:operation name="UpdateUserConfiguration">
+ <wsdl:input message="tns:UpdateUserConfigurationSoapIn" />
+ <wsdl:output message="tns:UpdateUserConfigurationSoapOut" />
+ </wsdl:operation>
+
+ <!-- Availability Service Operations -->
+
+ <!-- GetUserAvailability -->
+ <wsdl:operation name="GetUserAvailability">
+ <wsdl:input message="tns:GetUserAvailabilitySoapIn" />
+ <wsdl:output message="tns:GetUserAvailabilitySoapOut" />
+ </wsdl:operation>
+
+ <!-- GetUserOofSettings -->
+ <wsdl:operation name="GetUserOofSettings">
+ <wsdl:input message="tns:GetUserOofSettingsSoapIn" />
+ <wsdl:output message="tns:GetUserOofSettingsSoapOut" />
+ </wsdl:operation>
+
+ <!-- SetUserOofSettings -->
+ <wsdl:operation name="SetUserOofSettings">
+ <wsdl:input message="tns:SetUserOofSettingsSoapIn" />
+ <wsdl:output message="tns:SetUserOofSettingsSoapOut" />
+ </wsdl:operation>
+
+ <!-- GetServiceConfiguration Operations -->
+ <wsdl:operation name="GetServiceConfiguration">
+ <wsdl:input message="tns:GetServiceConfigurationSoapIn" />
+ <wsdl:output message="tns:GetServiceConfigurationSoapOut" />
+ </wsdl:operation>
+
+ <!-- MailTips Operations -->
+ <wsdl:operation name="GetMailTips">
+ <wsdl:input message="tns:GetMailTipsSoapIn" />
+ <wsdl:output message="tns:GetMailTipsSoapOut" />
+ </wsdl:operation>
+
+ <!-- UM Operations -->
+ <wsdl:operation name="PlayOnPhone">
+ <wsdl:input message="tns:PlayOnPhoneSoapIn" />
+ <wsdl:output message="tns:PlayOnPhoneSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="GetPhoneCallInformation">
+ <wsdl:input message="tns:GetPhoneCallInformationSoapIn" />
+ <wsdl:output message="tns:GetPhoneCallInformationSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="DisconnectPhoneCall">
+ <wsdl:input message="tns:DisconnectPhoneCallSoapIn" />
+ <wsdl:output message="tns:DisconnectPhoneCallSoapOut" />
+ </wsdl:operation>
+
+ <!-- Sharing Operations -->
+ <wsdl:operation name="GetSharingMetadata">
+ <wsdl:input message="tns:GetSharingMetadataSoapIn" />
+ <wsdl:output message="tns:GetSharingMetadataSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="RefreshSharingFolder">
+ <wsdl:input message="tns:RefreshSharingFolderSoapIn" />
+ <wsdl:output message="tns:RefreshSharingFolderSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="GetSharingFolder">
+ <wsdl:input message="tns:GetSharingFolderSoapIn" />
+ <wsdl:output message="tns:GetSharingFolderSoapOut" />
+ </wsdl:operation>
+
+ <!-- SetTeamMailbox -->
+ <wsdl:operation name="SetTeamMailbox">
+ <wsdl:input message="tns:SetTeamMailboxSoapIn" />
+ <wsdl:output message="tns:SetTeamMailboxSoapOut" />
+ </wsdl:operation>
+
+ <!-- UnpinTeamMailbox -->
+ <wsdl:operation name="UnpinTeamMailbox">
+ <wsdl:input message="tns:UnpinTeamMailboxSoapIn" />
+ <wsdl:output message="tns:UnpinTeamMailboxSoapOut" />
+ </wsdl:operation>
+
+ <!-- Find A Room Service Operations -->
+
+ <!-- GetRoomLists -->
+ <wsdl:operation name="GetRoomLists">
+ <wsdl:input message="tns:GetRoomListsSoapIn" />
+ <wsdl:output message="tns:GetRoomListsSoapOut" />
+ </wsdl:operation>
+
+ <!-- GetRooms -->
+ <wsdl:operation name="GetRooms">
+ <wsdl:input message="tns:GetRoomsSoapIn" />
+ <wsdl:output message="tns:GetRoomsSoapOut" />
+ </wsdl:operation>
+
+ <!-- MessageTracking -->
+ <wsdl:operation name="FindMessageTrackingReport">
+ <wsdl:input message="tns:FindMessageTrackingReportSoapIn"/>
+ <wsdl:output message="tns:FindMessageTrackingReportSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetMessageTrackingReport">
+ <wsdl:input message="tns:GetMessageTrackingReportSoapIn"/>
+ <wsdl:output message="tns:GetMessageTrackingReportSoapOut"/>
+ </wsdl:operation>
+
+ <!--Conversations-->
+ <wsdl:operation name ="FindConversation">
+ <wsdl:input message="tns:FindConversationSoapIn" />
+ <wsdl:output message="tns:FindConversationSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name ="ApplyConversationAction">
+ <wsdl:input message="tns:ApplyConversationActionSoapIn" />
+ <wsdl:output message="tns:ApplyConversationActionSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name ="GetConversationItems">
+ <wsdl:input message="tns:GetConversationItemsSoapIn" />
+ <wsdl:output message="tns:GetConversationItemsSoapOut" />
+ </wsdl:operation>
+
+ <!--FindPeople-->
+ <wsdl:operation name="FindPeople">
+ <wsdl:input message="tns:FindPeopleSoapIn" />
+ <wsdl:output message="tns:FindPeopleSoapOut" />
+ </wsdl:operation>
+
+ <!--FindTags-->
+ <wsdl:operation name="FindTags">
+ <wsdl:input message="tns:FindTagsSoapIn" />
+ <wsdl:output message="tns:FindTagsSoapOut" />
+ </wsdl:operation>
+
+ <!--AddTag-->
+ <wsdl:operation name="AddTag">
+ <wsdl:input message="tns:AddTagSoapIn" />
+ <wsdl:output message="tns:AddTagSoapOut" />
+ </wsdl:operation>
+
+ <!--HideTag-->
+ <wsdl:operation name="HideTag">
+ <wsdl:input message="tns:HideTagSoapIn" />
+ <wsdl:output message="tns:HideTagSoapOut" />
+ </wsdl:operation>
+
+ <!--GetPersona-->
+ <wsdl:operation name="GetPersona">
+ <wsdl:input message="tns:GetPersonaSoapIn" />
+ <wsdl:output message="tns:GetPersonaSoapOut" />
+ </wsdl:operation>
+
+ <!-- Inbox Rules -->
+ <wsdl:operation name="GetInboxRules">
+ <wsdl:input message="tns:GetInboxRulesSoapIn" />
+ <wsdl:output message="tns:GetInboxRulesSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="UpdateInboxRules">
+ <wsdl:input message="tns:UpdateInboxRulesSoapIn" />
+ <wsdl:output message="tns:UpdateInboxRulesSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="GetPasswordExpirationDate">
+ <wsdl:input message="tns:GetPasswordExpirationDateSoapIn" />
+ <wsdl:output message="tns:GetPasswordExpirationDateSoapOut" />
+ </wsdl:operation>
+
+ <!-- Mailbox Search Operations -->
+ <wsdl:operation name="GetSearchableMailboxes">
+ <wsdl:input message="tns:GetSearchableMailboxesSoapIn"/>
+ <wsdl:output message="tns:GetSearchableMailboxesSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="SearchMailboxes">
+ <wsdl:input message="tns:SearchMailboxesSoapIn"/>
+ <wsdl:output message="tns:SearchMailboxesSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetDiscoverySearchConfiguration">
+ <wsdl:input message="tns:GetDiscoverySearchConfigurationSoapIn"/>
+ <wsdl:output message="tns:GetDiscoverySearchConfigurationSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetHoldOnMailboxes">
+ <wsdl:input message="tns:GetHoldOnMailboxesSoapIn"/>
+ <wsdl:output message="tns:GetHoldOnMailboxesSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="SetHoldOnMailboxes">
+ <wsdl:input message="tns:SetHoldOnMailboxesSoapIn"/>
+ <wsdl:output message="tns:SetHoldOnMailboxesSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetNonIndexableItemStatistics">
+ <wsdl:input message="tns:GetNonIndexableItemStatisticsSoapIn"/>
+ <wsdl:output message="tns:GetNonIndexableItemStatisticsSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetNonIndexableItemDetails">
+ <wsdl:input message="tns:GetNonIndexableItemDetailsSoapIn"/>
+ <wsdl:output message="tns:GetNonIndexableItemDetailsSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="MarkAllItemsAsRead">
+ <wsdl:input message="tns:MarkAllItemsAsReadSoapIn" />
+ <wsdl:output message="tns:MarkAllItemsAsReadSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="MarkAsJunk">
+ <wsdl:input message="tns:MarkAsJunkSoapIn" />
+ <wsdl:output message="tns:MarkAsJunkSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="ReportMessage">
+ <wsdl:input message="tns:ReportMessageSoapIn" />
+ <wsdl:output message="tns:ReportMessageSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="GetAppManifests">
+ <wsdl:input message="tns:GetAppManifestsSoapIn" />
+ <wsdl:output message="tns:GetAppManifestsSoapOut" />
+ </wsdl:operation>
+
+ <!-- Unified Contact Store Operations -->
+ <wsdl:operation name="AddNewImContactToGroup">
+ <wsdl:input message="tns:AddNewImContactToGroupSoapIn"/>
+ <wsdl:output message="tns:AddNewImContactToGroupSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="AddNewTelUriContactToGroup">
+ <wsdl:input message="tns:AddNewTelUriContactToGroupSoapIn"/>
+ <wsdl:output message="tns:AddNewTelUriContactToGroupSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="AddImContactToGroup">
+ <wsdl:input message="tns:AddImContactToGroupSoapIn"/>
+ <wsdl:output message="tns:AddImContactToGroupSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="RemoveImContactFromGroup">
+ <wsdl:input message="tns:RemoveImContactFromGroupSoapIn"/>
+ <wsdl:output message="tns:RemoveImContactFromGroupSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="AddImGroup">
+ <wsdl:input message="tns:AddImGroupSoapIn"/>
+ <wsdl:output message="tns:AddImGroupSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="AddDistributionGroupToImList">
+ <wsdl:input message="tns:AddDistributionGroupToImListSoapIn"/>
+ <wsdl:output message="tns:AddDistributionGroupToImListSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetImItemList">
+ <wsdl:input message="tns:GetImItemListSoapIn"/>
+ <wsdl:output message="tns:GetImItemListSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetImItems">
+ <wsdl:input message="tns:GetImItemsSoapIn"/>
+ <wsdl:output message="tns:GetImItemsSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="RemoveContactFromImList">
+ <wsdl:input message="tns:RemoveContactFromImListSoapIn"/>
+ <wsdl:output message="tns:RemoveContactFromImListSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="RemoveDistributionGroupFromImList">
+ <wsdl:input message="tns:RemoveDistributionGroupFromImListSoapIn"/>
+ <wsdl:output message="tns:RemoveDistributionGroupFromImListSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="RemoveImGroup">
+ <wsdl:input message="tns:RemoveImGroupSoapIn"/>
+ <wsdl:output message="tns:RemoveImGroupSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="SetImGroup">
+ <wsdl:input message="tns:SetImGroupSoapIn"/>
+ <wsdl:output message="tns:SetImGroupSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="SetImListMigrationCompleted">
+ <wsdl:input message="tns:SetImListMigrationCompletedSoapIn"/>
+ <wsdl:output message="tns:SetImListMigrationCompletedSoapOut"/>
+ </wsdl:operation>
+
+ <!-- MRM Operations -->
+ <wsdl:operation name="GetUserRetentionPolicyTags">
+ <wsdl:input message="tns:GetUserRetentionPolicyTagsSoapIn"/>
+ <wsdl:output message="tns:GetUserRetentionPolicyTagsSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="InstallApp">
+ <wsdl:input message="tns:InstallAppSoapIn"/>
+ <wsdl:output message="tns:InstallAppSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="UninstallApp">
+ <wsdl:input message="tns:UninstallAppSoapIn"/>
+ <wsdl:output message="tns:UninstallAppSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="DisableApp">
+ <wsdl:input message="tns:DisableAppSoapIn"/>
+ <wsdl:output message="tns:DisableAppSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetAppMarketplaceUrl">
+ <wsdl:input message="tns:GetAppMarketplaceUrlSoapIn"/>
+ <wsdl:output message="tns:GetAppMarketplaceUrlSoapOut"/>
+ </wsdl:operation>
+
+ <!-- FindAvailableMeetingTimes (PortType) Operation -->
+ <wsdl:operation name="FindAvailableMeetingTimes">
+ <wsdl:input message="tns:FindAvailableMeetingTimesSoapIn" />
+ <wsdl:output message="tns:FindAvailableMeetingTimesSoapOut" />
+ </wsdl:operation>
+
+ <!-- FindMeetingTimeCandidates (PortType) Operation -->
+ <wsdl:operation name="FindMeetingTimeCandidates">
+ <wsdl:input message="tns:FindMeetingTimeCandidatesSoapIn" />
+ <wsdl:output message="tns:FindMeetingTimeCandidatesSoapOut" />
+ </wsdl:operation>
+
+ <!-- Photos -->
+ <wsdl:operation name="GetUserPhoto">
+ <wsdl:input message="tns:GetUserPhotoSoapIn"/>
+ <wsdl:output message="tns:GetUserPhotoSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="SetUserPhoto">
+ <wsdl:input message="tns:SetUserPhotoSoapIn"/>
+ <wsdl:output message="tns:SetUserPhotoSoapOut"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetMeetingSpace">
+ <wsdl:input message="tns:GetMeetingSpaceSoapIn" />
+ <wsdl:output message="tns:GetMeetingSpaceSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="DeleteMeetingSpace">
+ <wsdl:input message="tns:DeleteMeetingSpaceSoapIn" />
+ <wsdl:output message="tns:DeleteMeetingSpaceSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="UpdateMeetingSpace">
+ <wsdl:input message="tns:UpdateMeetingSpaceSoapIn" />
+ <wsdl:output message="tns:UpdateMeetingSpaceSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="CreateMeetingSpace">
+ <wsdl:input message="tns:CreateMeetingSpaceSoapIn" />
+ <wsdl:output message="tns:CreateMeetingSpaceSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="FindMeetingSpaceByJoinUrl">
+ <wsdl:input message="tns:FindMeetingSpaceByJoinUrlSoapIn" />
+ <wsdl:output message="tns:FindMeetingSpaceByJoinUrlSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="GetMeetingInstance">
+ <wsdl:input message="tns:GetMeetingInstanceSoapIn" />
+ <wsdl:output message="tns:GetMeetingInstanceSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="DeleteMeetingInstance">
+ <wsdl:input message="tns:DeleteMeetingInstanceSoapIn" />
+ <wsdl:output message="tns:DeleteMeetingInstanceSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="UpdateMeetingInstance">
+ <wsdl:input message="tns:UpdateMeetingInstanceSoapIn" />
+ <wsdl:output message="tns:UpdateMeetingInstanceSoapOut" />
+ </wsdl:operation>
+
+ <wsdl:operation name="CreateMeetingInstance">
+ <wsdl:input message="tns:CreateMeetingInstanceSoapIn" />
+ <wsdl:output message="tns:CreateMeetingInstanceSoapOut" />
+ </wsdl:operation>
+
+ <!-- StartSearchSession (PortType) operation -->
+ <wsdl:operation name="StartSearchSession">
+ <wsdl:input message="tns:StartSearchSessionSoapIn" />
+ <wsdl:output message="tns:StartSearchSessionSoapOut" />
+ </wsdl:operation>
+
+ <!-- GetSearchSuggestions (PortType) operation -->
+ <wsdl:operation name="GetSearchSuggestions">
+ <wsdl:input message="tns:GetSearchSuggestionsSoapIn" />
+ <wsdl:output message="tns:GetSearchSuggestionsSoapOut" />
+ </wsdl:operation>
+
+ <!-- DeleteSearchSuggestion (PortType) operation -->
+ <wsdl:operation name="DeleteSearchSuggestion">
+ <wsdl:input message="tns:DeleteSearchSuggestionSoapIn" />
+ <wsdl:output message="tns:DeleteSearchSuggestionSoapOut" />
+ </wsdl:operation>
+
+ <!-- ExecuteSearch (PortType) operation -->
+ <wsdl:operation name="ExecuteSearch">
+ <wsdl:input message="tns:ExecuteSearchSoapIn" />
+ <wsdl:output message="tns:ExecuteSearchSoapOut" />
+ </wsdl:operation>
+
+ <!-- EndSearchSession (PortType) operation -->
+ <wsdl:operation name="EndSearchSession">
+ <wsdl:input message="tns:EndSearchSessionSoapIn" />
+ <wsdl:output message="tns:EndSearchSessionSoapOut" />
+ </wsdl:operation>
+
+ <!-- GetLastPrivateCatalogUpdate (PortType) operation -->
+ <wsdl:operation name="GetLastPrivateCatalogUpdate">
+ <wsdl:input message="tns:GetLastPrivateCatalogUpdateSoapIn" />
+ <wsdl:output message="tns:GetLastPrivateCatalogUpdateSoapOut" />
+ </wsdl:operation>
+
+ <!-- GetPrivateCatalogAddIns (PortType) operation -->
+ <wsdl:operation name="GetPrivateCatalogAddIns">
+ <wsdl:input message="tns:GetPrivateCatalogAddInsSoapIn" />
+ <wsdl:output message="tns:GetPrivateCatalogAddInsSoapOut" />
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="ExchangeServiceBinding" type="tns:ExchangeServicePortType">
+ <wsdl:documentation>
+ <wsi:Claim conformsTo="http://ws-i.org/profiles/basic/1.0" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" />
+ </wsdl:documentation>
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+ <wsdl:operation name="ResolveNames">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ResolveNames" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal"/>
+ <soap:header message="tns:ResolveNamesSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:ResolveNamesSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:ResolveNamesSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="ResolveNamesResult" use="literal" />
+ <soap:header message="tns:ResolveNamesSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="ExpandDL">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ExpandDL" />
+ <wsdl:input>
+ <soap:header message="tns:ExpandDLSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:ExpandDLSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:ExpandDLSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="ExpandDLResult" use="literal" />
+ <soap:header message="tns:ExpandDLSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetServerTimeZones">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetServerTimeZones" />
+ <wsdl:input>
+ <soap:header message="tns:GetServerTimeZonesSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetServerTimeZonesSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetServerTimeZonesResult" use="literal" />
+ <soap:header message="tns:GetServerTimeZonesSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="FindFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindFolder"/>
+ <wsdl:input>
+ <soap:header message="tns:FindFolderSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:FindFolderSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:FindFolderSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:FindFolderSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:header message="tns:FindFolderSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="FindFolderResult" use="literal" />
+ <soap:header message="tns:FindFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="FindItem">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindItem"/>
+ <wsdl:input>
+ <soap:header message="tns:FindItemSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:FindItemSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:FindItemSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:FindItemSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:header message="tns:FindItemSoapIn" part="DateTimePrecision" use="literal" />
+ <soap:header message="tns:FindItemSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="FindItemResult" use="literal" />
+ <soap:header message="tns:FindItemSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="GetFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetFolder" />
+ <wsdl:input>
+ <soap:header message="tns:GetFolderSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetFolderSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetFolderSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetFolderSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:header message="tns:GetFolderSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetFolderResult" use="literal" />
+ <soap:header message="tns:GetFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="ConvertId">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ConvertId" />
+ <wsdl:input>
+ <soap:header message="tns:ConvertIdSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:ConvertIdSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="ConvertIdResult" use="literal" />
+ <soap:header message="tns:ConvertIdSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="UploadItems">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UploadItems" />
+ <wsdl:input>
+ <soap:header message="tns:UploadItemsSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:UploadItemsSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:UploadItemsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UploadItemsResult" use="literal" />
+ <soap:header message="tns:UploadItemsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="ExportItems">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ExportItems" />
+ <wsdl:input>
+ <soap:header message="tns:ExportItemsSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:ExportItemsSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:ExportItemsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:ExportItemsSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="ExportItemsResult" use="literal" />
+ <soap:header message="tns:ExportItemsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="CreateFolderPath">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateFolderPath" />
+ <wsdl:input>
+ <soap:header message="tns:CreateFolderPathSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:CreateFolderPathSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:CreateFolderPathSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:CreateFolderPathSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="CreateFolderPathResult" use="literal" />
+ <soap:header message="tns:CreateFolderPathSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="CreateFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateFolder" />
+ <wsdl:input>
+ <soap:header message="tns:CreateFolderSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:CreateFolderSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:CreateFolderSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:CreateFolderSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="CreateFolderResult" use="literal" />
+ <soap:header message="tns:CreateFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="DeleteFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteFolder" />
+ <wsdl:input>
+ <soap:header message="tns:DeleteFolderSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:DeleteFolderSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:DeleteFolderSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="DeleteFolderResult" use="literal" />
+ <soap:header message="tns:DeleteFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EmptyFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/EmptyFolder" />
+ <wsdl:input>
+ <soap:header message="tns:EmptyFolderSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:EmptyFolderSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:EmptyFolderSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="EmptyFolderResult" use="literal" />
+ <soap:header message="tns:EmptyFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="UpdateFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateFolder" />
+ <wsdl:input>
+ <soap:header message="tns:UpdateFolderSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:UpdateFolderSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:UpdateFolderSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:UpdateFolderSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UpdateFolderResult" use="literal" />
+ <soap:header message="tns:UpdateFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="MoveFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/MoveFolder" />
+ <wsdl:input>
+ <soap:header message="tns:MoveFolderSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:MoveFolderSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:MoveFolderSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="MoveFolderResult" use="literal" />
+ <soap:header message="tns:MoveFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="CopyFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CopyFolder" />
+ <wsdl:input>
+ <soap:header message="tns:CopyFolderSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:CopyFolderSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:CopyFolderSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="CopyFolderResult" use="literal" />
+ <soap:header message="tns:CopyFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="Subscribe">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/Subscribe" />
+ <wsdl:input>
+ <soap:header message="tns:SubscribeSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:SubscribeSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:SubscribeSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SubscribeResult" use="literal" />
+ <soap:header message="tns:SubscribeSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="Unsubscribe">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/Unsubscribe" />
+ <wsdl:input>
+ <soap:header message="tns:UnsubscribeSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:UnsubscribeSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:UnsubscribeSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UnsubscribeResult" use="literal" />
+ <soap:header message="tns:UnsubscribeSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="GetEvents">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetEvents" />
+ <wsdl:input>
+ <soap:header message="tns:GetEventsSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetEventsSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetEventsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetEventsResult" use="literal" />
+ <soap:header message="tns:GetEventsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="GetStreamingEvents">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetEvents" />
+ <wsdl:input>
+ <soap:header message="tns:GetStreamingEventsSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetStreamingEventsSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetStreamingEventsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetStreamingEventsResult" use="literal" />
+ <soap:header message="tns:GetStreamingEventsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="SyncFolderHierarchy">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SyncFolderHierarchy" />
+ <wsdl:input>
+ <soap:header message="tns:SyncFolderHierarchySoapIn" part="Impersonation" use="literal"></soap:header>
+ <soap:header message="tns:SyncFolderHierarchySoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:SyncFolderHierarchySoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SyncFolderHierarchyResult" use="literal" />
+ <soap:header message="tns:SyncFolderHierarchySoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="SyncFolderItems">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SyncFolderItems" />
+ <wsdl:input>
+ <soap:header message="tns:SyncFolderItemsSoapIn" part="Impersonation" use="literal"></soap:header>
+ <soap:header message="tns:SyncFolderItemsSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:SyncFolderItemsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SyncFolderItemsResult" use="literal" />
+ <soap:header message="tns:SyncFolderItemsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetItem">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetItem" />
+ <wsdl:input>
+ <soap:header message="tns:GetItemSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetItemSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetItemSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetItemSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:header message="tns:GetItemSoapIn" part="DateTimePrecision" use="literal" />
+ <soap:header message="tns:GetItemSoapIn" part="ManagementRole" use="literal" />
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetItemResult" use="literal" />
+ <soap:header message="tns:GetItemSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="CreateItem">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateItem" />
+ <wsdl:input>
+ <soap:header message="tns:CreateItemSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:CreateItemSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:CreateItemSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:CreateItemSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="CreateItemResult" use="literal" />
+ <soap:header message="tns:CreateItemSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="DeleteItem">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteItem" />
+ <wsdl:input>
+ <soap:header message="tns:DeleteItemSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:DeleteItemSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:DeleteItemSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="DeleteItemResult" use="literal" />
+ <soap:header message="tns:DeleteItemSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="UpdateItem">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateItem" />
+ <wsdl:input>
+ <soap:header message="tns:UpdateItemSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:UpdateItemSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:UpdateItemSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:UpdateItemSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UpdateItemResult" use="literal" />
+ <soap:header message="tns:UpdateItemSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="UpdateItemInRecoverableItems">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateItemInRecoverableItems" />
+ <wsdl:input>
+ <soap:header message="tns:UpdateItemInRecoverableItemsSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:UpdateItemInRecoverableItemsSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:UpdateItemInRecoverableItemsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:UpdateItemInRecoverableItemsSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:header message="tns:UpdateItemInRecoverableItemsSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UpdateItemInRecoverableItemsResult" use="literal" />
+ <soap:header message="tns:UpdateItemInRecoverableItemsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="SendItem">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SendItem" />
+ <wsdl:input>
+ <soap:header message="tns:SendItemSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:SendItemSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:SendItemSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SendItemResult" use="literal" />
+ <soap:header message="tns:SendItemSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="MoveItem">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/MoveItem" />
+ <wsdl:input>
+ <soap:header message="tns:MoveItemSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:MoveItemSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:MoveItemSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="MoveItemResult" use="literal" />
+ <soap:header message="tns:MoveItemSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="CopyItem">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CopyItem" />
+ <wsdl:input>
+ <soap:header message="tns:CopyItemSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:CopyItemSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:CopyItemSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="CopyItemResult" use="literal" />
+ <soap:header message="tns:CopyItemSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="ArchiveItem">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ArchiveItem" />
+ <wsdl:input>
+ <soap:header message="tns:ArchiveItemSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:ArchiveItemSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:ArchiveItemSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="ArchiveItemResult" use="literal" />
+ <soap:header message="tns:ArchiveItemSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="CreateAttachment">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateAttachment" />
+ <wsdl:input>
+ <soap:header message="tns:CreateAttachmentSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:CreateAttachmentSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:CreateAttachmentSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:CreateAttachmentSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="CreateAttachmentResult" use="literal" />
+ <soap:header message="tns:CreateAttachmentSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="DeleteAttachment">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteAttachment" />
+ <wsdl:input>
+ <soap:header message="tns:DeleteAttachmentSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:DeleteAttachmentSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:DeleteAttachmentSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="DeleteAttachmentResult" use="literal" />
+ <soap:header message="tns:DeleteAttachmentSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="GetAttachment">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetAttachment" />
+ <wsdl:input>
+ <soap:header message="tns:GetAttachmentSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetAttachmentSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetAttachmentSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetAttachmentSoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetAttachmentResult" use="literal" />
+ <soap:header message="tns:GetAttachmentSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetClientAccessToken">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetClientAccessToken" />
+ <wsdl:input>
+ <soap:header message="tns:GetClientAccessTokenSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetClientAccessTokenResult" use="literal" />
+ <soap:header message="tns:GetClientAccessTokenSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="CreateManagedFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateManagedFolder" />
+ <wsdl:input>
+ <soap:header message="tns:CreateManagedFolderSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:CreateManagedFolderSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:CreateManagedFolderSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="CreateManagedFolderResult" use="literal" />
+ <soap:header message="tns:CreateManagedFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetDelegate">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetDelegate" />
+ <wsdl:input>
+ <soap:header message="tns:GetDelegateSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetDelegateSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetDelegateSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetDelegateResult" use="literal" />
+ <soap:header message="tns:GetDelegateSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="AddDelegate">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/AddDelegate" />
+ <wsdl:input>
+ <soap:header message="tns:AddDelegateSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:AddDelegateSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:AddDelegateSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="AddDelegateResult" use="literal" />
+ <soap:header message="tns:AddDelegateSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="RemoveDelegate">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/RemoveDelegate" />
+ <wsdl:input>
+ <soap:header message="tns:RemoveDelegateSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:RemoveDelegateSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:RemoveDelegateSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="RemoveDelegateResult" use="literal" />
+ <soap:header message="tns:RemoveDelegateSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="UpdateDelegate">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateDelegate" />
+ <wsdl:input>
+ <soap:header message="tns:UpdateDelegateSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:UpdateDelegateSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:UpdateDelegateSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UpdateDelegateResult" use="literal" />
+ <soap:header message="tns:UpdateDelegateSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="CreateUserConfiguration">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateUserConfiguration" />
+ <wsdl:input>
+ <soap:header message="tns:CreateUserConfigurationSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:CreateUserConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:CreateUserConfigurationSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="CreateUserConfigurationResult" use="literal" />
+ <soap:header message="tns:CreateUserConfigurationSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="DeleteUserConfiguration">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteUserConfiguration" />
+ <wsdl:input>
+ <soap:header message="tns:DeleteUserConfigurationSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:DeleteUserConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:DeleteUserConfigurationSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="DeleteUserConfigurationResult" use="literal" />
+ <soap:header message="tns:DeleteUserConfigurationSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetUserConfiguration">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetUserConfiguration" />
+ <wsdl:input>
+ <soap:header message="tns:GetUserConfigurationSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetUserConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetUserConfigurationSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetUserConfigurationResult" use="literal" />
+ <soap:header message="tns:GetUserConfigurationSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetSpecificUserConfiguration">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetSpecificUserConfiguration" />
+ <wsdl:input>
+ <soap:header message="tns:GetSpecificUserConfigurationSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetSpecificUserConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetSpecificUserConfigurationSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetSpecificUserConfigurationResult" use="literal" />
+ <soap:header message="tns:GetSpecificUserConfigurationSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="UpdateUserConfiguration">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateUserConfiguration" />
+ <wsdl:input>
+ <soap:header message="tns:UpdateUserConfigurationSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:UpdateUserConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:UpdateUserConfigurationSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UpdateUserConfigurationResult" use="literal" />
+ <soap:header message="tns:UpdateUserConfigurationSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Availability Service -->
+
+ <!-- GetUserAvailability -->
+ <wsdl:operation name="GetUserAvailability">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetUserAvailability" />
+ <wsdl:input>
+ <soap:header message="tns:GetUserAvailabilitySoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetUserAvailabilitySoapIn" part="TimeZoneContext" use="literal"/>
+ <soap:header message="tns:GetUserAvailabilitySoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="GetUserAvailabilityRequest" use="literal" />
+ <soap:header message="tns:GetUserAvailabilitySoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetUserAvailabilityResult" use="literal" />
+ <soap:header message="tns:GetUserAvailabilitySoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetUserOofSettings -->
+ <wsdl:operation name="GetUserOofSettings">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetUserOofSettings" />
+ <wsdl:input>
+ <soap:header message="tns:GetUserOofSettingsSoapIn" part="Impersonation" use="literal"/>
+ <soap:body parts="GetUserOofSettingsRequest" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetUserOofSettingsResult" use="literal" />
+ <soap:header message="tns:GetUserOofSettingsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- SetUserOofSettings -->
+ <wsdl:operation name="SetUserOofSettings">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SetUserOofSettings" />
+ <wsdl:input>
+ <soap:header message="tns:SetUserOofSettingsSoapIn" part="Impersonation" use="literal"/>
+ <soap:body parts="SetUserOofSettingsRequest" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SetUserOofSettingsResult" use="literal" />
+ <soap:header message="tns:SetUserOofSettingsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetServiceConfiguration Bindings -->
+
+ <!-- GetServiceConfiguration -->
+ <wsdl:operation name="GetServiceConfiguration">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetServiceConfiguration" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal"/>
+ <soap:header message="tns:GetServiceConfigurationSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetServiceConfigurationSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetServiceConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetServiceConfigurationResult" use="literal" />
+ <soap:header message="tns:GetServiceConfigurationSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetMailTips -->
+ <wsdl:operation name="GetMailTips">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetMailTips" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal"/>
+ <soap:header message="tns:GetMailTipsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetMailTipsSoapIn" part="MailboxCulture" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetMailTipsResult" use="literal" />
+ <soap:header message="tns:GetMailTipsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- UMBindings -->
+ <wsdl:operation name="PlayOnPhone">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/PlayOnPhone" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:PlayOnPhoneSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:PlayOnPhoneSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:PlayOnPhoneSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="PlayOnPhoneResult" use="literal" />
+ <soap:header message="tns:PlayOnPhoneSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetPhoneCallInformation">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetPhoneCallInformation" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:GetPhoneCallInformationSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetPhoneCallInformationSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetPhoneCallInformationSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetPhoneCallInformationResult" use="literal" />
+ <soap:header message="tns:GetPhoneCallInformationSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="DisconnectPhoneCall">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DisconnectPhoneCall" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:DisconnectPhoneCallSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:DisconnectPhoneCallSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:DisconnectPhoneCallSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="DisconnectPhoneCallResult" use="literal" />
+ <soap:header message="tns:DisconnectPhoneCallSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Sharing -->
+
+ <!-- GetSharingMetadata -->
+ <wsdl:operation name="GetSharingMetadata">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetSharingMetadata" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal"/>
+ <soap:header message="tns:GetSharingMetadataSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetSharingMetadataResult" use="literal" />
+ <soap:header message="tns:GetSharingMetadataSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- RefreshSharingFolder -->
+ <wsdl:operation name="RefreshSharingFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/RefreshSharingFolder" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal"/>
+ <soap:header message="tns:RefreshSharingFolderSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="RefreshSharingFolderResult" use="literal" />
+ <soap:header message="tns:RefreshSharingFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetSharingFolder -->
+ <wsdl:operation name="GetSharingFolder">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetSharingFolder" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal"/>
+ <soap:header message="tns:GetSharingFolderSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetSharingFolderResult" use="literal" />
+ <soap:header message="tns:GetSharingFolderSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- SetTeamMailbox -->
+ <wsdl:operation name="SetTeamMailbox">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SetTeamMailbox" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal"/>
+ <soap:header message="tns:SetTeamMailboxSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:SetTeamMailboxSoapIn" part="ManagementRole" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SetTeamMailboxResult" use="literal" />
+ <soap:header message="tns:SetTeamMailboxSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- UnpinTeamMailbox -->
+ <wsdl:operation name="UnpinTeamMailbox">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UnpinTeamMailbox" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal"/>
+ <soap:header message="tns:UnpinTeamMailboxSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UnpinTeamMailboxResult" use="literal" />
+ <soap:header message="tns:UnpinTeamMailboxSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Find A Room Service -->
+
+ <!-- GetRoomLists -->
+ <wsdl:operation name="GetRoomLists">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetRoomLists" />
+ <wsdl:input>
+ <soap:body parts="GetRoomListsRequest" use="literal" />
+ <soap:header message="tns:GetRoomListsSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetRoomListsSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetRoomListsSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+
+ <wsdl:output>
+ <soap:body parts="GetRoomListsResult" use="literal" />
+ <soap:header message="tns:GetRoomListsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetRooms -->
+ <wsdl:operation name="GetRooms">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetRooms" />
+ <wsdl:input>
+ <soap:body parts="GetRoomsRequest" use="literal" />
+ <soap:header message="tns:GetRoomsSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetRoomsSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetRoomsSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+
+ <wsdl:output>
+ <soap:body parts="GetRoomsResult" use="literal" />
+ <soap:header message="tns:GetRoomsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- MessageTracking -->
+ <wsdl:operation name="FindMessageTrackingReport">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindMessageTrackingReport" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal"/>
+ <soap:header message="tns:FindMessageTrackingReportSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="FindMessageTrackingReportResult" use="literal" />
+ <soap:header message="tns:FindMessageTrackingReportSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetMessageTrackingReport">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetMessageTrackingReport" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal"/>
+ <soap:header message="tns:GetMessageTrackingReportSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetMessageTrackingReportResult" use="literal" />
+ <soap:header message="tns:GetMessageTrackingReportSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!--Conversations-->
+ <wsdl:operation name="FindConversation">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindConversation" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:FindConversationSoapIn" part="RequestVersion" use="literal" />
+ <soap:header message="tns:FindConversationSoapIn" part="Impersonation" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="FindConversationResult" use="literal" />
+ <soap:header message="tns:FindConversationSoapOut" part="ServerVersion" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="ApplyConversationAction">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ApplyConversationAction" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:ApplyConversationActionSoapIn" part="RequestVersion" use="literal" />
+ <soap:header message="tns:ApplyConversationActionSoapIn" part="Impersonation" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="ApplyConversationActionResult" use="literal" />
+ <soap:header message="tns:ApplyConversationActionSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetConversationItems">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetConversationItems" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:GetConversationItemsSoapIn" part="RequestVersion" use="literal" />
+ <soap:header message="tns:GetConversationItemsSoapIn" part="Impersonation" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetConversationItemsResult" use="literal" />
+ <soap:header message="tns:GetConversationItemsSoapOut" part="ServerVersion" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!--FindPeople-->
+ <wsdl:operation name="FindPeople">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindPeople" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:FindPeopleSoapIn" part="RequestVersion" use="literal" />
+ <soap:header message="tns:FindPeopleSoapIn" part="Impersonation" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="FindPeopleResult" use="literal" />
+ <soap:header message="tns:FindPeopleSoapOut" part="ServerVersion" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!--FindTags-->
+ <wsdl:operation name="FindTags">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindTags" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:FindTagsSoapIn" part="RequestVersion" use="literal" />
+ <soap:header message="tns:FindTagsSoapIn" part="Impersonation" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="FindTagsResult" use="literal" />
+ <soap:header message="tns:FindTagsSoapOut" part="ServerVersion" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!--AddTag-->
+ <wsdl:operation name="AddTag">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/AddTag" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:AddTagSoapIn" part="RequestVersion" use="literal" />
+ <soap:header message="tns:AddTagSoapIn" part="Impersonation" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="AddTagResult" use="literal" />
+ <soap:header message="tns:AddTagSoapOut" part="ServerVersion" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!--HideTag-->
+ <wsdl:operation name="HideTag">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/HideTag" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:HideTagSoapIn" part="RequestVersion" use="literal" />
+ <soap:header message="tns:HideTagSoapIn" part="Impersonation" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="HideTagResult" use="literal" />
+ <soap:header message="tns:HideTagSoapOut" part="ServerVersion" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!--GetPersona-->
+ <wsdl:operation name="GetPersona">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetPersona" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:GetPersonaSoapIn" part="RequestVersion" use="literal" />
+ <soap:header message="tns:GetPersonaSoapIn" part="Impersonation" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetPersonaResult" use="literal" />
+ <soap:header message="tns:GetPersonaSoapOut" part="ServerVersion" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Inbox Rules Operations -->
+
+ <!-- GetInboxRules -->
+ <wsdl:operation name="GetInboxRules">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetInboxRules" />
+ <wsdl:input>
+ <soap:header message="tns:GetInboxRulesSoapIn" part="Impersonation" use="literal" />
+ <soap:header message="tns:GetInboxRulesSoapIn" part="MailboxCulture" use="literal" />
+ <soap:header message="tns:GetInboxRulesSoapIn" part="RequestVersion" use="literal" />
+ <soap:header message="tns:GetInboxRulesSoapIn" part="TimeZoneContext" use="literal" />
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetInboxRulesResult" use="literal" />
+ <soap:header message="tns:GetInboxRulesSoapOut" part="ServerVersion" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- UpdateInboxRules -->
+ <wsdl:operation name="UpdateInboxRules">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateInboxRules" />
+ <wsdl:input>
+ <soap:header message="tns:UpdateInboxRulesSoapIn" part="Impersonation" use="literal" />
+ <soap:header message="tns:UpdateInboxRulesSoapIn" part="MailboxCulture" use="literal" />
+ <soap:header message="tns:UpdateInboxRulesSoapIn" part="RequestVersion" use="literal" />
+ <soap:header message="tns:UpdateInboxRulesSoapIn" part="TimeZoneContext" use="literal" />
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UpdateInboxRulesResult" use="literal" />
+ <soap:header message="tns:UpdateInboxRulesSoapOut" part="ServerVersion" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetPasswordExpirationDate">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetPasswordExpirationDate" />
+ <wsdl:input>
+ <soap:header message="tns:GetPasswordExpirationDateSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetPasswordExpirationDateSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetPasswordExpirationDateResult" use="literal" />
+ <soap:header message="tns:GetPasswordExpirationDateSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Mailbox Search Operations -->
+ <!-- GetDiscoverySearchConfiguration -->
+ <wsdl:operation name="GetDiscoverySearchConfiguration">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetDiscoverySearchConfiguration" />
+ <wsdl:input>
+ <soap:header message="tns:GetDiscoverySearchConfigurationSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetDiscoverySearchConfigurationSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetDiscoverySearchConfigurationResult" use="literal" />
+ <soap:header message="tns:GetDiscoverySearchConfigurationSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetSearchableMailboxes -->
+ <wsdl:operation name="GetSearchableMailboxes">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetSearchableMailboxes" />
+ <wsdl:input>
+ <soap:header message="tns:GetSearchableMailboxesSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetSearchableMailboxesSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetSearchableMailboxesResult" use="literal" />
+ <soap:header message="tns:GetSearchableMailboxesSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- SearchMailboxes -->
+ <wsdl:operation name="SearchMailboxes">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SearchMailboxes" />
+ <wsdl:input>
+ <soap:header message="tns:SearchMailboxesSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:SearchMailboxesSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SearchMailboxesResult" use="literal" />
+ <soap:header message="tns:SearchMailboxesSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetHoldOnMailboxes -->
+ <wsdl:operation name="GetHoldOnMailboxes">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetHoldOnMailboxes" />
+ <wsdl:input>
+ <soap:header message="tns:GetHoldOnMailboxesSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetHoldOnMailboxesSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetHoldOnMailboxesResult" use="literal" />
+ <soap:header message="tns:GetHoldOnMailboxesSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- SetHoldOnMailboxes -->
+ <wsdl:operation name="SetHoldOnMailboxes">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SetHoldOnMailboxes" />
+ <wsdl:input>
+ <soap:header message="tns:SetHoldOnMailboxesSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:SetHoldOnMailboxesSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SetHoldOnMailboxesResult" use="literal" />
+ <soap:header message="tns:SetHoldOnMailboxesSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetNonIndexableItemStatistics -->
+ <wsdl:operation name="GetNonIndexableItemStatistics">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetNonIndexableItemStatistics" />
+ <wsdl:input>
+ <soap:header message="tns:GetNonIndexableItemStatisticsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetNonIndexableItemStatisticsSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetNonIndexableItemStatisticsResult" use="literal" />
+ <soap:header message="tns:GetNonIndexableItemStatisticsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetNonIndexableItemDetails -->
+ <wsdl:operation name="GetNonIndexableItemDetails">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetNonIndexableItemDetails" />
+ <wsdl:input>
+ <soap:header message="tns:GetNonIndexableItemDetailsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetNonIndexableItemDetailsSoapIn" part="ManagementRole" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetNonIndexableItemDetailsResult" use="literal" />
+ <soap:header message="tns:GetNonIndexableItemDetailsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="MarkAllItemsAsRead">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/MarkAllItemsAsRead" />
+ <wsdl:input>
+ <soap:header message="tns:MarkAllItemsAsReadSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:MarkAllItemsAsReadSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:MarkAllItemsAsReadSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="MarkAllItemsAsReadResult" use="literal" />
+ <soap:header message="tns:MarkAllItemsAsReadSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="MarkAsJunk">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/MarkAsJunk" />
+ <wsdl:input>
+ <soap:header message="tns:MarkAsJunkSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:MarkAsJunkSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:MarkAsJunkSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="MarkAsJunkResult" use="literal" />
+ <soap:header message="tns:MarkAsJunkSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="ReportMessage">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ReportMessage" />
+ <wsdl:input>
+ <soap:header message="tns:ReportMessageSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:ReportMessageSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:ReportMessageSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="ReportMessageResult" use="literal" />
+ <soap:header message="tns:ReportMessageSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetAppManifests">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetAppManifests" />
+ <wsdl:input>
+ <soap:header message="tns:GetAppManifestsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetAppManifestsResult" use="literal" />
+ <soap:header message="tns:GetAppManifestsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Unified Contact Store Operations -->
+ <wsdl:operation name="AddNewImContactToGroup">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/AddNewImContactToGroup" />
+ <wsdl:input>
+ <soap:header message="tns:AddNewImContactToGroupSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:AddNewImContactToGroupSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:AddNewImContactToGroupSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="AddNewImContactToGroupResult" use="literal" />
+ <soap:header message="tns:AddNewImContactToGroupSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="AddNewTelUriContactToGroup">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/AddNewTelUriContactToGroup" />
+ <wsdl:input>
+ <soap:header message="tns:AddNewTelUriContactToGroupSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:AddNewTelUriContactToGroupSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:AddNewTelUriContactToGroupSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="AddNewTelUriContactToGroupResult" use="literal" />
+ <soap:header message="tns:AddNewTelUriContactToGroupSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="AddImContactToGroup">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/AddImContactToGroup" />
+ <wsdl:input>
+ <soap:header message="tns:AddImContactToGroupSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:AddImContactToGroupSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:AddImContactToGroupSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="AddImContactToGroupResult" use="literal" />
+ <soap:header message="tns:AddImContactToGroupSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="RemoveImContactFromGroup">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/RemoveImContactFromGroup" />
+ <wsdl:input>
+ <soap:header message="tns:RemoveImContactFromGroupSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:RemoveImContactFromGroupSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:RemoveImContactFromGroupSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="RemoveImContactFromGroupResult" use="literal" />
+ <soap:header message="tns:RemoveImContactFromGroupSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="AddImGroup">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/AddImGroup" />
+ <wsdl:input>
+ <soap:header message="tns:AddImGroupSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:AddImGroupSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:AddImGroupSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="AddImGroupResult" use="literal" />
+ <soap:header message="tns:AddImGroupSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="AddDistributionGroupToImList">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/AddDistributionGroupToImList" />
+ <wsdl:input>
+ <soap:header message="tns:AddDistributionGroupToImListSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:AddDistributionGroupToImListSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:AddDistributionGroupToImListSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="AddDistributionGroupToImListResult" use="literal" />
+ <soap:header message="tns:AddDistributionGroupToImListSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetImItemList">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetImItemList" />
+ <wsdl:input>
+ <soap:header message="tns:GetImItemListSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetImItemListSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetImItemListSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetImItemListResult" use="literal" />
+ <soap:header message="tns:GetImItemListSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetImItems">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetImItems" />
+ <wsdl:input>
+ <soap:header message="tns:GetImItemsSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:GetImItemsSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:GetImItemsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetImItemsResult" use="literal" />
+ <soap:header message="tns:GetImItemsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="RemoveContactFromImList">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/RemoveContactFromImList" />
+ <wsdl:input>
+ <soap:header message="tns:RemoveContactFromImListSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:RemoveContactFromImListSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:RemoveContactFromImListSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="RemoveContactFromImListResult" use="literal" />
+ <soap:header message="tns:RemoveContactFromImListSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="RemoveDistributionGroupFromImList">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/RemoveDistributionGroupFromImList" />
+ <wsdl:input>
+ <soap:header message="tns:RemoveDistributionGroupFromImListSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:RemoveDistributionGroupFromImListSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:RemoveDistributionGroupFromImListSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="RemoveDistributionGroupFromImListResult" use="literal" />
+ <soap:header message="tns:RemoveDistributionGroupFromImListSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="RemoveImGroup">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/RemoveImGroup" />
+ <wsdl:input>
+ <soap:header message="tns:RemoveImGroupSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:RemoveImGroupSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:RemoveImGroupSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="RemoveImGroupResult" use="literal" />
+ <soap:header message="tns:RemoveImGroupSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="SetImGroup">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SetImGroup" />
+ <wsdl:input>
+ <soap:header message="tns:SetImGroupSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:SetImGroupSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:SetImGroupSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SetImGroupResult" use="literal" />
+ <soap:header message="tns:SetImGroupSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="SetImListMigrationCompleted">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SetImListMigrationCompleted" />
+ <wsdl:input>
+ <soap:header message="tns:SetImListMigrationCompletedSoapIn" part="Impersonation" use="literal"/>
+ <soap:header message="tns:SetImListMigrationCompletedSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:header message="tns:SetImListMigrationCompletedSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SetImListMigrationCompletedResult" use="literal" />
+ <soap:header message="tns:SetImListMigrationCompletedSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- MRM Operations -->
+
+ <!-- GetRetentionPolicyTags -->
+ <wsdl:operation name="GetUserRetentionPolicyTags">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetUserRetentionPolicyTags" />
+ <wsdl:input>
+ <soap:header message="tns:GetUserRetentionPolicyTagsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetUserRetentionPolicyTagsResult" use="literal" />
+ <soap:header message="tns:GetUserRetentionPolicyTagsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="DisableApp">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DisableApp"/>
+ <wsdl:input>
+ <soap:header message="tns:DisableAppSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="DisableAppResult" use="literal"/>
+ <soap:header message="tns:DisableAppSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="InstallApp">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/InstallApp"/>
+ <wsdl:input>
+ <soap:header message="tns:InstallAppSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="InstallAppResult" use="literal"/>
+ <soap:header message="tns:InstallAppSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="UninstallApp">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UninstallApp"/>
+ <wsdl:input>
+ <soap:header message="tns:UninstallAppSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UninstallAppResult" use="literal"/>
+ <soap:header message="tns:UninstallAppSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetAppMarketplaceUrl">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetAppMarketplaceUrl"/>
+ <wsdl:input>
+ <soap:header message="tns:GetAppMarketplaceUrlSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetAppMarketplaceUrlResult" use="literal"/>
+ <soap:header message="tns:GetAppMarketplaceUrlSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- FindAvailableMeetingTimes (Binding) Operation -->
+ <wsdl:operation name="FindAvailableMeetingTimes">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindAvailableMeetingTimes" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:FindAvailableMeetingTimesSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="FindAvailableMeetingTimesResult" use="literal" />
+ <soap:header message="tns:FindAvailableMeetingTimesSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- FindMeetingTimeCandidates (Binding) Operation -->
+ <wsdl:operation name="FindMeetingTimeCandidates">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindMeetingTimeCandidates" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:FindMeetingTimeCandidatesSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="FindMeetingTimeCandidatesResult" use="literal" />
+ <soap:header message="tns:FindMeetingTimeCandidatesSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Photos -->
+ <wsdl:operation name="GetUserPhoto">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetUserPhoto"/>
+ <wsdl:input>
+ <soap:header message="tns:GetUserPhotoSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetUserPhotoResult" use="literal"/>
+ <soap:header message="tns:GetUserPhotoSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="SetUserPhoto">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SetUserPhoto"/>
+ <wsdl:input>
+ <soap:header message="tns:SetUserPhotoSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="SetUserPhotoResult" use="literal"/>
+ <soap:header message="tns:SetUserPhotoSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetMeetingSpace">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetMeetingSpace" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:GetMeetingSpaceSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetMeetingSpaceSoapIn" part="ManagementRole" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetMeetingSpaceResult" use="literal" />
+ <soap:header message="tns:GetMeetingSpaceSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="DeleteMeetingSpace">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteMeetingSpace" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:DeleteMeetingSpaceSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:DeleteMeetingSpaceSoapIn" part="ManagementRole" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="DeleteMeetingSpaceResult" use="literal" />
+ <soap:header message="tns:DeleteMeetingSpaceSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="UpdateMeetingSpace">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateMeetingSpace" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:UpdateMeetingSpaceSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:UpdateMeetingSpaceSoapIn" part="ManagementRole" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UpdateMeetingSpaceResult" use="literal" />
+ <soap:header message="tns:UpdateMeetingSpaceSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="CreateMeetingSpace">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateMeetingSpace" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:CreateMeetingSpaceSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:CreateMeetingSpaceSoapIn" part="ManagementRole" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="CreateMeetingSpaceResult" use="literal" />
+ <soap:header message="tns:CreateMeetingSpaceSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="FindMeetingSpaceByJoinUrl">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindMeetingSpaceByJoinUrl" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:FindMeetingSpaceByJoinUrlSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:FindMeetingSpaceByJoinUrlSoapIn" part="ManagementRole" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="FindMeetingSpaceByJoinUrlResult" use="literal" />
+ <soap:header message="tns:FindMeetingSpaceByJoinUrlSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="GetMeetingInstance">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetMeetingInstanceRequest" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:GetMeetingInstanceSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetMeetingInstanceSoapIn" part="ManagementRole" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetMeetingInstanceResult" use="literal" />
+ <soap:header message="tns:GetMeetingInstanceSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="DeleteMeetingInstance">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteMeetingInstanceRequest" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:DeleteMeetingInstanceSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:DeleteMeetingInstanceSoapIn" part="ManagementRole" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="DeleteMeetingInstanceResult" use="literal" />
+ <soap:header message="tns:DeleteMeetingInstanceSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="UpdateMeetingInstance">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateMeetingInstanceRequest" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:UpdateMeetingInstanceSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:UpdateMeetingInstanceSoapIn" part="ManagementRole" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="UpdateMeetingInstanceResult" use="literal" />
+ <soap:header message="tns:UpdateMeetingInstanceSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="CreateMeetingInstance">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateMeetingInstanceRequest" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:CreateMeetingInstanceSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:CreateMeetingInstanceSoapIn" part="ManagementRole" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="CreateMeetingInstanceResult" use="literal" />
+ <soap:header message="tns:CreateMeetingInstanceSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Start Search Session -->
+ <wsdl:operation name="StartSearchSession">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/StartSearchSession" />
+ <wsdl:input>
+ <soap:header message="tns:StartSearchSessionSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:StartSearchSessionSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="StartSearchSessionResult" use="literal" />
+ <soap:header message="tns:StartSearchSessionSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Execute Search -->
+ <wsdl:operation name="ExecuteSearch">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ExecuteSearch" />
+ <wsdl:input>
+ <soap:header message="tns:ExecuteSearchSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:ExecuteSearchSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="ExecuteSearchResult" use="literal" />
+ <soap:header message="tns:ExecuteSearchSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Get SearchSuggestions -->
+ <wsdl:operation name="GetSearchSuggestions">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetSearchSuggestions" />
+ <wsdl:input>
+ <soap:header message="tns:GetSearchSuggestionsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:GetSearchSuggestionsSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetSearchSuggestionsResult" use="literal" />
+ <soap:header message="tns:GetSearchSuggestionsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- Delete SearchSuggestion -->
+ <wsdl:operation name="DeleteSearchSuggestion">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteSearchSuggestion" />
+ <wsdl:input>
+ <soap:header message="tns:DeleteSearchSuggestionSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:DeleteSearchSuggestionSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="DeleteSearchSuggestionResult" use="literal" />
+ <soap:header message="tns:DeleteSearchSuggestionSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- End Search Session-->
+ <wsdl:operation name="EndSearchSession">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/EndSearchSession" />
+ <wsdl:input>
+ <soap:header message="tns:EndSearchSessionSoapIn" part="RequestVersion" use="literal"/>
+ <soap:header message="tns:EndSearchSessionSoapIn" part="MailboxCulture" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="EndSearchSessionResult" use="literal" />
+ <soap:header message="tns:EndSearchSessionSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetLastPrivateCatalogUpdate (Binding) Operation -->
+ <wsdl:operation name="GetLastPrivateCatalogUpdate">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetLastPrivateCatalogUpdate" />
+ <wsdl:input>
+ <soap:body parts="request" use="literal" />
+ <soap:header message="tns:GetLastPrivateCatalogUpdateSoapIn" part="RequestVersion" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetLastPrivateCatalogUpdateResult" use="literal" />
+ <soap:header message="tns:GetLastPrivateCatalogUpdateSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <!-- GetPrivateCatalogAddIns (Binding) Operation -->
+ <wsdl:operation name="GetPrivateCatalogAddIns">
+ <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetPrivateCatalogAddIns" />
+ <wsdl:input>
+ <soap:header message="tns:GetPrivateCatalogAddInsSoapIn" part="RequestVersion" use="literal"/>
+ <soap:body parts="request" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="GetPrivateCatalogAddInsResult" use="literal" />
+ <soap:header message="tns:GetPrivateCatalogAddInsSoapOut" part="ServerVersion" use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="ExchangeServices">
+ <wsdl:port name="ExchangeServicePort" binding="tns:ExchangeServiceBinding">
+ <soap:address location="" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
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 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<xs:schema id="types"
+ elementFormDefault="qualified"
+ xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
+ targetNamespace="http://schemas.microsoft.com/exchange/services/2006/types"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+ <!-- SOAP header to indicate language for mailbox interaction-->
+ <xs:complexType name="MailboxCultureType">
+ <xs:simpleContent>
+ <xs:extension base="xs:language">
+ <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+ <xs:annotation>
+ <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+ </xs:annotation>
+ </xs:anyAttribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="MailboxCulture" type="t:MailboxCultureType"/>
+
+ <xs:complexType name="InstalledAppType">
+ <xs:sequence minOccurs="0">
+ <xs:element name="Id" type="xs:string" minOccurs="0"/>
+ <xs:element name="MarketplaceAssetId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Enabled" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ConsentState" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Type" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="LicenseStatus" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="TrialExpirationDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ProviderName" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="IconUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="HighResolutionIconUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DisplayName" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Requirements" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- SOAP header to indicate which roles the caller or application want to use -->
+ <xs:complexType name="NonEmptyArrayOfRoleType">
+ <xs:sequence>
+ <xs:element name="Role" type="xs:string" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ManagementRoleType">
+ <xs:sequence>
+ <xs:element name="UserRoles" type="t:NonEmptyArrayOfRoleType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ApplicationRoles" type="t:NonEmptyArrayOfRoleType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="ManagementRole" type="t:ManagementRoleType" />
+
+ <!-- Server to Server auth SOAP header information -->
+ <xs:complexType name="SidAndAttributesType">
+ <xs:sequence>
+ <xs:element name="SecurityIdentifier" type="xs:string"/>
+ </xs:sequence>
+ <xs:attribute name="Attributes" type="xs:unsignedInt" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfGroupIdentifiersType">
+ <xs:sequence>
+ <xs:element name="GroupIdentifier" type="t:SidAndAttributesType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfRestrictedGroupIdentifiersType">
+ <xs:sequence>
+ <xs:element name="RestrictedGroupIdentifier" type="t:SidAndAttributesType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SerializedSecurityContextType">
+ <xs:sequence>
+ <xs:element name="UserSid" type="xs:string"/>
+ <xs:element name="GroupSids" type="t:NonEmptyArrayOfGroupIdentifiersType" minOccurs="0"/>
+ <xs:element name="RestrictedGroupSids" type="t:NonEmptyArrayOfRestrictedGroupIdentifiersType" minOccurs="0"/>
+ <xs:element name="PrimarySmtpAddress" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+ <xs:annotation>
+ <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+ </xs:annotation>
+ </xs:anyAttribute>
+ </xs:complexType>
+ <xs:element name="SerializedSecurityContext" type="t:SerializedSecurityContextType"/>
+
+ <xs:complexType name="ConnectingSIDType">
+ <xs:choice>
+ <xs:element name="PrincipalName" type="t:PrincipalNameType" />
+ <xs:element name="SID" type="t:SIDType" />
+ <xs:element name="PrimarySmtpAddress" type="t:PrimarySmtpAddressType" />
+ <xs:element name="SmtpAddress" type="t:SmtpAddressType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="PrincipalNameType">
+ <xs:simpleContent>
+ <xs:extension base="t:NonEmptyStringType" />
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:complexType name="SIDType">
+ <xs:simpleContent>
+ <xs:extension base="t:NonEmptyStringType" />
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:complexType name="PrimarySmtpAddressType">
+ <xs:simpleContent>
+ <xs:extension base="t:NonEmptyStringType" />
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:complexType name="SmtpAddressType">
+ <xs:simpleContent>
+ <xs:extension base="t:NonEmptyStringType" />
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:complexType name="ExchangeImpersonationType">
+ <xs:sequence>
+ <xs:element name="ConnectingSID" type="t:ConnectingSIDType" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+ <xs:annotation>
+ <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+ </xs:annotation>
+ </xs:anyAttribute>
+ </xs:complexType>
+ <xs:element name="ExchangeImpersonation" type="t:ExchangeImpersonationType" />
+
+ <xs:simpleType name="SpecialLogonTypeType">
+ <xs:annotation>
+ <xs:documentation>Surfaces the various logon types that are supported for conversion</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Admin"/>
+ <xs:enumeration value="SystemService"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="OpenAsAdminOrSystemServiceType">
+ <xs:sequence>
+ <xs:element name="ConnectingSID" type="t:ConnectingSIDType" />
+ </xs:sequence>
+ <xs:attribute name="LogonType" type="t:SpecialLogonTypeType" use="required"/>
+ <xs:attribute name="BudgetType" type="xs:int" use="optional"/>
+ <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+ <xs:annotation>
+ <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+ </xs:annotation>
+ </xs:anyAttribute>
+ </xs:complexType>
+ <xs:element name="OpenAsAdminOrSystemService" type="t:OpenAsAdminOrSystemServiceType" />
+
+ <!-- External sharing security header for person-to-person sharing relationships -->
+ <xs:element name="SharingSecurity" type="t:EncryptedDataContainerType"/>
+
+ <!-- Enumeration of Exchange Server versions -->
+ <xs:simpleType name="ExchangeVersionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Exchange2007" />
+ <xs:enumeration value="Exchange2007_SP1" />
+ <xs:enumeration value="Exchange2009" />
+ <xs:enumeration value="Exchange2010" />
+ <xs:enumeration value="Exchange2010_SP1" />
+ <xs:enumeration value="Exchange2010_SP2" />
+ <xs:enumeration value="Exchange2012" />
+ <xs:enumeration value="Exchange2013" />
+ <xs:enumeration value="Exchange2013_SP1" />
+ <xs:enumeration value="Exchange2015" />
+ <xs:enumeration value="Exchange2016" />
+ <xs:enumeration value="V2015_10_05" />
+ <xs:enumeration value="V2016_01_06" />
+ <xs:enumeration value="V2016_04_13" />
+ <xs:enumeration value="V2016_07_13" />
+ <xs:enumeration value="V2016_10_10" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ProxySecurityContextType">
+ <xs:simpleContent>
+ <xs:extension base="xs:base64Binary">
+ <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+ <xs:annotation>
+ <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+ </xs:annotation>
+ </xs:anyAttribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="ProxySecurityContext" type="t:ProxySecurityContextType"/>
+ <xs:element name="ProxySuggesterSid" type="t:ProxySecurityContextType"/>
+ <xs:element name="ProxyPartnerToken" type="t:ProxySecurityContextType" />
+
+ <!-- Used in the SOAP header of responses for diagnostics purposes. -->
+ <xs:element name="ServerVersionInfo">
+ <xs:complexType>
+ <xs:attribute name="MajorVersion" type="xs:int" use="optional"/>
+ <xs:attribute name="MinorVersion" type="xs:int" use="optional"/>
+ <xs:attribute name="MajorBuildNumber" type="xs:int" use="optional"/>
+ <xs:attribute name="MinorBuildNumber" type="xs:int" use="optional"/>
+ <xs:attribute name="Version" type="xs:string" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Used in the SOAP header of requests to specify version for request. -->
+ <xs:element name="RequestServerVersion">
+ <xs:complexType>
+ <xs:attribute name="Version" type="t:ExchangeVersionType" use="required"/>
+ <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+ <xs:annotation>
+ <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+ </xs:annotation>
+ </xs:anyAttribute>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- DateTimePrecision for Soap header -->
+
+ <xs:simpleType name="DateTimePrecisionType">
+ <xs:annotation>
+ <xs:documentation>Precision for returned DateTime values</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Seconds" />
+ <xs:enumeration value="Milliseconds" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:element name="DateTimePrecision" type="t:DateTimePrecisionType" />
+
+ <!-- Email address/participant types -->
+
+ <xs:simpleType name="NonEmptyStringType">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="BaseEmailAddressType" />
+
+ <xs:simpleType name="MailboxTypeType">
+ <xs:restriction base="xs:string">
+
+ <xs:enumeration value="Unknown" />
+ <xs:enumeration value="OneOff" />
+
+ <xs:enumeration value="Mailbox" />
+ <xs:enumeration value="PublicDL" />
+
+ <xs:enumeration value="PrivateDL" />
+ <xs:enumeration value="Contact" />
+
+ <xs:enumeration value="PublicFolder" />
+ <xs:enumeration value="GroupMailbox" />
+ <xs:enumeration value="ImplicitContact" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="EmailAddressType">
+ <xs:annotation>
+ <xs:documentation>Identifier for a fully resolved email address</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:BaseEmailAddressType">
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string" minOccurs="0"/>
+ <xs:element name="EmailAddress" type="t:NonEmptyStringType" minOccurs="0"/>
+ <xs:element name="RoutingType" type="t:NonEmptyStringType" minOccurs="0"/>
+ <xs:element name="MailboxType" type="t:MailboxTypeType" minOccurs="0" />
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="0" />
+ <xs:element name="OriginalDisplayName" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="EmailAddressExtendedType">
+ <xs:annotation>
+ <xs:documentation>Extends EmailAddress by adding the external object id</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:EmailAddressType">
+ <xs:sequence>
+ <xs:element name="ExternalObjectId" type="xs:string" minOccurs="0"/>
+ <xs:element name="PrimaryEmailAddress" type="t:NonEmptyStringType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- GetRooms Service Types -->
+
+ <xs:complexType name="ArrayOfEmailAddressesType">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Address" type="t:EmailAddressType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DirectoryEntryType">
+ <xs:sequence>
+ <xs:element name="Id" type="t:EmailAddressType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="RoomType">
+ <xs:complexContent>
+ <xs:extension base="t:DirectoryEntryType">
+ <!-- We don't need anything additional at this time -->
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfRoomsType">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Room" type="t:RoomType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- FindAvailableMeetingTimes Service Types -->
+
+ <xs:complexType name="TimeSlot">
+ <xs:sequence>
+ <xs:element name="StartTime" type="xs:dateTime" />
+ <xs:element name="DurationInMinutes" type="xs:double" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MeetingLocation">
+ <xs:sequence>
+ <xs:element name="EmailAddress" type="xs:string" />
+ <xs:element name="DisplayName" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="ActivityDomainType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Unknown" />
+ <xs:enumeration value="Personal" />
+ <xs:enumeration value="Work" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- GetReminders Service Types -->
+
+ <xs:simpleType name="ReminderGroupType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Calendar" />
+ <xs:enumeration value="Task" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ReminderType">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="Subject" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="1" name="Location" type="xs:string" />
+ <xs:element minOccurs="1" maxOccurs="1" name="ReminderTime" type="xs:dateTime" />
+ <xs:element minOccurs="1" maxOccurs="1" name="StartDate" type="xs:dateTime" />
+ <xs:element minOccurs="1" maxOccurs="1" name="EndDate" type="xs:dateTime" />
+ <xs:element minOccurs="1" maxOccurs="1" name="ItemId" type="t:ItemIdType" />
+ <xs:element minOccurs="0" maxOccurs="1" name="RecurringMasterItemId" type="t:ItemIdType" />
+ <xs:element minOccurs="0" maxOccurs="1" name="ReminderGroup" type="t:ReminderGroupType" />
+ <xs:element minOccurs="1" maxOccurs="1" name="UID" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfRemindersType">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Reminder" type="t:ReminderType" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <!-- - - - - - - - - - - - - - - - - - - -->
+ <!-- Recipient List -->
+ <!-- - - - - - - - - - - - - - - - - - - -->
+ <xs:complexType name="ArrayOfRecipientsType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Mailbox" type="t:EmailAddressType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="SingleRecipientType">
+ <xs:choice>
+ <xs:element name="Mailbox" type="t:EmailAddressType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- URIs for frequently referenced types -->
+ <xs:simpleType name="UnindexedFieldURIType">
+ <xs:restriction base="xs:string">
+
+ <!-- Folder fields -->
+
+ <xs:enumeration value="folder:FolderId"/>
+ <xs:enumeration value="folder:ParentFolderId"/>
+ <xs:enumeration value="folder:DisplayName" />
+ <xs:enumeration value="folder:UnreadCount" />
+ <xs:enumeration value="folder:TotalCount" />
+ <xs:enumeration value="folder:ChildFolderCount" />
+ <xs:enumeration value="folder:FolderClass" />
+ <xs:enumeration value="folder:SearchParameters"/>
+ <xs:enumeration value="folder:ManagedFolderInformation"/>
+ <xs:enumeration value="folder:PermissionSet"/>
+ <xs:enumeration value="folder:EffectiveRights"/>
+ <xs:enumeration value="folder:SharingEffectiveRights"/>
+ <xs:enumeration value="folder:DistinguishedFolderId"/>
+ <xs:enumeration value="folder:PolicyTag"/>
+ <xs:enumeration value="folder:ArchiveTag"/>
+ <xs:enumeration value="folder:ReplicaList"/>
+
+ <!-- Item fields -->
+
+ <xs:enumeration value="item:ItemId"/>
+ <xs:enumeration value="item:ParentFolderId"/>
+ <xs:enumeration value="item:ItemClass" />
+ <xs:enumeration value="item:MimeContent"/>
+ <xs:enumeration value="item:Attachments" />
+ <xs:enumeration value="item:Subject" />
+ <xs:enumeration value="item:DateTimeReceived" />
+ <xs:enumeration value="item:Size" />
+ <xs:enumeration value="item:Categories" />
+ <xs:enumeration value="item:HasAttachments"/>
+ <xs:enumeration value="item:Importance"/>
+ <xs:enumeration value="item:InReplyTo"/>
+ <xs:enumeration value="item:InternetMessageHeaders" />
+ <xs:enumeration value="item:IsAssociated" />
+ <xs:enumeration value="item:IsDraft" />
+ <xs:enumeration value="item:IsFromMe" />
+ <xs:enumeration value="item:IsResend" />
+ <xs:enumeration value="item:IsSubmitted" />
+ <xs:enumeration value="item:IsUnmodified" />
+ <xs:enumeration value="item:DateTimeSent" />
+ <xs:enumeration value="item:DateTimeCreated" />
+ <xs:enumeration value="item:Body" />
+ <xs:enumeration value="item:ResponseObjects"/>
+ <xs:enumeration value="item:Sensitivity"/>
+
+ <xs:enumeration value="item:ReminderDueBy"/>
+ <xs:enumeration value="item:ReminderIsSet"/>
+ <xs:enumeration value="item:ReminderNextTime"/>
+ <xs:enumeration value="item:ReminderMinutesBeforeStart"/>
+
+ <xs:enumeration value="item:DisplayTo"/>
+ <xs:enumeration value="item:DisplayCc"/>
+ <xs:enumeration value="item:DisplayBcc"/>
+
+ <xs:enumeration value="item:Culture"/>
+ <xs:enumeration value="item:EffectiveRights"/>
+
+ <xs:enumeration value="item:LastModifiedName"/>
+ <xs:enumeration value="item:LastModifiedTime"/>
+ <xs:enumeration value="item:ConversationId"/>
+ <xs:enumeration value="item:UniqueBody"/>
+ <xs:enumeration value="item:Flag"/>
+ <xs:enumeration value="item:StoreEntryId"/>
+ <xs:enumeration value="item:InstanceKey"/>
+ <xs:enumeration value="item:NormalizedBody"/>
+ <xs:enumeration value="item:EntityExtractionResult" />
+ <xs:enumeration value="item:PolicyTag"/>
+ <xs:enumeration value="item:ArchiveTag"/>
+ <xs:enumeration value="item:RetentionDate"/>
+ <xs:enumeration value="item:Preview" />
+ <xs:enumeration value="item:PredictedActionReasons" />
+ <xs:enumeration value="item:IsClutter" />
+ <xs:enumeration value="item:RightsManagementLicenseData" />
+ <xs:enumeration value="item:BlockStatus" />
+ <xs:enumeration value="item:HasBlockedImages" />
+
+ <xs:enumeration value="item:WebClientReadFormQueryString"/>
+ <xs:enumeration value="item:WebClientEditFormQueryString"/>
+
+ <xs:enumeration value="item:TextBody"/>
+
+ <xs:enumeration value="item:IconIndex"/>
+
+ <xs:enumeration value="item:MimeContentUTF8"/>
+
+ <xs:enumeration value="item:Mentions"/>
+ <xs:enumeration value="item:MentionedMe" />
+ <xs:enumeration value="item:MentionsPreview"/>
+ <xs:enumeration value="item:MentionsEx"/>
+ <xs:enumeration value="item:Hashtags"/>
+ <xs:enumeration value="item:AppliedHashtags"/>
+ <xs:enumeration value="item:AppliedHashtagsPreview"/>
+ <xs:enumeration value="item:Likes"/>
+ <xs:enumeration value="item:LikesPreview"/>
+ <xs:enumeration value="item:PendingSocialActivityTagIds"/>
+ <xs:enumeration value="item:AtAllMention"/>
+ <xs:enumeration value="item:CanDelete"/>
+ <xs:enumeration value="item:InferenceClassification"/>
+
+ <xs:enumeration value="item:FirstBody"/>
+
+ <!-- Messages -->
+
+ <xs:enumeration value="message:ConversationIndex"/>
+ <xs:enumeration value="message:ConversationTopic"/>
+ <xs:enumeration value="message:InternetMessageId"/>
+ <xs:enumeration value="message:IsRead"/>
+ <xs:enumeration value="message:IsResponseRequested"/>
+ <xs:enumeration value="message:IsReadReceiptRequested"/>
+ <xs:enumeration value="message:IsDeliveryReceiptRequested"/>
+ <xs:enumeration value="message:ReceivedBy"/>
+ <xs:enumeration value="message:ReceivedRepresenting"/>
+ <xs:enumeration value="message:References"/>
+ <xs:enumeration value="message:ReplyTo"/>
+ <xs:enumeration value="message:From" />
+ <xs:enumeration value="message:Sender" />
+ <xs:enumeration value="message:ToRecipients" />
+ <xs:enumeration value="message:CcRecipients" />
+ <xs:enumeration value="message:BccRecipients" />
+ <xs:enumeration value="message:ApprovalRequestData"/>
+ <xs:enumeration value="message:VotingInformation"/>
+ <xs:enumeration value="message:ReminderMessageData"/>
+
+ <!-- Meeting Message -->
+
+ <xs:enumeration value="meeting:AssociatedCalendarItemId"/>
+ <xs:enumeration value="meeting:IsDelegated"/>
+ <xs:enumeration value="meeting:IsOutOfDate"/>
+ <xs:enumeration value="meeting:HasBeenProcessed"/>
+ <xs:enumeration value="meeting:ResponseType"/>
+
+ <xs:enumeration value="meeting:ProposedStart"/>
+ <xs:enumeration value="meeting:ProposedEnd"/>
+
+ <!-- Meeting Request -->
+
+ <xs:enumeration value="meetingRequest:MeetingRequestType"/>
+ <xs:enumeration value="meetingRequest:IntendedFreeBusyStatus"/>
+ <xs:enumeration value="meetingRequest:ChangeHighlights"/>
+
+ <!-- Calendar items and appointments -->
+
+ <xs:enumeration value="calendar:Start"/>
+ <xs:enumeration value="calendar:End"/>
+ <xs:enumeration value="calendar:OriginalStart"/>
+ <xs:enumeration value="calendar:StartWallClock"/>
+ <xs:enumeration value="calendar:EndWallClock"/>
+ <xs:enumeration value="calendar:StartTimeZoneId"/>
+ <xs:enumeration value="calendar:EndTimeZoneId"/>
+ <xs:enumeration value="calendar:IsAllDayEvent"/>
+ <xs:enumeration value="calendar:LegacyFreeBusyStatus"/>
+ <xs:enumeration value="calendar:Location"/>
+ <xs:enumeration value="calendar:EnhancedLocation"/>
+ <xs:enumeration value="calendar:When"/>
+ <xs:enumeration value="calendar:IsMeeting"/>
+ <xs:enumeration value="calendar:IsCancelled"/>
+ <xs:enumeration value="calendar:IsRecurring"/>
+ <xs:enumeration value="calendar:MeetingRequestWasSent"/>
+ <xs:enumeration value="calendar:IsResponseRequested"/>
+ <xs:enumeration value="calendar:CalendarItemType"/>
+ <xs:enumeration value="calendar:MyResponseType"/>
+ <xs:enumeration value="calendar:Organizer"/>
+ <xs:enumeration value="calendar:RequiredAttendees"/>
+ <xs:enumeration value="calendar:OptionalAttendees"/>
+ <xs:enumeration value="calendar:Resources"/>
+ <xs:enumeration value="calendar:ConflictingMeetingCount"/>
+ <xs:enumeration value="calendar:AdjacentMeetingCount"/>
+ <xs:enumeration value="calendar:ConflictingMeetings"/>
+ <xs:enumeration value="calendar:AdjacentMeetings"/>
+ <xs:enumeration value="calendar:InboxReminders"/>
+
+ <xs:enumeration value="calendar:Duration"/>
+ <xs:enumeration value="calendar:TimeZone"/>
+ <xs:enumeration value="calendar:AppointmentReplyTime"/>
+ <xs:enumeration value="calendar:AppointmentSequenceNumber"/>
+ <xs:enumeration value="calendar:AppointmentState"/>
+
+ <xs:enumeration value="calendar:Recurrence"/>
+ <xs:enumeration value="calendar:FirstOccurrence"/>
+ <xs:enumeration value="calendar:LastOccurrence"/>
+ <xs:enumeration value="calendar:ModifiedOccurrences"/>
+ <xs:enumeration value="calendar:DeletedOccurrences"/>
+ <xs:enumeration value="calendar:MeetingTimeZone"/>
+
+ <xs:enumeration value="calendar:ConferenceType"/>
+ <xs:enumeration value="calendar:AllowNewTimeProposal"/>
+ <xs:enumeration value="calendar:IsOnlineMeeting"/>
+ <xs:enumeration value="calendar:MeetingWorkspaceUrl"/>
+ <xs:enumeration value="calendar:NetShowUrl"/>
+
+ <xs:enumeration value="calendar:UID"/>
+ <xs:enumeration value="calendar:RecurrenceId"/>
+ <xs:enumeration value="calendar:DateTimeStamp"/>
+ <xs:enumeration value="calendar:StartTimeZone"/>
+ <xs:enumeration value="calendar:EndTimeZone"/>
+
+ <xs:enumeration value="calendar:JoinOnlineMeetingUrl"/>
+ <xs:enumeration value="calendar:OnlineMeetingSettings"/>
+
+ <xs:enumeration value="calendar:IsOrganizer"/>
+ <xs:enumeration value="calendar:CalendarActivityData"/>
+
+ <!-- Task properties -->
+
+ <xs:enumeration value="task:ActualWork"/>
+ <xs:enumeration value="task:AssignedTime"/>
+ <xs:enumeration value="task:BillingInformation"/>
+ <xs:enumeration value="task:ChangeCount"/>
+ <xs:enumeration value="task:Companies"/>
+ <xs:enumeration value="task:CompleteDate"/>
+ <xs:enumeration value="task:Contacts"/>
+ <xs:enumeration value="task:DelegationState"/>
+ <xs:enumeration value="task:Delegator"/>
+ <xs:enumeration value="task:DueDate"/>
+ <xs:enumeration value="task:IsAssignmentEditable"/>
+ <xs:enumeration value="task:IsComplete"/>
+ <xs:enumeration value="task:IsRecurring"/>
+ <xs:enumeration value="task:IsTeamTask"/>
+ <xs:enumeration value="task:Mileage"/>
+ <xs:enumeration value="task:Owner"/>
+ <xs:enumeration value="task:PercentComplete"/>
+ <xs:enumeration value="task:Recurrence"/>
+ <xs:enumeration value="task:StartDate"/>
+ <xs:enumeration value="task:Status"/>
+ <xs:enumeration value="task:StatusDescription"/>
+ <xs:enumeration value="task:TotalWork"/>
+
+ <!-- Contacts -->
+
+ <xs:enumeration value="contacts:Alias" />
+ <xs:enumeration value="contacts:AssistantName" />
+ <xs:enumeration value="contacts:Birthday" />
+ <xs:enumeration value="contacts:BusinessHomePage" />
+ <xs:enumeration value="contacts:Children" />
+ <xs:enumeration value="contacts:Companies" />
+ <xs:enumeration value="contacts:CompanyName" />
+ <xs:enumeration value="contacts:CompleteName" />
+ <xs:enumeration value="contacts:ContactSource" />
+ <xs:enumeration value="contacts:Culture" />
+ <xs:enumeration value="contacts:Department" />
+ <xs:enumeration value="contacts:DisplayName" />
+ <xs:enumeration value="contacts:DirectoryId" />
+ <xs:enumeration value="contacts:DirectReports" />
+ <xs:enumeration value="contacts:EmailAddresses" />
+ <xs:enumeration value="contacts:AbchEmailAddresses" />
+ <xs:enumeration value="contacts:FileAs" />
+ <xs:enumeration value="contacts:FileAsMapping" />
+ <xs:enumeration value="contacts:Generation" />
+ <xs:enumeration value="contacts:GivenName" />
+ <xs:enumeration value="contacts:ImAddresses" />
+ <xs:enumeration value="contacts:Initials" />
+ <xs:enumeration value="contacts:JobTitle" />
+ <xs:enumeration value="contacts:Manager" />
+ <xs:enumeration value="contacts:ManagerMailbox" />
+ <xs:enumeration value="contacts:MiddleName" />
+ <xs:enumeration value="contacts:Mileage" />
+ <xs:enumeration value="contacts:MSExchangeCertificate" />
+ <xs:enumeration value="contacts:Nickname" />
+ <xs:enumeration value="contacts:Notes" />
+ <xs:enumeration value="contacts:OfficeLocation" />
+ <xs:enumeration value="contacts:PhoneNumbers" />
+ <xs:enumeration value="contacts:PhoneticFullName" />
+ <xs:enumeration value="contacts:PhoneticFirstName" />
+ <xs:enumeration value="contacts:PhoneticLastName" />
+ <xs:enumeration value="contacts:Photo" />
+ <xs:enumeration value="contacts:PhysicalAddresses" />
+ <xs:enumeration value="contacts:PostalAddressIndex" />
+ <xs:enumeration value="contacts:Profession" />
+ <xs:enumeration value="contacts:SpouseName" />
+ <xs:enumeration value="contacts:Surname" />
+ <xs:enumeration value="contacts:WeddingAnniversary" />
+ <xs:enumeration value="contacts:UserSMIMECertificate" />
+ <xs:enumeration value="contacts:HasPicture" />
+ <xs:enumeration value="contacts:AccountName" />
+ <xs:enumeration value="contacts:IsAutoUpdateDisabled" />
+ <xs:enumeration value="contacts:IsMessengerEnabled" />
+ <xs:enumeration value="contacts:Comment" />
+ <xs:enumeration value="contacts:ContactShortId" />
+ <xs:enumeration value="contacts:ContactType" />
+ <xs:enumeration value="contacts:CreatedBy" />
+ <xs:enumeration value="contacts:Gender" />
+ <xs:enumeration value="contacts:IsHidden" />
+ <xs:enumeration value="contacts:ObjectId" />
+ <xs:enumeration value="contacts:PassportId" />
+ <xs:enumeration value="contacts:IsPrivate" />
+ <xs:enumeration value="contacts:SourceId" />
+ <xs:enumeration value="contacts:TrustLevel" />
+ <xs:enumeration value="contacts:Urls" />
+ <xs:enumeration value="contacts:Cid" />
+ <xs:enumeration value="contacts:SkypeAuthCertificate" />
+ <xs:enumeration value="contacts:SkypeContext" />
+ <xs:enumeration value="contacts:SkypeId" />
+ <xs:enumeration value="contacts:XboxLiveTag" />
+ <xs:enumeration value="contacts:SkypeRelationship" />
+ <xs:enumeration value="contacts:YomiNickname" />
+ <xs:enumeration value="contacts:InviteFree" />
+ <xs:enumeration value="contacts:HidePresenceAndProfile" />
+ <xs:enumeration value="contacts:IsPendingOutbound" />
+ <xs:enumeration value="contacts:SupportGroupFeeds" />
+ <xs:enumeration value="contacts:UserTileHash" />
+ <xs:enumeration value="contacts:UnifiedInbox" />
+ <xs:enumeration value="contacts:Mris" />
+ <xs:enumeration value="contacts:Wlid" />
+ <xs:enumeration value="contacts:AbchContactId" />
+ <xs:enumeration value="contacts:NotInBirthdayCalendar" />
+ <xs:enumeration value="contacts:ShellContactType" />
+ <xs:enumeration value="contacts:ImMri" />
+ <xs:enumeration value="contacts:PresenceTrustLevel" />
+ <xs:enumeration value="contacts:OtherMri" />
+ <xs:enumeration value="contacts:ProfileLastChanged" />
+ <xs:enumeration value="contacts:MobileIMEnabled" />
+ <xs:enumeration value="distributionlist:Members" />
+ <xs:enumeration value="contacts:PartnerNetworkProfilePhotoUrl" />
+ <xs:enumeration value="contacts:PartnerNetworkThumbnailPhotoUrl" />
+ <xs:enumeration value="contacts:PersonId" />
+ <xs:enumeration value="contacts:ConversationGuid" />
+
+ <!-- Post item -->
+ <xs:enumeration value="postitem:PostedTime"/>
+ <!-- Note: The following message Field URIs are also valid for a postitem:
+ message:ConversationIndex
+ message:ConversationTopic
+ message:From
+ message:InternetMessageId
+ message:References
+ message:Sender
+ -->
+
+ <!-- Conversation fields-->
+ <xs:enumeration value ="conversation:ConversationId" />
+ <xs:enumeration value ="conversation:ConversationTopic" />
+ <xs:enumeration value ="conversation:UniqueRecipients" />
+ <xs:enumeration value ="conversation:GlobalUniqueRecipients" />
+ <xs:enumeration value ="conversation:UniqueUnreadSenders" />
+ <xs:enumeration value ="conversation:GlobalUniqueUnreadSenders" />
+ <xs:enumeration value ="conversation:UniqueSenders" />
+ <xs:enumeration value ="conversation:GlobalUniqueSenders" />
+ <xs:enumeration value ="conversation:LastDeliveryTime" />
+ <xs:enumeration value ="conversation:GlobalLastDeliveryTime" />
+ <xs:enumeration value ="conversation:Categories" />
+ <xs:enumeration value ="conversation:GlobalCategories" />
+ <xs:enumeration value ="conversation:FlagStatus" />
+ <xs:enumeration value ="conversation:GlobalFlagStatus" />
+ <xs:enumeration value ="conversation:HasAttachments" />
+ <xs:enumeration value ="conversation:GlobalHasAttachments" />
+ <xs:enumeration value ="conversation:HasIrm" />
+ <xs:enumeration value ="conversation:GlobalHasIrm" />
+ <xs:enumeration value ="conversation:MessageCount" />
+ <xs:enumeration value ="conversation:GlobalMessageCount" />
+ <xs:enumeration value ="conversation:UnreadCount" />
+ <xs:enumeration value ="conversation:GlobalUnreadCount" />
+ <xs:enumeration value ="conversation:Size" />
+ <xs:enumeration value ="conversation:GlobalSize" />
+ <xs:enumeration value ="conversation:ItemClasses" />
+ <xs:enumeration value ="conversation:GlobalItemClasses" />
+ <xs:enumeration value ="conversation:Importance" />
+ <xs:enumeration value ="conversation:GlobalImportance" />
+ <xs:enumeration value ="conversation:ItemIds" />
+ <xs:enumeration value ="conversation:GlobalItemIds" />
+ <xs:enumeration value ="conversation:LastModifiedTime" />
+ <xs:enumeration value ="conversation:InstanceKey" />
+ <xs:enumeration value ="conversation:Preview" />
+ <xs:enumeration value ="conversation:IconIndex" />
+ <xs:enumeration value ="conversation:GlobalIconIndex" />
+ <xs:enumeration value ="conversation:DraftItemIds" />
+ <xs:enumeration value ="conversation:HasClutter" />
+ <xs:enumeration value ="conversation:MentionedMe" />
+ <xs:enumeration value ="conversation:GlobalMentionedMe" />
+ <xs:enumeration value ="conversation:AtAllMention" />
+ <xs:enumeration value ="conversation:GlobalAtAllMention" />
+
+ <!-- Person Insight Fields -->
+ <xs:enumeration value="person:FullName" />
+ <xs:enumeration value="person:GivenName" />
+ <xs:enumeration value="person:Surname" />
+ <xs:enumeration value="person:PhoneNumber" />
+ <xs:enumeration value="person:SMSNumber" />
+ <xs:enumeration value="person:EmailAddress" />
+ <xs:enumeration value="person:Alias" />
+ <xs:enumeration value="person:Department" />
+ <xs:enumeration value="person:LinkedInProfileLink" />
+ <xs:enumeration value="person:Skills" />
+ <xs:enumeration value="person:ProfessionalBiography" />
+ <xs:enumeration value="person:ManagementChain" />
+ <xs:enumeration value="person:DirectReports" />
+ <xs:enumeration value="person:Peers" />
+ <xs:enumeration value="person:TeamSize" />
+ <xs:enumeration value="person:CurrentJob" />
+ <xs:enumeration value="person:Birthday" />
+ <xs:enumeration value="person:Hometown" />
+ <xs:enumeration value="person:CurrentLocation" />
+ <xs:enumeration value="person:CompanyProfile" />
+ <xs:enumeration value="person:Office" />
+ <xs:enumeration value="person:Headline" />
+ <xs:enumeration value="person:MutualConnections" />
+ <xs:enumeration value="person:Title" />
+ <xs:enumeration value="person:MutualManager" />
+ <xs:enumeration value="person:Insights" />
+ <xs:enumeration value="person:UserProfilePicture" />
+
+ <!-- Persona fields-->
+ <xs:enumeration value ="persona:PersonaId" />
+ <xs:enumeration value ="persona:PersonaType" />
+ <xs:enumeration value ="persona:GivenName" />
+ <xs:enumeration value ="persona:CompanyName" />
+ <xs:enumeration value ="persona:Surname" />
+ <xs:enumeration value ="persona:DisplayName" />
+ <xs:enumeration value ="persona:EmailAddress" />
+ <xs:enumeration value ="persona:FileAs" />
+ <xs:enumeration value ="persona:HomeCity" />
+ <xs:enumeration value ="persona:CreationTime" />
+
+
+ <xs:enumeration value ="persona:RelevanceScore" />
+ <xs:enumeration value ="persona:RankingWeight" />
+ <xs:enumeration value ="persona:WorkCity" />
+ <xs:enumeration value ="persona:PersonaObjectStatus" />
+ <xs:enumeration value ="persona:FileAsId" />
+ <xs:enumeration value ="persona:DisplayNamePrefix" />
+ <xs:enumeration value ="persona:YomiCompanyName" />
+ <xs:enumeration value ="persona:YomiFirstName" />
+ <xs:enumeration value ="persona:YomiLastName" />
+ <xs:enumeration value ="persona:Title" />
+ <xs:enumeration value ="persona:EmailAddresses" />
+ <xs:enumeration value ="persona:PhoneNumber" />
+ <xs:enumeration value ="persona:ImAddress" />
+ <xs:enumeration value ="persona:ImAddresses" />
+ <xs:enumeration value ="persona:ImAddresses2" />
+ <xs:enumeration value ="persona:ImAddresses3" />
+ <xs:enumeration value ="persona:FolderIds" />
+ <xs:enumeration value ="persona:Attributions" />
+ <xs:enumeration value ="persona:DisplayNames" />
+ <xs:enumeration value ="persona:Initials" />
+ <xs:enumeration value ="persona:FileAses" />
+ <xs:enumeration value ="persona:FileAsIds" />
+ <xs:enumeration value ="persona:DisplayNamePrefixes" />
+ <xs:enumeration value ="persona:GivenNames" />
+ <xs:enumeration value ="persona:MiddleNames" />
+ <xs:enumeration value ="persona:Surnames" />
+ <xs:enumeration value ="persona:Generations" />
+ <xs:enumeration value ="persona:Nicknames" />
+ <xs:enumeration value ="persona:YomiCompanyNames" />
+ <xs:enumeration value ="persona:YomiFirstNames" />
+ <xs:enumeration value ="persona:YomiLastNames" />
+ <xs:enumeration value ="persona:BusinessPhoneNumbers" />
+ <xs:enumeration value ="persona:BusinessPhoneNumbers2" />
+ <xs:enumeration value ="persona:HomePhones" />
+ <xs:enumeration value ="persona:HomePhones2" />
+ <xs:enumeration value ="persona:MobilePhones" />
+ <xs:enumeration value ="persona:MobilePhones2" />
+ <xs:enumeration value ="persona:AssistantPhoneNumbers" />
+ <xs:enumeration value ="persona:CallbackPhones" />
+ <xs:enumeration value ="persona:CarPhones" />
+ <xs:enumeration value ="persona:HomeFaxes" />
+ <xs:enumeration value ="persona:OrganizationMainPhones" />
+ <xs:enumeration value ="persona:OtherFaxes" />
+ <xs:enumeration value ="persona:OtherTelephones" />
+ <xs:enumeration value ="persona:OtherPhones2" />
+ <xs:enumeration value ="persona:Pagers" />
+ <xs:enumeration value ="persona:RadioPhones" />
+ <xs:enumeration value ="persona:TelexNumbers" />
+ <xs:enumeration value ="persona:WorkFaxes" />
+ <xs:enumeration value ="persona:Emails1" />
+ <xs:enumeration value ="persona:Emails2" />
+ <xs:enumeration value ="persona:Emails3" />
+ <xs:enumeration value ="persona:BusinessHomePages" />
+ <xs:enumeration value ="persona:School" />
+ <xs:enumeration value ="persona:PersonalHomePages" />
+ <xs:enumeration value ="persona:OfficeLocations" />
+ <xs:enumeration value ="persona:BusinessAddresses" />
+ <xs:enumeration value ="persona:HomeAddresses" />
+ <xs:enumeration value ="persona:OtherAddresses" />
+ <xs:enumeration value ="persona:Titles" />
+ <xs:enumeration value ="persona:Departments" />
+ <xs:enumeration value ="persona:CompanyNames" />
+ <xs:enumeration value ="persona:Managers" />
+ <xs:enumeration value ="persona:AssistantNames" />
+ <xs:enumeration value ="persona:Professions" />
+ <xs:enumeration value ="persona:SpouseNames" />
+ <xs:enumeration value ="persona:Hobbies" />
+ <xs:enumeration value ="persona:WeddingAnniversaries" />
+ <xs:enumeration value ="persona:Birthdays" />
+ <xs:enumeration value ="persona:Children" />
+ <xs:enumeration value ="persona:Locations" />
+ <xs:enumeration value ="persona:ExtendedProperties" />
+ <xs:enumeration value ="persona:PostalAddress" />
+ <xs:enumeration value ="persona:Bodies" />
+ <xs:enumeration value ="persona:IsFavorite" />
+ <xs:enumeration value ="persona:InlineLinks" />
+ <xs:enumeration value ="persona:ItemLinkIds" />
+ <xs:enumeration value ="persona:HasActiveDeals" />
+ <xs:enumeration value ="persona:IsBusinessContact" />
+ <xs:enumeration value ="persona:AttributedHasActiveDeals" />
+ <xs:enumeration value ="persona:AttributedIsBusinessContact" />
+ <xs:enumeration value ="persona:SourceMailboxGuids" />
+ <xs:enumeration value ="persona:LastContactedDate" />
+ <xs:enumeration value ="persona:ExternalDirectoryObjectId" />
+ <xs:enumeration value ="persona:MapiEntryId" />
+ <xs:enumeration value ="persona:MapiEmailAddress" />
+ <xs:enumeration value ="persona:MapiAddressType" />
+ <xs:enumeration value ="persona:MapiSearchKey" />
+ <xs:enumeration value ="persona:MapiTransmittableDisplayName" />
+ <xs:enumeration value ="persona:MapiSendRichInfo" />
+
+ <xs:enumeration value="rolemember:MemberType" />
+ <xs:enumeration value="rolemember:MemberId" />
+ <xs:enumeration value="rolemember:DisplayName" />
+
+ <xs:enumeration value="network:TokenRefreshLastCompleted" />
+ <xs:enumeration value="network:TokenRefreshLastAttempted" />
+ <xs:enumeration value="network:SyncEnabled" />
+ <xs:enumeration value="network:RejectedOffers" />
+ <xs:enumeration value="network:SessionHandle" />
+ <xs:enumeration value="network:RefreshTokenExpiry2" />
+ <xs:enumeration value="network:RefreshToken2" />
+ <xs:enumeration value="network:PsaLastChanged" />
+ <xs:enumeration value="network:Offers" />
+ <xs:enumeration value="network:LastWelcomeContact" />
+ <xs:enumeration value="network:LastVersionSaved" />
+ <xs:enumeration value="network:DomainTag" />
+ <xs:enumeration value="network:FirstAuthErrorDates" />
+ <xs:enumeration value="network:ErrorOffers" />
+ <xs:enumeration value="network:ContactSyncSuccess" />
+ <xs:enumeration value="network:ContactSyncError" />
+ <xs:enumeration value="network:ClientToken2" />
+ <xs:enumeration value="network:ClientToken" />
+ <xs:enumeration value="network:ClientPublishSecret" />
+ <xs:enumeration value="network:UserEmail" />
+ <xs:enumeration value="network:AutoLinkSuccess" />
+ <xs:enumeration value="network:AutoLinkError" />
+ <xs:enumeration value="network:IsDefault" />
+ <xs:enumeration value="network:Settings" />
+ <xs:enumeration value="network:ProfileUrl" />
+ <xs:enumeration value="network:UserTileUrl" />
+ <xs:enumeration value="network:DomainId" />
+ <xs:enumeration value="network:DisplayName" />
+ <xs:enumeration value="network:AccountName" />
+ <xs:enumeration value="network:SourceEntryID" />
+
+ <xs:enumeration value="abchperson:FavoriteOrder" />
+ <xs:enumeration value="abchperson:PersonId" />
+ <xs:enumeration value="abchperson:ExchangePersonIdGuid" />
+ <xs:enumeration value="abchperson:AntiLinkInfo" />
+ <xs:enumeration value="abchperson:RelevanceOrder1" />
+ <xs:enumeration value="abchperson:RelevanceOrder2" />
+ <xs:enumeration value="abchperson:ContactHandles" />
+ <xs:enumeration value="abchperson:Categories" />
+
+ <xs:enumeration value="booking:ServiceIds" />
+ <xs:enumeration value="booking:StaffIds" />
+ <xs:enumeration value="booking:StaffInitials" />
+ <xs:enumeration value="booking:CustomerName" />
+ <xs:enumeration value="booking:CustomerEmail" />
+ <xs:enumeration value="booking:CustomerPhone" />
+ <xs:enumeration value="booking:CustomerId" />
+
+ <!--Insight fields-->
+ <xs:enumeration value="insight:InsightId" />
+ <xs:enumeration value="insight:Type" />
+ <xs:enumeration value="insight:StartTimeUtc" />
+ <xs:enumeration value="insight:EndTimeUtc" />
+ <xs:enumeration value="insight:Status" />
+ <xs:enumeration value="insight:Version" />
+ <xs:enumeration value="insight:ApplicationsIds" />
+ <xs:enumeration value="insight:Text" />
+ <xs:enumeration value="insight:SuggestedActions" />
+ <xs:enumeration value="insight:AppContexts" />
+
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="DictionaryURIType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="item:InternetMessageHeader" />
+ <xs:enumeration value="contacts:ImAddress" />
+ <xs:enumeration value="contacts:PhysicalAddress:Street" />
+ <xs:enumeration value="contacts:PhysicalAddress:City" />
+ <xs:enumeration value="contacts:PhysicalAddress:State" />
+ <xs:enumeration value="contacts:PhysicalAddress:CountryOrRegion" />
+ <xs:enumeration value="contacts:PhysicalAddress:PostalCode" />
+ <xs:enumeration value="contacts:PhoneNumber" />
+ <xs:enumeration value="contacts:EmailAddress" />
+
+ <xs:enumeration value="distributionlist:Members:Member" />
+
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- URIs for property types used in MessageXml -->
+ <xs:simpleType name="ExceptionPropertyURIType">
+ <xs:restriction base="xs:string">
+ <!-- Attachment fields -->
+
+ <xs:enumeration value="attachment:Name"/>
+ <xs:enumeration value="attachment:ContentType"/>
+ <xs:enumeration value="attachment:Content" />
+
+ <!-- Recurrence fields -->
+
+ <xs:enumeration value="recurrence:Month"/>
+ <xs:enumeration value="recurrence:DayOfWeekIndex"/>
+ <xs:enumeration value="recurrence:DaysOfWeek" />
+ <xs:enumeration value="recurrence:DayOfMonth"/>
+ <xs:enumeration value="recurrence:Interval" />
+ <xs:enumeration value="recurrence:NumberOfOccurrences" />
+
+ <xs:enumeration value="timezone:Offset" />
+
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- path types -->
+ <xs:simpleType name="GuidType">
+ <xs:annotation>
+ <xs:documentation>
+ The regular expression captures the standard representation of a GUID
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="DistinguishedPropertySetType">
+ <xs:annotation>
+ <xs:documentation>
+ Defines the well known property set ids for extended properties.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Meeting"/>
+ <xs:enumeration value="Appointment"/>
+ <xs:enumeration value="Common"/>
+ <xs:enumeration value="PublicStrings"/>
+ <xs:enumeration value="Address"/>
+ <xs:enumeration value="InternetHeaders"/>
+ <xs:enumeration value="CalendarAssistant"/>
+ <xs:enumeration value="UnifiedMessaging"/>
+ <xs:enumeration value="Task"/>
+ <xs:enumeration value="Sharing" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="MapiPropertyTypeType">
+ <xs:annotation>
+ <xs:documentation>
+ 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.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ApplicationTime"/>
+ <xs:enumeration value="ApplicationTimeArray"/>
+ <xs:enumeration value="Binary"/>
+ <xs:enumeration value="BinaryArray"/>
+ <xs:enumeration value="Boolean"/>
+ <xs:enumeration value="CLSID"/>
+ <xs:enumeration value="CLSIDArray"/>
+ <xs:enumeration value="Currency"/>
+ <xs:enumeration value="CurrencyArray"/>
+ <xs:enumeration value="Double"/>
+ <xs:enumeration value="DoubleArray"/>
+ <xs:enumeration value="Error"/>
+ <xs:enumeration value="Float"/>
+ <xs:enumeration value="FloatArray"/>
+ <xs:enumeration value="Integer"/>
+ <xs:enumeration value="IntegerArray"/>
+ <xs:enumeration value="Long"/>
+ <xs:enumeration value="LongArray"/>
+ <xs:enumeration value="Null"/>
+ <xs:enumeration value="Object"/>
+ <xs:enumeration value="ObjectArray"/>
+ <xs:enumeration value="Short"/>
+ <xs:enumeration value="ShortArray"/>
+ <xs:enumeration value="SystemTime"/>
+ <xs:enumeration value="SystemTimeArray"/>
+ <xs:enumeration value="String"/>
+ <xs:enumeration value="StringArray"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="BasePathToElementType" abstract="true"/>
+
+ <xs:complexType name="PathToUnindexedFieldType">
+ <xs:complexContent>
+ <xs:extension base="t:BasePathToElementType">
+ <xs:attribute name="FieldURI" type="t:UnindexedFieldURIType" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="PathToIndexedFieldType">
+ <xs:complexContent>
+ <xs:extension base="t:BasePathToElementType">
+ <xs:attribute name="FieldURI" type="t:DictionaryURIType" use="required" />
+ <xs:attribute name="FieldIndex" type="xs:string" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="PathToExceptionFieldType">
+ <xs:complexContent>
+ <xs:extension base="t:BasePathToElementType">
+ <xs:attribute name="FieldURI" type="t:ExceptionPropertyURIType" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="PropertyTagType">
+ <xs:annotation>
+ <xs:documentation>
+ This type represents the property tag (MINUS the type part). There are two options
+ for representation:
+ 1. Hex ==> 0x3fa4
+ 2. Decimal ==> 0-65535
+ </xs:documentation>
+ </xs:annotation>
+ <xs:union memberTypes ="xs:unsignedShort">
+ <xs:simpleType id="HexPropertyTagType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(0x|0X)[0-9A-Fa-f]{1,4}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:union>
+ </xs:simpleType>
+
+ <xs:complexType name="PathToExtendedFieldType">
+ <xs:annotation>
+ <xs:documentation>
+ 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
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:BasePathToElementType">
+ <xs:attribute name="DistinguishedPropertySetId" type="t:DistinguishedPropertySetType" use="optional"/>
+ <xs:attribute name="PropertySetId" type="t:GuidType" use="optional"/>
+ <xs:attribute name="PropertyTag" type="t:PropertyTagType" use="optional"/>
+ <xs:attribute name="PropertyName" type="xs:string" use="optional"/>
+ <xs:attribute name="PropertyId" type="xs:int" use="optional"/>
+ <xs:attribute name="PropertyType" type="t:MapiPropertyTypeType" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="Path" abstract="true" type="t:BasePathToElementType"/>
+ <xs:element name="FieldURI" type="t:PathToUnindexedFieldType" substitutionGroup="t:Path"/>
+ <xs:element name="IndexedFieldURI" type="t:PathToIndexedFieldType" substitutionGroup="t:Path" />
+ <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType" substitutionGroup="t:Path"/>
+
+ <!-- For errors only, identifies fields that do not have a uri. -->
+ <xs:element name="ExceptionFieldURI" type="t:PathToExceptionFieldType" />
+
+ <!-- Arrays of paths -->
+ <xs:complexType name="NonEmptyArrayOfPathsToElementType">
+ <!-- using choice here so that proxy generator will not flatten the array and thus lose the
+ item element names -->
+ <xs:choice maxOccurs ="unbounded">
+ <xs:element ref="t:FieldURI"/>
+ <xs:element ref="t:IndexedFieldURI"/>
+ <xs:element ref="t:ExtendedFieldURI"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- ExtendedProperty value instances -->
+
+ <xs:complexType name="NonEmptyArrayOfPropertyValuesType">
+ <xs:choice>
+ <xs:element name="Value" type="xs:string" maxOccurs="unbounded"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfExtendedPropertyType">
+ <xs:choice>
+ <xs:element name="ExtendedProperty" type="t:ExtendedPropertyType" maxOccurs="unbounded"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ExtendedPropertyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents an extended property instance (both its path identifier along with its
+ associated value).
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType"/>
+ <xs:choice>
+ <xs:element name="Value" type="xs:string"/>
+ <xs:element name="Values" type="t:NonEmptyArrayOfPropertyValuesType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Query Traversal types -->
+ <xs:simpleType name="FolderQueryTraversalType">
+ <xs:annotation>
+ <xs:documentation>Types of sub-tree traversal for deletion and enumeration</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Shallow" />
+ <xs:enumeration value="Deep" />
+ <xs:enumeration value="SoftDeleted" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="SearchFolderTraversalType">
+ <xs:annotation>
+ <xs:documentation>Types of sub-tree traversal for deletion and enumeration</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Shallow" />
+ <xs:enumeration value="Deep" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ItemQueryTraversalType">
+ <xs:annotation>
+ <xs:documentation>Types of sub-tree traversal for deletion and enumeration</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Shallow" />
+ <xs:enumeration value="SoftDeleted" />
+ <xs:enumeration value="Associated" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ConversationQueryTraversalType">
+ <xs:annotation>
+ <xs:documentation>Types of sub-tree traversal for conversations</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Shallow" />
+ <xs:enumeration value="Deep" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Default shape names for response shapes -->
+ <xs:simpleType name="DefaultShapeNamesType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="IdOnly" />
+ <xs:enumeration value="Default" />
+ <xs:enumeration value="AllProperties" />
+ <xs:enumeration value="PcxPeopleSearch" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="BodyTypeResponseType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Best" />
+ <xs:enumeration value="HTML" />
+ <xs:enumeration value="Text" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Placeholder type from which all folder shape properties are to be derived -->
+ <xs:complexType name="FolderResponseShapeType">
+ <xs:sequence>
+ <xs:element name="BaseShape" type="t:DefaultShapeNamesType" />
+ <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ItemResponseShapeType">
+ <xs:sequence>
+ <xs:element name="BaseShape" type="t:DefaultShapeNamesType" />
+ <xs:element name="IncludeMimeContent" type="xs:boolean" minOccurs="0" />
+ <xs:element name="BodyType" type="t:BodyTypeResponseType" minOccurs="0" />
+ <xs:element name="UniqueBodyType" type="t:BodyTypeResponseType" minOccurs="0" />
+ <xs:element name="NormalizedBodyType" type="t:BodyTypeResponseType" minOccurs="0" />
+ <xs:element name="FilterHtmlContent" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ConvertHtmlCodePageToUTF8" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="InlineImageUrlTemplate" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="BlockExternalImages" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AddBlankTargetToLinks" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="MaximumBodySize" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AttachmentResponseShapeType">
+ <xs:sequence>
+ <xs:element name="IncludeMimeContent" type="xs:boolean" minOccurs="0" />
+ <xs:element name="BodyType" type="t:BodyTypeResponseType" minOccurs="0" />
+ <xs:element name="FilterHtmlContent" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ConversationResponseShapeType">
+ <xs:sequence>
+ <xs:element name="BaseShape" type="t:DefaultShapeNamesType" />
+ <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PersonaResponseShapeType">
+ <xs:sequence>
+ <xs:element name="BaseShape" type="t:DefaultShapeNamesType" />
+ <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="DisposalType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="HardDelete" />
+ <xs:enumeration value="SoftDelete" />
+ <xs:enumeration value="MoveToDeletedItems" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- auto-conflict resolution levels -->
+ <xs:simpleType name="ConflictResolutionType">
+ <xs:annotation>
+ <xs:documentation>Type of conflict resolution to attempt during update</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NeverOverwrite" />
+ <xs:enumeration value="AutoResolve" />
+ <xs:enumeration value="AlwaysOverwrite" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ClientAccessTokenTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CallerIdentity" />
+ <xs:enumeration value="ExtensionCallback" />
+ <xs:enumeration value="ScopedToken" />
+ <xs:enumeration value="ExtensionRestApiCallback" />
+ <xs:enumeration value="Connectors" />
+ <xs:enumeration value="Loki" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="NonEmptyArrayOfClientAccessTokenRequestsType">
+ <xs:sequence>
+ <xs:element name="TokenRequest" type="t:ClientAccessTokenRequestType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ClientAccessTokenRequestType">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" />
+ <xs:element name="TokenType" type="t:ClientAccessTokenTypeType" />
+ <xs:element name="Scope" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ClientAccessTokenType">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" />
+ <xs:element name="TokenType" type="t:ClientAccessTokenTypeType" />
+ <xs:element name="TokenValue" type="xs:string"/>
+ <xs:element name="TTL" type="xs:integer"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="ResponseClassType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Success" />
+ <xs:enumeration value="Warning" />
+ <xs:enumeration value="Error" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Core update operations -->
+ <xs:complexType name="ChangeDescriptionType" abstract="true">
+ <!-- This path element needs some explanation. For update operations, only ONE
+ property can be modified within a single request. That single property must be
+ referenced in the Path element. The Item/Folder element in the derived classes
+ can then only hold a single property that is in agreement with the single path
+ element-->
+ <xs:sequence>
+ <xs:choice maxOccurs ="unbounded">
+ <xs:element ref="t:FieldURI"/>
+ <xs:element ref="t:IndexedFieldURI"/>
+ <xs:element ref="t:ExtendedFieldURI"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ItemChangeDescriptionType">
+ <xs:complexContent>
+ <xs:extension base="t:ChangeDescriptionType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="FolderChangeDescriptionType">
+ <xs:complexContent>
+ <xs:extension base="t:ChangeDescriptionType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SetItemFieldType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemChangeDescriptionType">
+ <xs:choice>
+ <xs:element name="Item" type="t:ItemType"/>
+ <xs:element name="Message" type="t:MessageType"/>
+ <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+ <xs:element name="Contact" type="t:ContactItemType"/>
+ <xs:element name="DistributionList" type="t:DistributionListType"/>
+ <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+ <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+ <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+ <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+ <xs:element name="Task" type="t:TaskType"/>
+ <xs:element name="PostItem" type="t:PostItemType"/>
+ <xs:element name="RoleMember" type="t:RoleMemberItemType"/>
+ <xs:element name="Network" type="t:NetworkItemType"/>
+ <xs:element name="Person" type="t:AbchPersonItemType"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SetFolderFieldType">
+ <xs:complexContent>
+ <xs:extension base="t:FolderChangeDescriptionType">
+ <xs:choice>
+ <xs:element name="Folder" type="t:FolderType"/>
+ <xs:element name="CalendarFolder" type="t:CalendarFolderType"/>
+ <xs:element name="ContactsFolder" type="t:ContactsFolderType"/>
+ <xs:element name="SearchFolder" type="t:SearchFolderType"/>
+ <xs:element name="TasksFolder" type="t:TasksFolderType"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="DeleteItemFieldType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemChangeDescriptionType">
+ <xs:sequence/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="DeleteFolderFieldType">
+ <xs:complexContent>
+ <xs:extension base="t:FolderChangeDescriptionType">
+ <xs:sequence/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AppendToItemFieldType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemChangeDescriptionType">
+ <xs:choice>
+ <xs:element name="Item" type="t:ItemType"/>
+ <xs:element name="Message" type="t:MessageType"/>
+ <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+ <xs:element name="Contact" type="t:ContactItemType"/>
+ <xs:element name="DistributionList" type="t:DistributionListType"/>
+ <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+ <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+ <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+ <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+ <xs:element name="Task" type="t:TaskType"/>
+ <xs:element name="PostItem" type="t:PostItemType"/>
+ <xs:element name="RoleMember" type="t:RoleMemberItemType"/>
+ <xs:element name="Network" type="t:NetworkItemType"/>
+ <xs:element name="Person" type="t:AbchPersonItemType"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AppendToFolderFieldType">
+ <xs:complexContent>
+ <xs:extension base="t:FolderChangeDescriptionType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="Folder" type="t:FolderType"/>
+ <xs:element name="CalendarFolder" type="t:CalendarFolderType"/>
+ <xs:element name="ContactsFolder" type="t:ContactsFolderType"/>
+ <xs:element name="SearchFolder" type="t:SearchFolderType"/>
+ <xs:element name="TasksFolder" type="t:TasksFolderType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfItemChangeDescriptionsType">
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="AppendToItemField" type="t:AppendToItemFieldType"/>
+ <xs:element name="SetItemField" type="t:SetItemFieldType"/>
+ <xs:element name="DeleteItemField" type="t:DeleteItemFieldType"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="NonEmptyArrayOfFolderChangeDescriptionsType">
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="AppendToFolderField" type="t:AppendToFolderFieldType"/>
+ <xs:element name="SetFolderField" type="t:SetFolderFieldType"/>
+ <xs:element name="DeleteFolderField" type="t:DeleteFolderFieldType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- Updating an item. -->
+
+ <xs:complexType name="ItemChangeType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="ItemId" type="t:ItemIdType" />
+ <xs:element name="OccurrenceItemId" type="t:OccurrenceItemIdType"/>
+ <xs:element name="RecurringMasterItemId" type="t:RecurringMasterItemIdType"/>
+ </xs:choice>
+ <xs:element name="Updates" type="t:NonEmptyArrayOfItemChangeDescriptionsType" />
+ <xs:element name="CalendarActivityData" type="t:CalendarActivityDataType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfItemChangesType">
+ <xs:sequence>
+ <xs:element name="ItemChange" type="t:ItemChangeType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Other headers -->
+ <xs:complexType name="InternetHeaderType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="HeaderName" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfInternetHeadersType">
+ <xs:sequence>
+ <xs:element name="InternetMessageHeader" type="t:InternetHeaderType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfPredictedActionReasonType">
+ <xs:sequence>
+ <xs:element name="PredictedActionReason" type="t:PredictedActionReasonType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Attachments -->
+
+ <!-- This type is used in GetAttachment -->
+ <xs:complexType name="RequestAttachmentIdType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseItemIdType">
+ <xs:attribute name="Id" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- This type is used in CreateAttachment responses. CreateAttachment modifies the
+ change key of the root item of the created attachment. We have to return that new
+ change key.-->
+ <xs:complexType name="AttachmentIdType">
+ <xs:complexContent>
+ <xs:extension base="t:RequestAttachmentIdType">
+ <xs:attribute name="RootItemId" type="xs:string" use="optional"/>
+ <xs:attribute name="RootItemChangeKey" type="xs:string" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- This type is used solely in DeleteAttachment responses. -->
+ <xs:complexType name="RootItemIdType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseItemIdType">
+ <xs:attribute name="RootItemId" type="xs:string" use="required"/>
+ <xs:attribute name="RootItemChangeKey" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfRequestAttachmentIdsType">
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="AttachmentId" type="t:RequestAttachmentIdType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="AttachmentType">
+ <xs:sequence>
+ <xs:element name="AttachmentId" type="t:AttachmentIdType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ContentType" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ContentId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ContentLocation" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AttachmentOriginalUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Size" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="LastModifiedTime" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="IsInline" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ItemAttachmentType">
+ <xs:complexContent>
+ <xs:extension base="t:AttachmentType">
+ <xs:choice minOccurs="0" maxOccurs="1">
+ <xs:element name="Item" type="t:ItemType"/>
+ <xs:element name="Message" type="t:MessageType"/>
+ <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+ <xs:element name="Contact" type="t:ContactItemType"/>
+ <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+ <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+ <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+ <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+ <xs:element name="Task" type="t:TaskType"/>
+ <xs:element name="PostItem" type="t:PostItemType"/>
+ <xs:element name="RoleMember" type="t:RoleMemberItemType"/>
+ <xs:element name="Network" type="t:NetworkItemType"/>
+ <xs:element name="Person" type="t:AbchPersonItemType"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SyncFolderItemsCreateOrUpdateType">
+ <xs:choice>
+ <xs:element name="Item" type="t:ItemType"/>
+ <xs:element name="Message" type="t:MessageType"/>
+ <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+ <xs:element name="Contact" type="t:ContactItemType"/>
+ <xs:element name="DistributionList" type="t:DistributionListType"/>
+ <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+ <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+ <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+ <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+ <xs:element name="Task" type="t:TaskType"/>
+ <xs:element name="PostItem" type="t:PostItemType"/>
+ <xs:element name="RoleMember" type="t:RoleMemberItemType"/>
+ <xs:element name="Network" type="t:NetworkItemType"/>
+ <xs:element name="Person" type="t:AbchPersonItemType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="FileAttachmentType">
+ <xs:complexContent>
+ <xs:extension base="t:AttachmentType">
+ <xs:sequence>
+ <xs:element name="IsContactPhoto" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Content" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ReferenceAttachmentType">
+ <xs:complexContent>
+ <xs:extension base="t:AttachmentType">
+ <xs:sequence>
+ <xs:element name="AttachLongPathName" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ProviderType" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ProviderEndpointUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AttachmentThumbnailUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AttachmentPreviewUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="PermissionType" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="OriginalPermissionType" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AttachmentIsFolder" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfAttachmentsType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="ItemAttachment" type="t:ItemAttachmentType"/>
+ <xs:element name="FileAttachment" type="t:FileAttachmentType"/>
+ <xs:element name="ReferenceAttachment" type="t:ReferenceAttachmentType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfAttachmentsType">
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="ItemAttachment" type="t:ItemAttachmentType"/>
+ <xs:element name="FileAttachment" type="t:FileAttachmentType"/>
+ <xs:element name="ReferenceAttachment" type="t:ReferenceAttachmentType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- Sensitivity enumeration -->
+ <xs:simpleType name="SensitivityChoicesType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Normal" />
+ <xs:enumeration value="Personal" />
+ <xs:enumeration value="Private" />
+ <xs:enumeration value="Confidential" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Importance enumeration -->
+ <xs:simpleType name="ImportanceChoicesType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Low" />
+ <xs:enumeration value="Normal" />
+ <xs:enumeration value="High" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Type of body returned -->
+ <xs:simpleType name="BodyTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="HTML" />
+ <xs:enumeration value="Text" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Body content with body type attribute -->
+ <xs:complexType name="BodyType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="BodyType" type="t:BodyTypeType" use="required" />
+ <xs:attribute name="IsTruncated" type="xs:boolean" use="optional" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- UniqueBody content with body type attribute -->
+ <xs:complexType name="UniqueBodyType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="UniqueBodyType" type="t:BodyTypeType" use="required" />
+ <xs:attribute name="IsTruncated" type="xs:boolean" use="optional" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- NormalizedBody content with body type attribute -->
+ <xs:complexType name="NormalizedBodyType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="NormalizedBodyType" type="t:BodyTypeType" use="required" />
+ <xs:attribute name="IsTruncated" type="xs:boolean" use="optional" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- Folder Service types. -->
+ <!-- Folder Ids -->
+ <xs:complexType name="BaseFolderIdType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>Utility type which should never appear in user documents</xs:documentation>
+ </xs:annotation>
+ </xs:complexType>
+
+ <!-- Folder classes -->
+ <xs:simpleType name="FolderClassType">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="DistinguishedFolderIdNameType">
+ <xs:annotation>
+ <xs:documentation>URIs for the distinguished folders accessible from a mailbox</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="calendar" />
+ <xs:enumeration value="contacts" />
+ <xs:enumeration value="deleteditems" />
+ <xs:enumeration value="drafts" />
+ <xs:enumeration value="inbox" />
+ <xs:enumeration value="journal" />
+ <xs:enumeration value="notes" />
+ <xs:enumeration value="outbox" />
+ <xs:enumeration value="sentitems" />
+ <xs:enumeration value="tasks" />
+ <xs:enumeration value="msgfolderroot" />
+ <xs:enumeration value="publicfoldersroot" />
+ <xs:enumeration value="root" />
+ <xs:enumeration value="junkemail" />
+ <xs:enumeration value="searchfolders" />
+ <xs:enumeration value="voicemail" />
+ <xs:enumeration value="recoverableitemsroot" />
+ <xs:enumeration value="recoverableitemsdeletions" />
+ <xs:enumeration value="recoverableitemsversions" />
+ <xs:enumeration value="recoverableitemspurges" />
+ <xs:enumeration value="recoverableitemsdiscoveryholds" />
+ <xs:enumeration value="archiveroot" />
+ <xs:enumeration value="archivemsgfolderroot" />
+ <xs:enumeration value="archivedeleteditems" />
+ <xs:enumeration value="archiveinbox" />
+ <xs:enumeration value="archiverecoverableitemsroot" />
+ <xs:enumeration value="archiverecoverableitemsdeletions" />
+ <xs:enumeration value="archiverecoverableitemsversions" />
+ <xs:enumeration value="archiverecoverableitemspurges" />
+ <xs:enumeration value="archiverecoverableitemsdiscoveryholds" />
+ <xs:enumeration value="syncissues" />
+ <xs:enumeration value="conflicts" />
+ <xs:enumeration value="localfailures" />
+ <xs:enumeration value="serverfailures" />
+ <xs:enumeration value="recipientcache" />
+ <xs:enumeration value="quickcontacts" />
+ <xs:enumeration value="conversationhistory" />
+ <xs:enumeration value="adminauditlogs" />
+ <xs:enumeration value="todosearch" />
+ <xs:enumeration value="mycontacts" />
+ <xs:enumeration value="directory" />
+ <xs:enumeration value="imcontactlist" />
+ <xs:enumeration value="peopleconnect" />
+ <xs:enumeration value="favorites" />
+ <xs:enumeration value="mecontact" />
+ <xs:enumeration value="personmetadata" />
+ <xs:enumeration value="teamspaceactivity" />
+ <xs:enumeration value="teamspacemessaging" />
+ <xs:enumeration value="teamspaceworkitems" />
+ <xs:enumeration value="scheduled" />
+ <xs:enumeration value="orionnotes" />
+ <xs:enumeration value="tagitems" />
+ <xs:enumeration value="alltaggeditems" />
+ <xs:enumeration value="externalcontacts" />
+ <xs:enumeration value="teamchat" />
+ <xs:enumeration value="yammerroot" />
+ <xs:enumeration value="yammerinbound" />
+ <xs:enumeration value="yammeroutbound" />
+ <xs:enumeration value="yammerfeeds" />
+ <xs:enumeration value="onedriveroot" />
+ <xs:enumeration value="onedriverecylebin" />
+ <xs:enumeration value="onedrivesystem" />
+ <xs:enumeration value="onedrivevolume" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="DistinguishedFolderIdType">
+ <xs:annotation>
+ <xs:documentation>Identifier for a distinguished folder</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:BaseFolderIdType">
+ <xs:sequence>
+ <xs:element name="Mailbox" type="t:EmailAddressType" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="Id" type="t:DistinguishedFolderIdNameType" use="required" />
+ <xs:attribute name="ChangeKey" type="xs:string" use="optional" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="FolderIdType">
+ <xs:annotation>
+ <xs:documentation>Identifier for a fully resolved folder</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:BaseFolderIdType">
+ <xs:attribute name="Id" type="xs:string" use="required" />
+ <xs:attribute name="ChangeKey" type="xs:string" use="optional" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AddressListIdType">
+ <xs:annotation>
+ <xs:documentation>Identifier for a address list</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:BaseFolderIdType">
+ <xs:attribute name="Id" type="xs:string" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfDistinguishedFolderIdType">
+ <xs:choice maxOccurs="unbounded" minOccurs="0">
+ <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfBaseFolderIdsType">
+ <xs:choice maxOccurs="unbounded" minOccurs="1">
+ <xs:element name="FolderId" type="t:FolderIdType"/>
+ <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="TargetFolderIdType">
+ <xs:choice>
+ <xs:element name="FolderId" type="t:FolderIdType"/>
+ <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdType"/>
+ <xs:element name="AddressListId" type="t:AddressListIdType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- UploadItems types -->
+ <xs:complexType name="NonEmptyArrayOfUploadItemsType">
+ <xs:sequence>
+ <xs:element name="Item" type="t:UploadItemType" maxOccurs="unbounded" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- UploadItemType-->
+ <xs:complexType name="UploadItemType">
+ <xs:sequence>
+ <xs:element name="ParentFolderId" type="t:FolderIdType" maxOccurs ="1" minOccurs ="1"/>
+ <xs:element name="ItemId" type="t:ItemIdType" maxOccurs ="1" minOccurs="0"/>
+ <xs:element name="Data" type="xs:base64Binary" maxOccurs ="1" minOccurs ="1"/>
+ </xs:sequence>
+ <xs:attribute name="CreateAction" type="t:CreateActionType" use="required"/>
+ <xs:attribute name="IsAssociated" type="xs:boolean" use="optional"/>
+ </xs:complexType>
+
+ <!-- CreateActionType -->
+ <xs:simpleType name="CreateActionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CreateNew"/>
+ <xs:enumeration value="Update"/>
+ <xs:enumeration value="UpdateOrCreate"/>
+ </xs:restriction >
+ </xs:simpleType>
+
+ <!-- CompleteActionType -->
+ <xs:simpleType name="CompleteActionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Commit"/>
+ <xs:enumeration value="Abandon"/>
+ </xs:restriction >
+ </xs:simpleType>
+
+ <!-- Find Folder/Item/Search supporting types -->
+ <!-- When returning offset information for FindFolder/FindItem, we need to indicate where we
+ are in the result set. For the different paging mechanisms we need to indicate this in
+ different ways. The only common paging types between FindFolder and FindItem are indexed and
+ fractional.
+ -->
+ <xs:attributeGroup name="FindResponsePagingAttributes">
+ <xs:attribute name="IndexedPagingOffset" type="xs:int" use="optional"/>
+ <xs:attribute name="NumeratorOffset" type="xs:int" use="optional"/>
+ <xs:attribute name="AbsoluteDenominator" type="xs:int" use="optional"/>
+ <xs:attribute name="IncludesLastItemInRange" type="xs:boolean" use="optional"/>
+ <xs:attribute name="TotalItemsInView" type="xs:int" use="optional"/>
+ </xs:attributeGroup>
+
+ <xs:simpleType name="ViewFilterType">
+ <xs:annotation>
+ <xs:documentation>Types of view filters for finding items/conversations</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="All" />
+ <xs:enumeration value="Flagged" />
+ <xs:enumeration value="HasAttachment" />
+ <xs:enumeration value="ToOrCcMe" />
+ <xs:enumeration value="Unread" />
+ <xs:enumeration value="TaskActive" />
+ <xs:enumeration value="TaskOverdue" />
+ <xs:enumeration value="TaskCompleted" />
+ <xs:enumeration value="NoClutter" />
+ <xs:enumeration value="Clutter" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- FindFolder response element for holding the results from a single parent -->
+ <xs:complexType name="FindFolderParentType">
+ <xs:sequence>
+ <xs:element name="Folders" type="t:ArrayOfFoldersType" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="t:FindResponsePagingAttributes"/>
+ </xs:complexType>
+
+ <!-- Basic information in a folder definition -->
+ <xs:complexType name="BaseFolderType" abstract ="true">
+ <xs:sequence>
+ <xs:element name="FolderId" type="t:FolderIdType" minOccurs="0"/>
+ <xs:element name="ParentFolderId" type="t:FolderIdType" minOccurs="0"/>
+ <xs:element name="FolderClass" type="xs:string" minOccurs="0"/>
+ <xs:element name="DisplayName" type="xs:string" minOccurs="0"/>
+ <xs:element name="TotalCount" type="xs:int" minOccurs="0"/>
+ <xs:element name="ChildFolderCount" type="xs:int" minOccurs="0"/>
+ <xs:element name="ExtendedProperty" type="t:ExtendedPropertyType" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="ManagedFolderInformation" type="t:ManagedFolderInformationType" minOccurs="0"/>
+ <xs:element name="EffectiveRights" type="t:EffectiveRightsType" minOccurs="0"/>
+ <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdNameType" minOccurs="0"/>
+ <xs:element name="PolicyTag" type="t:RetentionTagType" minOccurs="0" />
+ <xs:element name="ArchiveTag" type="t:RetentionTagType" minOccurs="0" />
+ <xs:element name="ReplicaList" type="t:ArrayOfStringsType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- ManagedFolderInformation property type -->
+ <xs:complexType name="ManagedFolderInformationType">
+ <xs:annotation>
+ <xs:documentation>Compound property for Managed Folder related information for Managed Folders.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="CanDelete" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="CanRenameOrMove" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="MustDisplayComment" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="HasQuota" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="IsManagedFoldersRoot" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="ManagedFolderId" type="xs:string" minOccurs="0"/>
+ <xs:element name="Comment" type="xs:string" minOccurs="0"/>
+ <xs:element name="StorageQuota" type="xs:int" minOccurs="0"/>
+ <xs:element name="FolderSize" type="xs:int" minOccurs="0"/>
+ <xs:element name="HomePage" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FolderType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseFolderType">
+ <xs:sequence>
+ <xs:element name="PermissionSet" type="t:PermissionSetType" minOccurs="0"/>
+ <xs:element name="UnreadCount" type="xs:int" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Calendar Folder Type-->
+ <xs:complexType name="CalendarFolderType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseFolderType">
+ <xs:sequence>
+ <xs:element name="SharingEffectiveRights" type="t:CalendarPermissionReadAccessType" minOccurs="0"/>
+ <xs:element name="PermissionSet" type="t:CalendarPermissionSetType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Reminder Action Type -->
+ <xs:simpleType name="ReminderActionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Dismiss"/>
+ <xs:enumeration value="Snooze"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ReminderItemActionType">
+ <xs:sequence>
+ <xs:element name="ActionType" type="t:ReminderActionType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs ="1" maxOccurs ="1" />
+ <xs:element name="NewReminderTime" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfReminderItemActionType">
+ <xs:sequence>
+ <xs:element name="ReminderItemAction" type="t:ReminderItemActionType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Contacts Folder Type-->
+ <xs:complexType name="ContactsFolderType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseFolderType">
+ <xs:sequence>
+ <xs:element name="SharingEffectiveRights" type="t:PermissionReadAccessType" minOccurs="0"/>
+ <xs:element name="PermissionSet" type="t:PermissionSetType" minOccurs="0"/>
+ <xs:element name="SourceId" type="xs:string" minOccurs="0"/>
+ <xs:element name="AccountName" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Search Folder Type-->
+ <xs:complexType name="SearchFolderType">
+ <xs:complexContent>
+ <xs:extension base="t:FolderType">
+ <xs:sequence>
+ <xs:element name="SearchParameters" type="t:SearchParametersType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Tasks Folder Type-->
+ <xs:complexType name="TasksFolderType">
+ <xs:complexContent>
+ <xs:extension base="t:FolderType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfFoldersType">
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="Folder" type="t:FolderType"/>
+ <xs:element name="CalendarFolder" type="t:CalendarFolderType"/>
+ <xs:element name="ContactsFolder" type="t:ContactsFolderType"/>
+ <xs:element name="SearchFolder" type="t:SearchFolderType"/>
+ <xs:element name="TasksFolder" type="t:TasksFolderType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfFoldersType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Folder" type="t:FolderType"/>
+ <xs:element name="CalendarFolder" type="t:CalendarFolderType"/>
+ <xs:element name="ContactsFolder" type="t:ContactsFolderType"/>
+ <xs:element name="SearchFolder" type="t:SearchFolderType"/>
+ <xs:element name="TasksFolder" type="t:TasksFolderType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- Item Service types. -->
+ <xs:complexType name="BaseItemIdType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>Abstract base type for item identifiers. Should never be used in web service calls</xs:documentation>
+ </xs:annotation>
+ </xs:complexType>
+ <xs:element name="BaseItemId" type="t:BaseItemIdType" />
+
+ <xs:simpleType name="DerivedItemIdType">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:complexType name="ItemIdType">
+ <xs:annotation>
+ <xs:documentation>Identifier for a fully resolved item</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:BaseItemIdType">
+ <xs:attribute name="Id" type="xs:string" use="required" />
+ <xs:attribute name="ChangeKey" type="xs:string" use="optional" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfBaseItemIdsType">
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="ItemId" type="t:ItemIdType"/>
+ <xs:element name="OccurrenceItemId" type="t:OccurrenceItemIdType"/>
+ <xs:element name="RecurringMasterItemId" type="t:RecurringMasterItemIdType"/>
+ <xs:element name="RecurringMasterItemIdRanges" type="t:RecurringMasterItemIdRangesType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfBaseItemIdsType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="ItemId" type="t:ItemIdType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfItemIdsType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" maxOccurs="unbounded" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfItemIdsType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" maxOccurs="unbounded" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Item classes -->
+ <xs:simpleType name="ItemClassType">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <!--Reply objects-->
+ <xs:complexType name="ResponseObjectCoreType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>
+ Internal abstract base type for reply objects.
+ Should not appear in client code
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:MessageType">
+ <xs:sequence>
+ <xs:element name="ReferenceItemId" type="t:ItemIdType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ResponseObjectType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>Abstract base type for reply objects</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:ResponseObjectCoreType">
+ <xs:attribute name="ObjectName" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ 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
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!--The wrapper around all reply object types-->
+ <xs:complexType name="NonEmptyArrayOfResponseObjectsType">
+ <xs:choice maxOccurs="unbounded" minOccurs="0">
+ <xs:element name="AcceptItem" type="t:AcceptItemType"/>
+ <xs:element name="TentativelyAcceptItem" type="t:TentativelyAcceptItemType"/>
+ <xs:element name="DeclineItem" type="t:DeclineItemType"/>
+ <xs:element name="ReplyToItem" type="t:ReplyToItemType" />
+ <xs:element name="ForwardItem" type="t:ForwardItemType" />
+ <xs:element name="ReplyAllToItem" type="t:ReplyAllToItemType" />
+ <xs:element name="CancelCalendarItem" type="t:CancelCalendarItemType" />
+ <xs:element name="RemoveItem" type="t:RemoveItemType" />
+ <xs:element name="SuppressReadReceipt" type="t:SuppressReadReceiptType" />
+ <xs:element name="PostReplyItem" type="t:PostReplyItemType" />
+ <xs:element name="AcceptSharingInvitation" type="t:AcceptSharingInvitationType" />
+ <xs:element name="AddItemToMyCalendar" type="t:AddItemToMyCalendarType" />
+ <xs:element name="ProposeNewTime" type="t:ProposeNewTimeType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- Updating an folder. Represents a set of changes to a single folder -->
+ <xs:complexType name="FolderChangeType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="FolderId" type="t:FolderIdType" />
+ <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdType"/>
+ </xs:choice>
+ <xs:element name="Updates" type="t:NonEmptyArrayOfFolderChangeDescriptionsType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfFolderChangesType">
+ <xs:sequence>
+ <xs:element name="FolderChange" type="t:FolderChangeType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Generic response to deleting a folder -->
+ <!-- Some well-known reply objects -->
+ <xs:complexType name="WellKnownResponseObjectType">
+ <xs:complexContent>
+ <xs:restriction base="t:ResponseObjectType">
+ <xs:sequence>
+ <xs:element name="ItemClass" type="t:ItemClassType" minOccurs="0" />
+ <xs:element name="Sensitivity" type="t:SensitivityChoicesType" minOccurs="0" />
+ <xs:element name="Body" type="t:BodyType" minOccurs="0" />
+ <xs:element name="Attachments" type="t:NonEmptyArrayOfAttachmentsType" minOccurs="0" />
+ <xs:element
+ name="InternetMessageHeaders"
+ type="t:NonEmptyArrayOfInternetHeadersType"
+ minOccurs="0" />
+ <xs:element name="Sender" type="t:SingleRecipientType" minOccurs="0" />
+ <xs:element name="ToRecipients" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="CcRecipients" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="BccRecipients" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="IsReadReceiptRequested" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsDeliveryReceiptRequested" type="xs:boolean" minOccurs="0" />
+ <xs:element name="From" type="t:SingleRecipientType" minOccurs="0" />
+ <xs:element name="ReferenceItemId" type="t:ItemIdType" minOccurs="0" />
+ </xs:sequence>
+ <xs:attribute name="ObjectName" type="xs:string" use="prohibited" />
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ <!-- Smart reponses: ReplyToItem, ReplyAllToItem, ForwardItem-->
+ <xs:complexType name="SmartResponseBaseType">
+ <xs:complexContent>
+ <xs:restriction base="t:ResponseObjectType">
+ <xs:sequence>
+ <xs:element name="Subject" type="xs:string" minOccurs="0" />
+ <xs:element name="Body" type="t:BodyType" minOccurs="0" />
+ <xs:element name="ToRecipients" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="CcRecipients" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="BccRecipients" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="IsReadReceiptRequested" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsDeliveryReceiptRequested" type="xs:boolean" minOccurs="0" />
+ <xs:element name="From" type="t:SingleRecipientType" minOccurs="0" />
+ <xs:element name="ReferenceItemId" type="t:ItemIdType" minOccurs="0" />
+ </xs:sequence>
+ <xs:attribute name="ObjectName" type="xs:string" use="prohibited" />
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="SmartResponseType">
+ <xs:complexContent>
+ <xs:extension base="t:SmartResponseBaseType">
+ <xs:sequence>
+ <xs:element name="NewBodyContent" type="t:BodyType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <!-- Distinguish the various kinds of responses which differ only in name by making them -->
+ <!-- have types which all extend the same base types trivially -->
+ <xs:complexType name="ReplyToItemType">
+ <xs:complexContent>
+ <xs:extension base="t:SmartResponseType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="ReplyAllToItemType">
+ <xs:complexContent>
+ <xs:extension base="t:SmartResponseType">
+ <xs:sequence>
+ <xs:element name="IsSpecificMessageReply" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="ForwardItemType">
+ <xs:complexContent>
+ <xs:extension base="t:SmartResponseType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="CancelCalendarItemType">
+ <xs:complexContent>
+ <xs:extension base="t:SmartResponseType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Reference Item response object -->
+
+ <xs:complexType name="ReferenceItemResponseType">
+ <xs:complexContent>
+ <xs:restriction base="t:ResponseObjectType">
+ <xs:sequence>
+ <xs:element name="ReferenceItemId" type="t:ItemIdType" minOccurs="0" />
+ </xs:sequence>
+ <xs:attribute name="ObjectName" type="xs:string" use="prohibited" />
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SuppressReadReceiptType">
+ <xs:complexContent>
+ <xs:extension base="t:ReferenceItemResponseType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- FindItem response element for holding the results from a single parent -->
+ <xs:complexType name="FindItemParentType">
+ <xs:choice>
+ <xs:element name="Items" type="t:ArrayOfRealItemsType"/>
+ <xs:element name="Groups" type="t:ArrayOfGroupedItemsType"/>
+ </xs:choice>
+ <xs:attributeGroup ref="t:FindResponsePagingAttributes"/>
+ </xs:complexType>
+
+ <!-- Core contents of an item. -->
+ <xs:complexType name="ItemType">
+ <xs:sequence>
+ <xs:element name="MimeContent" type="t:MimeContentType" minOccurs="0" />
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="0" />
+ <xs:element name="ParentFolderId" type="t:FolderIdType" minOccurs="0"/>
+ <xs:element name="ItemClass" type="t:ItemClassType" minOccurs="0" />
+ <xs:element name="Subject" type="xs:string" minOccurs="0" />
+ <xs:element name="Sensitivity" type="t:SensitivityChoicesType" minOccurs="0" />
+ <xs:element name="Body" type="t:BodyType" minOccurs="0" />
+ <xs:element name="Attachments" type="t:NonEmptyArrayOfAttachmentsType" minOccurs="0" />
+ <xs:element name="DateTimeReceived" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="Size" type="xs:int" minOccurs="0" />
+ <xs:element name="Categories" type="t:ArrayOfStringsType" minOccurs="0" />
+ <xs:element name="Importance" type="t:ImportanceChoicesType" minOccurs="0" />
+ <xs:element name="InReplyTo" type="xs:string" minOccurs="0" />
+ <xs:element name="IsSubmitted" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsDraft" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsFromMe" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsResend" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsUnmodified" type="xs:boolean" minOccurs="0" />
+ <xs:element name="InternetMessageHeaders" type="t:NonEmptyArrayOfInternetHeadersType" minOccurs="0" />
+ <xs:element name="DateTimeSent" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="DateTimeCreated" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="ResponseObjects" type="t:NonEmptyArrayOfResponseObjectsType" minOccurs="0" />
+ <xs:element name="ReminderDueBy" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="ReminderIsSet" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ReminderNextTime" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="ReminderMinutesBeforeStart" type="t:ReminderMinutesBeforeStartType" minOccurs="0" />
+ <xs:element name="DisplayCc" type="xs:string" minOccurs="0" />
+ <xs:element name="DisplayTo" type="xs:string" minOccurs="0" />
+ <xs:element name="DisplayBcc" type="xs:string" minOccurs="0" />
+ <xs:element name="HasAttachments" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="ExtendedProperty" type="t:ExtendedPropertyType" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element name="Culture" type="xs:language" minOccurs="0"/>
+ <xs:element name="EffectiveRights" type="t:EffectiveRightsType" minOccurs="0" />
+ <xs:element name="LastModifiedName" type="xs:string" minOccurs="0" />
+ <xs:element name="LastModifiedTime" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="IsAssociated" type="xs:boolean" minOccurs="0" />
+ <xs:element name="WebClientReadFormQueryString" type="xs:string" minOccurs="0" />
+ <xs:element name="WebClientEditFormQueryString" type="xs:string" minOccurs="0" />
+ <xs:element name="ConversationId" type="t:ItemIdType" minOccurs="0" />
+ <xs:element name="UniqueBody" type="t:BodyType" minOccurs="0" />
+ <xs:element name="Flag" type="t:FlagType" minOccurs="0" />
+ <xs:element name="StoreEntryId" type="xs:base64Binary" minOccurs="0" />
+ <xs:element name="InstanceKey" type="xs:base64Binary" minOccurs="0" />
+ <xs:element name="NormalizedBody" type="t:BodyType" minOccurs="0"/>
+ <xs:element name="EntityExtractionResult" type="t:EntityExtractionResultType" minOccurs="0" />
+ <xs:element name="PolicyTag" type="t:RetentionTagType" minOccurs="0" />
+ <xs:element name="ArchiveTag" type="t:RetentionTagType" minOccurs="0" />
+ <xs:element name="RetentionDate" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="Preview" type="xs:string" minOccurs="0" />
+ <xs:element name="RightsManagementLicenseData" type="t:RightsManagementLicenseDataType" minOccurs="0" />
+ <xs:element name="PredictedActionReasons" type="t:NonEmptyArrayOfPredictedActionReasonType" minOccurs="0" />
+ <xs:element name="IsClutter" type="xs:boolean" minOccurs="0" />
+ <xs:element name="BlockStatus" type="xs:boolean" minOccurs="0" />
+ <xs:element name="HasBlockedImages" type="xs:boolean" minOccurs="0" />
+ <xs:element name="TextBody" type="t:BodyType" minOccurs="0"/>
+ <xs:element name="IconIndex" type="t:IconIndexType" minOccurs="0"/>
+ <xs:element name="SearchKey" type="xs:base64Binary" minOccurs="0" />
+ <xs:element name="SortKey" type="xs:long" minOccurs="0" />
+ <xs:element name="Hashtags" type="t:ArrayOfStringsType" minOccurs="0" />
+ <xs:element name="Mentions" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="MentionedMe" type="xs:boolean" minOccurs="0" />
+ <xs:element name="MentionsPreview" type="t:MentionsPreviewType" minOccurs="0" />
+ <xs:element name="MentionsEx" type="t:NonEmptyArrayOfMentionActionsType" minOccurs="0" />
+ <xs:element name="AppliedHashtags" type="t:NonEmptyArrayOfAppliedHashtagType" minOccurs="0" />
+ <xs:element name="AppliedHashtagsPreview" type="t:AppliedHashtagsPreviewType" minOccurs="0" />
+ <xs:element name="Likes" type="t:NonEmptyArrayOfLikeType" minOccurs="0" />
+ <xs:element name="LikesPreview" type="t:LikesPreviewType" minOccurs="0" />
+ <xs:element name="PendingSocialActivityTagIds" type="t:ArrayOfStringsType" minOccurs="0" />
+ <xs:element name="AtAllMention" type="xs:boolean" minOccurs="0" />
+ <xs:element name="CanDelete" type="xs:boolean" minOccurs="0" />
+ <xs:element name="InferenceClassification" type="t:InferenceClassificationType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfItemClassType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="ItemClass" type="t:ItemClassType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="FlagType">
+ <xs:sequence>
+ <xs:element name="FlagStatus" type="t:FlagStatusType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="StartDate" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="DueDate" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="CompleteDate" type="xs:dateTime" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="FlagStatusType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NotFlagged" />
+ <xs:enumeration value="Flagged" />
+ <xs:enumeration value="Complete" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="PredictedActionReasonType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="ConversationStarterIsYou" />
+ <xs:enumeration value="OnlyRecipient" />
+ <xs:enumeration value="ConversationContributions" />
+ <xs:enumeration value="MarkedImportantBySender" />
+ <xs:enumeration value="SenderIsManager" />
+ <xs:enumeration value="SenderIsInManagementChain" />
+ <xs:enumeration value="SenderIsDirectReport" />
+ <xs:enumeration value="ActionBasedOnSender" />
+ <xs:enumeration value="NameOnToLine" />
+ <xs:enumeration value="NameOnCcLine" />
+ <xs:enumeration value="ManagerPosition" />
+ <xs:enumeration value="ReplyToAMessageFromMe" />
+ <xs:enumeration value="PreviouslyFlagged" />
+ <xs:enumeration value="ActionBasedOnRecipients" />
+ <xs:enumeration value="ActionBasedOnSubjectWords" />
+ <xs:enumeration value="ActionBasedOnBasedOnBodyWords" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Begin Entity Extraction -->
+ <xs:complexType name="EntityType">
+ <xs:sequence>
+ <xs:element name="Position" type="t:EmailPositionType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfAddressesType">
+ <xs:sequence>
+ <xs:element name="Address" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfAddressEntitiesType">
+ <xs:sequence>
+ <xs:element name="AddressEntity" type="t:AddressEntityType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AddressEntityType">
+ <xs:complexContent>
+ <xs:extension base="t:EntityType">
+ <xs:sequence>
+ <xs:element name="Address" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfEmailAddressEntitiesType">
+ <xs:sequence>
+ <xs:element name="EmailAddressEntity" type="t:EmailAddressEntityType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EmailAddressEntityType">
+ <xs:complexContent>
+ <xs:extension base="t:EntityType">
+ <xs:sequence>
+ <xs:element name="EmailAddress" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfUrlEntitiesType">
+ <xs:sequence>
+ <xs:element name="UrlEntity" type="t:UrlEntityType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="UrlEntityType">
+ <xs:complexContent>
+ <xs:extension base="t:EntityType">
+ <xs:sequence>
+ <xs:element name="Url" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfMeetingSuggestionsType">
+ <xs:sequence>
+ <xs:element name="MeetingSuggestion" type="t:MeetingSuggestionType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MeetingSuggestionType">
+ <xs:complexContent>
+ <xs:extension base="t:EntityType">
+ <xs:sequence>
+ <xs:element name="Attendees" type="t:ArrayOfEmailUsersType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Location" type="xs:string" minOccurs="0" />
+ <xs:element name="Subject" type="xs:string" minOccurs="0" />
+ <xs:element name="MeetingString" type="xs:string" minOccurs="0" />
+ <xs:element name="StartTime" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="EndTime" type="xs:dateTime" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfTaskSuggestionsType">
+ <xs:sequence>
+ <xs:element name="TaskSuggestion" type="t:TaskSuggestionType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfContactsType">
+ <xs:sequence>
+ <xs:element name="Contact" type="t:ContactType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ContactType">
+ <xs:complexContent>
+ <xs:extension base="t:EntityType">
+ <xs:sequence>
+ <xs:element name="PersonName" type="xs:string" minOccurs="0" />
+ <xs:element name="BusinessName" type="xs:string" minOccurs="0" />
+ <xs:element name="PhoneNumbers" type="t:ArrayOfPhonesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Urls" type="t:ArrayOfUrlsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EmailAddresses" type="t:ArrayOfExtractedEmailAddresses" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Addresses" type="t:ArrayOfAddressesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ContactString" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfUrlsType">
+ <xs:sequence>
+ <xs:element name="Url" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfPhonesType">
+ <xs:sequence>
+ <xs:element name="Phone" type="t:PhoneType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PhoneType">
+ <xs:sequence>
+ <xs:element name="OriginalPhoneString" type="xs:string" minOccurs="0" />
+ <xs:element name="PhoneString" type="xs:string" minOccurs="0" />
+ <xs:element name="Type" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfPhoneEntitiesType">
+ <xs:sequence>
+ <xs:element name="Phone" type="t:PhoneEntityType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PhoneEntityType">
+ <xs:complexContent>
+ <xs:extension base="t:EntityType">
+ <xs:sequence>
+ <xs:element name="OriginalPhoneString" type="xs:string" minOccurs="0" />
+ <xs:element name="PhoneString" type="xs:string" minOccurs="0" />
+ <xs:element name="Type" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="EmailPositionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="LatestReply" />
+ <xs:enumeration value="Other" />
+ <xs:enumeration value="Subject" />
+ <xs:enumeration value="Signature" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ArrayOfEmailUsersType">
+ <xs:sequence>
+ <xs:element name="EmailUser" type="t:EmailUserType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EmailUserType">
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string" minOccurs="0" />
+ <xs:element name="UserId" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="TaskSuggestionType">
+ <xs:complexContent>
+ <xs:extension base="t:EntityType">
+ <xs:sequence>
+ <xs:element name="TaskString" type="xs:string" minOccurs="0" />
+ <xs:element name="Assignees" type="t:ArrayOfEmailUsersType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfExtractedEmailAddresses">
+ <xs:sequence>
+ <xs:element name="EmailAddress" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ParcelDeliveryEntityType">
+ <xs:sequence>
+ <xs:element name="Carrier" type="xs:string" minOccurs="0" />
+ <xs:element name="TrackingNumber" type="xs:string" minOccurs="0" />
+ <xs:element name="TrackingUrl" type="xs:string" minOccurs="0" />
+ <xs:element name="ExpectedArrivalFrom" type="xs:string" minOccurs="0" />
+ <xs:element name="ExpectedArrivalUntil" type="xs:string" minOccurs="0" />
+ <xs:element name="Product" type="xs:string" minOccurs="0" />
+ <xs:element name="ProductUrl" type="xs:string" minOccurs="0" />
+ <xs:element name="ProductImage" type="xs:string" minOccurs="0" />
+ <xs:element name="ProductSku" type="xs:string" minOccurs="0" />
+ <xs:element name="ProductDescription" type="xs:string" minOccurs="0" />
+ <xs:element name="ProductBrand" type="xs:string" minOccurs="0" />
+ <xs:element name="ProductColor" type="xs:string" minOccurs="0" />
+ <xs:element name="OrderNumber" type="xs:string" minOccurs="0" />
+ <xs:element name="Seller" type="xs:string" minOccurs="0" />
+ <xs:element name="OrderStatus" type="xs:string" minOccurs="0" />
+ <xs:element name="AddressName" type="xs:string" minOccurs="0" />
+ <xs:element name="StreetAddress" type="xs:string" minOccurs="0" />
+ <xs:element name="AddressLocality" type="xs:string" minOccurs="0" />
+ <xs:element name="AddressRegion" type="xs:string" minOccurs="0" />
+ <xs:element name="AddressCountry" type="xs:string" minOccurs="0" />
+ <xs:element name="PostalCode" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="InferenceClassificationType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Focused" />
+ <xs:enumeration value="Other" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="InferenceClassificationOverrideType">
+ <xs:sequence>
+ <xs:element name="Id" type="t:GuidType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SenderSmtpAddress" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SenderDisplayName" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="AlwaysClassifyAs" type="t:InferenceClassificationType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ArrayOfInferenceClassificationOverridesType">
+ <xs:sequence>
+ <xs:element name="Override" minOccurs="0" maxOccurs="unbounded" type="t:InferenceClassificationOverrideType"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfParcelDeliveryEntitiesType">
+ <xs:sequence>
+ <xs:element name="ParcelDelivery" type="t:ParcelDeliveryEntityType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FlightEntityType">
+ <xs:sequence>
+ <xs:element name="FlightNumber" type="xs:string" minOccurs="0" />
+ <xs:element name="AirlineIataCode" type="xs:string" minOccurs="0" />
+ <xs:element name="DepartureTime" type="xs:string" minOccurs="0" />
+ <xs:element name="WindowsTimeZoneName" type="xs:string" minOccurs="0" />
+ <xs:element name="DepartureAirportIataCode" type="xs:string" minOccurs="0" />
+ <xs:element name="ArrivalAirportIataCode" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfFlightsType">
+ <xs:sequence>
+ <xs:element name="Flight" type="t:FlightEntityType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FlightReservationEntityType">
+ <xs:sequence>
+ <xs:element name="ReservationId" type="xs:string" minOccurs="0" />
+ <xs:element name="ReservationStatus" type="xs:string" minOccurs="0" />
+ <xs:element name="UnderName" type="xs:string" minOccurs="0" />
+ <xs:element name="BrokerName" type="xs:string" minOccurs="0" />
+ <xs:element name="BrokerPhone" type="xs:string" minOccurs="0" />
+ <xs:element name="Flights" type="t:ArrayOfFlightsType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfFlightReservationsType">
+ <xs:sequence>
+ <xs:element name="FlightReservation" type="t:FlightReservationEntityType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SenderAddInEntityType">
+ <xs:sequence>
+ <xs:element name="ExtensionId" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfSenderAddInsType">
+ <xs:sequence>
+ <xs:element name="Microsoft.OutlookServices.SenderApp" type="t:SenderAddInEntityType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EntityExtractionResultType">
+ <xs:sequence>
+ <xs:element name="Addresses" type="t:ArrayOfAddressEntitiesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MeetingSuggestions" type="t:ArrayOfMeetingSuggestionsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="TaskSuggestions" type="t:ArrayOfTaskSuggestionsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EmailAddresses" type="t:ArrayOfEmailAddressEntitiesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Contacts" type="t:ArrayOfContactsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Urls" type="t:ArrayOfUrlEntitiesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="PhoneNumbers" type="t:ArrayOfPhoneEntitiesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ParcelDeliveries" type="t:ArrayOfParcelDeliveryEntitiesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FlightReservations" type="t:ArrayOfFlightReservationsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SenderAddIns" type="t:ArrayOfSenderAddInsType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- End Entity Extraction -->
+
+ <!-- Begin Rights Management License Data -->
+ <xs:complexType name="RightsManagementLicenseDataType">
+ <xs:sequence>
+ <xs:element name="RightsManagedMessageDecryptionStatus" type="xs:int" minOccurs="0" />
+ <xs:element name="RmsTemplateId" type="xs:string" minOccurs="0" />
+ <xs:element name="TemplateName" type="xs:string" minOccurs="0" />
+ <xs:element name="TemplateDescription" type="xs:string" minOccurs="0" />
+ <xs:element name="EditAllowed" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ReplyAllowed" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ReplyAllAllowed" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ForwardAllowed" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ModifyRecipientsAllowed" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ExtractAllowed" type="xs:boolean" minOccurs="0" />
+ <xs:element name="PrintAllowed" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ExportAllowed" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ProgrammaticAccessAllowed" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsOwner" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ContentOwner" type="xs:string" minOccurs="0" />
+ <xs:element name="ContentExpiryDate" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- End Rights Management License Data -->
+
+ <xs:simpleType name="ConversationActionTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AlwaysCategorize" />
+ <xs:enumeration value="AlwaysDelete" />
+ <xs:enumeration value="AlwaysMove" />
+ <xs:enumeration value="Delete" />
+ <xs:enumeration value="Move" />
+ <xs:enumeration value="Copy" />
+ <xs:enumeration value="SetReadState" />
+ <xs:enumeration value="SetRetentionPolicy" />
+ <xs:enumeration value="Flag" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ConversationActionType">
+ <xs:sequence>
+ <xs:element name="Action" type="t:ConversationActionTypeType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="ConversationId" type="t:ItemIdType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="ContextFolderId" type="t:TargetFolderIdType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ConversationLastSyncTime" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ProcessRightAway" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DestinationFolderId" type="t:TargetFolderIdType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Categories" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EnableAlwaysDelete" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsRead" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DeleteType" type="t:DisposalType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="RetentionPolicyType" type="t:RetentionType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="RetentionPolicyTagId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Flag" type="t:FlagType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SuppressReadReceipts" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfApplyConversationActionType">
+ <xs:sequence>
+ <xs:element name="ConversationAction" type="t:ConversationActionType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="ConversationType">
+ <xs:sequence>
+ <xs:element name="ConversationId" type="t:ItemIdType" minOccurs="0" />
+ <xs:element name="ConversationTopic" type="xs:string" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationMVTo-->
+ <xs:element name="UniqueRecipients" type="t:ArrayOfStringsType" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationGlobalMVTo-->
+ <xs:element name="GlobalUniqueRecipients" type="t:ArrayOfStringsType" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationMVUnreadFrom-->
+ <xs:element name="UniqueUnreadSenders" type="t:ArrayOfStringsType" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationGlobalMVUnreadFrom-->
+ <xs:element name="GlobalUniqueUnreadSenders" type="t:ArrayOfStringsType" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationMVFrom-->
+ <xs:element name="UniqueSenders" type="t:ArrayOfStringsType" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationMVFrom-->
+ <xs:element name="GlobalUniqueSenders" type="t:ArrayOfStringsType" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationLastDeliveryTime-->
+ <xs:element name="LastDeliveryTime" type="xs:dateTime" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationGlobalLastDeliveryTime-->
+ <xs:element name="GlobalLastDeliveryTime" type="xs:dateTime" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationCategories-->
+ <xs:element name="Categories" type="t:ArrayOfStringsType" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationGlobalCategories-->
+ <xs:element name="GlobalCategories" type="t:ArrayOfStringsType" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationFlagStatus-->
+ <xs:element name="FlagStatus" type="t:FlagStatusType" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationGlobalFlagStatus-->
+ <xs:element name="GlobalFlagStatus" type="t:FlagStatusType" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationHasAttach-->
+ <xs:element name="HasAttachments" type="xs:boolean" minOccurs="0"/>
+ <!-- Maps to ConversationItemSchema.ConversationGlobalHasAttach-->
+ <xs:element name="GlobalHasAttachments" type="xs:boolean" minOccurs="0"/>
+
+ <!-- Maps to ConversationItemSchema.ConversationMessageCount-->
+ <xs:element name="MessageCount" type="xs:int" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationGlobalMessageCount-->
+ <xs:element name="GlobalMessageCount" type="xs:int" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationUnreadMessageCount-->
+ <xs:element name="UnreadCount" type="xs:int" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationGlobalUnreadMessageCount-->
+ <xs:element name="GlobalUnreadCount" type="xs:int" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationMessageSize-->
+ <xs:element name="Size" type="xs:int" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationGlobalMessageSize-->
+ <xs:element name="GlobalSize" type="xs:int" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationMessageClasses-->
+ <xs:element name="ItemClasses" type="t:ArrayOfItemClassType" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationGlobalMessageClasses-->
+ <xs:element name="GlobalItemClasses" type="t:ArrayOfItemClassType" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationImportance-->
+ <xs:element name="Importance" type="t:ImportanceChoicesType" minOccurs="0" />
+ <!-- Maps to ConversationItemSchema.ConversationGlobalImportance-->
+ <xs:element name="GlobalImportance" type="t:ImportanceChoicesType" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationItemIds-->
+ <xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType" minOccurs="0"/>
+ <!-- Maps to ConversationItemSchema.ConversationGlobalItemIds-->
+ <xs:element name="GlobalItemIds" type="t:NonEmptyArrayOfBaseItemIdsType" minOccurs="0"/>
+
+ <xs:element name="LastModifiedTime" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="InstanceKey" type="xs:base64Binary" minOccurs="0"/>
+
+ <!-- Maps to ConversationItemSchema.ConversationPreview-->
+ <xs:element name="Preview" type="xs:string" minOccurs="0" />
+
+ <!-- Flag for the mailbox scope this conversation was found in -->
+ <xs:element name="MailboxScope" type="t:MailboxSearchLocationType" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationIconIndex-->
+ <xs:element name="IconIndex" type="t:IconIndexType" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationGlobalIconIndex-->
+ <xs:element name="GlobalIconIndex" type="t:IconIndexType" minOccurs="0" />
+
+ <!-- Maps to ConversationItemSchema.ConversationDraftItemIds-->
+ <xs:element name="DraftItemIds" type="t:NonEmptyArrayOfBaseItemIdsType" minOccurs="0"/>
+
+ <!-- Maps to ConversationItemSchema.ConversationHasIrm-->
+ <xs:element name="HasIrm" type="xs:boolean" minOccurs="0"/>
+ <!-- Maps to ConversationItemSchema.ConversationGlobalHasIrm-->
+ <xs:element name="GlobalHasIrm" type="xs:boolean" minOccurs="0"/>
+
+ <!-- Maps to ConversationItemSchema.ConversationInferenceClassification-->
+ <xs:element name="InferenceClassification" type="t:InferenceClassificationType" minOccurs="0" />
+
+ <!-- Key on which the data got sorted during search operation-->
+ <xs:element name="SortKey" type="xs:long" minOccurs="0"/>
+
+ <xs:element name="MentionedMe" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="GlobalMentionedMe" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="SenderSMTPAddress" type="t:SmtpAddressType" minOccurs="0"/>
+ <xs:element name="MailboxGuids" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="MailboxGuid" type="t:GuidType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="From" type="t:SingleRecipientType" minOccurs="0" />
+ <xs:element name="AtAllMention" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="GlobalAtAllMention" type="xs:boolean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="HighlightTermType">
+ <xs:sequence>
+ <xs:element name="Scope" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfConversationsType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Conversation" type="t:ConversationType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ConversationRequestType">
+ <xs:sequence>
+ <xs:element name="ConversationId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SyncState" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfConversationRequestsType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Conversation" type="t:ConversationRequestType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ConversationNodeType">
+ <xs:sequence>
+ <xs:element name="InternetMessageId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ParentInternetMessageId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Items" type="t:NonEmptyArrayOfAllItemsType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfConversationNodesType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="ConversationNode" type="t:ConversationNodeType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ConversationResponseType">
+ <xs:sequence>
+ <xs:element name="ConversationId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SyncState" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ConversationNodes" type="t:ArrayOfConversationNodesType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CanDelete" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="ConversationNodeSortOrder">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="TreeOrderAscending"/>
+ <xs:enumeration value="TreeOrderDescending"/>
+ <xs:enumeration value="DateOrderAscending"/>
+ <xs:enumeration value="DateOrderDescending"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ArrayOfHighlightTermsType">
+ <xs:sequence>
+ <xs:element name="Term" type="t:HighlightTermType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PersonaAttributionType">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SourceId" type="t:ItemIdType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="DisplayName" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="IsWritable" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsQuickContact" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsHidden" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FolderId" type="t:FolderIdType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfPersonaAttributionsType">
+ <xs:sequence>
+ <xs:element name="Attribution" type="t:PersonaAttributionType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfValueAttributionsType">
+ <xs:sequence>
+ <xs:element name="Attribution" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfStringValueType">
+ <xs:sequence>
+ <xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="StringAttributedValueType">
+ <xs:sequence>
+ <xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Attributions" type="t:ArrayOfValueAttributionsType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="BodyContentType">
+ <xs:sequence>
+ <xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="BodyType" type="t:BodyTypeType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="BodyContentAttributedValueType">
+ <xs:sequence>
+ <xs:element name="Value" type="t:BodyContentType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Attributions" type="t:ArrayOfValueAttributionsType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="StringArrayAttributedValueType">
+ <xs:sequence>
+ <xs:element name="Values" type="t:ArrayOfStringValueType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Attributions" type="t:ArrayOfValueAttributionsType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EmailAddressAttributedValueType">
+ <xs:sequence>
+ <xs:element name="Value" type="t:EmailAddressType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Attributions" type="t:ArrayOfValueAttributionsType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PersonaPhoneNumberType">
+ <xs:sequence>
+ <xs:element name="Number" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Type" type="xs:string" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PhoneNumberAttributedValueType">
+ <xs:sequence>
+ <xs:element name="Value" type="t:PersonaPhoneNumberType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Attributions" type="t:ArrayOfValueAttributionsType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PersonaPostalAddressType">
+ <xs:sequence>
+ <xs:element name="Street" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="City" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="State" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Country" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="PostalCode" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="PostOfficeBox" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Type" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Latitude" type="xs:double" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Longitude" type="xs:double" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Accuracy" type="xs:double" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Altitude" type="xs:double" minOccurs="0" maxOccurs="1" />
+ <xs:element name="AltitudeAccuracy" type="xs:double" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FormattedAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="LocationUri" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="LocationSource" type="t:LocationSourceType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PostalAddressAttributedValueType">
+ <xs:sequence>
+ <xs:element name="Value" type="t:PersonaPostalAddressType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Attributions" type="t:ArrayOfValueAttributionsType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ExtendedPropertyAttributedValueType">
+ <xs:sequence>
+ <xs:element name="Value" type="t:ExtendedPropertyType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Attributions" type="t:ArrayOfValueAttributionsType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfStringAttributedValuesType">
+ <xs:sequence>
+ <xs:element name="StringAttributedValue" type="t:StringAttributedValueType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfStringArrayAttributedValuesType">
+ <xs:sequence>
+ <xs:element name="StringArrayAttributedValue" type="t:StringArrayAttributedValueType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfBodyContentAttributedValuesType">
+ <xs:sequence>
+ <xs:element name="BodyContentAttributedValue" type="t:BodyContentAttributedValueType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfEmailAddressAttributedValuesType">
+ <xs:sequence>
+ <xs:element name="EmailAddressAttributedValue" type="t:EmailAddressAttributedValueType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfPhoneNumberAttributedValuesType">
+ <xs:sequence>
+ <xs:element name="PhoneNumberAttributedValue" type="t:PhoneNumberAttributedValueType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfPostalAddressAttributedValuesType">
+ <xs:sequence>
+ <xs:element name="PostalAddressAttributedValue" type="t:PostalAddressAttributedValueType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfExtendedPropertyAttributedValueType">
+ <xs:sequence>
+ <xs:element name="ExtendedPropertyAttributedValue" type="t:ExtendedPropertyAttributedValueType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="InsightFiltersType">
+ <xs:sequence>
+ <xs:element name="Count" type="xs:int" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Types" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="KeyInsightsOnly" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="InsightValue">
+ <xs:sequence>
+ <xs:element name="InsightSource" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="UpdatedUtcTicks" type="xs:long" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="StringInsightValue">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="Data" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="DelveDocument">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="Rank" type="xs:double" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Created" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="LastModifiedTime" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DefaultEncodingURL" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="FileType" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Title" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DocumentId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="PreviewURL" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="LastEditor" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ProfileInsightValue">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="FullName" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="FirstName" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="LastName" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="EmailAddress" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Avatar" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="JoinedUtcTicks" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ProfilePicture" type="t:UserProfilePicture" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Title" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="OutOfOfficeInsightValue">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="StartTime" type="xs:dateTime" />
+ <xs:element minOccurs="0" maxOccurs="1" name="EndTime" type="xs:dateTime" />
+ <xs:element minOccurs="0" maxOccurs="1" name="Message" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="1" name="Culture" type="xs:string" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="JobInsightValue">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="Company" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CompanyDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CompanyTicker" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CompanyLogoUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CompanyWebsiteUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CompanyLinkedInUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Title" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="StartUtcTicks" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="EndUtcTicks" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="CompanyInsightValue">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SatoriId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DescriptionAttribution" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ImageUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ImageUrlAttribution" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="YearFound" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="FinanceSymbol" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="WebsiteUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="UserProfilePicture">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="Blob" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="PhotoSize" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Url" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ImageType" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="EducationInsightValue">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="Institute" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Degree" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="StartUtcTicks" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="EndUtcTicks" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SkillInsightValue">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Strength" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="MeetingInsightValue">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Subject" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="StartUtcTicks" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="EndUtcTicks" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Location" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Organizer" type="t:ProfileInsightValue" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Attendees" type="t:ArrayOfProfileInsightValue" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="EmailInsightValue">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ThreadId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Subject" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="LastEmailDateUtcTicks" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Body" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="LastEmailSender" type="t:ProfileInsightValue" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="EmailsCount" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfInsightValue">
+ <xs:sequence>
+ <xs:element name="Item" type="t:InsightValue" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfSkillInsightValue">
+ <xs:sequence>
+ <xs:element name="Item" type="t:SkillInsightValue" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfProfileInsightValue">
+ <xs:sequence>
+ <xs:element name="Item" type="t:ProfileInsightValue" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfJobInsightValue">
+ <xs:sequence>
+ <xs:element name="Item" type="t:JobInsightValue" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfCompanyInsightValue">
+ <xs:sequence>
+ <xs:element name="Item" type="t:CompanyInsightValue" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="InsightContent">
+ </xs:complexType>
+
+ <xs:complexType name="SingleValueInsightContent">
+ <xs:complexContent>
+ <xs:extension base="t:InsightContent">
+ <xs:sequence>
+ <xs:element name="Item" type="t:InsightValue" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="MultiValueInsightContent">
+ <xs:complexContent>
+ <xs:extension base="t:InsightContent">
+ <xs:sequence>
+ <xs:element name="ItemList" type="t:ArrayOfInsightValue" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Insight">
+ <xs:sequence>
+ <xs:element name="InsightType" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Rank" type="xs:double" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Content" type="t:InsightContent" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Text" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ItemList" type="t:ArrayOfInsightValue" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="RequiresToken" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ComputedInsightValueProperty">
+ <xs:sequence>
+ <xs:element name="Key" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfComputedInsightValueProperty">
+ <xs:sequence>
+ <xs:element name="Property" type="t:ComputedInsightValueProperty" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ComputedInsightValue">
+ <xs:complexContent>
+ <xs:extension base="t:InsightValue">
+ <xs:sequence>
+ <xs:element name="Properties" type="t:ArrayOfComputedInsightValueProperty" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfInsight">
+ <xs:sequence>
+ <xs:element name="Insight" type="t:Insight" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PersonResponseShapeType">
+ <xs:sequence>
+ <xs:element name="BaseShape" type="t:DefaultShapeNamesType" />
+ <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PersonType">
+ <xs:sequence>
+ <xs:element name="FullName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="GivenName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Surname" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="PhoneNumber" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SMSNumber" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EmailAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Alias" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Department" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="LinkedInProfileLink" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Skills" type="t:ArrayOfSkillInsightValue" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ProfessionalBiography" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ManagementChain" type="t:ArrayOfProfileInsightValue" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DirectReports" type="t:ArrayOfProfileInsightValue" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Peers" type="t:ArrayOfProfileInsightValue" minOccurs="0" maxOccurs="1" />
+ <xs:element name="TeamSize" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="CurrentJob" type="t:ArrayOfJobInsightValue" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Birthday" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Hometown" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="CurrentLocation" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="CompanyProfile" type="t:ArrayOfCompanyInsightValue" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Office" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Headline" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MutualConnections" type="t:ArrayOfProfileInsightValue" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Title" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MutualManager" type="t:ProfileInsightValue" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Insights" type="t:ArrayOfInsight" minOccurs="0" maxOccurs="1" />
+ <xs:element name="UserProfilePicture" type="t:UserProfilePicture" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfPersonType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Person" type="t:PersonType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:simpleType name="TokenSourceType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="LinkedIn" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="PeopleTokenType">
+ <xs:sequence>
+ <xs:element name="TokenSource" type="t:TokenSourceType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ExpirationDateTime" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
+ <xs:element name="TokenValue" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfPeopleTokenType">
+ <xs:sequence>
+ <xs:element name="PeopleToken" type="t:PeopleTokenType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PersonaType">
+ <xs:sequence>
+ <xs:element name="PersonaId" type="t:ItemIdType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="PersonaType" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="PersonaObjectStatus" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="CreationTime" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Bodies" type="t:ArrayOfBodyContentAttributedValuesType" minOccurs="0" />
+ <xs:element name="DisplayNameFirstLastSortKey" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DisplayNameLastFirstSortKey" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="CompanyNameSortKey" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="HomeCitySortKey" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="WorkCitySortKey" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DisplayNameFirstLastHeader" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DisplayNameLastFirstHeader" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DisplayName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DisplayNameFirstLast" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DisplayNameLastFirst" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FileAs" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FileAsId" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DisplayNamePrefix" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="GivenName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MiddleName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Surname" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Generation" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Nickname" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="YomiCompanyName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="YomiFirstName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="YomiLastName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Title" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Department" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="CompanyName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Location" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EmailAddress" type="t:EmailAddressType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EmailAddresses" type="t:ArrayOfEmailAddressesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="PhoneNumber" type="t:PersonaPhoneNumberType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ImAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="HomeCity" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="WorkCity" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="RelevanceScore" type="xs:int" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FolderIds" type="t:ArrayOfFolderIdType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Attributions" type="t:ArrayOfPersonaAttributionsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DisplayNames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <xs:element name="FileAses" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <xs:element name="FileAsIds" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.DisplayNamePrefix-->
+ <xs:element name="DisplayNamePrefixes" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.GivenName-->
+ <xs:element name="GivenNames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.MiddleName-->
+ <xs:element name="MiddleNames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Surname-->
+ <xs:element name="Surnames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Generation-->
+ <xs:element name="Generations" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Nickname-->
+ <xs:element name="Nicknames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Initials-->
+ <xs:element name="Initials" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.YomiCompanyName-->
+ <xs:element name="YomiCompanyNames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.YomiFirstName-->
+ <xs:element name="YomiFirstNames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.YomiLastName-->
+ <xs:element name="YomiLastNames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.BusinessPhoneNumber-->
+ <xs:element name="BusinessPhoneNumbers" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.BusinessPhoneNumber2-->
+ <xs:element name="BusinessPhoneNumbers2" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.HomePhone-->
+ <xs:element name="HomePhones" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.HomePhone2-->
+ <xs:element name="HomePhones2" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.MobilePhone-->
+ <xs:element name="MobilePhones" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.MobilePhone2-->
+ <xs:element name="MobilePhones2" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.AssistantPhoneNumber-->
+ <xs:element name="AssistantPhoneNumbers" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.CallbackPhone-->
+ <xs:element name="CallbackPhones" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.CarPhone-->
+ <xs:element name="CarPhones" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.HomeFax-->
+ <xs:element name="HomeFaxes" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.OrganizationMainPhone-->
+ <xs:element name="OrganizationMainPhones" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.OtherFax-->
+ <xs:element name="OtherFaxes" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.OtherTelephone-->
+ <xs:element name="OtherTelephones" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.OtherPhone2-->
+ <xs:element name="OtherPhones2" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Pager-->
+ <xs:element name="Pagers" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.RadioPhone-->
+ <xs:element name="RadioPhones" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.TelexNumber-->
+ <xs:element name="TelexNumbers" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.TTYTDDPhoneNumber-->
+ <xs:element name="TTYTDDPhoneNumbers" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.WorkFax -->
+ <xs:element name="WorkFaxes" type="t:ArrayOfPhoneNumberAttributedValuesType" minOccurs="0" />
+ <!-- Values are aggregation of ContactSchema.Email1AddrType, ContactSchema.Email1DisplayNames, and ContactSchema.Email1EmailAddress-->
+ <xs:element name="Emails1" type="t:ArrayOfEmailAddressAttributedValuesType" minOccurs="0" maxOccurs="1" />
+ <!-- Values are aggregation of ContactSchema.Email2AddrType, ContactSchema.Email2DisplayNames, and ContactSchema.Email2EmailAddress-->
+ <xs:element name="Emails2" type="t:ArrayOfEmailAddressAttributedValuesType" minOccurs="0" maxOccurs="1" />
+ <!-- Values are aggregation of ContactSchema.Email3AddrType, ContactSchema.Email3DisplayNames, and ContactSchema.Email3EmailAddress-->
+ <xs:element name="Emails3" type="t:ArrayOfEmailAddressAttributedValuesType" minOccurs="0" maxOccurs="1" />
+ <!-- Values map to ContactSchema.BusinessHomePage-->
+ <xs:element name="BusinessHomePages" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.PersonalHomePage-->
+ <xs:element name="PersonalHomePages" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.OfficeLocation-->
+ <xs:element name="OfficeLocations" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <xs:element name="ImAddresses" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <xs:element name="ImAddresses2" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <xs:element name="ImAddresses3" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values are aggregation of ContactSchema.WorkAddressStreet/City/State/Country/PostalCode/PostOfficeBox-->
+ <xs:element name="BusinessAddresses" type="t:ArrayOfPostalAddressAttributedValuesType" minOccurs="0" maxOccurs="1" />
+ <!-- Values are aggregation of ContactSchema.HomeStreet/City/State/Country/PostalCode/PostOfficeBox-->
+ <xs:element name="HomeAddresses" type="t:ArrayOfPostalAddressAttributedValuesType" minOccurs="0" maxOccurs="1" />
+ <!-- Values are aggregation of ContactSchema.OtherStreet/City/State/Country/PostalCode/PostOfficeBox-->
+ <xs:element name="OtherAddresses" type="t:ArrayOfPostalAddressAttributedValuesType" minOccurs="0" maxOccurs="1" />
+ <!-- Values map to ContactSchema.Title-->
+ <xs:element name="Titles" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Department-->
+ <xs:element name="Departments" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.CompanyName-->
+ <xs:element name="CompanyNames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Manager-->
+ <xs:element name="Managers" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.AssistantName-->
+ <xs:element name="AssistantNames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Profession-->
+ <xs:element name="Professions" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.SpouseName-->
+ <xs:element name="SpouseNames" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Children-->
+ <xs:element name="Children" type="t:ArrayOfStringArrayAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Schools-->
+ <xs:element name="Schools" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Hobbies-->
+ <xs:element name="Hobbies" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.WeddingAnniversary-->
+ <xs:element name="WeddingAnniversaries" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Birthday-->
+ <xs:element name="Birthdays" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <!-- Values map to ContactSchema.Location-->
+ <xs:element name="Locations" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <xs:element name="InlineLinks" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <xs:element name="ItemLinkIds" type="t:ArrayOfStringArrayAttributedValuesType" minOccurs="0" />
+ <xs:element name="HasActiveDeals" type="xs:string" minOccurs="0" />
+ <xs:element name="IsBusinessContact" type="xs:string" minOccurs="0" />
+ <xs:element name="AttributedHasActiveDeals" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <xs:element name="AttributedIsBusinessContact" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <xs:element name="SourceMailboxGuids" type="t:ArrayOfStringAttributedValuesType" minOccurs="0" />
+ <xs:element name="LastContactedDate" type="xs:dateTime" minOccurs="0" />
+ <!-- Values map to possibly multiple extended properties -->
+ <xs:element name="ExtendedProperties" type="t:ArrayOfExtendedPropertyAttributedValueType" minOccurs="0" />
+ <xs:element name="ExternalDirectoryObjectId" type="xs:string" minOccurs="0" />
+ <!-- Desktop Outlook properties -->
+ <xs:element name="MapiEntryId" type="xs:string" minOccurs="0" />
+ <xs:element name="MapiEmailAddress" type="xs:string" minOccurs="0" />
+ <xs:element name="MapiAddressType" type="xs:string" minOccurs="0" />
+ <xs:element name="MapiSearchKey" type="xs:string" minOccurs="0" />
+ <xs:element name="MapiTransmittableDisplayName" type="xs:string" minOccurs="0" />
+ <xs:element name="MapiSendRichInfo" type="xs:boolean" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ArrayOfPeopleType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Persona" type="t:PersonaType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="MailboxLocatorType">
+ <xs:sequence>
+ <xs:element name="ExternalDirectoryObjectId" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="LegacyDn" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GroupLocatorType">
+ <xs:complexContent>
+ <xs:extension base="t:MailboxLocatorType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="UserLocatorType">
+ <xs:complexContent>
+ <xs:extension base="t:MailboxLocatorType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="GroupMailboxConfigurationActionType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SetRegionalSettings"/>
+ <xs:enumeration value="CreateDefaultFolders"/>
+ <xs:enumeration value="SetInitialFolderPermissions"/>
+ <xs:enumeration value="SetAllFolderPermissions"/>
+ <xs:enumeration value="ConfigureCalendar"/>
+ <xs:enumeration value="SendWelcomeMessage"/>
+ <xs:enumeration value="GenerateGroupPhoto"/>
+ <xs:enumeration value="AllowOnlyMembersToPost"/>
+ <xs:enumeration value="ConfigureConnectors"/>
+ <xs:enumeration value="ConfigureFileChangeNotification"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:simpleType name="InstantSearchItemType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="MailItem"/>
+ <xs:enumeration value="MailConversation"/>
+ <xs:enumeration value="CalendarItem"/>
+ <xs:enumeration value="Persona"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:simpleType name="InstantSearchResultType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="Suggestions"/>
+ <xs:enumeration value="ItemResults"/>
+ <xs:enumeration value="ConversationResults"/>
+ <xs:enumeration value="Refiners"/>
+ <xs:enumeration value="SearchTerms"/>
+ <xs:enumeration value="Errors"/>
+ <xs:enumeration value="QueryStatistics"/>
+ <xs:enumeration value="CalendarItemResults"/>
+ <xs:enumeration value="PersonaResults"/>
+ <xs:enumeration value="SuggestionsPrimer"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:complexType name="ArrayOfItemsType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Item" type="t:ItemType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfCalendarItemsType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="InstantSearchPayloadType">
+ <xs:sequence>
+ <xs:element name="SearchSessionId" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SearchRequestId" type="xs:long" minOccurs="1" maxOccurs="1" />
+ <xs:element name="ResultType" type="t:InstantSearchResultType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Items" type="t:ArrayOfItemsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Conversations" type="t:ArrayOfConversationsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="CalendarItems" type="t:ArrayOfCalendarItemsType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="QueryOptionsType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="Suggestions"/>
+ <xs:enumeration value="Results"/>
+ <xs:enumeration value="Refiners"/>
+ <xs:enumeration value="SearchTerms"/>
+ <xs:enumeration value="ExplicitSearch"/>
+ <xs:enumeration value="SuggestionsPrimer"/>
+ <xs:enumeration value="AllowFuzzing"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:simpleType name="OneDriveViewType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="SharedWithMe"/>
+ <xs:enumeration value="MyDocuments"/>
+ <xs:enumeration value="RecycleBin"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:simpleType name="DelveViewType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="Files"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:simpleType name="GroupMemberIdentifierType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ExternalDirectoryObjectId"/>
+ <xs:enumeration value="LegacyExchangeDN"/>
+ <xs:enumeration value="SmtpAddress"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ModernGroupTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="Private" />
+ <xs:enumeration value="Secret" />
+ <xs:enumeration value="Public" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ArrayOfStringsType">
+ <xs:sequence>
+ <xs:element name="String" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfRealItemsType">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Item" type="t:ItemType"/>
+ <xs:element name="Message" type="t:MessageType"/>
+ <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+ <xs:element name="Contact" type="t:ContactItemType"/>
+ <xs:element name="DistributionList" type="t:DistributionListType"/>
+ <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+ <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+ <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+ <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+ <xs:element name="Task" type="t:TaskType"/>
+ <xs:element name="PostItem" type="t:PostItemType"/>
+ <xs:element name="RoleMember" type="t:RoleMemberItemType"/>
+ <xs:element name="Network" type="t:NetworkItemType"/>
+ <xs:element name="Person" type="t:AbchPersonItemType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfAllItemsType">
+ <xs:sequence>
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="Item" type="t:ItemType"/>
+ <xs:element name="Message" type="t:MessageType"/>
+ <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+ <xs:element name="Contact" type="t:ContactItemType"/>
+ <xs:element name="DistributionList" type="t:DistributionListType"/>
+ <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+ <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+ <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+ <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+ <xs:element name="Task" type="t:TaskType"/>
+ <xs:element name="PostItem" type="t:PostItemType"/>
+ <xs:element name="ReplyToItem" type="t:ReplyToItemType"/>
+ <xs:element name="ForwardItem" type="t:ForwardItemType"/>
+ <xs:element name="ReplyAllToItem" type="t:ReplyAllToItemType"/>
+ <xs:element name="AcceptItem" type="t:AcceptItemType"/>
+ <xs:element name="TentativelyAcceptItem" type="t:TentativelyAcceptItemType"/>
+ <xs:element name="DeclineItem" type="t:DeclineItemType"/>
+ <xs:element name="CancelCalendarItem" type="t:CancelCalendarItemType" />
+ <xs:element name="RemoveItem" type="t:RemoveItemType" />
+ <xs:element name="SuppressReadReceipt" type="t:SuppressReadReceiptType" />
+ <xs:element name="PostReplyItem" type="t:PostReplyItemType" />
+ <xs:element name="AcceptSharingInvitation" type="t:AcceptSharingInvitationType" />
+ <xs:element name="RoleMember" type="t:RoleMemberItemType"/>
+ <xs:element name="Network" type="t:NetworkItemType"/>
+ <xs:element name="Person" type="t:AbchPersonItemType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MeetingRegistrationResponseObjectType">
+ <xs:complexContent>
+ <xs:extension base="t:WellKnownResponseObjectType">
+ <xs:sequence>
+ <xs:element name="ProposedStart" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="ProposedEnd" type="xs:dateTime" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AcceptItemType">
+ <xs:complexContent>
+ <xs:extension base="t:MeetingRegistrationResponseObjectType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="TentativelyAcceptItemType">
+ <xs:complexContent>
+ <xs:extension base="t:MeetingRegistrationResponseObjectType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="DeclineItemType">
+ <xs:complexContent>
+ <xs:extension base="t:MeetingRegistrationResponseObjectType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="ProposeNewTimeType">
+ <xs:complexContent>
+ <xs:extension base="t:ResponseObjectType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="RemoveItemType">
+ <xs:complexContent>
+ <xs:extension base="t:ResponseObjectType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="AddItemToMyCalendarType">
+ <xs:complexContent>
+ <xs:extension base="t:ResponseObjectType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="PostReplyItemBaseType">
+ <xs:complexContent>
+ <xs:restriction base="t:ResponseObjectType">
+ <xs:sequence>
+ <xs:element name="Subject" type="xs:string" minOccurs="0" />
+ <xs:element name="Body" type="t:BodyType" minOccurs="0" />
+ <xs:element name="ReferenceItemId" type="t:ItemIdType" minOccurs="0" />
+ </xs:sequence>
+ <xs:attribute name="ObjectName" type="xs:string" use="prohibited" />
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="PostReplyItemType">
+ <xs:complexContent>
+ <xs:extension base="t:PostReplyItemBaseType">
+ <xs:sequence>
+ <xs:element name="NewBodyContent" type="t:BodyType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Mime content support -->
+ <xs:complexType name="MimeContentType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="CharacterSet" type="xs:string" use="optional" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- Mime content UTF8 support -->
+ <xs:complexType name="MimeContentUTF8Type">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="CharacterSet" type="xs:string" use="optional" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- Special items for creating and updating items -->
+
+ <xs:simpleType name="MessageDispositionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SaveOnly" />
+ <xs:enumeration value="SendOnly" />
+ <xs:enumeration value="SendAndSaveCopy" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="CalendarItemCreateOrDeleteOperationType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SendToNone" />
+ <xs:enumeration value="SendOnlyToAll" />
+ <xs:enumeration value="SendToAllAndSaveCopy" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="CalendarItemUpdateOperationType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SendToNone" />
+ <xs:enumeration value="SendOnlyToAll" />
+ <xs:enumeration value="SendOnlyToChanged" />
+ <xs:enumeration value="SendToAllAndSaveCopy" />
+ <xs:enumeration value="SendToChangedAndSaveCopy" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="AffectedTaskOccurrencesType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AllOccurrences"/>
+ <xs:enumeration value="SpecifiedOccurrenceOnly"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- - - - - - - - - - - - - - - - - - - -->
+ <!-- Message type: derived from item -->
+ <!-- - - - - - - - - - - - - - - - - - - -->
+ <xs:complexType name="MessageType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:sequence>
+ <xs:element name="Sender" minOccurs="0" type="t:SingleRecipientType" />
+ <xs:element name="ToRecipients" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="CcRecipients" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="BccRecipients" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="IsReadReceiptRequested" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsDeliveryReceiptRequested" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ConversationIndex" type="xs:base64Binary" minOccurs="0" />
+ <xs:element name="ConversationTopic" type="xs:string" minOccurs="0" />
+ <xs:element name="From" type="t:SingleRecipientType" minOccurs="0" />
+ <xs:element name="InternetMessageId" type="xs:string" minOccurs="0" />
+ <xs:element name="IsRead" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsResponseRequested" type="xs:boolean" minOccurs="0" />
+ <xs:element name="References" type="xs:string" minOccurs="0" />
+ <xs:element name="ReplyTo" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="ReceivedBy" type="t:SingleRecipientType" minOccurs="0" />
+ <xs:element name="ReceivedRepresenting" type="t:SingleRecipientType" minOccurs="0" />
+ <xs:element name="ApprovalRequestData" type="t:ApprovalRequestDataType" minOccurs="0" />
+ <xs:element name="VotingInformation" type="t:VotingInformationType" minOccurs="0" />
+ <xs:element name="ReminderMessageData" type="t:ReminderMessageDataType" minOccurs="0" />
+ <xs:element name="SenderSMTPAddress" type="t:SmtpAddressType" minOccurs="0"/>
+ <xs:element name="MailboxGuids" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="MailboxGuid" type="t:GuidType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="TaskStatusType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NotStarted" />
+ <xs:enumeration value="InProgress" />
+ <xs:enumeration value="Completed" />
+ <xs:enumeration value="WaitingOnOthers" />
+ <xs:enumeration value="Deferred" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="TaskDelegateStateType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NoMatch" />
+ <xs:enumeration value="OwnNew" />
+ <xs:enumeration value="Owned" />
+ <xs:enumeration value="Accepted" />
+ <xs:enumeration value="Declined" />
+ <xs:enumeration value="Max" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="TaskType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:sequence>
+ <xs:element name="ActualWork" type="xs:int" minOccurs="0" />
+ <xs:element name="AssignedTime" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="BillingInformation" type="xs:string" minOccurs="0" />
+ <xs:element name="ChangeCount" type="xs:int" minOccurs="0" />
+ <xs:element name="Companies" type="t:ArrayOfStringsType" minOccurs="0" />
+ <xs:element name="CompleteDate" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="Contacts" type="t:ArrayOfStringsType" minOccurs="0" />
+ <xs:element name="DelegationState" type="t:TaskDelegateStateType" minOccurs="0" />
+ <xs:element name="Delegator" type="xs:string" minOccurs="0" />
+ <xs:element name="DueDate" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="IsAssignmentEditable" type="xs:int" minOccurs="0" />
+ <xs:element name="IsComplete" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsRecurring" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsTeamTask" type="xs:boolean" minOccurs="0" />
+ <xs:element name="Mileage" type="xs:string" minOccurs="0" />
+ <xs:element name="Owner" type="xs:string" minOccurs="0" />
+ <xs:element name="PercentComplete" type="xs:double" minOccurs="0" />
+ <xs:element name="Recurrence" type="t:TaskRecurrenceType" minOccurs="0" />
+ <xs:element name="StartDate" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="Status" type="t:TaskStatusType" minOccurs="0" />
+ <xs:element name="StatusDescription" type="xs:string" minOccurs="0" />
+ <xs:element name="TotalWork" type="xs:int" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="PostItemType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:sequence>
+ <xs:element name="ConversationIndex" type="xs:base64Binary" minOccurs="0"/>
+ <xs:element name="ConversationTopic" type="xs:string" minOccurs="0"/>
+ <!-- From property can only be set at creation time -->
+ <xs:element name="From" type="t:SingleRecipientType" minOccurs="0"/>
+ <xs:element name="InternetMessageId" type="xs:string" minOccurs="0"/>
+ <xs:element name="IsRead" type="xs:boolean" minOccurs="0" />
+ <!-- PostedTime is read only -->
+ <xs:element name="PostedTime" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="References" type="xs:string" minOccurs="0" />
+ <!-- Sender can only be set at creation time -->
+ <xs:element name="Sender" type="t:SingleRecipientType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Paging specification -->
+ <xs:complexType name="BasePagingType" abstract="true">
+ <xs:attribute name="MaxEntriesReturned" type="xs:int" use="optional"/>
+ </xs:complexType>
+
+ <xs:simpleType name="IndexBasePointType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Beginning" />
+ <xs:enumeration value="End" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="IndexedPageViewType">
+ <xs:complexContent>
+ <xs:extension base="t:BasePagingType">
+ <xs:attribute name="Offset" type="xs:int" use="required"/>
+ <xs:attribute name="BasePoint" type="t:IndexBasePointType" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="FractionalPageViewType">
+ <xs:complexContent>
+ <xs:extension base="t:BasePagingType">
+ <xs:attribute name="Numerator" type="xs:int" use="required" />
+ <xs:attribute name="Denominator" type="xs:int" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SeekToConditionPageViewType">
+ <xs:complexContent>
+ <xs:extension base="t:BasePagingType">
+ <xs:sequence>
+ <xs:element name="Condition" type="t:RestrictionType" minOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="BasePoint" type="t:IndexBasePointType" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="CalendarViewType">
+ <xs:complexContent>
+ <xs:extension base="t:BasePagingType">
+ <xs:attribute name="StartDate" type="xs:dateTime" use="required" />
+ <xs:attribute name="EndDate" type="xs:dateTime" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ContactsViewType">
+ <xs:complexContent>
+ <xs:extension base="t:BasePagingType">
+ <xs:attribute name="InitialName" type="xs:string" use="optional"/>
+ <xs:attribute name="FinalName" type="xs:string" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Util Service Types. -->
+
+
+ <!-- ResolveNames request -->
+
+ <xs:simpleType name="ResolveNamesSearchScopeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ActiveDirectory" />
+ <xs:enumeration value="ActiveDirectoryContacts" />
+ <xs:enumeration value="Contacts" />
+ <xs:enumeration value="ContactsActiveDirectory" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- ResolveNames response -->
+
+ <xs:complexType name="ResolutionType">
+ <xs:sequence>
+ <xs:element name="Mailbox" type="t:EmailAddressType" />
+ <xs:element name="Contact" type="t:ContactItemType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfResolutionType">
+ <xs:sequence>
+ <xs:element name="Resolution" type="t:ResolutionType" minOccurs="0" maxOccurs="100" />
+ </xs:sequence>
+ <xs:attributeGroup ref="t:FindResponsePagingAttributes" />
+ </xs:complexType>
+
+ <!-- DLExpansion response -->
+
+ <xs:complexType name="ArrayOfDLExpansionType">
+ <xs:sequence>
+ <xs:element name="Mailbox" type="t:EmailAddressType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attributeGroup ref="t:FindResponsePagingAttributes" />
+ </xs:complexType>
+
+ <!-- end of DLExpansion -->
+
+ <!-- GetServerTimeZones response -->
+
+ <xs:complexType name="NonEmptyArrayOfTimeZoneIdType">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfTimeZoneDefinitionType">
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="TimeZoneDefinition" type="t:TimeZoneDefinitionType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- end of GetServerTimeZones -->
+
+
+ <!-- MeetingMessage types -->
+ <xs:simpleType name="MeetingRequestTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="FullUpdate" />
+ <xs:enumeration value="InformationalUpdate" />
+ <xs:enumeration value="NewMeetingRequest" />
+ <xs:enumeration value="Outdated" />
+ <xs:enumeration value="SilentUpdate" />
+ <xs:enumeration value="PrincipalWantsCopy" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- CalendarItem Types -->
+
+ <xs:simpleType name="ReminderMinutesBeforeStartType">
+ <xs:union>
+ <xs:simpleType id="ReminderMinutesBeforeStartType" >
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="0" />
+ <xs:maxInclusive value="2629800" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType id="ReminderMinutesBeforeStartMarkerType">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1525252321" />
+ <xs:maxInclusive value="1525252321" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:union>
+ </xs:simpleType>
+
+ <!-- Enumeration types -->
+ <xs:simpleType name="AvailabilityStatusType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Unknown" />
+ <xs:enumeration value="Free" />
+ <xs:enumeration value="Tentative" />
+ <xs:enumeration value="Busy" />
+ <xs:enumeration value="Oof" />
+ <xs:enumeration value="WorkingElsewhere" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="LegacyFreeBusyType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Free" />
+ <xs:enumeration value="Tentative" />
+ <xs:enumeration value="Busy" />
+ <xs:enumeration value="OOF" />
+ <xs:enumeration value="WorkingElsewhere" />
+ <xs:enumeration value="NoData" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="CalendarItemTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Single" />
+ <xs:enumeration value="Occurrence" />
+ <xs:enumeration value="Exception" />
+ <xs:enumeration value="RecurringMaster" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ResponseTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Unknown" />
+ <xs:enumeration value="Organizer" />
+ <xs:enumeration value="Tentative" />
+ <xs:enumeration value="Accept" />
+ <xs:enumeration value="Decline" />
+ <xs:enumeration value="NoResponseReceived" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Online Meeting type and enums -->
+
+ <xs:complexType name="OnlineMeetingSettingsType">
+ <xs:sequence>
+ <xs:element name="LobbyBypass" type="t:LobbyBypassType" />
+ <xs:element name="AccessLevel" type="t:OnlineMeetingAccessLevelType" />
+ <xs:element name="Presenters" type="t:PresentersType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="LobbyBypassType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Disabled" />
+ <xs:enumeration value="EnabledForGatewayParticipants" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="OnlineMeetingAccessLevelType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Locked" />
+ <xs:enumeration value="Invited" />
+ <xs:enumeration value="Internal" />
+ <xs:enumeration value="Everyone" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="PresentersType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Disabled" />
+ <xs:enumeration value="Internal" />
+ <xs:enumeration value="Everyone" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Representation of attendees -->
+
+ <xs:complexType name="AttendeeType">
+ <xs:sequence>
+ <xs:element name="Mailbox" type="t:EmailAddressType" />
+ <xs:element name="ResponseType" type="t:ResponseTypeType" minOccurs="0" />
+ <xs:element name="LastResponseTime" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="ProposedStart" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="ProposedEnd" type="xs:dateTime" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfAttendeesType">
+ <xs:sequence>
+ <xs:element name="Attendee" type="t:AttendeeType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Special item ids for interconverting between instances and masters -->
+
+ <xs:complexType name="OccurrenceItemIdType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseItemIdType">
+ <xs:attribute name="RecurringMasterId" type="t:DerivedItemIdType" use="required" />
+ <xs:attribute name="ChangeKey" type="xs:string" use="optional" />
+ <xs:attribute name="InstanceIndex" type="xs:int" use="required" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="RecurringMasterItemIdType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseItemIdType">
+ <xs:attribute name="OccurrenceId" type="t:DerivedItemIdType" use="required" />
+ <xs:attribute name="ChangeKey" type="xs:string" use="optional" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="RecurringMasterItemIdRangesType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemIdType">
+ <xs:sequence>
+ <xs:element name="Ranges" type="t:ArrayOfOccurrenceRangesType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfOccurrenceRangesType">
+ <xs:sequence>
+ <xs:element name="Range" type="t:OccurrencesRangeType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="OccurrencesRangeType">
+ <xs:attribute name="Start" type="xs:dateTime" use="optional" />
+ <xs:attribute name="End" type="xs:dateTime" use="optional" />
+ <xs:attribute name="Count" type="xs:int" use="optional" />
+ <xs:attribute name="CompareOriginalStartTime" type="xs:boolean" use="optional" />
+ </xs:complexType>
+
+ <!-- Days of the week and months-->
+
+ <xs:simpleType name="DayOfWeekType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Sunday" />
+ <xs:enumeration value="Monday" />
+ <xs:enumeration value="Tuesday" />
+ <xs:enumeration value="Wednesday" />
+ <xs:enumeration value="Thursday" />
+ <xs:enumeration value="Friday" />
+ <xs:enumeration value="Saturday" />
+ <xs:enumeration value="Day" />
+ <xs:enumeration value="Weekday" />
+ <xs:enumeration value="WeekendDay" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="DaysOfWeekType">
+ <xs:list itemType="t:DayOfWeekType" />
+ </xs:simpleType>
+
+ <xs:simpleType name="DayOfWeekIndexType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="First" />
+ <xs:enumeration value="Second" />
+ <xs:enumeration value="Third" />
+ <xs:enumeration value="Fourth" />
+ <xs:enumeration value="Last" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="MonthNamesType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="January" />
+ <xs:enumeration value="February" />
+ <xs:enumeration value="March" />
+ <xs:enumeration value="April" />
+ <xs:enumeration value="May" />
+ <xs:enumeration value="June" />
+ <xs:enumeration value="July" />
+ <xs:enumeration value="August" />
+ <xs:enumeration value="September" />
+ <xs:enumeration value="October" />
+ <xs:enumeration value="November" />
+ <xs:enumeration value="December" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Recurrence pattern types -->
+
+ <xs:complexType name="RecurrencePatternBaseType" abstract="true" />
+
+ <xs:complexType name="IntervalRecurrencePatternBaseType" abstract="true">
+ <xs:complexContent>
+ <xs:extension base="t:RecurrencePatternBaseType">
+ <xs:sequence>
+ <xs:element name="Interval" type="xs:int" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!--
+ Base regeneration pattern type for tasks.
+ -->
+
+ <xs:complexType name="RegeneratingPatternBaseType" abstract="true">
+ <xs:complexContent>
+ <xs:extension base="t:IntervalRecurrencePatternBaseType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="DailyRegeneratingPatternType">
+ <xs:complexContent>
+ <xs:extension base="t:RegeneratingPatternBaseType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="WeeklyRegeneratingPatternType">
+ <xs:complexContent>
+ <xs:extension base="t:RegeneratingPatternBaseType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="MonthlyRegeneratingPatternType">
+ <xs:complexContent>
+ <xs:extension base="t:RegeneratingPatternBaseType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="YearlyRegeneratingPatternType">
+ <xs:complexContent>
+ <xs:extension base="t:RegeneratingPatternBaseType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Realizable Recurrence pattern types -->
+
+ <xs:complexType name="RelativeYearlyRecurrencePatternType">
+ <xs:complexContent>
+ <xs:extension base="t:RecurrencePatternBaseType">
+ <xs:sequence>
+ <xs:element name="DaysOfWeek" type="t:DayOfWeekType" />
+ <xs:element name="DayOfWeekIndex" type="t:DayOfWeekIndexType" />
+ <xs:element name="Month" type="t:MonthNamesType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AbsoluteYearlyRecurrencePatternType">
+ <xs:complexContent>
+ <xs:extension base="t:RecurrencePatternBaseType">
+ <xs:sequence>
+ <xs:element name="DayOfMonth" type="xs:int" />
+ <xs:element name="Month" type="t:MonthNamesType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="RelativeMonthlyRecurrencePatternType">
+ <xs:complexContent>
+ <xs:extension base="t:IntervalRecurrencePatternBaseType">
+ <xs:sequence>
+ <xs:element name="DaysOfWeek" type="t:DayOfWeekType" />
+ <xs:element name="DayOfWeekIndex" type="t:DayOfWeekIndexType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AbsoluteMonthlyRecurrencePatternType">
+ <xs:complexContent>
+ <xs:extension base="t:IntervalRecurrencePatternBaseType">
+ <xs:sequence>
+ <xs:element name="DayOfMonth" type="xs:int" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="WeeklyRecurrencePatternType">
+ <xs:complexContent>
+ <xs:extension base="t:IntervalRecurrencePatternBaseType">
+ <xs:sequence>
+ <xs:element name="DaysOfWeek" type="t:DaysOfWeekType"/>
+ <xs:element name="FirstDayOfWeek" type="t:DayOfWeekType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="DailyRecurrencePatternType">
+ <xs:complexContent>
+ <xs:extension base="t:IntervalRecurrencePatternBaseType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Enhanced location types -->
+ <xs:simpleType name="LocationSourceType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="LocationServices" />
+ <xs:enumeration value="PhonebookServices" />
+ <xs:enumeration value="Device" />
+ <xs:enumeration value="Contact" />
+ <xs:enumeration value="Resource" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="EnhancedLocationType">
+ <xs:sequence>
+ <xs:element name="DisplayName" type="xs:string" />
+ <xs:element name="Annotation" type="xs:string" minOccurs="0" />
+ <xs:element name="PostalAddress" type="t:PersonaPostalAddressType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Description of a time zone -->
+
+ <xs:group name="TimeChangePatternTypes">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="RelativeYearlyRecurrence" type="t:RelativeYearlyRecurrencePatternType" />
+ <xs:element name="AbsoluteDate" type="xs:date" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:complexType name="TimeChangeType">
+ <xs:sequence>
+ <xs:element name="Offset" type="xs:duration" />
+ <xs:group ref="t:TimeChangePatternTypes" minOccurs="0"/>
+ <xs:element name="Time" type="xs:time" />
+ </xs:sequence>
+ <xs:attribute name="TimeZoneName" type="xs:string" use="optional" />
+ </xs:complexType>
+
+ <xs:complexType name="TimeZoneType">
+ <xs:sequence minOccurs="0" >
+ <xs:element name="BaseOffset" type="xs:duration" />
+ <xs:sequence minOccurs="0">
+ <xs:element name="Standard" type="t:TimeChangeType"/>
+ <xs:element name="Daylight" type="t:TimeChangeType"/>
+ </xs:sequence>
+ </xs:sequence>
+ <xs:attribute name="TimeZoneName" type="xs:string" use="optional" />
+ </xs:complexType>
+
+ <!-- TimeZoneDefinitionContextType for Soap header -->
+
+ <xs:complexType name="TimeZoneContextType">
+ <xs:sequence>
+ <xs:element name="TimeZoneDefinition" type="t:TimeZoneDefinitionType" minOccurs="1"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+ <xs:annotation>
+ <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+ </xs:annotation>
+ </xs:anyAttribute>
+ </xs:complexType>
+
+
+ <xs:element name="TimeZoneContext" type="t:TimeZoneContextType" />
+
+ <!-- Time zone definition types -->
+
+ <xs:simpleType name="TransitionTargetKindType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Period" />
+ <xs:enumeration value="Group" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="TransitionTargetType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string" >
+ <xs:attribute name="Kind" type="t:TransitionTargetKindType" use="required" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:complexType name="TransitionType" abstract="false">
+ <xs:sequence>
+ <xs:element name="To" type="t:TransitionTargetType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AbsoluteDateTransitionType">
+ <xs:complexContent>
+ <xs:extension base="t:TransitionType">
+ <xs:sequence>
+ <xs:element name="DateTime" type="xs:dateTime" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="RecurringTimeTransitionType" abstract="true">
+ <xs:complexContent>
+ <xs:extension base="t:TransitionType">
+ <xs:sequence>
+ <xs:element name="TimeOffset" type="xs:duration" />
+ <xs:element name="Month" type="xs:int" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="RecurringDateTransitionType">
+ <xs:complexContent>
+ <xs:extension base="t:RecurringTimeTransitionType">
+ <xs:sequence>
+ <xs:element name="Day" type="xs:int" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="RecurringDayTransitionType">
+ <xs:complexContent>
+ <xs:extension base="t:RecurringTimeTransitionType">
+ <xs:sequence>
+ <xs:element name="DayOfWeek" type="t:DayOfWeekType" />
+ <xs:element name="Occurrence" type="xs:int" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="Transition" type="t:TransitionType" />
+ <xs:element name="AbsoluteDateTransition" type="t:AbsoluteDateTransitionType" substitutionGroup="t:Transition"/>
+ <xs:element name="RecurringDayTransition" type="t:RecurringDayTransitionType" substitutionGroup="t:Transition"/>
+ <xs:element name="RecurringDateTransition" type="t:RecurringDateTransitionType" substitutionGroup="t:Transition"/>
+
+ <!-- TimeZoneDefinition -->
+
+ <xs:complexType name="TimeZoneDefinitionType">
+ <xs:sequence minOccurs="0">
+ <xs:element name="Periods" type="t:NonEmptyArrayOfPeriodsType" minOccurs="0" />
+ <xs:element name="TransitionsGroups" type="t:ArrayOfTransitionsGroupsType" minOccurs="0"/>
+ <xs:element name="Transitions" type="t:ArrayOfTransitionsType" minOccurs="0" />
+ </xs:sequence>
+ <xs:attribute name="Id" type="xs:string"/>
+ <xs:attribute name="Name" type="xs:string" />
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfPeriodsType">
+ <xs:sequence>
+ <xs:element name="Period" type="t:PeriodType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PeriodType">
+ <xs:attribute name="Bias" type="xs:duration"/>
+ <xs:attribute name="Name" type="xs:string"/>
+ <xs:attribute name="Id" type="xs:string"/>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfTransitionsGroupsType">
+ <xs:sequence>
+ <xs:element name="TransitionsGroup" type="t:ArrayOfTransitionsType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfTransitionsType">
+ <xs:sequence>
+ <xs:element ref="t:AbsoluteDateTransition" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="t:RecurringDayTransition" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="t:RecurringDateTransition" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="t:Transition" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attribute name="Id" type="xs:string"/>
+ </xs:complexType>
+
+ <!-- Recurrence range types -->
+
+ <xs:complexType name="RecurrenceRangeBaseType" abstract="true">
+ <xs:sequence>
+ <xs:element name="StartDate" type="xs:date" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NoEndRecurrenceRangeType">
+ <xs:complexContent>
+ <xs:extension base="t:RecurrenceRangeBaseType" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="EndDateRecurrenceRangeType">
+ <xs:complexContent>
+ <xs:extension base="t:RecurrenceRangeBaseType">
+ <xs:sequence>
+ <xs:element name="EndDate" type="xs:date" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="NumberedRecurrenceRangeType">
+ <xs:complexContent>
+ <xs:extension base="t:RecurrenceRangeBaseType">
+ <xs:sequence>
+ <xs:element name="NumberOfOccurrences" type="xs:int" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- The real Recurrence type -->
+
+ <xs:group name="RecurrencePatternTypes">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="RelativeYearlyRecurrence" type="t:RelativeYearlyRecurrencePatternType" />
+ <xs:element name="AbsoluteYearlyRecurrence" type="t:AbsoluteYearlyRecurrencePatternType" />
+ <xs:element name="RelativeMonthlyRecurrence" type="t:RelativeMonthlyRecurrencePatternType" />
+ <xs:element name="AbsoluteMonthlyRecurrence" type="t:AbsoluteMonthlyRecurrencePatternType" />
+ <xs:element name="WeeklyRecurrence" type="t:WeeklyRecurrencePatternType" />
+ <xs:element name="DailyRecurrence" type="t:DailyRecurrencePatternType" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:group name="TaskRecurrencePatternTypes">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="RelativeYearlyRecurrence" type="t:RelativeYearlyRecurrencePatternType"/>
+ <xs:element name="AbsoluteYearlyRecurrence" type="t:AbsoluteYearlyRecurrencePatternType"/>
+ <xs:element name="RelativeMonthlyRecurrence" type="t:RelativeMonthlyRecurrencePatternType"/>
+ <xs:element name="AbsoluteMonthlyRecurrence" type="t:AbsoluteMonthlyRecurrencePatternType"/>
+ <xs:element name="WeeklyRecurrence" type="t:WeeklyRecurrencePatternType"/>
+ <xs:element name="DailyRecurrence" type="t:DailyRecurrencePatternType"/>
+ <xs:element name="DailyRegeneration" type="t:DailyRegeneratingPatternType"/>
+ <xs:element name="WeeklyRegeneration" type="t:WeeklyRegeneratingPatternType"/>
+ <xs:element name="MonthlyRegeneration" type="t:MonthlyRegeneratingPatternType"/>
+ <xs:element name="YearlyRegeneration" type="t:YearlyRegeneratingPatternType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:group name="RecurrenceRangeTypes">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="NoEndRecurrence" type="t:NoEndRecurrenceRangeType" />
+ <xs:element name="EndDateRecurrence" type="t:EndDateRecurrenceRangeType" />
+ <xs:element name="NumberedRecurrence" type="t:NumberedRecurrenceRangeType" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:complexType name="RecurrenceType">
+ <xs:sequence>
+ <xs:group ref="t:RecurrencePatternTypes" />
+ <xs:group ref="t:RecurrenceRangeTypes" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="TaskRecurrenceType">
+ <xs:sequence>
+ <xs:group ref="t:TaskRecurrencePatternTypes"/>
+ <xs:group ref="t:RecurrenceRangeTypes"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Individual occurrences of an expanded Recurrence -->
+
+ <xs:complexType name="OccurrenceInfoType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" />
+ <xs:element name="Start" type="xs:dateTime" />
+ <xs:element name="End" type="xs:dateTime" />
+ <xs:element name="OriginalStart" type="xs:dateTime" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfOccurrenceInfoType">
+ <xs:sequence>
+ <xs:element name="Occurrence" type="t:OccurrenceInfoType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DeletedOccurrenceInfoType">
+ <xs:sequence>
+ <xs:element name="Start" type="xs:dateTime" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfDeletedOccurrencesType">
+ <xs:sequence>
+ <xs:element name="DeletedOccurrence" type="t:DeletedOccurrenceInfoType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- The main calendar item from which all others derive -->
+
+ <xs:complexType name="CalendarItemType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:sequence>
+
+ <!-- iCalendar properties -->
+
+ <xs:element name="UID" type="xs:string" minOccurs="0" />
+ <xs:element name="RecurrenceId" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="DateTimeStamp" type="xs:dateTime" minOccurs="0" />
+
+ <!-- Single and Occurrence only -->
+
+ <xs:element name="Start" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="End" type="xs:dateTime" minOccurs="0" />
+
+ <!-- Occurrence only -->
+
+ <xs:element name="OriginalStart" type="xs:dateTime" minOccurs="0" />
+
+ <xs:element name="IsAllDayEvent" type="xs:boolean" minOccurs="0" />
+ <xs:element name="LegacyFreeBusyStatus" type="t:LegacyFreeBusyType" minOccurs="0" />
+ <xs:element name="Location" type="xs:string" minOccurs="0" />
+ <xs:element name="When" type="xs:string" minOccurs="0" />
+ <xs:element name="IsMeeting" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsCancelled" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsRecurring" type="xs:boolean" minOccurs="0" />
+ <xs:element name="MeetingRequestWasSent" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsResponseRequested" type="xs:boolean" minOccurs="0" />
+ <xs:element name="CalendarItemType" type="t:CalendarItemTypeType" minOccurs="0" />
+ <xs:element name="MyResponseType" type="t:ResponseTypeType" minOccurs="0" />
+ <xs:element name="Organizer" type="t:SingleRecipientType" minOccurs="0" />
+ <xs:element name="RequiredAttendees" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0" />
+ <xs:element name="OptionalAttendees" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0" />
+ <xs:element name="Resources" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0" />
+ <xs:element name="InboxReminders" type="t:ArrayOfInboxReminderType" minOccurs="0" />
+
+ <!-- Conflicting and adjacent meetings -->
+
+ <xs:element name="ConflictingMeetingCount" type="xs:int" minOccurs="0" />
+ <xs:element name="AdjacentMeetingCount" type="xs:int" minOccurs="0" />
+ <xs:element name="ConflictingMeetings" type="t:NonEmptyArrayOfAllItemsType" minOccurs="0" />
+ <xs:element name="AdjacentMeetings" type="t:NonEmptyArrayOfAllItemsType" minOccurs="0" />
+
+ <xs:element name="Duration" type="xs:string" minOccurs="0" />
+ <xs:element name="TimeZone" type="xs:string" minOccurs="0" />
+
+ <xs:element name="AppointmentReplyTime" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="AppointmentSequenceNumber" type="xs:int" minOccurs="0" />
+ <xs:element name="AppointmentState" type="xs:int" minOccurs="0" />
+
+ <!-- Recurrence specific data, only valid if CalendarItemType is RecurringMaster -->
+
+ <xs:element name="Recurrence" type="t:RecurrenceType" minOccurs="0" />
+ <xs:element name="FirstOccurrence" type="t:OccurrenceInfoType" minOccurs="0" />
+ <xs:element name="LastOccurrence" type="t:OccurrenceInfoType" minOccurs="0" />
+ <xs:element name="ModifiedOccurrences" type="t:NonEmptyArrayOfOccurrenceInfoType" minOccurs="0" />
+ <xs:element name="DeletedOccurrences" type="t:NonEmptyArrayOfDeletedOccurrencesType" minOccurs="0" />
+ <xs:element name="MeetingTimeZone" type="t:TimeZoneType" minOccurs="0"/>
+ <xs:element name="StartTimeZone" type="t:TimeZoneDefinitionType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EndTimeZone" type="t:TimeZoneDefinitionType" minOccurs="0" maxOccurs="1" />
+
+ <xs:element name="ConferenceType" type="xs:int" minOccurs="0" />
+ <xs:element name="AllowNewTimeProposal" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsOnlineMeeting" type="xs:boolean" minOccurs="0" />
+ <xs:element name="MeetingWorkspaceUrl" type="xs:string" minOccurs="0" />
+ <xs:element name="NetShowUrl" type="xs:string" minOccurs="0" />
+ <xs:element name="EnhancedLocation" type="t:EnhancedLocationType" minOccurs="0" />
+
+ <xs:element name="StartWallClock" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EndWallClock" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
+ <xs:element name="StartTimeZoneId" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EndTimeZoneId" type="xs:string" minOccurs="0" maxOccurs="1" />
+
+ <xs:element name="IntendedFreeBusyStatus" type="t:LegacyFreeBusyType" minOccurs="0" />
+
+ <xs:element name="JoinOnlineMeetingUrl" type="xs:string" minOccurs="0" maxOccurs="1" />
+
+ <xs:element name="OnlineMeetingSettings" type="t:OnlineMeetingSettingsType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="IsOrganizer" type="xs:boolean" minOccurs="0" />
+ <xs:element name="CalendarActivityData" type="t:CalendarActivityDataType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Getting occurrences from Recurring masters and vice versa -->
+
+ <!--Meeting invitation-->
+
+ <xs:complexType name="MeetingMessageType">
+ <xs:complexContent>
+ <xs:extension base="t:MessageType">
+ <xs:sequence>
+ <xs:element name="AssociatedCalendarItemId" type="t:ItemIdType" minOccurs="0"/>
+ <xs:element name="IsDelegated" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsOutOfDate" type="xs:boolean" minOccurs="0" />
+ <xs:element name="HasBeenProcessed" type="xs:boolean" minOccurs="0" />
+
+ <!-- Meeting response related properties -->
+
+ <xs:element name="ResponseType" type="t:ResponseTypeType" minOccurs="0" />
+
+ <!-- iCalendar properties -->
+
+ <xs:element name="UID" type="xs:string" minOccurs="0" />
+ <xs:element name="RecurrenceId" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="DateTimeStamp" type="xs:dateTime" minOccurs="0" />
+
+ <xs:element name="IsOrganizer" type="xs:boolean" minOccurs="0" />
+
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!--ChangeHighlights-->
+ <xs:complexType name="ChangeHighlightsType">
+ <xs:sequence>
+ <xs:element name="HasLocationChanged" type="xs:boolean" minOccurs="0" />
+ <xs:element name="Location" type="xs:string" minOccurs="0" />
+ <xs:element name="HasStartTimeChanged" type="xs:boolean" minOccurs="0" />
+ <xs:element name="Start" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="HasEndTimeChanged" type="xs:boolean" minOccurs="0" />
+ <xs:element name="End" type="xs:dateTime" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MeetingRequestMessageType">
+ <xs:complexContent>
+ <xs:extension base="t:MeetingMessageType">
+ <xs:sequence>
+ <!--- MeetingRequest properties -->
+
+ <xs:element name="MeetingRequestType" type="t:MeetingRequestTypeType" minOccurs="0" />
+ <xs:element name="IntendedFreeBusyStatus" type="t:LegacyFreeBusyType" minOccurs="0" />
+
+ <!-- Calendar Properties of the associated meeting request -->
+
+ <!-- Single and Occurrence only -->
+
+ <xs:element name="Start" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="End" type="xs:dateTime" minOccurs="0" />
+
+ <!-- Occurrence only -->
+
+ <xs:element name="OriginalStart" type="xs:dateTime" minOccurs="0" />
+
+ <xs:element name="IsAllDayEvent" type="xs:boolean" minOccurs="0" />
+ <xs:element name="LegacyFreeBusyStatus" type="t:LegacyFreeBusyType" minOccurs="0" />
+ <xs:element name="Location" type="xs:string" minOccurs="0" />
+ <xs:element name="When" type="xs:string" minOccurs="0" />
+ <xs:element name="IsMeeting" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsCancelled" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsRecurring" type="xs:boolean" minOccurs="0" />
+ <xs:element name="MeetingRequestWasSent" type="xs:boolean" minOccurs="0" />
+ <xs:element name="CalendarItemType" type="t:CalendarItemTypeType" minOccurs="0" />
+ <xs:element name="MyResponseType" type="t:ResponseTypeType" minOccurs="0" />
+ <xs:element name="Organizer" type="t:SingleRecipientType" minOccurs="0" />
+ <xs:element name="RequiredAttendees" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0" />
+ <xs:element name="OptionalAttendees" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0" />
+ <xs:element name="Resources" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0" />
+
+ <!-- Conflicting and adjacent meetings -->
+
+ <xs:element name="ConflictingMeetingCount" type="xs:int" minOccurs="0" />
+ <xs:element name="AdjacentMeetingCount" type="xs:int" minOccurs="0" />
+ <xs:element name="ConflictingMeetings" type="t:NonEmptyArrayOfAllItemsType" minOccurs="0" />
+ <xs:element name="AdjacentMeetings" type="t:NonEmptyArrayOfAllItemsType" minOccurs="0" />
+
+ <xs:element name="Duration" type="xs:string" minOccurs="0" />
+ <xs:element name="TimeZone" type="xs:string" minOccurs="0" />
+
+ <xs:element name="AppointmentReplyTime" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="AppointmentSequenceNumber" type="xs:int" minOccurs="0" />
+ <xs:element name="AppointmentState" type="xs:int" minOccurs="0" />
+
+ <!-- Recurrence specific data, only valid if CalendarItemType is RecurringMaster -->
+
+ <xs:element name="Recurrence" type="t:RecurrenceType" minOccurs="0" />
+ <xs:element name="FirstOccurrence" type="t:OccurrenceInfoType" minOccurs="0" />
+ <xs:element name="LastOccurrence" type="t:OccurrenceInfoType" minOccurs="0" />
+ <xs:element name="ModifiedOccurrences" type="t:NonEmptyArrayOfOccurrenceInfoType" minOccurs="0" />
+ <xs:element name="DeletedOccurrences" type="t:NonEmptyArrayOfDeletedOccurrencesType" minOccurs="0" />
+ <xs:element name="MeetingTimeZone" type="t:TimeZoneType" minOccurs="0" />
+ <xs:element name="StartTimeZone" type="t:TimeZoneDefinitionType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EndTimeZone" type="t:TimeZoneDefinitionType" minOccurs="0" maxOccurs="1" />
+
+ <xs:element name="ConferenceType" type="xs:int" minOccurs="0" />
+ <xs:element name="AllowNewTimeProposal" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsOnlineMeeting" type="xs:boolean" minOccurs="0" />
+ <xs:element name="MeetingWorkspaceUrl" type="xs:string" minOccurs="0" />
+ <xs:element name="NetShowUrl" type="xs:string" minOccurs="0" />
+ <xs:element name="EnhancedLocation" type="t:EnhancedLocationType" minOccurs="0" />
+ <xs:element name="ChangeHighlights" type="t:ChangeHighlightsType" minOccurs="0" />
+
+ <xs:element name="StartWallClock" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EndWallClock" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
+ <xs:element name="StartTimeZoneId" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EndTimeZoneId" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="MeetingResponseMessageType">
+ <xs:complexContent>
+ <xs:extension base="t:MeetingMessageType">
+ <xs:sequence>
+ <xs:element name="Start" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="End" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="Location" type="xs:string" minOccurs="0" />
+ <xs:element name="Recurrence" type="t:RecurrenceType" minOccurs="0" />
+ <xs:element name="CalendarItemType" type="xs:string" minOccurs="0" />
+ <xs:element name="ProposedStart" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="ProposedEnd" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="EnhancedLocation" type="t:EnhancedLocationType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="MeetingCancellationMessageType">
+ <xs:complexContent>
+ <xs:extension base="t:MeetingMessageType">
+ <xs:sequence>
+ <xs:element name="Start" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="End" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="Location" type="xs:string" minOccurs="0" />
+ <xs:element name="Recurrence" type="t:RecurrenceType" minOccurs="0" />
+ <xs:element name="CalendarItemType" type="xs:string" minOccurs="0" />
+ <xs:element name="EnhancedLocation" type="t:EnhancedLocationType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- End of CalendarItem Types -->
+
+ <!-- Contacts Types -->
+
+ <xs:simpleType name="RoleMemberTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="Passport" />
+ <xs:enumeration value="Everyone" />
+ <xs:enumeration value="Email" />
+ <xs:enumeration value="Phone" />
+ <xs:enumeration value="SkypeId" />
+ <xs:enumeration value="ExternalId" />
+ <xs:enumeration value="Group" />
+ <xs:enumeration value="Guid" />
+ <xs:enumeration value="Role" />
+ <xs:enumeration value="Service" />
+ <xs:enumeration value="Circle" />
+ <xs:enumeration value="Domain" />
+ <xs:enumeration value="Partner" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ImAddressKeyType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ImAddress1" />
+ <xs:enumeration value="ImAddress2" />
+ <xs:enumeration value="ImAddress3" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="EmailAddressKeyType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="EmailAddress1" />
+ <xs:enumeration value="EmailAddress2" />
+ <xs:enumeration value="EmailAddress3" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="AbchEmailAddressTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Personal" />
+ <xs:enumeration value="Business" />
+ <xs:enumeration value="Other" />
+ <xs:enumeration value="Passport" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ContactUrlKeyType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Personal" />
+ <xs:enumeration value="Business" />
+ <xs:enumeration value="Attachment" />
+ <xs:enumeration value="EbcDisplayDefinition" />
+ <xs:enumeration value="EbcFinalImage" />
+ <xs:enumeration value="EbcLogo" />
+ <xs:enumeration value="Feed" />
+ <xs:enumeration value="Image" />
+ <xs:enumeration value="InternalMarker" />
+ <xs:enumeration value="Other" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="PhoneNumberKeyType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AssistantPhone" />
+ <xs:enumeration value="BusinessFax" />
+ <xs:enumeration value="BusinessPhone" />
+ <xs:enumeration value="BusinessPhone2" />
+ <xs:enumeration value="Callback" />
+ <xs:enumeration value="CarPhone" />
+ <xs:enumeration value="CompanyMainPhone" />
+ <xs:enumeration value="HomeFax" />
+ <xs:enumeration value="HomePhone" />
+ <xs:enumeration value="HomePhone2" />
+ <xs:enumeration value="Isdn" />
+ <xs:enumeration value="MobilePhone" />
+ <xs:enumeration value="OtherFax" />
+ <xs:enumeration value="OtherTelephone" />
+ <xs:enumeration value="Pager" />
+ <xs:enumeration value="PrimaryPhone" />
+ <xs:enumeration value="RadioPhone" />
+ <xs:enumeration value="Telex" />
+ <xs:enumeration value="TtyTddPhone" />
+ <xs:enumeration value="BusinessMobile" />
+ <xs:enumeration value="IPPhone" />
+ <xs:enumeration value="Mms" />
+ <xs:enumeration value="Msn" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="PhysicalAddressIndexType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="Home" />
+ <xs:enumeration value="Business" />
+ <xs:enumeration value="Other" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="PhysicalAddressKeyType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Home" />
+ <xs:enumeration value="Business" />
+ <xs:enumeration value="Other" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="FileAsMappingType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="LastCommaFirst" />
+ <xs:enumeration value="FirstSpaceLast" />
+ <xs:enumeration value="Company" />
+ <xs:enumeration value="LastCommaFirstCompany" />
+ <xs:enumeration value="CompanyLastFirst" />
+ <xs:enumeration value="LastFirst" />
+ <xs:enumeration value="LastFirstCompany" />
+ <xs:enumeration value="CompanyLastCommaFirst" />
+ <xs:enumeration value="LastFirstSuffix" />
+ <xs:enumeration value="LastSpaceFirstCompany" />
+ <xs:enumeration value="CompanyLastSpaceFirst" />
+ <xs:enumeration value="LastSpaceFirst" />
+ <xs:enumeration value="DisplayName" />
+ <xs:enumeration value="FirstName" />
+ <xs:enumeration value="LastFirstMiddleSuffix" />
+ <xs:enumeration value="LastName" />
+ <xs:enumeration value="Empty" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Contact source -->
+
+ <xs:simpleType name="ContactSourceType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ActiveDirectory" />
+ <xs:enumeration value="Store" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- complete name for a contact -->
+
+ <xs:complexType name="CompleteNameType">
+ <xs:sequence>
+ <xs:element name="Title" type="xs:string" minOccurs="0" />
+ <xs:element name="FirstName" type="xs:string" minOccurs="0" />
+ <xs:element name="MiddleName" type="xs:string" minOccurs="0" />
+ <xs:element name="LastName" type="xs:string" minOccurs="0" />
+ <xs:element name="Suffix" type="xs:string" minOccurs="0" />
+ <xs:element name="Initials" type="xs:string" minOccurs="0" />
+ <xs:element name="FullName" type="xs:string" minOccurs="0" />
+ <xs:element name="Nickname" type="xs:string" minOccurs="0" />
+ <xs:element name="YomiFirstName" type="xs:string" minOccurs="0" />
+ <xs:element name="YomiLastName" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Dictionary types for items -->
+
+ <xs:complexType name="ImAddressDictionaryEntryType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="Key" type="t:ImAddressKeyType" use="required" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="ContactUrlDictionaryEntryType">
+ <xs:sequence>
+ <xs:element name="Type" type="t:ContactUrlKeyType" minOccurs="1" />
+ <xs:element name="Name" type="xs:string" minOccurs="0" />
+ <xs:element name="Address" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AbchEmailAddressDictionaryEntryType">
+ <xs:sequence>
+ <xs:element name="Type" type="t:AbchEmailAddressTypeType" minOccurs="1" />
+ <xs:element name="Address" type="xs:string" minOccurs="1" />
+ <xs:element name="IsMessengerEnabled" type="xs:boolean" minOccurs="0" />
+ <xs:element name="Capabilities" type="xs:long" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EmailAddressDictionaryEntryType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="Key" type="t:EmailAddressKeyType" use="required" />
+ <xs:attribute name="Name" type="xs:string" use="optional" />
+ <xs:attribute name="RoutingType" type="xs:string" use="optional" />
+ <xs:attribute name="MailboxType" type="t:MailboxTypeType" use="optional" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:complexType name="PhoneNumberDictionaryEntryType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="Key" type="t:PhoneNumberKeyType" use="required" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:complexType name="PhysicalAddressDictionaryEntryType">
+ <xs:sequence>
+ <xs:element name="Street" type="xs:string" minOccurs="0" />
+ <xs:element name="City" type="xs:string" minOccurs="0" />
+ <xs:element name="State" type="xs:string" minOccurs="0" />
+ <xs:element name="CountryOrRegion" type="xs:string" minOccurs="0" />
+ <xs:element name="PostalCode" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ <xs:attribute name="Key" type="t:PhysicalAddressKeyType" use="required" />
+ </xs:complexType>
+
+ <!-- The actual dictionaries -->
+
+ <xs:complexType name="ContactUrlDictionaryType">
+ <xs:sequence>
+ <xs:element name="Url" type="t:ContactUrlDictionaryEntryType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AbchEmailAddressDictionaryType">
+ <xs:sequence>
+ <xs:element name="Email" type="t:AbchEmailAddressDictionaryEntryType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ImAddressDictionaryType">
+ <xs:sequence>
+ <xs:element name="Entry" type="t:ImAddressDictionaryEntryType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EmailAddressDictionaryType">
+ <xs:sequence>
+ <xs:element name="Entry" type="t:EmailAddressDictionaryEntryType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PhoneNumberDictionaryType">
+ <xs:sequence>
+ <xs:element name="Entry" type="t:PhoneNumberDictionaryEntryType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PhysicalAddressDictionaryType">
+ <xs:sequence>
+ <xs:element name="Entry" type="t:PhysicalAddressDictionaryEntryType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="MemberStatusType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Unrecognized" />
+ <xs:enumeration value="Normal" />
+ <xs:enumeration value="Demoted" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="MembersListType">
+ <xs:sequence>
+ <xs:element name="Member" type="t:MemberType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MemberType">
+ <xs:sequence>
+ <xs:element name="Mailbox" type="t:EmailAddressType" minOccurs="0" />
+ <xs:element name="Status" type="t:MemberStatusType" minOccurs="0" />
+ </xs:sequence>
+ <xs:attribute name="Key" type="xs:string" use="optional" />
+ </xs:complexType>
+
+ <xs:complexType name="RoleMemberItemType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:sequence>
+ <xs:element name="DisplayName" type="xs:string" minOccurs="0" />
+ <xs:element name="Type" type="t:RoleMemberTypeType" minOccurs="0" />
+ <xs:element name="MemberId" type="xs:string" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="NetworkItemType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:sequence>
+ <xs:element name="DomainId" type="xs:int" minOccurs="0" />
+ <xs:element name="DomainTag" type="xs:string" minOccurs="0" />
+ <xs:element name="UserTileUrl" type="xs:string" minOccurs="0" />
+ <xs:element name="ProfileUrl" type="xs:string" minOccurs="0" />
+ <xs:element name="Settings" type="xs:int" minOccurs="0" />
+ <xs:element name="IsDefault" type="xs:boolean" minOccurs="0" />
+ <xs:element name="AutoLinkError" type="xs:string" minOccurs="0" />
+ <xs:element name="AutoLinkSuccess" type="xs:string" minOccurs="0" />
+ <xs:element name="UserEmail" type="xs:string" minOccurs="0" />
+ <xs:element name="ClientPublishSecret" type="xs:string" minOccurs="0" />
+ <xs:element name="ClientToken" type="xs:string" minOccurs="0" />
+ <xs:element name="ClientToken2" type="xs:string" minOccurs="0" />
+ <xs:element name="ContactSyncError" type="xs:string" minOccurs="0" />
+ <xs:element name="ContactSyncSuccess" type="xs:string" minOccurs="0" />
+ <xs:element name="ErrorOffers" type="xs:int" minOccurs="0" />
+ <xs:element name="FirstAuthErrorDates" type="xs:string" minOccurs="0" />
+ <xs:element name="LastVersionSaved" type="xs:int" minOccurs="0" />
+ <xs:element name="LastWelcomeContact" type="xs:string" minOccurs="0" />
+ <xs:element name="Offers" type="xs:int" minOccurs="0" />
+ <xs:element name="PsaLastChanged" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="RefreshToken2" type="xs:string" minOccurs="0" />
+ <xs:element name="RefreshTokenExpiry2" type="xs:string" minOccurs="0" />
+ <xs:element name="SessionHandle" type="xs:string" minOccurs="0" />
+ <xs:element name="RejectedOffers" type="xs:int" minOccurs="0" />
+ <xs:element name="SyncEnabled" type="xs:boolean" minOccurs="0" />
+ <xs:element name="TokenRefreshLastAttempted" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="TokenRefreshLastCompleted" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="PsaState" type="xs:string" minOccurs="0" />
+ <xs:element name="SourceEntryID" type="xs:base64Binary" minOccurs="0" />
+ <xs:element name="AccountName" type="xs:string" minOccurs="0" />
+ <xs:element name="LastSync" type="xs:dateTime" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AbchPersonItemType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:sequence>
+ <xs:element name="AntiLinkInfo" type="xs:string" minOccurs="0" />
+ <xs:element name="PersonId" type="t:GuidType" minOccurs="0" />
+ <xs:element name="ContactHandles" type="t:ArrayOfAbchPersonContactHandlesType" minOccurs="0" />
+ <xs:element name="ContactCategories" type="t:ArrayOfStringsType" minOccurs="0" />
+ <xs:element name="RelevanceOrder1" type="xs:string" minOccurs="0" />
+ <xs:element name="RelevanceOrder2" type="xs:string" minOccurs="0" />
+ <xs:element name="TrustLevel" type="xs:int" minOccurs="0" />
+ <xs:element name="FavoriteOrder" type="xs:int" minOccurs="0" />
+ <xs:element name="ExchangePersonIdGuid" type="t:GuidType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfAbchPersonContactHandlesType">
+ <xs:sequence>
+ <xs:element name="ContactHandle" type="t:AbchPersonContactHandle" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AbchPersonContactHandle">
+ <xs:sequence>
+ <xs:element name="SourceId" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="ObjectId" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="AccountName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfGuidType">
+ <xs:sequence>
+ <xs:element name="Guid" type="t:GuidType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- ContactItemType -->
+
+ <xs:complexType name="ContactItemType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:sequence>
+ <xs:element name="FileAs" type="xs:string" minOccurs="0" />
+ <xs:element name="FileAsMapping" type="t:FileAsMappingType" minOccurs="0" />
+ <xs:element name="DisplayName" type="xs:string" minOccurs="0" />
+ <xs:element name="GivenName" type="xs:string" minOccurs="0" />
+ <xs:element name="Initials" type="xs:string" minOccurs="0" />
+ <xs:element name="MiddleName" type="xs:string" minOccurs="0" />
+ <xs:element name="Nickname" type="xs:string" minOccurs="0" />
+ <xs:element name="CompleteName" type="t:CompleteNameType" minOccurs="0" />
+ <xs:element name="CompanyName" type="xs:string" minOccurs="0" />
+ <xs:element name="EmailAddresses" type="t:EmailAddressDictionaryType" minOccurs="0" />
+ <xs:element name="AbchEmailAddresses" type="t:AbchEmailAddressDictionaryType" minOccurs="0" />
+ <xs:element name="PhysicalAddresses" type="t:PhysicalAddressDictionaryType" minOccurs="0" />
+ <xs:element name="PhoneNumbers" type="t:PhoneNumberDictionaryType" minOccurs="0" />
+ <xs:element name="AssistantName" type="xs:string" minOccurs="0" />
+ <xs:element name="Birthday" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="BusinessHomePage" type="xs:anyURI" minOccurs="0" />
+ <xs:element name="Children" type="t:ArrayOfStringsType" minOccurs="0" />
+ <xs:element name="Companies" type="t:ArrayOfStringsType" minOccurs="0" />
+ <xs:element name="ContactSource" type="t:ContactSourceType" minOccurs="0" />
+ <xs:element name="Department" type="xs:string" minOccurs="0" />
+ <xs:element name="Generation" type="xs:string" minOccurs="0" />
+ <xs:element name="ImAddresses" type="t:ImAddressDictionaryType" minOccurs="0" />
+ <xs:element name="JobTitle" type="xs:string" minOccurs="0" />
+ <xs:element name="Manager" type="xs:string" minOccurs="0" />
+ <xs:element name="Mileage" type="xs:string" minOccurs="0" />
+ <xs:element name="OfficeLocation" type="xs:string" minOccurs="0" />
+ <xs:element name="PostalAddressIndex" type="t:PhysicalAddressIndexType" minOccurs="0" />
+ <xs:element name="Profession" type="xs:string" minOccurs="0" />
+ <xs:element name="SpouseName" type="xs:string" minOccurs="0" />
+ <xs:element name="Surname" type="xs:string" minOccurs="0" />
+ <xs:element name="WeddingAnniversary" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="HasPicture" type="xs:boolean" minOccurs="0" />
+ <xs:element name="PhoneticFullName" type="xs:string" minOccurs="0" />
+ <xs:element name="PhoneticFirstName" type="xs:string" minOccurs="0" />
+ <xs:element name="PhoneticLastName" type="xs:string" minOccurs="0" />
+ <xs:element name="Alias" type="xs:string" minOccurs="0" />
+ <xs:element name="Notes" type="xs:string" minOccurs="0" />
+ <xs:element name="Photo" type="xs:base64Binary" minOccurs="0" />
+ <xs:element name="UserSMIMECertificate" type="t:ArrayOfBinaryType" minOccurs="0" />
+ <xs:element name="MSExchangeCertificate" type="t:ArrayOfBinaryType" minOccurs="0" />
+ <xs:element name="DirectoryId" type="xs:string" minOccurs="0" />
+ <xs:element name="ManagerMailbox" type="t:SingleRecipientType" minOccurs="0" />
+ <xs:element name="DirectReports" type="t:ArrayOfRecipientsType" minOccurs="0" />
+ <xs:element name="AccountName" type="xs:string" minOccurs="0" />
+ <xs:element name="IsAutoUpdateDisabled" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsMessengerEnabled" type="xs:boolean" minOccurs="0" />
+ <xs:element name="Comment" type="xs:string" minOccurs="0" />
+ <xs:element name="ContactShortId" type="xs:int" minOccurs="0" />
+ <xs:element name="ContactType" type="xs:string" minOccurs="0" />
+ <xs:element name="Gender" type="xs:string" minOccurs="0" />
+ <xs:element name="IsHidden" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ObjectId" type="xs:string" minOccurs="0" />
+ <xs:element name="PassportId" type="xs:long" minOccurs="0" />
+ <xs:element name="IsPrivate" type="xs:boolean" minOccurs="0" />
+ <xs:element name="SourceId" type="xs:string" minOccurs="0" />
+ <xs:element name="TrustLevel" type="xs:int" minOccurs="0" />
+ <xs:element name="CreatedBy" type="xs:string" minOccurs="0" />
+ <xs:element name="Urls" type="t:ContactUrlDictionaryType" minOccurs="0" />
+ <xs:element name="Cid" type="xs:long" minOccurs="0" />
+ <xs:element name="SkypeAuthCertificate" type="xs:string" minOccurs="0" />
+ <xs:element name="SkypeContext" type="xs:string" minOccurs="0" />
+ <xs:element name="SkypeId" type="xs:string" minOccurs="0" />
+ <xs:element name="SkypeRelationship" type="xs:string" minOccurs="0" />
+ <xs:element name="YomiNickname" type="xs:string" minOccurs="0" />
+ <xs:element name="XboxLiveTag" type="xs:string" minOccurs="0" />
+ <xs:element name="InviteFree" type="xs:boolean" minOccurs="0" />
+ <xs:element name="HidePresenceAndProfile" type="xs:boolean" minOccurs="0" />
+ <xs:element name="IsPendingOutbound" type="xs:boolean" minOccurs="0" />
+ <xs:element name="SupportGroupFeeds" type="xs:boolean" minOccurs="0" />
+ <xs:element name="UserTileHash" type="xs:string" minOccurs="0" />
+ <xs:element name="UnifiedInbox" type="xs:boolean" minOccurs="0" />
+ <xs:element name="Mris" type="t:ArrayOfStringsType" minOccurs="0" />
+ <xs:element name="Wlid" type="xs:string" minOccurs="0" />
+ <xs:element name="AbchContactId" type="t:GuidType" minOccurs="0" />
+ <xs:element name="NotInBirthdayCalendar" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ShellContactType" type="xs:string" minOccurs="0" />
+ <xs:element name="ImMri" type="xs:string" minOccurs="0" />
+ <xs:element name="PresenceTrustLevel" type="xs:int" minOccurs="0" />
+ <xs:element name="OtherMri" type="xs:string" minOccurs="0" />
+ <xs:element name="ProfileLastChanged" type="xs:string" minOccurs="0" />
+ <xs:element name="MobileIMEnabled" type="xs:boolean" minOccurs="0" />
+ <xs:element name="PartnerNetworkProfilePhotoUrl" type="xs:string" minOccurs="0" />
+ <xs:element name="PartnerNetworkThumbnailPhotoUrl" type="xs:string" minOccurs="0" />
+ <xs:element name="PersonId" type="xs:string" minOccurs="0" />
+ <xs:element name="ConversationGuid" type="t:GuidType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfBinaryType">
+ <xs:sequence>
+ <xs:element name="Base64Binary" type="xs:base64Binary" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- ContactItemType -->
+
+ <xs:complexType name="DistributionListType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:sequence>
+ <xs:element name="DisplayName" type="xs:string" minOccurs="0" />
+ <xs:element name="FileAs" type="xs:string" minOccurs="0" />
+ <xs:element name="ContactSource" type="t:ContactSourceType" minOccurs="0" />
+
+ <xs:element name="Members" type="t:MembersListType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- End of Contacts Types-->
+
+ <!-- Description of a search folder -->
+
+ <xs:complexType name="SearchParametersType">
+ <xs:sequence>
+ <xs:element name="Restriction" type="t:RestrictionType" />
+ <xs:element name="BaseFolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType" />
+ </xs:sequence>
+ <xs:attribute name="Traversal" type="t:SearchFolderTraversalType" use="optional"/>
+ </xs:complexType>
+
+ <!-- Search expressions -->
+ <xs:complexType name="ConstantValueType">
+ <xs:attribute name="Value" type="xs:string" use="required" />
+ </xs:complexType>
+
+ <!-- Search expression type -->
+ <xs:complexType name="SearchExpressionType" abstract="true" />
+ <xs:element name="SearchExpression" type="t:SearchExpressionType" />
+
+ <!-- GroupBy types for FindItem -->
+ <xs:simpleType name="AggregateType">
+ <xs:annotation>
+ <xs:documentation>
+ 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.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Minimum"/>
+ <xs:enumeration value="Maximum"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="AggregateOnType">
+ <xs:annotation>
+ <xs:documentation>
+ 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.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <!-- Note that the property path here determines which property to examine on each item
+ in the group for the aggregation function. This has nothing to do with definition what
+ is in each group. That determination has already been made via the GroupBy property path.
+ -->
+ <xs:element name="FieldURI" type="t:PathToUnindexedFieldType"/>
+ <xs:element name="IndexedFieldURI" type="t:PathToIndexedFieldType"/>
+ <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType"/>
+ </xs:choice>
+ <xs:attribute name="Aggregate" type="t:AggregateType" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="BaseGroupByType" abstract ="true">
+ <xs:attribute name="Order" type="t:SortDirectionType" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="GroupByType">
+ <xs:annotation>
+ <xs:documentation>
+ Allows consumers to specify arbitrary groupings for FindItem queries.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:BaseGroupByType">
+ <xs:sequence>
+ <!-- This property path represents the property that defines what is in each group.
+ All items within a given group will have the same value for this property. -->
+ <xs:choice>
+ <xs:element name="FieldURI" type="t:PathToUnindexedFieldType"/>
+ <xs:element name="IndexedFieldURI" type="t:PathToIndexedFieldType"/>
+ <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType"/>
+ </xs:choice>
+ <xs:element name="AggregateOn" type="t:AggregateOnType"/>
+ <xs:element name="UseCollapsibleGroups" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="ItemsPerGroup" type="xs:nonNegativeInteger" minOccurs="0" />
+ <xs:element name="MaxItemsPerGroup" type="xs:nonNegativeInteger" minOccurs="0" />
+ <xs:element name="GroupsToExpand" type="t:ArrayOfGroupIdType" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="StandardGroupByType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents standard groupings for GroupBy queries.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ConversationTopic"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="DistinguishedGroupByType">
+ <xs:annotation>
+ <xs:documentation>
+ Allows consumers to access standard groupings for FindItem queries. This is in
+ contrast to the arbitrary (custom) groupings available via the t:GroupByType
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:BaseGroupByType">
+ <xs:sequence>
+ <xs:element name="StandardGroupBy" type="t:StandardGroupByType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfGroupIdType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="GroupId" type="xs:base64Binary"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- GroupBy result types -->
+
+ <xs:complexType name="GroupedItemsType">
+ <xs:sequence>
+ <xs:element name="GroupIndex" type="xs:string"/>
+ <xs:element name="Items" type="t:ArrayOfRealItemsType"/>
+ <xs:element name="GroupSummary" type="t:GroupSummaryType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfGroupedItemsType">
+ <xs:choice>
+ <xs:element name="GroupedItems" type="t:GroupedItemsType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="GroupSummaryType">
+ <xs:sequence>
+ <xs:element name="GroupCount" type="xs:int" />
+ <xs:element name="UnreadCount" type="xs:int" />
+ <xs:element name="InstanceKey" type="xs:base64Binary" />
+ <xs:element name="GroupByValue" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Basic arithmetic operations -->
+
+ <xs:complexType name="ExistsType">
+ <xs:complexContent>
+ <xs:extension base="t:SearchExpressionType">
+ <xs:sequence>
+ <xs:choice maxOccurs ="unbounded">
+ <xs:element ref="t:FieldURI"/>
+ <xs:element ref="t:IndexedFieldURI"/>
+ <xs:element ref="t:ExtendedFieldURI"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="Exists" type="t:ExistsType" substitutionGroup="t:SearchExpression"/>
+
+ <xs:complexType name="FieldURIOrConstantType">
+ <xs:choice>
+ <xs:element ref="t:FieldURI"/>
+ <xs:element ref="t:IndexedFieldURI"/>
+ <xs:element ref="t:ExtendedFieldURI"/>
+ <xs:element name="Constant" type="t:ConstantValueType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="TwoOperandExpressionType" abstract="true">
+ <xs:complexContent>
+ <xs:extension base="t:SearchExpressionType">
+ <xs:sequence>
+ <xs:choice maxOccurs ="unbounded">
+ <xs:element ref="t:FieldURI"/>
+ <xs:element ref="t:IndexedFieldURI"/>
+ <xs:element ref="t:ExtendedFieldURI"/>
+ </xs:choice>
+ <xs:element name="FieldURIOrConstant" type="t:FieldURIOrConstantType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Excludes patterns can either be hex (starting with 0x or 0X) or integers -->
+ <xs:simpleType name="ExcludesAttributeType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="((0x|0X)[0-9A-Fa-f]*)|([0-9]*)"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ExcludesValueType">
+ <xs:attribute name="Value" type="t:ExcludesAttributeType" use="required" />
+ </xs:complexType>
+
+ <xs:complexType name="ExcludesType">
+ <xs:complexContent>
+ <xs:extension base="t:SearchExpressionType">
+ <xs:sequence>
+ <xs:choice maxOccurs ="unbounded">
+ <xs:element ref="t:FieldURI"/>
+ <xs:element ref="t:IndexedFieldURI"/>
+ <xs:element ref="t:ExtendedFieldURI"/>
+ </xs:choice>
+ <xs:element name="Bitmask" type="t:ExcludesValueType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="Excludes" type="t:ExcludesType" substitutionGroup ="t:SearchExpression"/>
+
+
+ <xs:complexType name="IsEqualToType">
+ <xs:complexContent>
+ <xs:extension base="t:TwoOperandExpressionType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="IsEqualTo" type="t:IsEqualToType" substitutionGroup ="t:SearchExpression"/>
+ <xs:complexType name="IsNotEqualToType">
+ <xs:complexContent>
+ <xs:extension base="t:TwoOperandExpressionType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="IsNotEqualTo" type="t:IsNotEqualToType" substitutionGroup="t:SearchExpression"/>
+ <xs:complexType name="IsGreaterThanType">
+ <xs:complexContent>
+ <xs:extension base="t:TwoOperandExpressionType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="IsGreaterThan" type="t:IsGreaterThanType" substitutionGroup ="t:SearchExpression"/>
+ <xs:complexType name="IsGreaterThanOrEqualToType">
+ <xs:complexContent>
+ <xs:extension base="t:TwoOperandExpressionType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="IsGreaterThanOrEqualTo" type="t:IsGreaterThanOrEqualToType" substitutionGroup ="t:SearchExpression"/>
+ <xs:complexType name="IsLessThanType">
+ <xs:complexContent>
+ <xs:extension base="t:TwoOperandExpressionType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="IsLessThan" type="t:IsLessThanType" substitutionGroup ="t:SearchExpression"/>
+ <xs:complexType name="IsLessThanOrEqualToType">
+ <xs:complexContent>
+ <xs:extension base="t:TwoOperandExpressionType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="IsLessThanOrEqualTo" type="t:IsLessThanOrEqualToType" substitutionGroup ="t:SearchExpression"/>
+
+
+ <!-- Content indexing comparison -->
+ <xs:simpleType name="ContainmentModeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FullString" />
+ <xs:enumeration value="Prefixed" />
+ <xs:enumeration value="Substring" />
+ <xs:enumeration value="PrefixOnWords" />
+ <xs:enumeration value="ExactPhrase" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ContainmentComparisonType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Exact" />
+ <xs:enumeration value="IgnoreCase" />
+ <xs:enumeration value="IgnoreNonSpacingCharacters" />
+ <xs:enumeration value="Loose"/>
+ <xs:enumeration value="IgnoreCaseAndNonSpacingCharacters" />
+ <xs:enumeration value="LooseAndIgnoreCase"/>
+ <xs:enumeration value="LooseAndIgnoreNonSpace"/>
+ <xs:enumeration value="LooseAndIgnoreCaseAndIgnoreNonSpace"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ContainsExpressionType">
+ <xs:complexContent>
+ <xs:extension base="t:SearchExpressionType">
+ <xs:sequence>
+ <xs:choice maxOccurs ="unbounded">
+ <xs:element ref="t:FieldURI"/>
+ <xs:element ref="t:IndexedFieldURI"/>
+ <xs:element ref="t:ExtendedFieldURI"/>
+ </xs:choice>
+ <xs:element name="Constant" type="t:ConstantValueType" />
+ </xs:sequence>
+ <xs:attribute name="ContainmentMode" type="t:ContainmentModeType" use="optional" />
+ <xs:attribute name="ContainmentComparison" type="t:ContainmentComparisonType" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="Contains" type="t:ContainsExpressionType" substitutionGroup="t:SearchExpression"/>
+
+ <!-- Boolean operations -->
+ <xs:complexType name="NotType">
+ <xs:complexContent>
+ <xs:extension base="t:SearchExpressionType">
+ <xs:sequence>
+ <xs:choice maxOccurs ="unbounded">
+ <xs:element ref="t:Contains"/>
+ <xs:element ref="t:Excludes"/>
+ <xs:element ref="t:Exists"/>
+ <xs:element ref="t:IsEqualTo"/>
+ <xs:element ref="t:IsNotEqualTo"/>
+ <xs:element ref="t:IsGreaterThan"/>
+ <xs:element ref="t:IsGreaterThanOrEqualTo"/>
+ <xs:element ref="t:IsLessThan"/>
+ <xs:element ref="t:IsLessThanOrEqualTo"/>
+ <xs:element ref="t:And"/>
+ <xs:element ref="t:Not"/>
+ <xs:element ref="t:Or"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="Not" type="t:NotType" substitutionGroup="t:SearchExpression"/>
+
+ <xs:complexType name="MultipleOperandBooleanExpressionType" abstract="true">
+ <xs:complexContent>
+ <xs:extension base="t:SearchExpressionType">
+ <xs:sequence>
+ <xs:choice maxOccurs ="unbounded">
+ <xs:element ref="t:Contains"/>
+ <xs:element ref="t:Excludes"/>
+ <xs:element ref="t:Exists"/>
+ <xs:element ref="t:IsEqualTo"/>
+ <xs:element ref="t:IsNotEqualTo"/>
+ <xs:element ref="t:IsGreaterThan"/>
+ <xs:element ref="t:IsGreaterThanOrEqualTo"/>
+ <xs:element ref="t:IsLessThan"/>
+ <xs:element ref="t:IsLessThanOrEqualTo"/>
+ <xs:element ref="t:And"/>
+ <xs:element ref="t:Not"/>
+ <xs:element ref="t:Or"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AndType">
+ <xs:complexContent>
+ <xs:extension base="t:MultipleOperandBooleanExpressionType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="And" type="t:AndType" substitutionGroup="t:SearchExpression"/>
+
+ <xs:complexType name="OrType">
+ <xs:complexContent>
+ <xs:extension base="t:MultipleOperandBooleanExpressionType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="Or" type="t:OrType" substitutionGroup="t:SearchExpression"/>
+
+ <xs:complexType name="NearType">
+ <xs:complexContent>
+ <xs:extension base="t:MultipleOperandBooleanExpressionType">
+ <xs:sequence>
+ <xs:element name="Distance" type="xs:unsignedInt" />
+ <xs:element name="Ordered" type="xs:boolean" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="Near" type="t:NearType" substitutionGroup="t:SearchExpression"/>
+
+ <!-- The type of object which actually encodes a restriction -->
+ <xs:complexType name="RestrictionType">
+ <xs:choice maxOccurs ="unbounded">
+ <xs:element ref="t:Contains"/>
+ <xs:element ref="t:Excludes"/>
+ <xs:element ref="t:Exists"/>
+ <xs:element ref="t:IsEqualTo"/>
+ <xs:element ref="t:IsNotEqualTo"/>
+ <xs:element ref="t:IsGreaterThan"/>
+ <xs:element ref="t:IsGreaterThanOrEqualTo"/>
+ <xs:element ref="t:IsLessThan"/>
+ <xs:element ref="t:IsLessThanOrEqualTo"/>
+ <xs:element ref="t:And"/>
+ <xs:element ref="t:Not"/>
+ <xs:element ref="t:Or"/>
+ </xs:choice>
+ </xs:complexType>
+ <!-- Sort order specification -->
+ <xs:simpleType name="SortDirectionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Ascending" />
+ <xs:enumeration value="Descending" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="FieldOrderType">
+ <xs:sequence>
+ <xs:choice maxOccurs ="unbounded">
+ <xs:element ref="t:FieldURI"/>
+ <xs:element ref="t:IndexedFieldURI"/>
+ <xs:element ref="t:ExtendedFieldURI"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="Order" type="t:SortDirectionType" use="required" />
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfFieldOrdersType">
+ <xs:sequence>
+ <xs:element name="FieldOrder" type="t:FieldOrderType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Data type needed by CreateManagedFolder. -->
+ <xs:complexType name="NonEmptyArrayOfFolderNamesType">
+ <xs:sequence>
+ <xs:element name="FolderName" type="xs:string" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Notification types -->
+
+ <xs:simpleType name="WatermarkType">
+ <xs:restriction base="t:NonEmptyStringType"/>
+ </xs:simpleType>
+
+ <xs:simpleType name="SubscriptionIdType">
+ <xs:restriction base="t:NonEmptyStringType"/>
+ </xs:simpleType>
+
+ <xs:complexType name="BaseNotificationEventType">
+ <xs:sequence>
+ <xs:element name="Watermark" type="t:WatermarkType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="BaseObjectChangedEventType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseNotificationEventType">
+ <xs:sequence>
+ <xs:element name="TimeStamp" type="xs:dateTime" />
+ <xs:choice>
+ <xs:element name="FolderId" type="t:FolderIdType" />
+ <xs:element name="ItemId" type="t:ItemIdType"/>
+ </xs:choice>
+ <xs:element name="ParentFolderId" type="t:FolderIdType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ModifiedEventType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseObjectChangedEventType">
+ <xs:sequence>
+ <xs:element name="UnreadCount" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="MovedCopiedEventType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseObjectChangedEventType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="OldFolderId" type="t:FolderIdType" />
+ <xs:element name="OldItemId" type="t:ItemIdType"/>
+ </xs:choice>
+ <xs:element name="OldParentFolderId" type="t:FolderIdType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="NotificationType">
+ <xs:sequence>
+ <xs:element name="SubscriptionId" type="t:SubscriptionIdType" />
+ <xs:element name="PreviousWatermark" type="t:WatermarkType" minOccurs="0" />
+ <xs:element name="MoreEvents" type="xs:boolean" minOccurs="0" />
+ <xs:choice maxOccurs="unbounded" minOccurs="1">
+ <xs:element name="CopiedEvent" type="t:MovedCopiedEventType"/>
+ <xs:element name="CreatedEvent" type="t:BaseObjectChangedEventType"/>
+ <xs:element name="DeletedEvent" type="t:BaseObjectChangedEventType"/>
+ <xs:element name="ModifiedEvent" type="t:ModifiedEventType"/>
+ <xs:element name="MovedEvent" type="t:MovedCopiedEventType"/>
+ <xs:element name="NewMailEvent" type="t:BaseObjectChangedEventType"/>
+ <xs:element name="StatusEvent" type="t:BaseNotificationEventType"/>
+ <xs:element name="FreeBusyChangedEvent" type="t:BaseObjectChangedEventType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="NotificationEventTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CopiedEvent" />
+ <xs:enumeration value="CreatedEvent" />
+ <xs:enumeration value="DeletedEvent" />
+ <xs:enumeration value="ModifiedEvent" />
+ <xs:enumeration value="MovedEvent" />
+ <xs:enumeration value="NewMailEvent" />
+ <xs:enumeration value="FreeBusyChangedEvent" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="NonEmptyArrayOfNotificationEventTypesType">
+ <xs:choice maxOccurs="unbounded" minOccurs="1">
+ <xs:element name="EventType" type="t:NotificationEventTypeType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:simpleType name="SubscriptionTimeoutType">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1" />
+ <xs:maxInclusive value="1440" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="SubscriptionStatusFrequencyType">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1" />
+ <xs:maxInclusive value="1440" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="BaseSubscriptionRequestType" abstract="true">
+ <xs:sequence>
+ <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType" minOccurs="0"/>
+ <xs:element name="EventTypes" type="t:NonEmptyArrayOfNotificationEventTypesType"/>
+ <xs:element name="Watermark" type="t:WatermarkType" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="SubscribeToAllFolders" type="xs:boolean" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="PushSubscriptionRequestType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseSubscriptionRequestType">
+ <xs:sequence>
+ <xs:element name="StatusFrequency" type="t:SubscriptionStatusFrequencyType"/>
+ <xs:element name="URL" type="xs:string"/>
+ <xs:element name="CallerData" type="xs:string" minOccurs ="0" maxOccurs ="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="PullSubscriptionRequestType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseSubscriptionRequestType">
+ <xs:sequence>
+ <xs:element name="Timeout" type="t:SubscriptionTimeoutType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="StreamingSubscriptionRequestType">
+ <xs:sequence>
+ <xs:element name="FolderIds"
+ type="t:NonEmptyArrayOfBaseFolderIdsType" minOccurs="0"/>
+ <xs:element name="EventTypes" type="t:NonEmptyArrayOfNotificationEventTypesType"/>
+ </xs:sequence>
+ <xs:attribute name="SubscribeToAllFolders" type="xs:boolean" use="optional"/>
+ </xs:complexType>
+
+ <xs:simpleType name="SubscriptionStatusType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="OK" />
+ <xs:enumeration value="Unsubscribe" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="NonEmptyArrayOfSubscriptionIdsType">
+ <xs:sequence>
+ <xs:element name="SubscriptionId" type="t:SubscriptionIdType" minOccurs="1"
+ maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfNotificationsType">
+ <xs:sequence>
+ <xs:element name="Notification" type="t:NotificationType" minOccurs="0"
+ maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="StreamingSubscriptionConnectionTimeoutType">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1" />
+ <xs:maxInclusive value="30" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ConnectionStatusType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="OK" />
+ <xs:enumeration value="Closed" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="UnifiedGroupAccessType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="Private" />
+ <xs:enumeration value="Secret" />
+ <xs:enumeration value="Public" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="SyncFolderItemsDeleteType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SyncFolderItemsReadFlagType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType"/>
+ <xs:element name="IsRead" type="xs:boolean"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SyncFolderItemsChangesType">
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded" minOccurs="0">
+ <xs:element name="Create" type="t:SyncFolderItemsCreateOrUpdateType"/>
+ <xs:element name="Update" type="t:SyncFolderItemsCreateOrUpdateType"/>
+ <xs:element name="Delete" type="t:SyncFolderItemsDeleteType"/>
+ <xs:element name="ReadFlagChange" type="t:SyncFolderItemsReadFlagType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="SyncFolderHierarchyCreateOrUpdateType">
+ <xs:choice>
+ <xs:element name="Folder" type="t:FolderType"/>
+ <xs:element name="CalendarFolder" type="t:CalendarFolderType"/>
+ <xs:element name="ContactsFolder" type="t:ContactsFolderType"/>
+ <xs:element name="SearchFolder" type="t:SearchFolderType"/>
+ <xs:element name="TasksFolder" type="t:TasksFolderType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="SyncFolderHierarchyDeleteType">
+ <xs:sequence>
+ <xs:element name="FolderId" type="t:FolderIdType"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SyncFolderHierarchyChangesType">
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded" minOccurs="0">
+ <xs:element name="Create" type="t:SyncFolderHierarchyCreateOrUpdateType"/>
+ <xs:element name="Update" type="t:SyncFolderHierarchyCreateOrUpdateType"/>
+ <xs:element name="Delete" type="t:SyncFolderHierarchyDeleteType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="MaxSyncChangesReturnedType">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1" />
+ <xs:maxInclusive value="512" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="SyncFolderItemsScopeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NormalItems" />
+ <xs:enumeration value="NormalAndAssociatedItems" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Availability Service types -->
+
+ <xs:simpleType name="AvailabilityProxyRequestType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CrossSite" />
+ <xs:enumeration value="CrossForest" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="RequestTypeHeader">
+ <xs:sequence>
+ <xs:element name="RequestType" type="t:AvailabilityProxyRequestType" minOccurs ="1" maxOccurs ="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="MeetingAttendeeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Organizer"/>
+ <xs:enumeration value="Required"/>
+ <xs:enumeration value="Optional"/>
+ <xs:enumeration value="Room"/>
+ <xs:enumeration value="Resource"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="CalendarEventDetails">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="ID" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="1" name="Subject" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="1" name="Location" type="xs:string" />
+ <xs:element minOccurs="1" maxOccurs="1" name="IsMeeting" type="xs:boolean" />
+ <xs:element minOccurs="1" maxOccurs="1" name="IsRecurring" type="xs:boolean" />
+ <xs:element minOccurs="1" maxOccurs="1" name="IsException" type="xs:boolean" />
+ <xs:element minOccurs="1" maxOccurs="1" name="IsReminderSet" type="xs:boolean" />
+ <xs:element minOccurs="1" maxOccurs="1" name="IsPrivate" type="xs:boolean" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CalendarEvent">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="StartTime" type="xs:dateTime" />
+ <xs:element minOccurs="1" maxOccurs="1" name="EndTime" type="xs:dateTime" />
+ <xs:element minOccurs="1" maxOccurs="1" name="BusyType" type="t:LegacyFreeBusyType" />
+ <xs:element minOccurs="0" maxOccurs="1" name="CalendarEventDetails" type="t:CalendarEventDetails" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfCalendarEvent">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="CalendarEvent" type="t:CalendarEvent" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Duration">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="StartTime" type="xs:dateTime" />
+ <xs:element minOccurs="1" maxOccurs="1" name="EndTime" type="xs:dateTime" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EmailAddress">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
+ <xs:element minOccurs="1" maxOccurs="1" name="Address" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="1" name="RoutingType" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="Mailbox" type="t:EmailAddress" />
+
+ <xs:simpleType name="FreeBusyViewType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="MergedOnly" />
+ <xs:enumeration value="FreeBusy" />
+ <xs:enumeration value="FreeBusyMerged" />
+ <xs:enumeration value="Detailed" />
+ <xs:enumeration value="DetailedMerged" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:complexType name="FreeBusyViewOptionsType">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="TimeWindow" type="t:Duration" />
+ <xs:element minOccurs="0" maxOccurs="1" name="MergedFreeBusyIntervalInMinutes" type="xs:int" />
+ <xs:element minOccurs="0" maxOccurs="1" name="RequestedView" type="t:FreeBusyViewType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="FreeBusyViewOptions" type="t:FreeBusyViewOptionsType" />
+
+ <xs:complexType name="WorkingPeriod">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="DayOfWeek" type="t:DaysOfWeekType" />
+ <xs:element minOccurs="1" maxOccurs="1" name="StartTimeInMinutes" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="1" name="EndTimeInMinutes" type="xs:int" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfWorkingPeriod">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="WorkingPeriod" type="t:WorkingPeriod" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SerializableTimeZoneTime">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="Bias" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="1" name="Time" type="xs:string" />
+ <xs:element minOccurs="1" maxOccurs="1" name="DayOrder" type="xs:short" />
+ <xs:element minOccurs="1" maxOccurs="1" name="Month" type="xs:short" />
+ <xs:element minOccurs="1" maxOccurs="1" name="DayOfWeek" type="t:DayOfWeekType" />
+ <xs:element minOccurs="0" maxOccurs="1" name="Year" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SerializableTimeZone">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="Bias" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="1" name="StandardTime" type="t:SerializableTimeZoneTime" />
+ <xs:element minOccurs="1" maxOccurs="1" name="DaylightTime" type="t:SerializableTimeZoneTime" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="TimeZone" type="t:SerializableTimeZone" />
+
+ <xs:complexType name="WorkingHours">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="TimeZone" type="t:SerializableTimeZone" />
+ <xs:element minOccurs="1" maxOccurs="1" name="WorkingPeriodArray" type="t:ArrayOfWorkingPeriod" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FreeBusyView">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="FreeBusyViewType" type="t:FreeBusyViewType" />
+ <xs:element minOccurs="0" maxOccurs="1" name="MergedFreeBusy" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="1" name="CalendarEventArray" type="t:ArrayOfCalendarEvent" />
+ <xs:element minOccurs="0" maxOccurs="1" name="WorkingHours" type="t:WorkingHours" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MailboxData">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="Email" type="t:EmailAddress" />
+ <xs:element minOccurs="1" maxOccurs="1" name="AttendeeType" type="t:MeetingAttendeeType" />
+ <xs:element minOccurs="0" maxOccurs="1" name="ExcludeConflicts" type="xs:boolean" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfMailboxData">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="MailboxData" nillable="true" type="t:MailboxData" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="SuggestionQuality">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Excellent" />
+ <xs:enumeration value="Good" />
+ <xs:enumeration value="Fair" />
+ <xs:enumeration value="Poor" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="SuggestionsViewOptionsType">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="GoodThreshold" type="xs:int" />
+ <xs:element minOccurs="0" maxOccurs="1" name="MaximumResultsByDay" type="xs:int" />
+ <xs:element minOccurs="0" maxOccurs="1" name="MaximumNonWorkHourResultsByDay" type="xs:int" />
+ <xs:element minOccurs="0" maxOccurs="1" name="MeetingDurationInMinutes" type="xs:int" />
+ <xs:element minOccurs="0" maxOccurs="1" name="MinimumSuggestionQuality" type="t:SuggestionQuality" />
+ <xs:element minOccurs="1" maxOccurs="1" name="DetailedSuggestionsWindow" type="t:Duration" />
+ <xs:element minOccurs="0" maxOccurs="1" name="CurrentMeetingTime" type="xs:dateTime" />
+ <xs:element minOccurs="0" maxOccurs="1" name="GlobalObjectId" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="SuggestionsViewOptions" type="t:SuggestionsViewOptionsType" />
+
+ <xs:complexType name="ArrayOfAttendeeConflictData">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element minOccurs="1" maxOccurs="1" name="UnknownAttendeeConflictData" nillable="true" type="t:UnknownAttendeeConflictData" />
+ <xs:element minOccurs="1" maxOccurs="1" name="IndividualAttendeeConflictData" nillable="true" type="t:IndividualAttendeeConflictData" />
+ <xs:element minOccurs="1" maxOccurs="1" name="TooBigGroupAttendeeConflictData" nillable="true" type="t:TooBigGroupAttendeeConflictData" />
+ <xs:element minOccurs="1" maxOccurs="1" name="GroupAttendeeConflictData" nillable="true" type="t:GroupAttendeeConflictData" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="AttendeeConflictData" abstract="true"/>
+
+ <xs:complexType name="UnknownAttendeeConflictData">
+ <xs:complexContent mixed="false">
+ <xs:extension base="t:AttendeeConflictData" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="TooBigGroupAttendeeConflictData">
+ <xs:complexContent mixed="false">
+ <xs:extension base="t:AttendeeConflictData" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="IndividualAttendeeConflictData">
+ <xs:complexContent mixed="false">
+ <xs:extension base="t:AttendeeConflictData">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="BusyType" type="t:LegacyFreeBusyType" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="GroupAttendeeConflictData">
+ <xs:complexContent mixed="false">
+ <xs:extension base="t:AttendeeConflictData">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembers" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembersAvailable" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembersWithConflict" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembersWithNoData" type="xs:int" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Suggestion">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="MeetingTime" type="xs:dateTime" />
+ <xs:element minOccurs="1" maxOccurs="1" name="IsWorkTime" type="xs:boolean" />
+ <xs:element minOccurs="1" maxOccurs="1" name="SuggestionQuality" type="t:SuggestionQuality" />
+ <xs:element minOccurs="0" maxOccurs="1" name="AttendeeConflictDataArray" type="t:ArrayOfAttendeeConflictData" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfSuggestion">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Suggestion" type="t:Suggestion" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SuggestionDayResult">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime" />
+ <xs:element minOccurs="1" maxOccurs="1" name="DayQuality" type="t:SuggestionQuality" />
+ <xs:element minOccurs="0" maxOccurs="1" name="SuggestionArray" type="t:ArrayOfSuggestion" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfSuggestionDayResult">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="SuggestionDayResult" type="t:SuggestionDayResult" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="OofState">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Disabled" />
+ <xs:enumeration value="Enabled" />
+ <xs:enumeration value="Scheduled" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ExternalAudience">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="Known" />
+ <xs:enumeration value="All" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ReplyBody">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="Message" type="xs:string" />
+ </xs:sequence>
+ <xs:attribute ref="xml:lang" use="optional" />
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfEventIDType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="EventToDeleteID" type="xs:string" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="UserOofSettings">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="OofState" type="t:OofState" />
+ <xs:element minOccurs="1" maxOccurs="1" name="ExternalAudience" type="t:ExternalAudience" />
+ <xs:element minOccurs="0" maxOccurs="1" name="Duration" type="t:Duration" />
+ <xs:element minOccurs="0" maxOccurs="1" name="InternalReply" type="t:ReplyBody" />
+ <xs:element minOccurs="0" maxOccurs="1" name="ExternalReply" type="t:ReplyBody" />
+ <xs:element minOccurs="0" maxOccurs="1" name="DeclineMeetingReply" type="t:ReplyBody" />
+ <xs:element minOccurs="0" maxOccurs="1" name="DeclineEventsForScheduledOOF" type="xs:boolean" />
+ <xs:element minOccurs="0" maxOccurs="1" name="DeclineAllEventsForScheduledOOF" type="xs:boolean" />
+ <xs:element minOccurs="0" maxOccurs="1" name="CreateOOFEvent" type="xs:boolean" />
+ <xs:element minOccurs="0" maxOccurs="1" name="OOFEventSubject" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="1" name="AutoDeclineFutureRequestsWhenOOF" type="xs:boolean" />
+ <xs:element minOccurs="0" maxOccurs="1" name="OOFEventID" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="1" name="EventsToDeleteIDs" type="t:ArrayOfEventIDType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="OofSettings" type="t:UserOofSettings" />
+ <xs:element name="UserOofSettings" type="t:UserOofSettings" />
+
+ <!-- Value used in Message Xml -->
+ <xs:complexType name="Value">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="Name" type="xs:string" use="required" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:element name="Value" type="t:Value"/>
+
+ <!-- ApprovalRequestDataType -->
+ <xs:complexType name="ApprovalRequestDataType">
+ <xs:sequence>
+ <xs:element name="IsUndecidedApprovalRequest" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="ApprovalDecision" type="xs:int" minOccurs="0"/>
+ <xs:element name="ApprovalDecisionMaker" type="xs:string" minOccurs="0"/>
+ <xs:element name="ApprovalDecisionTime" type="xs:dateTime" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- ReminderMessageDataType -->
+ <xs:complexType name="ReminderMessageDataType">
+ <xs:sequence>
+ <xs:element name="ReminderText" type="xs:string" minOccurs="0"/>
+ <xs:element name="Location" type="xs:string" minOccurs="0"/>
+ <xs:element name="StartTime" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="EndTime" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="AssociatedCalendarItemId" type="t:ItemIdType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- SendPromptType -->
+ <xs:simpleType name="SendPromptType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="Send" />
+ <xs:enumeration value="VotingOption" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- VotingOptionDataType -->
+ <xs:complexType name="VotingOptionDataType">
+ <xs:sequence>
+ <xs:element name="DisplayName" type="xs:string" minOccurs="0"/>
+ <xs:element name="SendPrompt" type="t:SendPromptType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfVotingOptionDataType">
+ <xs:sequence>
+ <xs:element name="VotingOptionData" type="t:VotingOptionDataType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- VotingInformationType -->
+ <xs:complexType name="VotingInformationType">
+ <xs:sequence>
+ <xs:element name="UserOptions" type="t:ArrayOfVotingOptionDataType" minOccurs="0"/>
+ <xs:element name="VotingResponse" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- SP1 Id Conversion types -->
+ <xs:simpleType name="IdFormatType">
+ <xs:annotation>
+ <xs:documentation>Surfaces the various id types that are supported for conversion</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="EwsLegacyId"/>
+ <xs:enumeration value="EwsId"/>
+ <xs:enumeration value="EntryId"/>
+ <xs:enumeration value="HexEntryId"/>
+ <xs:enumeration value="StoreId"/>
+ <xs:enumeration value="OwaId"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="AlternateIdBaseType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>
+ Surfaces alternate representations of an item or folder id. No change key is included.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="Format" type="t:IdFormatType" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="AlternateIdType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents an alternate mailbox folder or item Id.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:AlternateIdBaseType">
+ <xs:attribute name="Id" type="xs:string" use="required"/>
+ <xs:attribute name="Mailbox" type="t:NonEmptyStringType" use="required"/>
+ <xs:attribute name="IsArchive" type="xs:boolean" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AlternatePublicFolderIdType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents an alternate public folder Id.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:AlternateIdBaseType">
+ <xs:attribute name="FolderId" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AlternatePublicFolderItemIdType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents an alternate public folder item Id.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:AlternatePublicFolderIdType">
+ <xs:attribute name="ItemId" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfAlternateIdsType">
+ <xs:annotation>
+ <xs:documentation>
+ A non-empty array of alternate Ids.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="AlternateId" type="t:AlternateIdType"/>
+ <xs:element name="AlternatePublicFolderId" type="t:AlternatePublicFolderIdType"/>
+ <xs:element name="AlternatePublicFolderItemId" type="t:AlternatePublicFolderItemIdType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="UserIdType">
+ <xs:sequence>
+ <xs:element name="SID" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="PrimarySmtpAddress" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DisplayName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DistinguishedUser" type="t:DistinguishedUserType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ExternalUserIdentity" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="DistinguishedUserType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Default" />
+ <xs:enumeration value="Anonymous" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ArrayOfPermissionsType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Permission" type="t:PermissionType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfCalendarPermissionsType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="CalendarPermission" type="t:CalendarPermissionType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfUnknownEntriesType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="UnknownEntry" type="xs:string" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:simpleType name="PermissionReadAccessType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="FullDetails" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="CalendarPermissionReadAccessType">
+ <xs:restriction base ="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="TimeOnly"/>
+ <xs:enumeration value="TimeAndSubjectAndLocation"/>
+ <xs:enumeration value="FullDetails"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="BasePermissionType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>A permission on a folder</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="UserId" type="t:UserIdType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="CanCreateItems" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="CanCreateSubFolders" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsFolderOwner" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsFolderVisible" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsFolderContact" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EditItems" type="t:PermissionActionType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DeleteItems" type="t:PermissionActionType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PermissionType">
+ <xs:annotation>
+ <xs:documentation>A permission on a folder</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:BasePermissionType">
+ <xs:sequence>
+ <xs:element name="ReadItems" type="t:PermissionReadAccessType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="PermissionLevel" type="t:PermissionLevelType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="CalendarPermissionType">
+ <xs:complexContent>
+ <xs:extension base="t:BasePermissionType">
+ <xs:sequence>
+ <xs:element name="ReadItems" type="t:CalendarPermissionReadAccessType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="CalendarPermissionLevel" type="t:CalendarPermissionLevelType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="PermissionActionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="Owned" />
+ <xs:enumeration value="All" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="PermissionLevelType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="Owner" />
+ <xs:enumeration value="PublishingEditor" />
+ <xs:enumeration value="Editor" />
+ <xs:enumeration value="PublishingAuthor" />
+ <xs:enumeration value="Author" />
+ <xs:enumeration value="NoneditingAuthor" />
+ <xs:enumeration value="Reviewer" />
+ <xs:enumeration value="Contributor" />
+ <xs:enumeration value="Custom" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="CalendarPermissionLevelType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="Owner" />
+ <xs:enumeration value="PublishingEditor" />
+ <xs:enumeration value="Editor" />
+ <xs:enumeration value="PublishingAuthor" />
+ <xs:enumeration value="Author" />
+ <xs:enumeration value="NoneditingAuthor" />
+ <xs:enumeration value="Reviewer" />
+ <xs:enumeration value="Contributor" />
+ <xs:enumeration value="FreeBusyTimeOnly" />
+ <xs:enumeration value="FreeBusyTimeAndSubjectAndLocation" />
+ <xs:enumeration value="Custom" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="PermissionSetType">
+ <xs:annotation>
+ <xs:documentation>The set of permissions on a folder</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Permissions" type="t:ArrayOfPermissionsType" />
+ <xs:element name="UnknownEntries" type="t:ArrayOfUnknownEntriesType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CalendarPermissionSetType">
+ <xs:annotation>
+ <xs:documentation>The set of permissions on a folder</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="CalendarPermissions" type="t:ArrayOfCalendarPermissionsType" />
+ <xs:element name="UnknownEntries" type="t:ArrayOfUnknownEntriesType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EffectiveRightsType">
+ <xs:sequence>
+ <xs:element name="CreateAssociated" type="xs:boolean" />
+ <xs:element name="CreateContents" type="xs:boolean" />
+ <xs:element name="CreateHierarchy" type="xs:boolean" />
+ <xs:element name="Delete" type="xs:boolean" />
+ <xs:element name="Modify" type="xs:boolean" />
+ <xs:element name="Read" type="xs:boolean" />
+ <xs:element name="ViewPrivateItems" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Delegate Management types -->
+
+ <xs:complexType name="ArrayOfDelegateUserType">
+ <xs:sequence>
+ <xs:element name="DelegateUser" type="t:DelegateUserType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfUserIdType">
+ <xs:sequence>
+ <xs:element name="UserId" type="t:UserIdType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="DeliverMeetingRequestsType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DelegatesOnly"/>
+ <xs:enumeration value="DelegatesAndMe"/>
+ <xs:enumeration value="DelegatesAndSendInformationToMe"/>
+ <xs:enumeration value="NoForward"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="DelegateUserType">
+ <xs:sequence>
+ <xs:element name="UserId" type="t:UserIdType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="DelegatePermissions" type="t:DelegatePermissionsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ReceiveCopiesOfMeetingMessages" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ViewPrivateItems" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DelegatePermissionsType">
+ <xs:sequence>
+ <xs:element name="CalendarFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="TasksFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="InboxFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ContactsFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="NotesFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="JournalFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="DelegateFolderPermissionLevelType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="Editor"/>
+ <xs:enumeration value="Reviewer"/>
+ <xs:enumeration value="Author"/>
+ <xs:enumeration value="Custom"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ConflictResultsType">
+ <xs:sequence>
+ <xs:element name="Count" type="xs:int"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- MailTips Types -->
+
+ <xs:simpleType name="MailTipTypes">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="All" />
+ <xs:enumeration value="OutOfOfficeMessage" />
+ <xs:enumeration value="MailboxFullStatus" />
+ <xs:enumeration value="CustomMailTip" />
+ <xs:enumeration value="ExternalMemberCount" />
+ <xs:enumeration value="TotalMemberCount" />
+ <xs:enumeration value="MaxMessageSize" />
+ <xs:enumeration value="DeliveryRestriction" />
+ <xs:enumeration value="ModerationStatus" />
+ <xs:enumeration value="InvalidRecipient" />
+ <xs:enumeration value="Scope" />
+ <xs:enumeration value="RecipientSuggestions" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:complexType name="OutOfOfficeMailTip">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="ReplyBody" type="t:ReplyBody"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="Duration" type="t:Duration"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SmtpDomainList">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Domain" type="t:SmtpDomain"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SmtpDomain">
+ <xs:attribute name="Name" type="xs:string" use="required"/>
+ <xs:attribute name="IncludeSubdomains" type="xs:boolean" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="MailTips">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="RecipientAddress" type="t:EmailAddressType" />
+ <xs:element minOccurs="1" maxOccurs="1" name="PendingMailTips" type="t:MailTipTypes" />
+ <xs:element minOccurs="0" maxOccurs="1" name="OutOfOffice" type="t:OutOfOfficeMailTip" />
+ <xs:element minOccurs="0" maxOccurs="1" name="MailboxFull" type="xs:boolean" />
+ <xs:element minOccurs="0" maxOccurs="1" name="CustomMailTip" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="1" name="TotalMemberCount" type="xs:int" />
+ <xs:element minOccurs="0" maxOccurs="1" name="ExternalMemberCount" type="xs:int" />
+ <xs:element minOccurs="0" maxOccurs="1" name="MaxMessageSize" type="xs:int" />
+ <xs:element minOccurs="0" maxOccurs="1" name="DeliveryRestricted" type="xs:boolean" />
+ <xs:element minOccurs="0" maxOccurs="1" name="IsModerated" type="xs:boolean" />
+ <xs:element minOccurs="0" maxOccurs="1" name="InvalidRecipient" type="xs:boolean" />
+ <xs:element minOccurs="0" maxOccurs="1" name="Scope" type="xs:int" />
+ <xs:element minOccurs="0" maxOccurs="1" name="RecipientSuggestions" type="t:ArrayOfRecipientSuggestionsType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfRecipientSuggestionsType">
+ <xs:sequence>
+ <xs:element name="RecipientSuggestion" type="t:RecipientSuggestionType" minOccurs="0" maxOccurs="3" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="RecipientSuggestionType">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="DisplayName" type="xs:string" />
+ <xs:element minOccurs="1" maxOccurs="1" name="EmailAddress" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- GetServiceConfiguration Types -->
+ <xs:simpleType name="ServiceConfigurationType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MailTips" />
+ <xs:enumeration value="UnifiedMessagingConfiguration" />
+ <xs:enumeration value="ProtectionRules" />
+ <xs:enumeration value="PolicyNudges" />
+ <xs:enumeration value="SharePointURLs" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:complexType name="ServiceConfiguration">
+ <!-- this 'base class' is available for ErrorCode / ErrorMessage
+ elements if those become necessary in the future. -->
+ </xs:complexType>
+
+ <xs:complexType name="MailTipsServiceConfiguration">
+ <xs:complexContent>
+ <xs:extension base="t:ServiceConfiguration">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="MailTipsEnabled" type="xs:boolean" />
+ <xs:element minOccurs="1" maxOccurs="1" name="MaxRecipientsPerGetMailTipsRequest" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="1" name="MaxMessageSize" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="1" name="LargeAudienceThreshold" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="1" name="ShowExternalRecipientCount" type="xs:boolean" />
+ <xs:element minOccurs="1" maxOccurs="1" name="InternalDomains" type="t:SmtpDomainList"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="PolicyTipsEnabled" type="xs:boolean" />
+ <xs:element minOccurs="1" maxOccurs="1" name="LargeAudienceCap" type="xs:int" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="UnifiedMessageServiceConfiguration">
+ <xs:complexContent>
+ <xs:extension base="t:ServiceConfiguration">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="UmEnabled" type="xs:boolean" />
+ <xs:element minOccurs="1" maxOccurs="1" name="PlayOnPhoneDialString" type="xs:string"/>
+ <xs:element minOccurs="1" maxOccurs="1" name="PlayOnPhoneEnabled" type="xs:boolean" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SharePointURLsServiceConfiguration">
+ <xs:complexContent>
+ <xs:extension base="t:ServiceConfiguration">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="InternalSPMySiteHostURL" type="xs:string" />
+ <xs:element minOccurs="1" maxOccurs="1" name="ExternalSPMySiteHostURL" type="xs:string" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ConfigurationRequestDetailsType">
+ <xs:choice minOccurs="1" maxOccurs="1">
+ <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" namespace="##any"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- Sharing Types -->
+ <xs:complexType name="ArrayOfSmtpAddressType">
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="SmtpAddress" type="t:NonEmptyStringType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfEncryptedSharedFolderDataType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="EncryptedSharedFolderData" type="t:EncryptedSharedFolderDataType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="EncryptedSharedFolderDataType">
+ <xs:sequence>
+ <xs:element name="Token" type="t:EncryptedDataContainerType"/>
+ <xs:element name="Data" type="t:EncryptedDataContainerType"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EncryptedDataContainerType">
+ <xs:sequence>
+ <xs:any processContents="skip" namespace="##other"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfInvalidRecipientsType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="InvalidRecipient" type="t:InvalidRecipientType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="InvalidRecipientType">
+ <xs:sequence>
+ <xs:element name="SmtpAddress" type="t:NonEmptyStringType"/>
+ <xs:element name="ResponseCode" type="t:InvalidRecipientResponseCodeType"/>
+ <xs:element name="MessageText" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="InvalidRecipientResponseCodeType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the message keys that can be returned for invalid recipients
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="OtherError"/>
+ <xs:enumeration value="RecipientOrganizationNotFederated"/>
+ <xs:enumeration value="CannotObtainTokenFromSTS"/>
+ <xs:enumeration value="SystemPolicyBlocksSharingWithThisRecipient"/>
+ <xs:enumeration value="RecipientOrganizationFederatedWithUnknownTokenIssuer"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="AcceptSharingInvitationType">
+ <xs:complexContent>
+ <xs:extension base="t:ReferenceItemResponseType"/>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="SharingDataType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Calendar" />
+ <xs:enumeration value="Contacts" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- UMTypes -->
+ <xs:complexType name="PhoneCallIdType">
+ <xs:attribute name="Id" type="xs:string" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="PhoneCallInformationType">
+ <xs:sequence>
+ <xs:element name="PhoneCallState" type="t:PhoneCallStateType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ConnectionFailureCause" type="t:ConnectionFailureCauseType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SIPResponseText" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SIPResponseCode" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="PhoneCallStateType">
+ <xs:restriction base ="xs:string">
+ <xs:enumeration value="Idle"/>
+ <xs:enumeration value="Connecting"/>
+ <xs:enumeration value="Alerted"/>
+ <xs:enumeration value="Connected"/>
+ <xs:enumeration value="Disconnected"/>
+ <xs:enumeration value="Incoming"/>
+ <xs:enumeration value="Transferring"/>
+ <xs:enumeration value="Forwarding"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ConnectionFailureCauseType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="UserBusy"/>
+ <xs:enumeration value="NoAnswer"/>
+ <xs:enumeration value="Unavailable"/>
+ <xs:enumeration value="Other"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- UserConfiguration Types -->
+
+ <xs:complexType name="UserConfigurationNameType">
+ <xs:complexContent>
+ <xs:extension base="t:TargetFolderIdType">
+ <xs:attribute name="Name" type="t:NonEmptyStringType" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="UserConfigurationDictionaryObjectTypesType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DateTime"/>
+ <xs:enumeration value="Boolean"/>
+ <xs:enumeration value="Byte"/>
+ <xs:enumeration value="String"/>
+ <xs:enumeration value="Integer32"/>
+ <xs:enumeration value="UnsignedInteger32"/>
+ <xs:enumeration value="Integer64"/>
+ <xs:enumeration value="UnsignedInteger64"/>
+ <xs:enumeration value="StringArray"/>
+ <xs:enumeration value="ByteArray"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="UserConfigurationDictionaryObjectType">
+ <xs:sequence>
+ <xs:element name="Type" type="t:UserConfigurationDictionaryObjectTypesType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="UserConfigurationDictionaryEntryType">
+ <xs:sequence>
+ <xs:element name="DictionaryKey" type="t:UserConfigurationDictionaryObjectType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="DictionaryValue" type="t:UserConfigurationDictionaryObjectType" nillable="true" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="UserConfigurationDictionaryType">
+ <xs:sequence>
+ <xs:element name="DictionaryEntry" type="t:UserConfigurationDictionaryEntryType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="UserConfigurationType">
+ <xs:sequence>
+ <xs:element name="UserConfigurationName" type="t:UserConfigurationNameType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Dictionary" type="t:UserConfigurationDictionaryType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="XmlData" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="BinaryData" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="UserConfigurationPropertyType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Id"/>
+ <xs:enumeration value="Dictionary"/>
+ <xs:enumeration value="XmlData"/>
+ <xs:enumeration value="BinaryData"/>
+ <xs:enumeration value="All"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:complexType name="ProtectionRulesServiceConfiguration">
+ <xs:complexContent>
+ <xs:extension base="t:ServiceConfiguration">
+ <xs:sequence>
+ <xs:element name="Rules" type="t:ArrayOfProtectionRulesType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="InternalDomains" type="t:SmtpDomainList" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ <xs:attribute name="RefreshInterval" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfProtectionRulesType">
+ <xs:sequence>
+ <xs:element name="Rule" type="t:ProtectionRuleType" minOccurs="0" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ProtectionRuleType">
+ <xs:sequence>
+ <xs:element name="Condition" type="t:ProtectionRuleConditionType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Action" type="t:ProtectionRuleActionType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="Name" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="UserOverridable" type="xs:boolean" use="required" />
+ <xs:attribute name="Priority" use="required" >
+ <xs:simpleType>
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+
+ <xs:complexType name="ProtectionRuleConditionType">
+ <xs:choice minOccurs="1" maxOccurs="1">
+ <xs:element name="AllInternal" type="t:ProtectionRuleAllInternalType" />
+ <xs:element name="And" type="t:ProtectionRuleAndType" />
+ <xs:element name="RecipientIs" type="t:ProtectionRuleRecipientIsType" />
+ <xs:element name="SenderDepartments" type="t:ProtectionRuleSenderDepartmentsType" />
+ <xs:element name="True" type="t:ProtectionRuleTrueType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ProtectionRuleAndType">
+ <xs:sequence>
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="AllInternal" type="t:ProtectionRuleAllInternalType" />
+ <xs:element name="And" type="t:ProtectionRuleAndType" />
+ <xs:element name="RecipientIs" type="t:ProtectionRuleRecipientIsType" />
+ <xs:element name="SenderDepartments" type="t:ProtectionRuleSenderDepartmentsType" />
+ <xs:element name="True" type="t:ProtectionRuleTrueType" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ProtectionRuleRecipientIsType">
+ <xs:sequence>
+ <xs:element name="Value" type="t:ProtectionRuleValueType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ProtectionRuleSenderDepartmentsType">
+ <xs:sequence>
+ <xs:element name="Value" type="t:ProtectionRuleValueType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="ProtectionRuleTrueType">
+ <xs:restriction base="xs:string">
+ <xs:length value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ProtectionRuleAllInternalType">
+ <xs:restriction base="xs:string">
+ <xs:length value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ProtectionRuleValueType">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ProtectionRuleActionKindType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="RightsProtectMessage"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ProtectionRuleActionType">
+ <xs:sequence>
+ <xs:element name="Argument" type="t:ProtectionRuleArgumentType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="Name" use="required" type="t:ProtectionRuleActionKindType" />
+ </xs:complexType>
+
+ <xs:complexType name="ProtectionRuleArgumentType">
+ <xs:attribute name="Value" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+
+ <!-- Policy Nudge Rules -->
+
+ <xs:complexType name="PolicyNudgeRulesServiceConfiguration">
+ <xs:sequence>
+ <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" namespace="##any"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfFolderIdType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="FolderId" type="t:FolderIdType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- SetTeamMailbox -->
+ <xs:simpleType name="TeamMailboxLifecycleStateType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Active" />
+ <xs:enumeration value="Closed" />
+ <xs:enumeration value="Unlinked" />
+ <xs:enumeration value="PendingDelete" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Report Message Action-->
+ <xs:simpleType name="ReportMessageActionType">
+ <xs:annotation>
+ <xs:documentation>Surfaces the various report message action types</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Junk"/>
+ <xs:enumeration value="NotJunk"/>
+ <xs:enumeration value="Phish"/>
+ <xs:enumeration value="Unsubscribe"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- MessageTracking -->
+ <xs:complexType name="FindMessageTrackingSearchResultType">
+ <xs:all>
+ <xs:element name="Subject" type="xs:string" />
+ <xs:element name="Sender" type="t:EmailAddressType" />
+ <xs:element name="PurportedSender" type="t:EmailAddressType" minOccurs="0"/>
+ <xs:element name="Recipients" type="t:ArrayOfRecipientsType" />
+ <xs:element name="SubmittedTime" type="xs:dateTime" />
+ <xs:element name="MessageTrackingReportId" type="t:NonEmptyStringType" />
+ <xs:element name="PreviousHopServer" type="t:NonEmptyStringType" minOccurs="0" />
+ <xs:element name="FirstHopServer" type="t:NonEmptyStringType" minOccurs="0" />
+ <xs:element name="Properties" type="t:ArrayOfTrackingPropertiesType" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfFindMessageTrackingSearchResultType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="MessageTrackingSearchResult" type="t:FindMessageTrackingSearchResultType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:simpleType name="MessageTrackingReportTemplateType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Summary" />
+ <xs:enumeration value="RecipientPath" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="RecipientTrackingEventType">
+ <xs:all>
+ <xs:element name="Date" type="xs:dateTime" />
+ <xs:element name="Recipient" type="t:EmailAddressType" />
+ <xs:element name="DeliveryStatus" type="xs:string" />
+ <xs:element name="EventDescription" type="xs:string" />
+ <xs:element name="EventData" type="t:ArrayOfStringsType" minOccurs="0"/>
+ <xs:element name="Server" type="t:NonEmptyStringType" />
+ <xs:element name="InternalId" type="xs:nonNegativeInteger" />
+ <xs:element name="BccRecipient" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="HiddenRecipient" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="UniquePathId" type="t:NonEmptyStringType" minOccurs="0"/>
+ <xs:element name="RootAddress" type="t:NonEmptyStringType" minOccurs="0"/>
+ <xs:element name="Properties" type="t:ArrayOfTrackingPropertiesType" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+
+ <xs:complexType name="MessageTrackingReportType">
+ <xs:all>
+ <xs:element name="Sender" type="t:EmailAddressType" minOccurs="0"/>
+ <xs:element name="PurportedSender" type="t:EmailAddressType" minOccurs="0"/>
+ <xs:element name="Subject" type="xs:string" minOccurs="0"/>
+ <xs:element name="SubmitTime" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="OriginalRecipients" type="t:ArrayOfEmailAddressesType" minOccurs="0" />
+ <xs:element name="RecipientTrackingEvents" type="t:ArrayOfRecipientTrackingEventType" />
+ <xs:element name="Properties" type="t:ArrayOfTrackingPropertiesType" minOccurs="0" />
+ </xs:all>
+ </xs:complexType>
+
+ <xs:complexType name="TrackingPropertyType">
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Value" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfTrackingPropertiesType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="TrackingPropertyType" type="t:TrackingPropertyType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfArraysOfTrackingPropertiesType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="ArrayOfTrackingPropertiesType" type="t:ArrayOfTrackingPropertiesType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfRecipientTrackingEventType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="RecipientTrackingEvent" type="t:RecipientTrackingEventType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- Rules -->
+ <xs:complexType name="RulePredicateSizeRangeType">
+ <xs:annotation>
+ <xs:documentation>Size range type used for the WithinSizeRange rule predicate.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="MinimumSize" type="xs:int" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MaximumSize" type="xs:int" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="RulePredicateDateRangeType">
+ <xs:annotation>
+ <xs:documentation>Date range type used for the WithinDateRange rule predicate.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="StartDateTime" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EndDateTime" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="FlaggedForActionType">
+ <xs:annotation>
+ <xs:documentation>Flagged for action enumeration, currently used in FlaggedForAction rule predicate</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Any" />
+ <xs:enumeration value="Call" />
+ <xs:enumeration value="DoNotForward" />
+ <xs:enumeration value="FollowUp" />
+ <xs:enumeration value="FYI" />
+ <xs:enumeration value="Forward" />
+ <xs:enumeration value="NoResponseNecessary" />
+ <xs:enumeration value="Read" />
+ <xs:enumeration value="Reply" />
+ <xs:enumeration value="ReplyToAll" />
+ <xs:enumeration value="Review" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="RulePredicatesType">
+ <xs:annotation>
+ <xs:documentation>Rule predicates, used as rule conditions or exceptions</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Categories" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ContainsBodyStrings" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ContainsHeaderStrings" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ContainsRecipientStrings" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ContainsSenderStrings" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ContainsSubjectOrBodyStrings" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ContainsSubjectStrings" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FlaggedForAction" type="t:FlaggedForActionType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FromAddresses" type="t:ArrayOfEmailAddressesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FromConnectedAccounts" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="HasAttachments" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Importance" type="t:ImportanceChoicesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsApprovalRequest" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsAutomaticForward" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsAutomaticReply" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsEncrypted" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsMeetingRequest" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsMeetingResponse" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsNDR" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsPermissionControlled" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsReadReceipt" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsSigned" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsVoicemail" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ItemClasses" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MessageClassifications" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="NotSentToMe" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SentCcMe" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SentOnlyToMe" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SentToAddresses" type="t:ArrayOfEmailAddressesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SentToMe" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SentToOrCcMe" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Sensitivity" type="t:SensitivityChoicesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="WithinDateRange" type="t:RulePredicateDateRangeType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="WithinSizeRange" type="t:RulePredicateSizeRangeType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="RuleActionsType">
+ <xs:annotation>
+ <xs:documentation>Rule actions</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="AssignCategories" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CopyToFolder" type="t:TargetFolderIdType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Delete" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ForwardAsAttachmentToRecipients" type="t:ArrayOfEmailAddressesType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ForwardToRecipients" type="t:ArrayOfEmailAddressesType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="MarkImportance" type="t:ImportanceChoicesType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="MarkAsRead" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="MoveToFolder" type="t:TargetFolderIdType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="PermanentDelete" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="RedirectToRecipients" type="t:ArrayOfEmailAddressesType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SendSMSAlertToRecipients" type="t:ArrayOfEmailAddressesType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ServerReplyWithMessage" type="t:ItemIdType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="StopProcessingRules" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="RuleType">
+ <xs:annotation>
+ <xs:documentation>Rule type</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="RuleId" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="DisplayName" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Priority" type="xs:int" minOccurs="1" maxOccurs="1" />
+ <xs:element name="IsEnabled" type="xs:boolean" minOccurs="1" maxOccurs="1" />
+ <xs:element name="IsNotSupported" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="IsInError" type="xs:boolean" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Conditions" type="t:RulePredicatesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Exceptions" type="t:RulePredicatesType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Actions" type="t:RuleActionsType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfRulesType">
+ <xs:annotation>
+ <xs:documentation>Array of rule objects</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Rule" type="t:RuleType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="RuleFieldURIType">
+ <xs:annotation>
+ <xs:documentation>Rule field URI enumerates all possible rule fields that could trigger validation error</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="RuleId" />
+ <xs:enumeration value="DisplayName" />
+ <xs:enumeration value="Priority" />
+ <xs:enumeration value="IsNotSupported" />
+ <xs:enumeration value="Actions" />
+ <xs:enumeration value="Condition:Categories" />
+ <xs:enumeration value="Condition:ContainsBodyStrings" />
+ <xs:enumeration value="Condition:ContainsHeaderStrings" />
+ <xs:enumeration value="Condition:ContainsRecipientStrings" />
+ <xs:enumeration value="Condition:ContainsSenderStrings" />
+ <xs:enumeration value="Condition:ContainsSubjectOrBodyStrings" />
+ <xs:enumeration value="Condition:ContainsSubjectStrings" />
+ <xs:enumeration value="Condition:FlaggedForAction" />
+ <xs:enumeration value="Condition:FromAddresses" />
+ <xs:enumeration value="Condition:FromConnectedAccounts" />
+ <xs:enumeration value="Condition:HasAttachments" />
+ <xs:enumeration value="Condition:Importance" />
+ <xs:enumeration value="Condition:IsApprovalRequest" />
+ <xs:enumeration value="Condition:IsAutomaticForward" />
+ <xs:enumeration value="Condition:IsAutomaticReply" />
+ <xs:enumeration value="Condition:IsEncrypted" />
+ <xs:enumeration value="Condition:IsMeetingRequest" />
+ <xs:enumeration value="Condition:IsMeetingResponse" />
+ <xs:enumeration value="Condition:IsNDR" />
+ <xs:enumeration value="Condition:IsPermissionControlled" />
+ <xs:enumeration value="Condition:IsReadReceipt" />
+ <xs:enumeration value="Condition:IsSigned" />
+ <xs:enumeration value="Condition:IsVoicemail" />
+ <xs:enumeration value="Condition:ItemClasses" />
+ <xs:enumeration value="Condition:MessageClassifications" />
+ <xs:enumeration value="Condition:NotSentToMe" />
+ <xs:enumeration value="Condition:SentCcMe" />
+ <xs:enumeration value="Condition:SentOnlyToMe" />
+ <xs:enumeration value="Condition:SentToAddresses" />
+ <xs:enumeration value="Condition:SentToMe" />
+ <xs:enumeration value="Condition:SentToOrCcMe" />
+ <xs:enumeration value="Condition:Sensitivity" />
+ <xs:enumeration value="Condition:WithinDateRange" />
+ <xs:enumeration value="Condition:WithinSizeRange" />
+ <xs:enumeration value="Exception:Categories" />
+ <xs:enumeration value="Exception:ContainsBodyStrings" />
+ <xs:enumeration value="Exception:ContainsHeaderStrings" />
+ <xs:enumeration value="Exception:ContainsRecipientStrings" />
+ <xs:enumeration value="Exception:ContainsSenderStrings" />
+ <xs:enumeration value="Exception:ContainsSubjectOrBodyStrings" />
+ <xs:enumeration value="Exception:ContainsSubjectStrings" />
+ <xs:enumeration value="Exception:FlaggedForAction" />
+ <xs:enumeration value="Exception:FromAddresses" />
+ <xs:enumeration value="Exception:FromConnectedAccounts" />
+ <xs:enumeration value="Exception:HasAttachments" />
+ <xs:enumeration value="Exception:Importance" />
+ <xs:enumeration value="Exception:IsApprovalRequest" />
+ <xs:enumeration value="Exception:IsAutomaticForward" />
+ <xs:enumeration value="Exception:IsAutomaticReply" />
+ <xs:enumeration value="Exception:IsEncrypted" />
+ <xs:enumeration value="Exception:IsMeetingRequest" />
+ <xs:enumeration value="Exception:IsMeetingResponse" />
+ <xs:enumeration value="Exception:IsNDR" />
+ <xs:enumeration value="Exception:IsPermissionControlled" />
+ <xs:enumeration value="Exception:IsReadReceipt" />
+ <xs:enumeration value="Exception:IsSigned" />
+ <xs:enumeration value="Exception:IsVoicemail" />
+ <xs:enumeration value="Exception:ItemClasses" />
+ <xs:enumeration value="Exception:MessageClassifications" />
+ <xs:enumeration value="Exception:NotSentToMe" />
+ <xs:enumeration value="Exception:SentCcMe" />
+ <xs:enumeration value="Exception:SentOnlyToMe" />
+ <xs:enumeration value="Exception:SentToAddresses" />
+ <xs:enumeration value="Exception:SentToMe" />
+ <xs:enumeration value="Exception:SentToOrCcMe" />
+ <xs:enumeration value="Exception:Sensitivity" />
+ <xs:enumeration value="Exception:WithinDateRange" />
+ <xs:enumeration value="Exception:WithinSizeRange" />
+ <xs:enumeration value="Action:AssignCategories" />
+ <xs:enumeration value="Action:CopyToFolder" />
+ <xs:enumeration value="Action:Delete" />
+ <xs:enumeration value="Action:ForwardAsAttachmentToRecipients" />
+ <xs:enumeration value="Action:ForwardToRecipients" />
+ <xs:enumeration value="Action:MarkImportance" />
+ <xs:enumeration value="Action:MarkAsRead" />
+ <xs:enumeration value="Action:MoveToFolder" />
+ <xs:enumeration value="Action:PermanentDelete" />
+ <xs:enumeration value="Action:RedirectToRecipients" />
+ <xs:enumeration value="Action:SendSMSAlertToRecipients" />
+ <xs:enumeration value="Action:ServerReplyWithMessage" />
+ <xs:enumeration value="Action:StopProcessingRules" />
+ <xs:enumeration value="IsEnabled" />
+ <xs:enumeration value="IsInError" />
+ <xs:enumeration value="Conditions" />
+ <xs:enumeration value="Exceptions" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="RuleValidationErrorCodeType">
+ <xs:annotation>
+ <xs:documentation>Rule validation error code describing what failed validation for each rule predicate or action.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ADOperationFailure" />
+ <xs:enumeration value="ConnectedAccountNotFound" />
+ <xs:enumeration value="CreateWithRuleId" />
+ <xs:enumeration value="EmptyValueFound" />
+ <xs:enumeration value="DuplicatedPriority" />
+ <xs:enumeration value="DuplicatedOperationOnTheSameRule" />
+ <xs:enumeration value="FolderDoesNotExist" />
+ <xs:enumeration value="InvalidAddress" />
+ <xs:enumeration value="InvalidDateRange" />
+ <xs:enumeration value="InvalidFolderId" />
+ <xs:enumeration value="InvalidSizeRange" />
+ <xs:enumeration value="InvalidValue" />
+ <xs:enumeration value="MessageClassificationNotFound" />
+ <xs:enumeration value="MissingAction" />
+ <xs:enumeration value="MissingParameter" />
+ <xs:enumeration value="MissingRangeValue" />
+ <xs:enumeration value="NotSettable" />
+ <xs:enumeration value="RecipientDoesNotExist" />
+ <xs:enumeration value="RuleNotFound" />
+ <xs:enumeration value="SizeLessThanZero" />
+ <xs:enumeration value="StringValueTooBig" />
+ <xs:enumeration value="UnsupportedAddress" />
+ <xs:enumeration value="UnexpectedError" />
+ <xs:enumeration value="UnsupportedRule" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="RuleValidationErrorType">
+ <xs:annotation>
+ <xs:documentation>Represents a single validation error on a particular rule property value, predicate property value or action property value</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="FieldURI" type="t:RuleFieldURIType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="ErrorCode" type="t:RuleValidationErrorCodeType" minOccurs ="1" maxOccurs="1" />
+ <xs:element name="ErrorMessage" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="FieldValue" type="xs:string" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfRuleValidationErrorsType">
+ <xs:annotation>
+ <xs:documentation>Represents an array of rule validation errors</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Error" type="t:RuleValidationErrorType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="RuleOperationType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>Represents a rule operation to be performed</xs:documentation>
+ </xs:annotation>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfRuleOperationsType">
+ <xs:annotation>
+ <xs:documentation>Represents an array of rule operations to be performed</xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="CreateRuleOperation" type="t:CreateRuleOperationType" />
+ <xs:element name="SetRuleOperation" type="t:SetRuleOperationType" />
+ <xs:element name="DeleteRuleOperation" type="t:DeleteRuleOperationType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="CreateRuleOperationType">
+ <xs:complexContent>
+ <xs:extension base="t:RuleOperationType">
+ <xs:sequence>
+ <xs:element name="Rule" type="t:RuleType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SetRuleOperationType">
+ <xs:complexContent>
+ <xs:extension base="t:RuleOperationType">
+ <xs:sequence>
+ <xs:element name="Rule" type="t:RuleType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="DeleteRuleOperationType">
+ <xs:complexContent>
+ <xs:extension base="t:RuleOperationType">
+ <xs:sequence>
+ <xs:element name="RuleId" type="xs:string" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="RuleOperationErrorType">
+ <xs:sequence>
+ <xs:element name="OperationIndex" type="xs:int" minOccurs="1" maxOccurs="1" />
+ <xs:element name="ValidationErrors" type="t:ArrayOfRuleValidationErrorsType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfRuleOperationErrorsType">
+ <xs:sequence>
+ <xs:element name="RuleOperationError" type="t:RuleOperationErrorType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Begin of mailbox search related types section -->
+
+ <xs:simpleType name="SearchItemKindType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Email" />
+ <xs:enumeration value="Meetings" />
+ <xs:enumeration value="Tasks" />
+ <xs:enumeration value="Notes" />
+ <xs:enumeration value="Docs" />
+ <xs:enumeration value="Journals" />
+ <xs:enumeration value="Contacts" />
+ <xs:enumeration value="Im" />
+ <xs:enumeration value="Voicemail" />
+ <xs:enumeration value="Faxes" />
+ <xs:enumeration value="Posts" />
+ <xs:enumeration value="Rssfeeds" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ArrayOfSearchItemKindsType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of search item kind enum.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="SearchItemKind" type="t:SearchItemKindType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="UserMailboxType">
+ <xs:annotation>
+ <xs:documentation>
+ User Mailbox.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="Id" type="xs:string" use="required"/>
+ <xs:attribute name="IsArchive" type="xs:boolean" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfUserMailboxesType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of user mailbox.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="UserMailbox" type="t:UserMailboxType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SearchableMailboxType">
+ <xs:annotation>
+ <xs:documentation>
+ Searchable mailbox.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Guid" type="t:GuidType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="PrimarySmtpAddress" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="IsExternalMailbox" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ExternalEmailAddress" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="DisplayName" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="IsMembershipGroup" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ReferenceId" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfSearchableMailboxesType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of searchable mailbox.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="SearchableMailbox" type="t:SearchableMailboxType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="KeywordStatisticsSearchResultType">
+ <xs:annotation>
+ <xs:documentation>
+ Keyword statistics search result.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Keyword" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ItemHits" type="xs:int" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Size" type="xs:long" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfKeywordStatisticsSearchResultsType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of keyword statistics result.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="KeywordStat" type="t:KeywordStatisticsSearchResultType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MailboxStatisticsSearchResultType">
+ <xs:annotation>
+ <xs:documentation>
+ Mailbox statistics search result.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="UserMailbox" type="t:UserMailboxType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="KeywordStatisticsSearchResult" type="t:KeywordStatisticsSearchResultType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="ExtendedAttributeType">
+ <xs:annotation>
+ <xs:documentation>
+ Extended attributes of a target mailbox.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfExtendedAttributesType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of extended attributes of a target mailbox
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ExtendedAttribute" type="t:ExtendedAttributeType" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="MailboxSearchLocationType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="PrimaryOnly" />
+ <xs:enumeration value="ArchiveOnly" />
+ <xs:enumeration value="All" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="MailboxSearchScopeType">
+ <xs:annotation>
+ <xs:documentation>
+ Set of mailbox, search scope and its extended attributes.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Mailbox" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SearchScope" type="t:MailboxSearchLocationType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ExtendedAttributes" type="t:ArrayOfExtendedAttributesType" minOccurs="0" maxOccurs="1" nillable="false"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfMailboxSearchScopesType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of mailbox and its search scope.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="MailboxSearchScope" type="t:MailboxSearchScopeType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MailboxQueryType">
+ <xs:annotation>
+ <xs:documentation>
+ Pair of query and a set of mailbox search scopes.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Query" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="MailboxSearchScopes" type="t:NonEmptyArrayOfMailboxSearchScopesType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PreviewItemMailboxType">
+ <xs:annotation>
+ <xs:documentation>
+ Mailbox information for each preview item.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="MailboxId" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="PrimarySmtpAddress" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfMailboxQueriesType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of query and mailboxes.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="MailboxQuery" type="t:MailboxQueryType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="SearchResultType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="StatisticsOnly" />
+ <xs:enumeration value="PreviewOnly" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="SearchPageDirectionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Previous" />
+ <xs:enumeration value="Next" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="PreviewItemBaseShapeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Default" />
+ <xs:enumeration value="Compact" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="NonEmptyArrayOfExtendedFieldURIsType">
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="PreviewItemResponseShapeType">
+ <xs:sequence>
+ <xs:element name="BaseShape" type="t:PreviewItemBaseShapeType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfExtendedFieldURIsType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SearchPreviewItemType">
+ <xs:annotation>
+ <xs:documentation>
+ Mailbox search preview item.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Id" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Mailbox" type="t:PreviewItemMailboxType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ParentId" type="t:ItemIdType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ItemClass" type="t:ItemClassType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="UniqueHash" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SortValue" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="OwaLink" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Sender" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ToRecipients" type="t:ArrayOfSmtpAddressType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CcRecipients" type="t:ArrayOfSmtpAddressType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="BccRecipients" type="t:ArrayOfSmtpAddressType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CreatedTime" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ReceivedTime" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SentTime" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Subject" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Size" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Preview" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Importance" type="t:ImportanceChoicesType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Read" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="HasAttachment" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ExtendedProperties" type="t:NonEmptyArrayOfExtendedPropertyType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfSearchPreviewItemsType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of search preview item.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="SearchPreviewItem" type="t:SearchPreviewItemType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FailedSearchMailboxType">
+ <xs:annotation>
+ <xs:documentation>
+ Mailbox failed on search and its error message.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Mailbox" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ErrorCode" type="xs:int" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ErrorMessage" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="IsArchive" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfFailedSearchMailboxesType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of failed mailbox and error message.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="FailedMailbox" type="t:FailedSearchMailboxType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SearchMailboxesResultType">
+ <xs:annotation>
+ <xs:documentation>
+ Mailboxes search result.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="SearchQueries" type="t:NonEmptyArrayOfMailboxQueriesType" minOccurs="1"/>
+ <xs:element name="ResultType" type="t:SearchResultType" minOccurs="1"/>
+ <xs:element name="ItemCount" type="xs:long" minOccurs="1"/>
+ <xs:element name="Size" type="xs:long" minOccurs="1"/>
+ <xs:element name="PageItemCount" type="xs:int" minOccurs="1"/>
+ <xs:element name="PageItemSize" type="xs:long" minOccurs="1"/>
+ <xs:element name="KeywordStats" type="t:ArrayOfKeywordStatisticsSearchResultsType" minOccurs="0"/>
+ <xs:element name="Items" type="t:ArrayOfSearchPreviewItemsType" minOccurs="0"/>
+ <xs:element name="FailedMailboxes" type="t:ArrayOfFailedSearchMailboxesType" minOccurs="0"/>
+ <xs:element name="Refiners" type="t:ArrayOfSearchRefinerItemsType" minOccurs="0"/>
+ <xs:element name="MailboxStats" type="t:ArrayOfMailboxStatisticsItemsType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SearchRefinerItemType">
+ <xs:annotation>
+ <xs:documentation>
+ Search refiner item.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Count" type="xs:long" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Token" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfSearchRefinerItemsType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of search refiner item.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Refiner" type="t:SearchRefinerItemType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="OneDriveItemType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:annotation>
+ <xs:documentation>
+ OneDrive search result item.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ResourceId" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="FileItemType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:annotation>
+ <xs:documentation>
+ File search result item.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <!-- File properties -->
+ <xs:element name="FileName" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FileExtension" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FileSize" type="xs:long" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FileCreatedTime" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FileModifiedTime" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="StorageProviderContext" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FileID" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ItemReferenceId" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ReferenceId" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Sender" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ItemReceivedTime" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ItemPath" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="ItemSentTime" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="FileContexts" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="VisualizationContainerUrl" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="VisualizationContainerTitle" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="VisualizationAccessUrl" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Document file item type -->
+ <xs:complexType name="DocumentFileItemType">
+ <xs:complexContent>
+ <xs:extension base="t:FileItemType">
+ <xs:sequence>
+ <xs:element name="Author" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Title" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="LastModifiedBy" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="DelveItemType">
+ <xs:complexContent>
+ <xs:extension base="t:ItemType">
+ <xs:annotation>
+ <xs:documentation>
+ Delve search result item.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="GraphNodeLogicalId" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="MailboxStatisticsItemType">
+ <xs:annotation>
+ <xs:documentation>
+ Mailbox statistics item.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="MailboxId" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="DisplayName" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ItemCount" type="xs:long" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Size" type="xs:long" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfMailboxStatisticsItemsType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of mailbox statistics item.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="MailboxStat" type="t:MailboxStatisticsItemType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="HoldActionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Create" />
+ <xs:enumeration value="Update" />
+ <xs:enumeration value="Remove" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="HoldStatusType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NotOnHold" />
+ <xs:enumeration value="Pending" />
+ <xs:enumeration value="OnHold" />
+ <xs:enumeration value="PartialHold" />
+ <xs:enumeration value="Failed" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="MailboxHoldStatusType">
+ <xs:annotation>
+ <xs:documentation>
+ Mailbox hold status.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Mailbox" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Status" type="t:HoldStatusType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="AdditionalInfo" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfMailboxHoldStatusType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of mailbox hold status.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="MailboxHoldStatus" type="t:MailboxHoldStatusType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MailboxHoldResultType">
+ <xs:annotation>
+ <xs:documentation>
+ Mailbox hold result.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="HoldId" type="xs:string"/>
+ <xs:element name="Query" type="xs:string" minOccurs="0"/>
+ <xs:element name="MailboxHoldStatuses" type="t:ArrayOfMailboxHoldStatusType"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfLegacyDNsType">
+ <xs:sequence>
+ <xs:element name="LegacyDN" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonIndexableItemStatisticType">
+ <xs:annotation>
+ <xs:documentation>
+ Non indexable item statistic.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Mailbox" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ItemCount" type="xs:long" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ErrorMessage" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfNonIndexableItemStatisticsType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of non indexable item statistics.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="NonIndexableItemStatistic" type="t:NonIndexableItemStatisticType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="ItemIndexErrorType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="GenericError" />
+ <xs:enumeration value="Timeout" />
+ <xs:enumeration value="StaleEvent" />
+ <xs:enumeration value="MailboxOffline" />
+ <xs:enumeration value="AttachmentLimitReached" />
+ <xs:enumeration value="MarsWriterTruncation" />
+ <xs:enumeration value="DocumentParserFailure" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="NonIndexableItemDetailType">
+ <xs:annotation>
+ <xs:documentation>
+ Non indexable item detail.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ErrorCode" type="t:ItemIndexErrorType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ErrorDescription" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="IsPartiallyIndexed" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="IsPermanentFailure" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SortValue" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="AttemptCount" type="xs:int" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="LastAttemptTime" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AdditionalInfo" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfNonIndexableItemDetailsType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of non indexable item details.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="NonIndexableItemDetail" type="t:NonIndexableItemDetailType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonIndexableItemDetailResultType">
+ <xs:annotation>
+ <xs:documentation>
+ Non indexable item details result.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Items" type="t:ArrayOfNonIndexableItemDetailsType" minOccurs="0"/>
+ <xs:element name="FailedMailboxes" type="t:ArrayOfFailedSearchMailboxesType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DiscoverySearchConfigurationType">
+ <xs:annotation>
+ <xs:documentation>
+ Discovery search configuration.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="SearchId" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SearchQuery" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SearchableMailboxes" type="t:ArrayOfSearchableMailboxesType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="InPlaceHoldIdentity" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ManagedByOrganization" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Language" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfDiscoverySearchConfigurationType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of discovery search configuration.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="DiscoverySearchConfiguration" type="t:DiscoverySearchConfigurationType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- End of mailbox search related types section -->
+
+ <!-- Retention tag guid with retention tag type attribute -->
+ <xs:complexType name="RetentionTagType">
+ <xs:simpleContent>
+ <xs:extension base="t:GuidType">
+ <xs:attribute name="IsExplicit" type="xs:boolean" use="required" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:simpleType name="UserPhotoSizeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="HR48x48" />
+ <xs:enumeration value="HR64x64" />
+ <xs:enumeration value="HR96x96" />
+ <xs:enumeration value="HR120x120" />
+ <xs:enumeration value="HR240x240" />
+ <xs:enumeration value="HR360x360" />
+ <xs:enumeration value="HR432x432" />
+ <xs:enumeration value="HR504x504" />
+ <xs:enumeration value="HR648x648" />
+ <xs:enumeration value="HR1024xN" />
+ <xs:enumeration value="HR1920xN" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="UserPhotoTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="UserPhoto" />
+ <xs:enumeration value="ProfileHeaderPhoto" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Begin of MRM related types section -->
+
+ <xs:simpleType name="ElcFolderType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Calendar"/>
+ <xs:enumeration value="Contacts"/>
+ <xs:enumeration value="DeletedItems"/>
+ <xs:enumeration value="Drafts"/>
+ <xs:enumeration value="Inbox"/>
+ <xs:enumeration value="JunkEmail"/>
+ <xs:enumeration value="Journal"/>
+ <xs:enumeration value="Notes"/>
+ <xs:enumeration value="Outbox"/>
+ <xs:enumeration value="SentItems"/>
+ <xs:enumeration value="Tasks"/>
+ <xs:enumeration value="All"/>
+ <xs:enumeration value="ManagedCustomFolder"/>
+ <xs:enumeration value="RssSubscriptions"/>
+ <xs:enumeration value="SyncIssues"/>
+ <xs:enumeration value="ConversationHistory"/>
+ <xs:enumeration value="Personal"/>
+ <xs:enumeration value="RecoverableItems"/>
+ <xs:enumeration value="NonIpmRoot"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="RetentionActionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="MoveToDeletedItems"/>
+ <xs:enumeration value="MoveToFolder"/>
+ <xs:enumeration value="DeleteAndAllowRecovery"/>
+ <xs:enumeration value="PermanentlyDelete"/>
+ <xs:enumeration value="MarkAsPastRetentionLimit"/>
+ <xs:enumeration value="MoveToArchive"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="RetentionPolicyTagType">
+ <xs:annotation>
+ <xs:documentation>
+ Retention policy tag.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="DisplayName" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="RetentionId" type="t:GuidType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="RetentionPeriod" type="xs:int" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Type" type="t:ElcFolderType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="RetentionAction" type="t:RetentionActionType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="IsVisible" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="OptedInto" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="IsArchive" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfRetentionPolicyTagsType">
+ <xs:annotation>
+ <xs:documentation>
+ Array of retention policy tags.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="RetentionPolicyTag" type="t:RetentionPolicyTagType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="RetentionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Delete"/>
+ <xs:enumeration value="Archive"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- End of MRM related types section -->
+
+ <!-- Begin of Client Extensibility related types section -->
+
+ <xs:simpleType name="ClientExtensionProvidedToType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Everyone" />
+ <xs:enumeration value="SpecificUsers" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ClientExtensionTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Default" />
+ <xs:enumeration value="Private" />
+ <xs:enumeration value="MarketPlace" />
+ <xs:enumeration value="PrivateCatalog" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ClientExtensionScopeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="User" />
+ <xs:enumeration value="Organization" />
+ <xs:enumeration value="Default" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ClientExtensionType">
+ <xs:sequence>
+ <xs:element name="SpecificUsers" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Manifest" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="IsAvailable" type="xs:boolean" use="optional"/>
+ <xs:attribute name="IsMandatory" type="xs:boolean" use="optional"/>
+ <xs:attribute name="IsEnabledByDefault" type="xs:boolean" use="optional"/>
+ <xs:attribute name="ProvidedTo" type="t:ClientExtensionProvidedToType" use="optional"/>
+ <xs:attribute name="Type" type="t:ClientExtensionTypeType" use="optional"/>
+ <xs:attribute name="Scope" type="t:ClientExtensionScopeType" use="optional"/>
+ <xs:attribute name="MarketplaceAssetId" type="xs:string" use="optional"/>
+ <xs:attribute name="MarketplaceContentMarket" type="xs:string" use="optional"/>
+ <xs:attribute name="AppStatus" type="xs:string" use="optional"/>
+ <xs:attribute name="Etoken" type="xs:string" use="optional"/>
+ <xs:attribute name="InstalledDateTime" type="xs:string" use="optional"/>
+ </xs:complexType>
+
+ <xs:simpleType name="ConsentStateType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NotResponded"/>
+ <xs:enumeration value="NotConsented"/>
+ <xs:enumeration value="Consented"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- End of Client Extensibility related types section -->
+
+ <!-- Begin of UCS related types section -->
+
+ <xs:complexType name="ImGroupType">
+ <xs:annotation>
+ <xs:documentation>
+ A Group on the ImContactList, with one or more members
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="DisplayName" type="t:NonEmptyStringType"/>
+ <xs:element name="GroupType" type="t:NonEmptyStringType"/>
+ <xs:element name="ExchangeStoreId" type="t:ItemIdType" minOccurs="0"/>
+ <xs:element name="MemberCorrelationKey" type="t:NonEmptyArrayOfItemIdsType" minOccurs="0"/>
+ <xs:element name="ExtendedProperties" type="t:NonEmptyArrayOfExtendedPropertyType" minOccurs="0"/>
+ <xs:element name="SmtpAddress" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfImGroupType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="ImGroup" type="t:ImGroupType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="ImItemListType">
+ <xs:annotation>
+ <xs:documentation>
+ IM Contact List
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Groups" type="t:ArrayOfImGroupType" minOccurs="0"/>
+ <xs:element name="Personas" type="t:ArrayOfPeopleType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- UCS methods only allow specification of extended properties -->
+ <xs:complexType name="NonEmptyArrayOfExtendedFieldURIs">
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="ExtendedProperty" type="t:PathToExtendedFieldType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- End of UCS related types section -->
+ <!-- UM Mailbox Pin related types section -->
+
+ <xs:simpleType name="DisableReasonType">
+ <xs:annotation>
+ <xs:documentation>List of possible reasons for disabling the client extension</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NoReason"/>
+ <xs:enumeration value="OutlookClientPerformance" />
+ <xs:enumeration value="OWAClientPerformance" />
+ <xs:enumeration value="MobileClientPerformance" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="NonEmptyStateDefinitionType">
+ <xs:choice minOccurs="0">
+ <xs:element name="DeletedOccurrenceStateDefinition" type="t:DeletedOccurrenceStateDefinitionType" />
+ <xs:element name="DeleteFromFolderStateDefinition" type="t:DeleteFromFolderStateDefinitionType"/>
+ <xs:element name="LocationBasedStateDefinition" type="t:LocationBasedStateDefinitionType"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="BaseCalendarItemStateDefinitionType" />
+ <xs:complexType name="DeletedOccurrenceStateDefinitionType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseCalendarItemStateDefinitionType">
+ <xs:sequence>
+ <xs:element name="OccurrenceDate" type="xs:dateTime" minOccurs="1"/>
+ <xs:element name="IsOccurrencePresent" type="xs:boolean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="DeleteFromFolderStateDefinitionType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseCalendarItemStateDefinitionType" />
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="LocationBasedStateDefinitionType">
+ <xs:complexContent>
+ <xs:extension base="t:BaseCalendarItemStateDefinitionType">
+ <xs:sequence>
+ <xs:element name="OrganizerLocation" type="xs:string" minOccurs="1"/>
+ <xs:element name="AttendeeLocation" type="xs:string" minOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="IconIndexType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Default" />
+ <xs:enumeration value="PostItem" />
+ <xs:enumeration value="MailRead" />
+ <xs:enumeration value="MailUnread" />
+ <xs:enumeration value="MailReplied" />
+ <xs:enumeration value="MailForwarded" />
+ <xs:enumeration value="MailEncrypted" />
+ <xs:enumeration value="MailSmimeSigned" />
+ <xs:enumeration value="MailEncryptedReplied" />
+ <xs:enumeration value="MailSmimeSignedReplied" />
+ <xs:enumeration value="MailEncryptedForwarded" />
+ <xs:enumeration value="MailSmimeSignedForwarded" />
+ <xs:enumeration value="MailEncryptedRead" />
+ <xs:enumeration value="MailSmimeSignedRead" />
+ <xs:enumeration value="MailIrm" />
+ <xs:enumeration value="MailIrmForwarded" />
+ <xs:enumeration value="MailIrmReplied" />
+ <xs:enumeration value="SmsSubmitted" />
+ <xs:enumeration value="SmsRoutedToDeliveryPoint" />
+ <xs:enumeration value="SmsRoutedToExternalMessagingSystem" />
+ <xs:enumeration value="SmsDelivered" />
+ <xs:enumeration value="OutlookDefaultForContacts" />
+ <xs:enumeration value="AppointmentItem" />
+ <xs:enumeration value="AppointmentRecur" />
+ <xs:enumeration value="AppointmentMeet" />
+ <xs:enumeration value="AppointmentMeetRecur" />
+ <xs:enumeration value="AppointmentMeetNY" />
+ <xs:enumeration value="AppointmentMeetYes" />
+ <xs:enumeration value="AppointmentMeetNo" />
+ <xs:enumeration value="AppointmentMeetMaybe" />
+ <xs:enumeration value="AppointmentMeetCancel" />
+ <xs:enumeration value="AppointmentMeetInfo" />
+ <xs:enumeration value="TaskItem" />
+ <xs:enumeration value="TaskRecur" />
+ <xs:enumeration value="TaskOwned" />
+ <xs:enumeration value="TaskDelegated" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="MeetingSpaceTypeEnum">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Public"/>
+ <xs:enumeration value="Private"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="MeetingSpaceType">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ChangeKey" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Type" type="t:MeetingSpaceTypeEnum" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="JoinUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DateTimeCreated" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DateTimeModified" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ExpiryTime" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Meadata" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Tag" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="MeetingSpace" type="t:MeetingSpaceType"/>
+
+ <xs:simpleType name="ParticipantActivityRole">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Organizer" />
+ <xs:enumeration value="Attendee" />
+ <xs:enumeration value="Presenter" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ParticipantActivityMediaType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AppSharing" />
+ <xs:enumeration value="AudioVideo" />
+ <xs:enumeration value="Chat" />
+ <xs:enumeration value="DataConf" />
+ <xs:enumeration value="Meeting" />
+ <xs:enumeration value="MeetingConf" />
+ <xs:enumeration value="PhoneConf" />
+ <xs:enumeration value="Focus" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ParticipantActivity">
+ <xs:sequence>
+ <xs:element name="Id" type="t:GuidType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="CreatedBy" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="StartTime" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="EndTime" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="ClientVersion" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Role" type="t:ParticipantActivityRole" minOccurs="1" maxOccurs="1" />
+ <xs:element name="MediaType" type="t:ParticipantActivityMediaType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="MediaDetails" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfParticipantActivities">
+ <xs:sequence>
+ <xs:element name="ParticipantActivity" type="t:ParticipantActivity" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ContentActivity">
+ <xs:sequence>
+ <xs:element name="Id" type="t:GuidType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SharedBy" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="ContentLocation" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="StartTime" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="EndTime" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Type" type="t:ContentActivityType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="MediaType" type="t:ContentActivityMediaType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Acl" type="t:ContentActivityAcl" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="ContentActivityType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Poll" />
+ <xs:enumeration value="WhiteBoard" />
+ <xs:enumeration value="QAndA" />
+ <xs:enumeration value="Chat" />
+ <xs:enumeration value="Meeting" />
+ <xs:enumeration value="Annotations" />
+ <xs:enumeration value="SharedNotes" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ContentActivityMediaType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AppSharing" />
+ <xs:enumeration value="AudioVideo" />
+ <xs:enumeration value="Chat" />
+ <xs:enumeration value="DataConf" />
+ <xs:enumeration value="Meeting" />
+ <xs:enumeration value="MeetingConf" />
+ <xs:enumeration value="PhoneConf" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ContentActivityAcl">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Organizer" />
+ <xs:enumeration value="Presenter" />
+ <xs:enumeration value="Everyone" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="NonEmptyArrayOfContentActivities">
+ <xs:sequence>
+ <xs:element name="ContentActivity" type="t:ContentActivity" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MeetingInstanceType">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ChangeKey" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="JoinUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DateTimeCreated" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DateTimeModified" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Meadata" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Tag" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ParentGoid" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ParticipantActivities" type="t:NonEmptyArrayOfParticipantActivities" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ContentActivities" type="t:NonEmptyArrayOfContentActivities" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="MeetingInstance" type="t:MeetingInstanceType"/>
+
+ <!-- InstantSearch v2.0 DataTypes -->
+ <xs:simpleType name="WarmupOptionsType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="Suggestions"/>
+ <xs:enumeration value="Results"/>
+ <xs:enumeration value="All"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:simpleType name="SearchApplicationIdType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Outlook"/>
+ <xs:enumeration value="Owa"/>
+ <xs:enumeration value="Paw"/>
+ <xs:enumeration value="Teamspace"/>
+ <xs:enumeration value="OneDrive"/>
+ <xs:enumeration value="Other"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ItemTypesFilterType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="MailItems"/>
+ <xs:enumeration value="MailConversations"/>
+ <xs:enumeration value="CalendarItems"/>
+ <xs:enumeration value="Contacts"/>
+ <xs:enumeration value="OneDriveItems"/>
+ <xs:enumeration value="FileItems"/>
+ <xs:enumeration value="DelveItems"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:simpleType name="SuggestionKindType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="Keywords"/>
+ <xs:enumeration value="People"/>
+ <xs:enumeration value="Hashtags"/>
+ <xs:enumeration value="QueryHistory"/>
+ <xs:enumeration value="All"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:simpleType name="RefinerTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None"/>
+ <xs:enumeration value="To"/>
+ <xs:enumeration value="From"/>
+ <xs:enumeration value="Folder"/>
+ <xs:enumeration value="HasAttachment"/>
+ <xs:enumeration value="MailboxSource"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="SearchResultsPropertySetNameType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Default"/>
+ <xs:enumeration value="Owa16"/>
+ <xs:enumeration value="Outlook16"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="SearchScopeGroupsType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MyGroups"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:simpleType name="SearchScopeArchivesType">
+ <xs:list>
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="MainArchive"/>
+ <xs:enumeration value="AuxArchive"/>
+ <xs:enumeration value="All"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:list>
+ </xs:simpleType>
+
+ <xs:simpleType name="ExecuteSearchSortOrderType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DateTime"/>
+ <xs:enumeration value="Relevance"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="MatchOptionsType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FullString"/>
+ <xs:enumeration value="Prefix"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="SearchFolderScopeType">
+ <xs:choice>
+ <xs:element name="FolderId" type="t:FolderIdType"/>
+ <xs:element name="WellKnownFolder" type="t:DistinguishedFolderIdType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="PrimaryMailboxSearchScopeType">
+ <xs:sequence>
+ <xs:element name="FolderScope" type="t:SearchFolderScopeType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="IsDeepTraversal" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="LargeArchiveSearchScopeType">
+ <xs:sequence>
+ <xs:element name="ArchiveTypes" type="t:SearchScopeArchivesType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GroupSearchScopeType">
+ <xs:sequence>
+ <xs:element name="GroupTypes" type="t:SearchScopeGroupsType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SingleLargeArchiveSearchScopeType">
+ <xs:sequence>
+ <xs:element name="MailboxGuid" type="t:GuidType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="FolderScope" type="t:SearchFolderScopeType" />
+ <xs:element name="IsDeepTraversal" type="xs:boolean"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="OneDriveSearchScopeType">
+ <xs:sequence>
+ <xs:element name="OneDriveView" type="t:OneDriveViewType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DelveSearchScopeType">
+ <xs:sequence>
+ <xs:element name="DelveView" type="t:DelveViewType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CustomSearchScopeType">
+ <xs:sequence>
+ <xs:element name="MailboxGuid" type="t:GuidType"/>
+ <xs:element name="FolderScope" type="t:SearchFolderScopeType" />
+ <xs:element name="IsDeepTraversal" type="xs:boolean"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfSearchScopeType">
+ <xs:sequence>
+ <xs:element name="PrimaryMailboxSearchScope" type="t:PrimaryMailboxSearchScopeType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="LargeArchiveSearchScope" type="t:LargeArchiveSearchScopeType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="GroupSearchScope" type="t:GroupSearchScopeType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CustomSearchScope" type="t:CustomSearchScopeType" minOccurs="0" maxOccurs="4"/>
+ <xs:element name="OneDriveSearchScope" type="t:OneDriveSearchScopeType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SingleLargeArchiveSearchScope" type="t:SingleLargeArchiveSearchScopeType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DelveSearchScope" type="t:DelveSearchScopeType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DynamicRefinerQueryType">
+ <xs:sequence>
+ <xs:element name="RefinerQuery" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="TDRefinerId" type="xs:int" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ExtendedKeywordDefinitionType">
+ <xs:sequence>
+ <xs:element name="Keyword" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Properties" type="t:NonEmptyArrayOfExtendedFieldURIsType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SuggestionType">
+ <xs:sequence>
+ <xs:element name="SuggestedQuery" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="DisplayText" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="SuggestionType" type="t:SuggestionKindType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Trigger" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="TDSuggestionId" type="xs:int"/>
+ <xs:element name="IsDeletable" type="xs:boolean"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="PeopleSuggestionType">
+ <xs:complexContent>
+ <xs:extension base="t:SuggestionType">
+ <xs:sequence>
+ <xs:element name="PrimarySmtpAddress" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="PersonType" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="PeopleSuggestionPersonType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Unknown"/>
+ <xs:enumeration value="Person"/>
+ <xs:enumeration value="DistributionList"/>
+ <xs:enumeration value="Room"/>
+ <xs:enumeration value="Place"/>
+ <xs:enumeration value="ModernGroup"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="FileSuggestionType">
+ <xs:complexContent>
+ <xs:extension base="t:SuggestionType">
+ <xs:sequence>
+ <xs:element name="FileName" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="FileExtension" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="FileReferenceId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="FileTitle" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ContainerTitle" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ContainerUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SearchSuggestionsType">
+ <xs:sequence>
+ <xs:element name="TDSuggestionsBatchId" type="xs:long" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="TDSuggestionsInstanceId" type="t:GuidType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Suggestions" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Suggestion" type="t:SuggestionType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="DiagnosticsData" type="t:SearchDiagnosticsType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DeleteSearchSuggestionResponseType">
+ <xs:sequence>
+ <xs:element name="Success" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="StatusMessage" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DiagnosticsData" type="t:SearchDiagnosticsType" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SearchDiagnosticsStepType">
+ <xs:sequence>
+ <xs:element name="StartTime" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="StepTime" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="StepType" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AdditionalEntries" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Entry" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SearchRefinerType">
+ <xs:sequence>
+ <xs:element name="RefinerType" type="t:RefinerTypeType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Refiner" type="t:DynamicRefinerQueryType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ResultCount" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FolderRefinerType">
+ <xs:complexContent>
+ <xs:extension base="t:SearchRefinerType">
+ <xs:sequence>
+ <xs:element name="FolderId" type="t:FolderIdType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="PeopleRefinerType">
+ <xs:complexContent>
+ <xs:extension base="t:SearchRefinerType">
+ <xs:sequence>
+ <xs:element name="DisplayName" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SmtpAddress" type="t:SmtpAddressType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="MailboxRefinerType">
+ <xs:complexContent>
+ <xs:extension base="t:SearchRefinerType">
+ <xs:sequence>
+ <xs:element name="MailboxDisplayName" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="AttachmentRefinerType">
+ <xs:complexContent>
+ <xs:extension base="t:SearchRefinerType">
+ <xs:sequence>
+ <xs:element name="HasAttachment" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="HashtagRefinerType">
+ <xs:complexContent>
+ <xs:extension base="t:SearchRefinerType">
+ <xs:sequence>
+ <xs:element name="DisplayName" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SearchDiagnosticsType">
+ <xs:sequence>
+ <xs:sequence>
+ <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" namespace="##any"/>
+ </xs:sequence>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MailboxInformationType">
+ <xs:sequence>
+ <xs:sequence>
+ <xs:element name="MailboxGuid" type="t:GuidType"/>
+ <xs:element name="MailboxAddress" type="t:SmtpAddressType"/>
+ <xs:element name="MailboxDisplayName" type="xs:string"/>
+ </xs:sequence>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ExecuteSearchQueryIdType">
+ <xs:attribute name="Id" type="t:GuidType" use="required" />
+ </xs:complexType>
+
+ <xs:complexType name="SearchResultsType">
+ <xs:sequence>
+ <xs:element name="Items" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Item" type="t:ItemType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Conversations" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Conversation" type="t:ConversationType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="People" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Persona" type="t:PersonaType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="MoreResultsAvailable" type="xs:boolean" minOccurs="1" maxOccurs="1" />
+ <xs:element name="RefinerTelemetryBatchId" type="xs:int" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SearchRefiners" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="SearchRefiner" type="t:SearchRefinerType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="DiagnosticsData" type="t:SearchDiagnosticsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SearchResultsCount" type="xs:int" minOccurs="0" maxOccurs="1" />
+ <xs:element name="TotalResultsCount" type="xs:int" minOccurs="0" maxOccurs="1" />
+ <xs:element name="SearchTerms" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="QueryId" type="t:ExecuteSearchQueryIdType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="MailboxesInformation" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="MailboxInformation" type="t:MailboxInformationType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SearchResultItemIdType">
+ <xs:annotation>
+ <xs:documentation>Identifier for an item in search results</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:ItemIdType">
+ <xs:sequence>
+ <xs:element name="EntryId" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="OutlookItemId" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SearchResultConversationIdType">
+ <xs:annotation>
+ <xs:documentation>Identifier for a conversation item in search results</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="t:ItemIdType">
+ <xs:sequence>
+ <xs:element name="OutlookConversationId" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Unified Groups -->
+ <xs:simpleType name="ClientIdType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Web" />
+ <xs:enumeration value="Mobile" />
+ <xs:enumeration value="Tablet" />
+ <xs:enumeration value="Desktop" />
+ <xs:enumeration value="Exchange" />
+ <xs:enumeration value="Outlook" />
+ <xs:enumeration value="MacOutlook" />
+ <xs:enumeration value="POP3" />
+ <xs:enumeration value="IMAP4" />
+ <xs:enumeration value="Other" />
+ <xs:enumeration value="Lync" />
+ <xs:enumeration value="OutlookService" />
+ <xs:enumeration value="MacMail" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="EntityFeedbackEntityAddSourceType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="EntityRelevanceApi" />
+ <xs:enumeration value="ActiveDirectory" />
+ <xs:enumeration value="ExplicitTyping" />
+ <xs:enumeration value="Paste" />
+ <xs:enumeration value="RecipientCache" />
+ <xs:enumeration value="Other" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ArrayOfWorkHours">
+ <xs:sequence>
+ <xs:element name="WorkHours" type="t:WorkHoursType" minOccurs="0" maxOccurs="7" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="WorkHoursType">
+ <xs:sequence>
+ <xs:element name="WorkDay" type="t:SystemDayOfWeek" minOccurs="0" maxOccurs="1" />
+ <xs:element name="TimeSlots" type="t:ArrayOfWorkTimeSlot" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="SystemDayOfWeek">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Sunday" />
+ <xs:enumeration value="Monday" />
+ <xs:enumeration value="Tuesday" />
+ <xs:enumeration value="Wednesday" />
+ <xs:enumeration value="Thursday" />
+ <xs:enumeration value="Friday" />
+ <xs:enumeration value="Saturday" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ArrayOfWorkTimeSlot">
+ <xs:sequence>
+ <xs:element name="TimeSlot" type="t:WorkTimeSlot" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="WorkTimeSlot">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="StartTimeInMinutes" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="1" name="EndTimeInMinutes" type="xs:int" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AnalyzedQuery">
+ <xs:sequence>
+ <xs:element name="QueryLanguage" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="SearchRestrictions" type="t:RestrictionType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ContextPropertyType">
+ <xs:sequence>
+ <xs:element name="Key" type="xs:string" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfContextProperty">
+ <xs:sequence>
+ <xs:element name="ContextProperty" type="t:ContextPropertyType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfEntityFeedbackEntry">
+ <xs:sequence>
+ <xs:element name="EntityFeedbackEntry" type="t:EntityFeedbackEntryType" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EntityFeedbackEntryType">
+ <xs:sequence>
+ <xs:element name="ClientEventTimeUTC" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ClientEventTimeLocal" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ClientSessionId" type="t:GuidType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ClientVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ClientId" type="t:ClientIdType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="EntrySequenceNumber" type="xs:int" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="TransactionId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="EventType" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="TargetEntityList" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="EntityAddSource" type="t:EntityFeedbackEntityAddSourceType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="JsonPropertyBag" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfInboxReminderType">
+ <xs:sequence>
+ <xs:element name="InboxReminder" type="t:InboxReminderType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="InboxReminderType">
+ <xs:sequence>
+ <xs:element name="Id" type="t:GuidType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ReminderOffset" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Message" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="IsOrganizerReminder" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="OccurrenceChange" type="t:EmailReminderChangeType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SendOption" type="t:EmailReminderSendOption" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="EmailReminderChangeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="None" />
+ <xs:enumeration value="Added" />
+ <xs:enumeration value="Override" />
+ <xs:enumeration value="Deleted" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="EmailReminderSendOption">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NotSet" />
+ <xs:enumeration value="User" />
+ <xs:enumeration value="AllAttendees" />
+ <xs:enumeration value="Staff" />
+ <xs:enumeration value="Customer" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="InsightStatusType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Created" />
+ <xs:enumeration value="Active" />
+ <xs:enumeration value="Dismissed" />
+ <xs:enumeration value="Invalid" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="InsightContextItem">
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Val" type="xs:string" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfInsightContextItem">
+ <xs:sequence>
+ <xs:element name="Context" type="t:InsightContextItem" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="InsightItemType">
+ <xs:sequence>
+ <xs:element name="ItemId" type="t:ItemIdType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="InsightId" type="t:GuidType" minOccurs="1" maxOccurs="1" />
+ <xs:element name="Type" type="xs:string" minOccurs="0" maxOccurs="1" />
+ <xs:element name="StartTimeUtc" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
+ <xs:element name="EndTimeUtc" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Status" type="t:InsightStatusType" minOccurs="0" maxOccurs="1" />
+ <xs:element name="Version" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Context" type="t:ArrayOfInsightContextItem" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Text" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ApplicationsIds" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="SuggestedActions" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AppContexts" type="t:ArrayOfStringsType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfInsightItemType">
+ <xs:sequence>
+ <xs:element name="Insight" type="t:InsightItemType" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ResponseMessageInfoType">
+ <xs:sequence minOccurs="0">
+ <xs:element name="MessageText" type="xs:string" minOccurs="0"/>
+ <xs:element name="ResponseCode" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="ResponseClass" type="t:ResponseClassType" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="BaseAvailabilityCalendarViewType">
+ <xs:sequence>
+ <xs:element name="FreeBusyViewType" type="t:FreeBusyViewType" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfPeopleQuerySource">
+ <xs:sequence>
+ <xs:element name="Source" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CalendarActivityDataType">
+ <xs:sequence>
+ <xs:element name="ActivityAction" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ClientId" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="CasRequestId" type="t:GuidType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="IndexSelected" type="xs:int" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Social fabric, @Mentions type -->
+ <xs:complexType name="MentionActionType">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="CreatedBy" type="t:EmailAddressExtendedType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="CreatedDateTime" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ServerCreatedDateTime" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DeepLink" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Application" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Mentioned" type="t:EmailAddressExtendedType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="MentionText" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ClientReference" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfMentionActionsType">
+ <xs:sequence>
+ <xs:element name="MentionAction" type="t:MentionActionType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Social fabric, @Tag type -->
+ <xs:complexType name="AppliedHashtagType">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="CreatedBy" type="t:EmailAddressExtendedType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="CreatedDateTime" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ServerCreatedDateTime" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DeepLink" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Application" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Tag" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="IsAutoTagged" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="IsInlined" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AppliedHashtagsPreviewType">
+ <xs:sequence>
+ <xs:element name="Hashtags" type="t:ArrayOfStringsType" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="NonEmptyArrayOfAppliedHashtagType">
+ <xs:sequence>
+ <xs:element name="AppliedHashtag" type="t:AppliedHashtagType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Social fabric, +1Like type -->
+ <xs:complexType name="LikeType">
+ <xs:sequence>
+ <xs:element name="Id" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="CreatedBy" type="t:EmailAddressExtendedType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="CreatedDateTime" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ServerCreatedDateTime" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DeepLink" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Application" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="LikesPreviewType">
+ <xs:sequence>
+ <xs:element name="LikeCount" type="xs:int" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MentionsPreviewType">
+ <xs:sequence>
+ <xs:element name="IsMentioned" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NonEmptyArrayOfLikeType">
+ <xs:sequence>
+ <xs:element name="Like" type="t:LikeType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- FindAvailableMeetingTimes Service Types -->
+ <xs:complexType name="AttendeeAvailability">
+ <xs:sequence>
+ <xs:element name="EmailAddress" type="xs:string" />
+ <xs:element name="Availability" type="t:AvailabilityStatusType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfMeetingLocation">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="MeetingLocation" type="t:MeetingLocation" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfAttendeeAvailability">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="AttendeeAvailability" type="t:AttendeeAvailability" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MeetingTimeCandidate">
+ <xs:sequence>
+ <xs:element name="MeetingTimeslot" type="t:TimeSlot" />
+ <xs:element name="Confidence" type="xs:double" />
+ <xs:element name="Score" type="xs:int" />
+ <xs:element name="OrganizerAvailability" type="t:AvailabilityStatusType" />
+ <xs:element name="AttendeeAvailabilities" type="t:ArrayOfAttendeeAvailability" />
+ <xs:element name="Locations" type="t:ArrayOfMeetingLocation" />
+ <xs:element name="SuggestionHint" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfMeetingTimeCandidate">
+ <xs:sequence>
+ <xs:element name="MeetingTimeCandidate" type="t:MeetingTimeCandidate" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MeetingTimeCandidatesConstraintItem">
+ <xs:sequence>
+ <xs:element name="Email" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AttendeeConstraintItem">
+ <xs:complexContent>
+ <xs:extension base="t:MeetingTimeCandidatesConstraintItem" >
+ <xs:sequence>
+ <xs:element name="IsRequired" type="xs:boolean" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="LocationConstraintItem">
+ <xs:complexContent>
+ <xs:extension base="t:MeetingTimeCandidatesConstraintItem" >
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string" minOccurs="0" />
+ <xs:element name="ResolveAvailability" type="xs:boolean" minOccurs="0" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfLocationConstraintItems">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="LocationItem" type="t:LocationConstraintItem" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfAttendeeConstraintItems">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="AttendeeItem" type="t:AttendeeConstraintItem" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ArrayOfTimeSlot">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="TimeSlot" type="t:TimeSlot" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="EmptySuggestionReason">
+ <xs:annotation>
+ <xs:documentation>
+ Reasons no suggestions are returned by FindMeetingTimeCandidates
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Unknown"/>
+ <xs:enumeration value="AttendeesUnavailable"/>
+ <xs:enumeration value="LocationsUnavailable"/>
+ <xs:enumeration value="OrganizerUnavailable"/>
+ <xs:enumeration value="AttendeesUnavailableOrUnknown"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="FindMeetingTimesAttendeeConstraints">
+ <xs:sequence>
+ <xs:element name="AttendeeEntries" type="t:ArrayOfAttendeeConstraintItems" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FindMeetingTimesLocationConstraints">
+ <xs:sequence>
+ <xs:element name="LocationEntries" type="t:ArrayOfLocationConstraintItems" minOccurs="0"/>
+ <xs:element name="IsRequired" type="xs:boolean" minOccurs="0" />
+ <xs:element name="SuggestLocation" type="xs:boolean" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FindMeetingTimesSearchConstraints">
+ <xs:sequence>
+ <xs:element name="SearchWindows" type="t:ArrayOfTimeSlot" minOccurs="0"/>
+ <xs:element name="MeetingDurationInMinutes" type="xs:int" minOccurs="0" />
+ <xs:element name="ActivityDomain" type="t:ActivityDomainType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FindMeetingTimesConstraints">
+ <xs:sequence>
+ <xs:element name="MaxCandidates" type="xs:int" minOccurs="0" />
+ <xs:element name="IsOrganizerOptional" type="xs:boolean" minOccurs="0" />
+ <xs:element name="ReturnSuggestionHints" type="xs:boolean" minOccurs="0" />
+ <xs:element name="AppName" type="xs:string" minOccurs="0" />
+ <xs:element name="AppScenario" type="xs:string" minOccurs="0" />
+ <xs:element name="MinimumAttendeePercentage" type="xs:double" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="AddInStateType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Flagged"/>
+ <xs:enumeration value="OK"/>
+ <xs:enumeration value="Removed"/>
+ <xs:enumeration value="Undefined"/>
+ <xs:enumeration value="WithdrawingSoon"/>
+ <xs:enumeration value="Withdrawn"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="OfficeClientType">
+ <xs:attribute name="Code" type="t:OfficeClientCodeType" use="required"/>
+ <xs:attribute name="Version" type="t:VersionType" use="required"/>
+ </xs:complexType>
+
+ <xs:simpleType name="OfficeClientCodeType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[a-zA-Z0-9]+_[a-zA-Z0-9]+"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="VersionType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]{1,4}\.[0-9]{1,4}(\.[0-9]{1,4}(\.[0-9]{1,4})?)?"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="ArrayOfAppsType">
+ <xs:sequence>
+ <xs:element name="App" type="t:AppType" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="Metadata" type="t:Metadata" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AppType">
+ <xs:sequence>
+ <xs:element name="Metadata" type="t:AppMetadata" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Manifest" type="xs:base64Binary" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Metadata">
+ <xs:sequence>
+ <xs:element name="CustomApps" type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AppMetadata">
+ <xs:sequence>
+ <xs:element name="EndNodeUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="AppStatus" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ActionUrl" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ProductId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="EnabledStatus" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ConsentState" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ExtensionType" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="MarketplaceAssetId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="LicenseStatus" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="TrialExpirationDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="InstalledBy" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <xs:element name="IsMandatory" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
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 @@
+<?php
+/**
+ * Contains \JamesIArmes\PhpNtlm\NTLMSoapClient.
+ */
+
+namespace jamesiarmes\PhpNtlm;
+
+/**
+ * Soap Client using Microsoft's NTLM Authentication.
+ *
+ * @package php-ntlm\Soap
+ */
+class SoapClient extends \SoapClient
+{
+ /**
+ * cURL resource used to make the SOAP request
+ *
+ * @var resource
+ */
+ protected $ch;
+
+ /**
+ * Options passed to the client constructor.
+ *
+ * @var array
+ */
+ protected $options;
+
+ /**
+ * {@inheritdoc}
+ *
+ * Additional options:
+ * - user (string): The user to authenticate with.
+ * - password (string): The password to use when authenticating the user.
+ * - curlopts (array): Array of options to set on the curl handler when
+ * making the request.
+ * - strip_bad_chars (boolean, default true): Whether or not to strip
+ * invalid characters from the XML response. This can lead to content
+ * being returned differently than it actually is on the host service, but
+ * can also prevent the "looks like we got no XML document" SoapFault when
+ * the response includes invalid characters.
+ * - warn_on_bad_chars (boolean, default false): Trigger a warning if bad
+ * characters are stripped. This has no affect unless strip_bad_chars is
+ * true.
+ */
+ public function __construct($wsdl, array $options = null)
+ {
+ // Set missing indexes to their default value.
+ $options += array(
+ 'user' => 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(
+ '/(?!&#x0?(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']);
+ }
+}