// Project: https://github.com/microsoftgraph/msgraph-typescript-typings
// Definitions by: Microsoft Graph Team <https://github.com/microsoftgraph>
//                 Michael Mainer <https://github.com/MIchaelMainer>
//                 Peter Ombwa <https://github.com/peombwa>
//                 Mustafa Zengin <https://github.com/zengin>
//                 DeVere Dyett <https://github.com/ddyett>
//                 Nikitha Udaykumar Chettiar <https://github.com/nikithauc>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.1

export as namespace microsoftgraph;

export type NullableOption<T> = T | null;

export type AppliedConditionalAccessPolicyResult =
    | "success"
    | "failure"
    | "notApplied"
    | "notEnabled"
    | "unknown"
    | "unknownFutureValue";
export type AuthenticationMethodFeature =
    | "ssprRegistered"
    | "ssprEnabled"
    | "ssprCapable"
    | "passwordlessCapable"
    | "mfaCapable"
    | "unknownFutureValue";
export type ConditionalAccessStatus = "success" | "failure" | "notApplied" | "unknownFutureValue";
export type FeatureType = "registration" | "reset" | "unknownFutureValue";
export type GroupType = "unifiedGroups" | "azureAD" | "unknownFutureValue";
export type IncludedUserRoles = "all" | "privilegedAdmin" | "admin" | "user" | "unknownFutureValue";
export type IncludedUserTypes = "all" | "member" | "guest" | "unknownFutureValue";
export type InitiatorType = "user" | "application" | "system" | "unknownFutureValue";
export type OperationResult = "success" | "failure" | "timeout" | "unknownFutureValue";
export type OutlierContainerType = "group" | "unknownFutureValue";
export type OutlierMemberType = "user" | "unknownFutureValue";
export type ProvisioningAction =
    | "other"
    | "create"
    | "delete"
    | "disable"
    | "update"
    | "stagedDelete"
    | "unknownFutureValue";
export type ProvisioningResult = "success" | "failure" | "skipped" | "warning" | "unknownFutureValue";
export type ProvisioningStatusErrorCategory = "failure" | "nonServiceFailure" | "success" | "unknownFutureValue";
export type ProvisioningStepType =
    | "import"
    | "scoping"
    | "matching"
    | "processing"
    | "referenceResolution"
    | "export"
    | "unknownFutureValue";
export type RiskDetail =
    | "none"
    | "adminGeneratedTemporaryPassword"
    | "userPerformedSecuredPasswordChange"
    | "userPerformedSecuredPasswordReset"
    | "adminConfirmedSigninSafe"
    | "aiConfirmedSigninSafe"
    | "userPassedMFADrivenByRiskBasedPolicy"
    | "adminDismissedAllRiskForUser"
    | "adminConfirmedSigninCompromised"
    | "hidden"
    | "adminConfirmedUserCompromised"
    | "unknownFutureValue"
    | "adminConfirmedServicePrincipalCompromised"
    | "adminDismissedAllRiskForServicePrincipal"
    | "m365DAdminDismissedDetection";
export type RiskEventType =
    | "unlikelyTravel"
    | "anonymizedIPAddress"
    | "maliciousIPAddress"
    | "unfamiliarFeatures"
    | "malwareInfectedIPAddress"
    | "suspiciousIPAddress"
    | "leakedCredentials"
    | "investigationsThreatIntelligence"
    | "generic"
    | "adminConfirmedUserCompromised"
    | "mcasImpossibleTravel"
    | "mcasSuspiciousInboxManipulationRules"
    | "investigationsThreatIntelligenceSigninLinked"
    | "maliciousIPAddressValidCredentialsBlockedIP"
    | "unknownFutureValue";
export type RiskLevel = "low" | "medium" | "high" | "hidden" | "none" | "unknownFutureValue";
export type RiskState =
    | "none"
    | "confirmedSafe"
    | "remediated"
    | "dismissed"
    | "atRisk"
    | "confirmedCompromised"
    | "unknownFutureValue";
export type SignInUserType = "member" | "guest" | "unknownFutureValue";
export type UserDefaultAuthenticationMethod =
    | "push"
    | "oath"
    | "voiceMobile"
    | "voiceAlternateMobile"
    | "voiceOffice"
    | "sms"
    | "none"
    | "unknownFutureValue";
export type AdvancedConfigState = "default" | "enabled" | "disabled" | "unknownFutureValue";
export type AuthenticationMethodModes =
    | "password"
    | "voice"
    | "hardwareOath"
    | "softwareOath"
    | "sms"
    | "fido2"
    | "windowsHelloForBusiness"
    | "microsoftAuthenticatorPush"
    | "deviceBasedPush"
    | "temporaryAccessPassOneTime"
    | "temporaryAccessPassMultiUse"
    | "email"
    | "x509CertificateSingleFactor"
    | "x509CertificateMultiFactor"
    | "federatedSingleFactor"
    | "federatedMultiFactor"
    | "unknownFutureValue";
export type AuthenticationMethodsPolicyMigrationState =
    | "preMigration"
    | "migrationInProgress"
    | "migrationComplete"
    | "unknownFutureValue";
export type AuthenticationMethodState = "enabled" | "disabled";
export type AuthenticationMethodTargetType = "user" | "group" | "unknownFutureValue";
export type AuthenticationStrengthPolicyType = "builtIn" | "custom" | "unknownFutureValue";
export type AuthenticationStrengthRequirements = "none" | "mfa" | "unknownFutureValue";
export type BaseAuthenticationMethod =
    | "password"
    | "voice"
    | "hardwareOath"
    | "softwareOath"
    | "sms"
    | "fido2"
    | "windowsHelloForBusiness"
    | "microsoftAuthenticator"
    | "temporaryAccessPass"
    | "email"
    | "x509Certificate"
    | "federation"
    | "unknownFutureValue";
export type ExternalEmailOtpState = "default" | "enabled" | "disabled" | "unknownFutureValue";
export type FeatureTargetType = "group" | "administrativeUnit" | "role" | "unknownFutureValue";
export type Fido2RestrictionEnforcementType = "allow" | "block" | "unknownFutureValue";
export type MicrosoftAuthenticatorAuthenticationMode = "deviceBasedPush" | "push" | "any";
export type X509CertificateAuthenticationMode =
    | "x509CertificateSingleFactor"
    | "x509CertificateMultiFactor"
    | "unknownFutureValue";
export type X509CertificateRuleType = "issuerSubject" | "policyOID" | "unknownFutureValue";
export type VolumeType = "operatingSystemVolume" | "fixedDataVolume" | "removableDataVolume" | "unknownFutureValue";
export type AnswerInputType = "text" | "radioButton" | "unknownFutureValue";
export type BookingPriceType =
    | "undefined"
    | "fixedPrice"
    | "startingAt"
    | "hourly"
    | "free"
    | "priceVaries"
    | "callUs"
    | "notSet"
    | "unknownFutureValue";
export type BookingReminderRecipients = "allAttendees" | "staff" | "customer" | "unknownFutureValue";
export type BookingsAvailabilityStatus = "available" | "busy" | "slotsAvailable" | "outOfOffice" | "unknownFutureValue";
export type BookingStaffRole =
    | "guest"
    | "administrator"
    | "viewer"
    | "externalGuest"
    | "unknownFutureValue"
    | "scheduler"
    | "teamMember";
export type DayOfWeek = "sunday" | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday";
export type LocationType =
    | "default"
    | "conferenceRoom"
    | "homeAddress"
    | "businessAddress"
    | "geoCoordinates"
    | "streetAddress"
    | "hotel"
    | "restaurant"
    | "localBusiness"
    | "postalAddress";
export type LocationUniqueIdType = "unknown" | "locationStore" | "directory" | "private" | "bing";
export type PhoneType =
    | "home"
    | "business"
    | "mobile"
    | "other"
    | "assistant"
    | "homeFax"
    | "businessFax"
    | "otherFax"
    | "pager"
    | "radio";
export type PhysicalAddressType = "unknown" | "home" | "business" | "other";
export type BodyType = "text" | "html";
export type DataSubjectType =
    | "customer"
    | "currentEmployee"
    | "formerEmployee"
    | "prospectiveEmployee"
    | "student"
    | "teacher"
    | "faculty"
    | "other"
    | "unknownFutureValue";
export type SubjectRightsRequestStage =
    | "contentRetrieval"
    | "contentReview"
    | "generateReport"
    | "contentDeletion"
    | "caseResolved"
    | "contentEstimate"
    | "unknownFutureValue"
    | "approval";
export type SubjectRightsRequestStageStatus = "notStarted" | "current" | "completed" | "failed" | "unknownFutureValue";
export type SubjectRightsRequestStatus = "active" | "closed" | "unknownFutureValue";
export type SubjectRightsRequestType = "export" | "delete" | "access" | "tagForAction" | "unknownFutureValue";
export type IdentityUserFlowAttributeDataType =
    | "string"
    | "boolean"
    | "int64"
    | "stringCollection"
    | "dateTime"
    | "unknownFutureValue";
export type IdentityUserFlowAttributeInputType =
    | "textBox"
    | "dateTimeDropdown"
    | "radioSingleSelect"
    | "dropdownSingleSelect"
    | "emailBox"
    | "checkboxMultiSelect";
export type IdentityUserFlowAttributeType = "builtIn" | "custom" | "required" | "unknownFutureValue";
export type UserFlowType =
    | "signUp"
    | "signIn"
    | "signUpOrSignIn"
    | "passwordReset"
    | "profileUpdate"
    | "resourceOwner"
    | "unknownFutureValue";
export type LobbyBypassScope =
    | "organizer"
    | "organization"
    | "organizationAndFederated"
    | "everyone"
    | "unknownFutureValue"
    | "invited"
    | "organizationExcludingGuests";
export type MeetingChatMode = "enabled" | "disabled" | "limited" | "unknownFutureValue";
export type OnlineMeetingPresenters =
    | "everyone"
    | "organization"
    | "roleIsPresenter"
    | "organizer"
    | "unknownFutureValue";
export type AllowInvitesFrom =
    | "none"
    | "adminsAndGuestInviters"
    | "adminsGuestInvitersAndAllMembers"
    | "everyone"
    | "unknownFutureValue";
export type AppCredentialRestrictionType =
    | "passwordAddition"
    | "passwordLifetime"
    | "symmetricKeyAddition"
    | "symmetricKeyLifetime"
    | "customPasswordAddition"
    | "unknownFutureValue";
export type AppKeyCredentialRestrictionType = "asymmetricKeyLifetime" | "unknownFutureValue";
export type AuthenticationProtocol = "wsFed" | "saml" | "unknownFutureValue";
export type CrossTenantAccessPolicyTargetConfigurationAccessType = "allowed" | "blocked" | "unknownFutureValue";
export type CrossTenantAccessPolicyTargetType = "user" | "group" | "application" | "unknownFutureValue";
export type FederatedIdpMfaBehavior =
    | "acceptIfMfaDoneByFederatedIdp"
    | "enforceMfaByFederatedIdp"
    | "rejectMfaByFederatedIdp"
    | "unknownFutureValue";
export type LayoutTemplateType = "default" | "verticalSplit" | "unknownFutureValue";
export type OnPremisesDirectorySynchronizationDeletionPreventionType =
    | "disabled"
    | "enabledForCount"
    | "enabledForPercentage"
    | "unknownFutureValue";
export type PartnerTenantType =
    | "microsoftSupport"
    | "syndicatePartner"
    | "breadthPartner"
    | "breadthPartnerDelegatedAdmin"
    | "resellerPartnerDelegatedAdmin"
    | "valueAddedResellerPartnerDelegatedAdmin"
    | "unknownFutureValue";
export type PermissionClassificationType = "low" | "medium" | "high" | "unknownFutureValue";
export type PermissionType = "application" | "delegated" | "delegatedUserConsentable";
export type PromptLoginBehavior =
    | "translateToFreshPasswordAuthentication"
    | "nativeSupport"
    | "disabled"
    | "unknownFutureValue";
export type WeakAlgorithms = "rsaSha1" | "unknownFutureValue";
export type BrowserSharedCookieSourceEnvironment =
    | "microsoftEdge"
    | "internetExplorer11"
    | "both"
    | "unknownFutureValue";
export type BrowserSharedCookieStatus =
    | "published"
    | "pendingAdd"
    | "pendingEdit"
    | "pendingDelete"
    | "unknownFutureValue";
export type BrowserSiteCompatibilityMode =
    | "default"
    | "internetExplorer8Enterprise"
    | "internetExplorer7Enterprise"
    | "internetExplorer11"
    | "internetExplorer10"
    | "internetExplorer9"
    | "internetExplorer8"
    | "internetExplorer7"
    | "internetExplorer5"
    | "unknownFutureValue";
export type BrowserSiteListStatus = "draft" | "published" | "pending" | "unknownFutureValue";
export type BrowserSiteMergeType = "noMerge" | "default" | "unknownFutureValue";
export type BrowserSiteStatus = "published" | "pendingAdd" | "pendingEdit" | "pendingDelete" | "unknownFutureValue";
export type BrowserSiteTargetEnvironment =
    | "internetExplorerMode"
    | "internetExplorer11"
    | "microsoftEdge"
    | "configurable"
    | "none"
    | "unknownFutureValue";
export type EducationAddedStudentAction = "none" | "assignIfOpen" | "unknownFutureValue";
export type EducationAddToCalendarOptions =
    | "none"
    | "studentsAndPublisher"
    | "studentsAndTeamOwners"
    | "unknownFutureValue"
    | "studentsOnly";
export type EducationAssignmentStatus = "draft" | "published" | "assigned" | "unknownFutureValue";
export type EducationFeedbackResourceOutcomeStatus =
    | "notPublished"
    | "pendingPublish"
    | "published"
    | "failedPublish"
    | "unknownFutureValue";
export type EducationSubmissionStatus =
    | "working"
    | "submitted"
    | "released"
    | "returned"
    | "unknownFutureValue"
    | "reassigned";
export type ContactRelationship =
    | "parent"
    | "relative"
    | "aide"
    | "doctor"
    | "guardian"
    | "child"
    | "other"
    | "unknownFutureValue";
export type EducationExternalSource = "sis" | "manual" | "unknownFutureValue";
export type EducationGender = "female" | "male" | "other" | "unknownFutureValue";
export type EducationUserRole = "student" | "teacher" | "none" | "unknownFutureValue";
export type WorkbookOperationStatus = "notStarted" | "running" | "succeeded" | "failed";
export type ActivityDomain = "unknown" | "work" | "personal" | "unrestricted";
export type AttendeeType = "required" | "optional" | "resource";
export type FreeBusyStatus = "unknown" | "free" | "tentative" | "busy" | "oof" | "workingElsewhere";
export type BookingType = "unknown" | "standard" | "reserved";
export type AttachmentType = "file" | "item" | "reference";
export type AutomaticRepliesStatus = "disabled" | "alwaysEnabled" | "scheduled";
export type CalendarColor =
    | "auto"
    | "lightBlue"
    | "lightGreen"
    | "lightOrange"
    | "lightGray"
    | "lightYellow"
    | "lightTeal"
    | "lightPink"
    | "lightBrown"
    | "lightRed"
    | "maxColor";
export type CalendarRoleType =
    | "none"
    | "freeBusyRead"
    | "limitedRead"
    | "read"
    | "write"
    | "delegateWithoutPrivateEventAccess"
    | "delegateWithPrivateEventAccess"
    | "custom";
export type CalendarSharingAction = "accept" | "acceptAndViewCalendar" | "viewCalendar" | "addThisCalendar";
export type CalendarSharingActionImportance = "primary" | "secondary";
export type CalendarSharingActionType = "accept";
export type CategoryColor =
    | "none"
    | "preset0"
    | "preset1"
    | "preset2"
    | "preset3"
    | "preset4"
    | "preset5"
    | "preset6"
    | "preset7"
    | "preset8"
    | "preset9"
    | "preset10"
    | "preset11"
    | "preset12"
    | "preset13"
    | "preset14"
    | "preset15"
    | "preset16"
    | "preset17"
    | "preset18"
    | "preset19"
    | "preset20"
    | "preset21"
    | "preset22"
    | "preset23"
    | "preset24";
export type DelegateMeetingMessageDeliveryOptions =
    | "sendToDelegateAndInformationToPrincipal"
    | "sendToDelegateAndPrincipal"
    | "sendToDelegateOnly";
export type EventType = "singleInstance" | "occurrence" | "exception" | "seriesMaster";
export type ExchangeIdFormat = "entryId" | "ewsId" | "immutableEntryId" | "restId" | "restImmutableEntryId";
export type ExternalAudienceScope = "none" | "contactsOnly" | "all";
export type FollowupFlagStatus = "notFlagged" | "complete" | "flagged";
export type Importance = "low" | "normal" | "high";
export type InferenceClassificationType = "focused" | "other";
export type MailTipsType =
    | "automaticReplies"
    | "mailboxFullStatus"
    | "customMailTip"
    | "externalMemberCount"
    | "totalMemberCount"
    | "maxMessageSize"
    | "deliveryRestriction"
    | "moderationStatus"
    | "recipientScope"
    | "recipientSuggestions";
export type MeetingMessageType =
    | "none"
    | "meetingRequest"
    | "meetingCancelled"
    | "meetingAccepted"
    | "meetingTenativelyAccepted"
    | "meetingDeclined";
export type MeetingRequestType =
    | "none"
    | "newMeetingRequest"
    | "fullUpdate"
    | "informationalUpdate"
    | "silentUpdate"
    | "outdated"
    | "principalWantsCopy";
export type MessageActionFlag =
    | "any"
    | "call"
    | "doNotForward"
    | "followUp"
    | "fyi"
    | "forward"
    | "noResponseNecessary"
    | "read"
    | "reply"
    | "replyToAll"
    | "review";
export type OnlineMeetingProviderType = "unknown" | "skypeForBusiness" | "skypeForConsumer" | "teamsForBusiness";
export type RecipientScopeType = "none" | "internal" | "external" | "externalPartner" | "externalNonPartner";
export type RecurrencePatternType =
    | "daily"
    | "weekly"
    | "absoluteMonthly"
    | "relativeMonthly"
    | "absoluteYearly"
    | "relativeYearly";
export type RecurrenceRangeType = "endDate" | "noEnd" | "numbered";
export type ResponseType = "none" | "organizer" | "tentativelyAccepted" | "accepted" | "declined" | "notResponded";
export type SelectionLikelihoodInfo = "notSpecified" | "high";
export type Sensitivity = "normal" | "personal" | "private" | "confidential";
export type TimeZoneStandard = "windows" | "iana";
export type UserPurpose = "user" | "linked" | "shared" | "room" | "equipment" | "others" | "unknownFutureValue";
export type WebsiteType = "other" | "home" | "work" | "blog" | "profile";
export type WeekIndex = "first" | "second" | "third" | "fourth" | "last";
export type ImageTaggingChoice = "disabled" | "basic" | "enhanced" | "unknownFutureValue";
export type SharingCapabilities =
    | "disabled"
    | "externalUserSharingOnly"
    | "externalUserAndGuestSharing"
    | "existingExternalUserSharingOnly"
    | "unknownFutureValue";
export type SharingDomainRestrictionMode = "none" | "allowList" | "blockList" | "unknownFutureValue";
export type ColumnTypes =
    | "note"
    | "text"
    | "choice"
    | "multichoice"
    | "number"
    | "currency"
    | "dateTime"
    | "lookup"
    | "boolean"
    | "user"
    | "url"
    | "calculated"
    | "location"
    | "geolocation"
    | "term"
    | "multiterm"
    | "thumbnail"
    | "approvalStatus"
    | "unknownFutureValue";
export type LongRunningOperationStatus = "notStarted" | "running" | "succeeded" | "failed" | "unknownFutureValue";
export type SensitivityLabelAssignmentMethod = "standard" | "privileged" | "auto" | "unknownFutureValue";
export type StagedFeatureName =
    | "passthroughAuthentication"
    | "seamlessSso"
    | "passwordHashSync"
    | "emailAsAlternateId"
    | "unknownFutureValue"
    | "certificateBasedAuthentication"
    | "multiFactorAuthentication";
export type AttributeDefinitionMetadata =
    | "BaseAttributeName"
    | "ComplexObjectDefinition"
    | "IsContainer"
    | "IsCustomerDefined"
    | "IsDomainQualified"
    | "LinkPropertyNames"
    | "LinkTypeName"
    | "MaximumLength"
    | "ReferencedProperty";
export type AttributeFlowBehavior = "FlowWhenChanged" | "FlowAlways";
export type AttributeFlowType = "Always" | "ObjectAddOnly" | "MultiValueAddOnly" | "ValueAddOnly" | "AttributeAddOnly";
export type AttributeMappingSourceType = "Attribute" | "Constant" | "Function";
export type AttributeType = "String" | "Integer" | "Reference" | "Binary" | "Boolean" | "DateTime";
export type DirectoryDefinitionDiscoverabilities =
    | "None"
    | "AttributeNames"
    | "AttributeDataTypes"
    | "AttributeReadOnly"
    | "ReferenceAttributes"
    | "UnknownFutureValue";
export type EntryExportStatus = "Noop" | "Success" | "RetryableError" | "PermanentError" | "Error";
export type EntrySyncOperation = "None" | "Add" | "Delete" | "Update";
export type EscrowBehavior = "Default" | "IgnoreLookupReferenceResolutionFailure";
export type Mutability = "ReadWrite" | "ReadOnly" | "Immutable" | "WriteOnly";
export type ObjectDefinitionMetadata =
    | "PropertyNameAccountEnabled"
    | "PropertyNameSoftDeleted"
    | "IsSoftDeletionSupported"
    | "IsSynchronizeAllSupported"
    | "ConnectorDataStorageRequired"
    | "Extensions"
    | "BaseObjectName";
export type ObjectFlowTypes = "None" | "Add" | "Update" | "Delete";
export type ObjectMappingMetadata =
    | "EscrowBehavior"
    | "DisableMonitoringForChanges"
    | "OriginalJoiningProperty"
    | "Disposition"
    | "IsCustomerDefined"
    | "ExcludeFromReporting"
    | "Unsynchronized";
export type QuarantineReason =
    | "EncounteredBaseEscrowThreshold"
    | "EncounteredTotalEscrowThreshold"
    | "EncounteredEscrowProportionThreshold"
    | "EncounteredQuarantineException"
    | "Unknown"
    | "QuarantinedOnDemand"
    | "TooManyDeletes"
    | "IngestionInterrupted";
export type ScopeOperatorMultiValuedComparisonType = "All" | "Any";
export type ScopeOperatorType = "Binary" | "Unary";
export type SynchronizationDisposition = "Normal" | "Discard" | "Escrow";
export type SynchronizationJobRestartScope =
    | "None"
    | "ConnectorDataStore"
    | "Escrows"
    | "Watermark"
    | "QuarantineState"
    | "Full"
    | "ForceDeletes";
export type SynchronizationMetadata =
    | "GalleryApplicationIdentifier"
    | "GalleryApplicationKey"
    | "IsOAuthEnabled"
    | "IsSynchronizationAgentAssignmentRequired"
    | "IsSynchronizationAgentRequired"
    | "IsSynchronizationInPreview"
    | "OAuthSettings"
    | "SynchronizationLearnMoreIbizaFwLink"
    | "ConfigurationFields";
export type SynchronizationScheduleState = "Active" | "Disabled" | "Paused";
export type SynchronizationSecret =
    | "None"
    | "UserName"
    | "Password"
    | "SecretToken"
    | "AppKey"
    | "BaseAddress"
    | "ClientIdentifier"
    | "ClientSecret"
    | "SingleSignOnType"
    | "Sandbox"
    | "Url"
    | "Domain"
    | "ConsumerKey"
    | "ConsumerSecret"
    | "TokenKey"
    | "TokenExpiration"
    | "Oauth2AccessToken"
    | "Oauth2AccessTokenCreationTime"
    | "Oauth2RefreshToken"
    | "SyncAll"
    | "InstanceName"
    | "Oauth2ClientId"
    | "Oauth2ClientSecret"
    | "CompanyId"
    | "UpdateKeyOnSoftDelete"
    | "SynchronizationSchedule"
    | "SystemOfRecord"
    | "SandboxName"
    | "EnforceDomain"
    | "SyncNotificationSettings"
    | "SkipOutOfScopeDeletions"
    | "Oauth2AuthorizationCode"
    | "Oauth2RedirectUri"
    | "ApplicationTemplateIdentifier"
    | "Oauth2TokenExchangeUri"
    | "Oauth2AuthorizationUri"
    | "AuthenticationType"
    | "Server"
    | "PerformInboundEntitlementGrants"
    | "HardDeletesEnabled"
    | "SyncAgentCompatibilityKey"
    | "SyncAgentADContainer"
    | "ValidateDomain"
    | "TestReferences"
    | "ConnectionString";
export type SynchronizationStatusCode = "NotConfigured" | "NotRun" | "Active" | "Paused" | "Quarantine";
export type SynchronizationTaskExecutionResult = "Succeeded" | "Failed" | "EntryLevelErrors";
export type AccessReviewHistoryDecisionFilter =
    | "approve"
    | "deny"
    | "notReviewed"
    | "dontKnow"
    | "notNotified"
    | "unknownFutureValue";
export type AccessReviewHistoryStatus = "done" | "inprogress" | "error" | "requested" | "unknownFutureValue";
export type AccessReviewInstanceDecisionItemFilterByCurrentUserOptions = "reviewer" | "unknownFutureValue";
export type AccessReviewInstanceFilterByCurrentUserOptions = "reviewer" | "unknownFutureValue";
export type AccessReviewScheduleDefinitionFilterByCurrentUserOptions = "reviewer" | "unknownFutureValue";
export type AccessReviewStageFilterByCurrentUserOptions = "reviewer" | "unknownFutureValue";
export type ApprovalFilterByCurrentUserOptions = "target" | "createdBy" | "approver" | "unknownFutureValue";
export type ConsentRequestFilterByCurrentUserOptions = "reviewer" | "unknownFutureValue";
export type UserSignInRecommendationScope = "tenant" | "application" | "unknownFutureValue";
export type AgreementAcceptanceState = "accepted" | "declined" | "unknownFutureValue";
export type ActivityType = "signin" | "user" | "unknownFutureValue" | "servicePrincipal";
export type CloudAppSecuritySessionControlType =
    | "mcasConfigured"
    | "monitorOnly"
    | "blockDownloads"
    | "unknownFutureValue";
export type ConditionalAccessClientApp =
    | "all"
    | "browser"
    | "mobileAppsAndDesktopClients"
    | "exchangeActiveSync"
    | "easSupported"
    | "other"
    | "unknownFutureValue";
export type ConditionalAccessDevicePlatform =
    | "android"
    | "iOS"
    | "windows"
    | "windowsPhone"
    | "macOS"
    | "all"
    | "unknownFutureValue"
    | "linux";
export type ConditionalAccessExternalTenantsMembershipKind = "all" | "enumerated" | "unknownFutureValue";
export type ConditionalAccessGrantControl =
    | "block"
    | "mfa"
    | "compliantDevice"
    | "domainJoinedDevice"
    | "approvedApplication"
    | "compliantApplication"
    | "passwordChange"
    | "unknownFutureValue";
export type ConditionalAccessGuestOrExternalUserTypes =
    | "none"
    | "internalGuest"
    | "b2bCollaborationGuest"
    | "b2bCollaborationMember"
    | "b2bDirectConnectUser"
    | "otherExternalUser"
    | "serviceProvider"
    | "unknownFutureValue";
export type ConditionalAccessPolicyState = "enabled" | "disabled" | "enabledForReportingButNotEnforced";
export type CountryLookupMethodType = "clientIpAddress" | "authenticatorAppGps" | "unknownFutureValue";
export type FilterMode = "include" | "exclude";
export type PersistentBrowserSessionMode = "always" | "never";
export type RiskDetectionTimingType = "notDefined" | "realtime" | "nearRealtime" | "offline" | "unknownFutureValue";
export type SignInFrequencyAuthenticationType =
    | "primaryAndSecondaryAuthentication"
    | "secondaryAuthentication"
    | "unknownFutureValue";
export type SignInFrequencyInterval = "timeBased" | "everyTime" | "unknownFutureValue";
export type SigninFrequencyType = "days" | "hours";
export type TemplateScenarios =
    | "new"
    | "secureFoundation"
    | "zeroTrust"
    | "remoteWork"
    | "protectAdmins"
    | "emergingThreats"
    | "unknownFutureValue";
export type TokenIssuerType =
    | "AzureAD"
    | "ADFederationServices"
    | "UnknownFutureValue"
    | "AzureADBackupAuth"
    | "ADFederationServicesMFAAdapter"
    | "NPSExtension";
export type AccessPackageAssignmentFilterByCurrentUserOptions = "target" | "createdBy" | "unknownFutureValue";
export type AccessPackageAssignmentRequestFilterByCurrentUserOptions =
    | "target"
    | "createdBy"
    | "approver"
    | "unknownFutureValue";
export type AccessPackageAssignmentState =
    | "delivering"
    | "partiallyDelivered"
    | "delivered"
    | "expired"
    | "deliveryFailed"
    | "unknownFutureValue";
export type AccessPackageCatalogState = "unpublished" | "published" | "unknownFutureValue";
export type AccessPackageCatalogType = "userManaged" | "serviceDefault" | "serviceManaged" | "unknownFutureValue";
export type AccessPackageCustomExtensionStage =
    | "assignmentRequestCreated"
    | "assignmentRequestApproved"
    | "assignmentRequestGranted"
    | "assignmentRequestRemoved"
    | "assignmentFourteenDaysBeforeExpiration"
    | "assignmentOneDayBeforeExpiration"
    | "unknownFutureValue";
export type AccessPackageExternalUserLifecycleAction =
    | "none"
    | "blockSignIn"
    | "blockSignInAndDelete"
    | "unknownFutureValue";
export type AccessPackageFilterByCurrentUserOptions = "allowedRequestor" | "unknownFutureValue";
export type AccessPackageRequestState =
    | "submitted"
    | "pendingApproval"
    | "delivering"
    | "delivered"
    | "deliveryFailed"
    | "denied"
    | "scheduled"
    | "canceled"
    | "partiallyDelivered"
    | "unknownFutureValue";
export type AccessPackageRequestType =
    | "notSpecified"
    | "userAdd"
    | "userUpdate"
    | "userRemove"
    | "adminAdd"
    | "adminUpdate"
    | "adminRemove"
    | "systemAdd"
    | "systemUpdate"
    | "systemRemove"
    | "onBehalfAdd"
    | "unknownFutureValue";
export type AccessPackageSubjectType = "notSpecified" | "user" | "servicePrincipal" | "unknownFutureValue";
export type AccessReviewExpirationBehavior =
    | "keepAccess"
    | "removeAccess"
    | "acceptAccessRecommendation"
    | "unknownFutureValue";
export type AllowedTargetScope =
    | "notSpecified"
    | "specificDirectoryUsers"
    | "specificConnectedOrganizationUsers"
    | "specificDirectoryServicePrincipals"
    | "allMemberUsers"
    | "allDirectoryUsers"
    | "allDirectoryServicePrincipals"
    | "allConfiguredConnectedOrganizationUsers"
    | "allExternalUsers"
    | "unknownFutureValue";
export type CustomExtensionCalloutInstanceStatus =
    | "calloutSent"
    | "callbackReceived"
    | "calloutFailed"
    | "callbackTimedOut"
    | "waitingForCallback"
    | "unknownFutureValue";
export type ExpirationPatternType = "notSpecified" | "noExpiration" | "afterDateTime" | "afterDuration";
export type ConnectedOrganizationState = "configured" | "proposed" | "unknownFutureValue";
export type CertificateStatus = "notProvisioned" | "provisioned";
export type ComplianceStatus =
    | "unknown"
    | "notApplicable"
    | "compliant"
    | "remediated"
    | "nonCompliant"
    | "error"
    | "conflict"
    | "notAssigned";
export type InstallIntent = "available" | "required" | "uninstall" | "availableWithoutEnrollment";
export type ManagedAppAvailability = "global" | "lineOfBusiness";
export type MdmAppConfigKeyType = "stringType" | "integerType" | "realType" | "booleanType" | "tokenType";
export type MicrosoftEdgeChannel = "dev" | "beta" | "stable" | "unknownFutureValue";
export type MicrosoftStoreForBusinessLicenseType = "offline" | "online";
export type MobileAppContentFileUploadState =
    | "success"
    | "transientError"
    | "error"
    | "unknown"
    | "azureStorageUriRequestSuccess"
    | "azureStorageUriRequestPending"
    | "azureStorageUriRequestFailed"
    | "azureStorageUriRequestTimedOut"
    | "azureStorageUriRenewalSuccess"
    | "azureStorageUriRenewalPending"
    | "azureStorageUriRenewalFailed"
    | "azureStorageUriRenewalTimedOut"
    | "commitFileSuccess"
    | "commitFilePending"
    | "commitFileFailed"
    | "commitFileTimedOut";
export type MobileAppPublishingState = "notPublished" | "processing" | "published";
export type RunAsAccountType = "system" | "user";
export type VppTokenAccountType = "business" | "education";
export type Win32LobAppDeliveryOptimizationPriority = "notConfigured" | "foreground";
export type Win32LobAppFileSystemOperationType =
    | "notConfigured"
    | "exists"
    | "modifiedDate"
    | "createdDate"
    | "version"
    | "sizeInMB";
export type Win32LobAppMsiPackageType = "perMachine" | "perUser" | "dualPurpose";
export type Win32LobAppNotification = "showAll" | "showReboot" | "hideAll";
export type Win32LobAppPowerShellScriptRuleOperationType =
    | "notConfigured"
    | "string"
    | "dateTime"
    | "integer"
    | "float"
    | "version"
    | "boolean";
export type Win32LobAppRegistryRuleOperationType =
    | "notConfigured"
    | "exists"
    | "doesNotExist"
    | "string"
    | "integer"
    | "version";
export type Win32LobAppRestartBehavior = "basedOnReturnCode" | "allow" | "suppress" | "force";
export type Win32LobAppReturnCodeType = "failed" | "success" | "softReboot" | "hardReboot" | "retry";
export type Win32LobAppRuleOperator =
    | "notConfigured"
    | "equal"
    | "notEqual"
    | "greaterThan"
    | "greaterThanOrEqual"
    | "lessThan"
    | "lessThanOrEqual";
export type Win32LobAppRuleType = "detection" | "requirement";
export type WindowsArchitecture = "none" | "x86" | "x64" | "arm" | "neutral";
export type WindowsDeviceType = "none" | "desktop" | "mobile" | "holographic" | "team" | "unknownFutureValue";
export type InstallState = "notApplicable" | "installed" | "failed" | "notInstalled" | "uninstallFailed" | "unknown";
export type AndroidRequiredPasswordType =
    | "deviceDefault"
    | "alphabetic"
    | "alphanumeric"
    | "alphanumericWithSymbols"
    | "lowSecurityBiometric"
    | "numeric"
    | "numericComplex"
    | "any";
export type AndroidWorkProfileCrossProfileDataSharingType =
    | "deviceDefault"
    | "preventAny"
    | "allowPersonalToWork"
    | "noRestrictions";
export type AndroidWorkProfileDefaultAppPermissionPolicyType = "deviceDefault" | "prompt" | "autoGrant" | "autoDeny";
export type AndroidWorkProfileRequiredPasswordType =
    | "deviceDefault"
    | "lowSecurityBiometric"
    | "required"
    | "atLeastNumeric"
    | "numericComplex"
    | "atLeastAlphabetic"
    | "atLeastAlphanumeric"
    | "alphanumericWithSymbols";
export type ApplicationGuardBlockClipboardSharingType =
    | "notConfigured"
    | "blockBoth"
    | "blockHostToContainer"
    | "blockContainerToHost"
    | "blockNone";
export type ApplicationGuardBlockFileTransferType =
    | "notConfigured"
    | "blockImageAndTextFile"
    | "blockImageFile"
    | "blockNone"
    | "blockTextFile";
export type AppListType = "none" | "appsInListCompliant" | "appsNotInListCompliant";
export type AppLockerApplicationControlType =
    | "notConfigured"
    | "enforceComponentsAndStoreApps"
    | "auditComponentsAndStoreApps"
    | "enforceComponentsStoreAppsAndSmartlocker"
    | "auditComponentsStoreAppsAndSmartlocker";
export type AutomaticUpdateMode =
    | "userDefined"
    | "notifyDownload"
    | "autoInstallAtMaintenanceTime"
    | "autoInstallAndRebootAtMaintenanceTime"
    | "autoInstallAndRebootAtScheduledTime"
    | "autoInstallAndRebootWithoutEndUserControl";
export type AutoRestartNotificationDismissalMethod = "notConfigured" | "automatic" | "user" | "unknownFutureValue";
export type BitLockerEncryptionMethod = "aesCbc128" | "aesCbc256" | "xtsAes128" | "xtsAes256";
export type DefenderCloudBlockLevelType = "notConfigured" | "high" | "highPlus" | "zeroTolerance";
export type DefenderMonitorFileActivity =
    | "userDefined"
    | "disable"
    | "monitorAllFiles"
    | "monitorIncomingFilesOnly"
    | "monitorOutgoingFilesOnly";
export type DefenderPromptForSampleSubmission =
    | "userDefined"
    | "alwaysPrompt"
    | "promptBeforeSendingPersonalData"
    | "neverSendData"
    | "sendAllDataWithoutPrompting";
export type DefenderScanType = "userDefined" | "disabled" | "quick" | "full";
export type DefenderThreatAction =
    | "deviceDefault"
    | "clean"
    | "quarantine"
    | "remove"
    | "allow"
    | "userDefined"
    | "block";
export type DeviceComplianceActionType =
    | "noAction"
    | "notification"
    | "block"
    | "retire"
    | "wipe"
    | "removeResourceAccessProfiles"
    | "pushNotification";
export type DeviceThreatProtectionLevel = "unavailable" | "secured" | "low" | "medium" | "high" | "notSet";
export type DiagnosticDataSubmissionMode = "userDefined" | "none" | "basic" | "enhanced" | "full";
export type EdgeCookiePolicy = "userDefined" | "allow" | "blockThirdParty" | "blockAll";
export type EdgeSearchEngineType = "default" | "bing";
export type EditionUpgradeLicenseType = "productKey" | "licenseFile";
export type Enablement = "notConfigured" | "enabled" | "disabled";
export type FirewallCertificateRevocationListCheckMethodType = "deviceDefault" | "none" | "attempt" | "require";
export type FirewallPacketQueueingMethodType =
    | "deviceDefault"
    | "disabled"
    | "queueInbound"
    | "queueOutbound"
    | "queueBoth";
export type FirewallPreSharedKeyEncodingMethodType = "deviceDefault" | "none" | "utF8";
export type InternetSiteSecurityLevel = "userDefined" | "medium" | "mediumHigh" | "high";
export type IosNotificationAlertType = "deviceDefault" | "banner" | "modal" | "none";
export type IosUpdatesInstallStatus =
    | "deviceOsHigherThanDesiredOsVersion"
    | "sharedDeviceUserLoggedInError"
    | "notSupportedOperation"
    | "installFailed"
    | "installPhoneCallInProgress"
    | "installInsufficientPower"
    | "installInsufficientSpace"
    | "installing"
    | "downloadInsufficientNetwork"
    | "downloadInsufficientPower"
    | "downloadInsufficientSpace"
    | "downloadRequiresComputer"
    | "downloadFailed"
    | "downloading"
    | "success"
    | "available"
    | "idle"
    | "unknown";
export type MiracastChannel =
    | "userDefined"
    | "one"
    | "two"
    | "three"
    | "four"
    | "five"
    | "six"
    | "seven"
    | "eight"
    | "nine"
    | "ten"
    | "eleven"
    | "thirtySix"
    | "forty"
    | "fortyFour"
    | "fortyEight"
    | "oneHundredFortyNine"
    | "oneHundredFiftyThree"
    | "oneHundredFiftySeven"
    | "oneHundredSixtyOne"
    | "oneHundredSixtyFive";
export type PolicyPlatformType =
    | "android"
    | "androidForWork"
    | "iOS"
    | "macOS"
    | "windowsPhone81"
    | "windows81AndLater"
    | "windows10AndLater"
    | "all";
export type PrereleaseFeatures = "userDefined" | "settingsOnly" | "settingsAndExperimentations" | "notAllowed";
export type RatingAppsType = "allAllowed" | "allBlocked" | "agesAbove4" | "agesAbove9" | "agesAbove12" | "agesAbove17";
export type RatingAustraliaMoviesType =
    | "allAllowed"
    | "allBlocked"
    | "general"
    | "parentalGuidance"
    | "mature"
    | "agesAbove15"
    | "agesAbove18";
export type RatingAustraliaTelevisionType =
    | "allAllowed"
    | "allBlocked"
    | "preschoolers"
    | "children"
    | "general"
    | "parentalGuidance"
    | "mature"
    | "agesAbove15"
    | "agesAbove15AdultViolence";
export type RatingCanadaMoviesType =
    | "allAllowed"
    | "allBlocked"
    | "general"
    | "parentalGuidance"
    | "agesAbove14"
    | "agesAbove18"
    | "restricted";
export type RatingCanadaTelevisionType =
    | "allAllowed"
    | "allBlocked"
    | "children"
    | "childrenAbove8"
    | "general"
    | "parentalGuidance"
    | "agesAbove14"
    | "agesAbove18";
export type RatingFranceMoviesType =
    | "allAllowed"
    | "allBlocked"
    | "agesAbove10"
    | "agesAbove12"
    | "agesAbove16"
    | "agesAbove18";
export type RatingFranceTelevisionType =
    | "allAllowed"
    | "allBlocked"
    | "agesAbove10"
    | "agesAbove12"
    | "agesAbove16"
    | "agesAbove18";
export type RatingGermanyMoviesType =
    | "allAllowed"
    | "allBlocked"
    | "general"
    | "agesAbove6"
    | "agesAbove12"
    | "agesAbove16"
    | "adults";
export type RatingGermanyTelevisionType =
    | "allAllowed"
    | "allBlocked"
    | "general"
    | "agesAbove6"
    | "agesAbove12"
    | "agesAbove16"
    | "adults";
export type RatingIrelandMoviesType =
    | "allAllowed"
    | "allBlocked"
    | "general"
    | "parentalGuidance"
    | "agesAbove12"
    | "agesAbove15"
    | "agesAbove16"
    | "adults";
export type RatingIrelandTelevisionType =
    | "allAllowed"
    | "allBlocked"
    | "general"
    | "children"
    | "youngAdults"
    | "parentalSupervision"
    | "mature";
export type RatingJapanMoviesType =
    | "allAllowed"
    | "allBlocked"
    | "general"
    | "parentalGuidance"
    | "agesAbove15"
    | "agesAbove18";
export type RatingJapanTelevisionType = "allAllowed" | "allBlocked" | "explicitAllowed";
export type RatingNewZealandMoviesType =
    | "allAllowed"
    | "allBlocked"
    | "general"
    | "parentalGuidance"
    | "mature"
    | "agesAbove13"
    | "agesAbove15"
    | "agesAbove16"
    | "agesAbove18"
    | "restricted"
    | "agesAbove16Restricted";
export type RatingNewZealandTelevisionType = "allAllowed" | "allBlocked" | "general" | "parentalGuidance" | "adults";
export type RatingUnitedKingdomMoviesType =
    | "allAllowed"
    | "allBlocked"
    | "general"
    | "universalChildren"
    | "parentalGuidance"
    | "agesAbove12Video"
    | "agesAbove12Cinema"
    | "agesAbove15"
    | "adults";
export type RatingUnitedKingdomTelevisionType = "allAllowed" | "allBlocked" | "caution";
export type RatingUnitedStatesMoviesType =
    | "allAllowed"
    | "allBlocked"
    | "general"
    | "parentalGuidance"
    | "parentalGuidance13"
    | "restricted"
    | "adults";
export type RatingUnitedStatesTelevisionType =
    | "allAllowed"
    | "allBlocked"
    | "childrenAll"
    | "childrenAbove7"
    | "general"
    | "parentalGuidance"
    | "childrenAbove14"
    | "adults";
export type RequiredPasswordType = "deviceDefault" | "alphanumeric" | "numeric";
export type SafeSearchFilterType = "userDefined" | "strict" | "moderate";
export type SettingSourceType = "deviceConfiguration" | "deviceIntent";
export type SharedPCAccountDeletionPolicyType =
    | "immediate"
    | "diskSpaceThreshold"
    | "diskSpaceThresholdOrInactiveThreshold";
export type SharedPCAllowedAccountType = "guest" | "domain";
export type SiteSecurityLevel = "userDefined" | "low" | "mediumLow" | "medium" | "mediumHigh" | "high";
export type StateManagementSetting = "notConfigured" | "blocked" | "allowed";
export type VisibilitySetting = "notConfigured" | "hide" | "show";
export type WebBrowserCookieSettings =
    | "browserDefault"
    | "blockAlways"
    | "allowCurrentWebSite"
    | "allowFromWebsitesVisited"
    | "allowAlways";
export type WeeklySchedule =
    | "userDefined"
    | "everyday"
    | "sunday"
    | "monday"
    | "tuesday"
    | "wednesday"
    | "thursday"
    | "friday"
    | "saturday";
export type WelcomeScreenMeetingInformation =
    | "userDefined"
    | "showOrganizerAndTimeOnly"
    | "showOrganizerAndTimeAndSubject";
export type Windows10EditionType =
    | "windows10Enterprise"
    | "windows10EnterpriseN"
    | "windows10Education"
    | "windows10EducationN"
    | "windows10MobileEnterprise"
    | "windows10HolographicEnterprise"
    | "windows10Professional"
    | "windows10ProfessionalN"
    | "windows10ProfessionalEducation"
    | "windows10ProfessionalEducationN"
    | "windows10ProfessionalWorkstation"
    | "windows10ProfessionalWorkstationN";
export type WindowsDeliveryOptimizationMode =
    | "userDefined"
    | "httpOnly"
    | "httpWithPeeringNat"
    | "httpWithPeeringPrivateGroup"
    | "httpWithInternetPeering"
    | "simpleDownload"
    | "bypassMode";
export type WindowsSpotlightEnablementSettings = "notConfigured" | "disabled" | "enabled";
export type WindowsStartMenuAppListVisibilityType = "userDefined" | "collapse" | "remove" | "disableSettingsApp";
export type WindowsStartMenuModeType = "userDefined" | "fullScreen" | "nonFullScreen";
export type WindowsUpdateForBusinessUpdateWeeks =
    | "userDefined"
    | "firstWeek"
    | "secondWeek"
    | "thirdWeek"
    | "fourthWeek"
    | "everyWeek"
    | "unknownFutureValue";
export type WindowsUpdateNotificationDisplayOption =
    | "notConfigured"
    | "defaultNotifications"
    | "restartWarningsOnly"
    | "disableAllNotifications"
    | "unknownFutureValue";
export type WindowsUpdateType =
    | "userDefined"
    | "all"
    | "businessReadyOnly"
    | "windowsInsiderBuildFast"
    | "windowsInsiderBuildSlow"
    | "windowsInsiderBuildRelease";
export type WindowsUserAccountControlSettings =
    | "userDefined"
    | "alwaysNotify"
    | "notifyOnAppChanges"
    | "notifyOnAppChangesWithoutDimming"
    | "neverNotify";
export type DeviceManagementExchangeConnectorStatus =
    | "none"
    | "connectionPending"
    | "connected"
    | "disconnected"
    | "unknownFutureValue";
export type DeviceManagementExchangeConnectorSyncType = "fullSync" | "deltaSync";
export type DeviceManagementExchangeConnectorType =
    | "onPremises"
    | "hosted"
    | "serviceToService"
    | "dedicated"
    | "unknownFutureValue";
export type DeviceManagementPartnerAppType = "unknown" | "singleTenantApp" | "multiTenantApp";
export type DeviceManagementPartnerTenantState =
    | "unknown"
    | "unavailable"
    | "enabled"
    | "terminated"
    | "rejected"
    | "unresponsive";
export type MdmAuthority = "unknown" | "intune" | "sccm" | "office365";
export type MobileThreatPartnerTenantState = "unavailable" | "available" | "enabled" | "unresponsive";
export type VppTokenState = "unknown" | "valid" | "expired" | "invalid" | "assignedToExternalMDM";
export type VppTokenSyncStatus = "none" | "inProgress" | "completed" | "failed";
export type WindowsHelloForBusinessPinUsage = "allowed" | "required" | "disallowed";
export type ActionState = "none" | "pending" | "canceled" | "active" | "done" | "failed" | "notSupported";
export type AppLogDecryptionAlgorithm = "aes256" | "unknownFutureValue";
export type AppLogUploadState = "pending" | "completed" | "failed" | "unknownFutureValue";
export type ComplianceState =
    | "unknown"
    | "compliant"
    | "noncompliant"
    | "conflict"
    | "error"
    | "inGracePeriod"
    | "configManager";
export type DetectedAppPlatformType =
    | "unknown"
    | "windows"
    | "windowsMobile"
    | "windowsHolographic"
    | "ios"
    | "macOS"
    | "chromeOS"
    | "androidOSP"
    | "androidDeviceAdministrator"
    | "androidWorkProfile"
    | "androidDedicatedAndFullyManaged"
    | "unknownFutureValue";
export type DeviceEnrollmentType =
    | "unknown"
    | "userEnrollment"
    | "deviceEnrollmentManager"
    | "appleBulkWithUser"
    | "appleBulkWithoutUser"
    | "windowsAzureADJoin"
    | "windowsBulkUserless"
    | "windowsAutoEnrollment"
    | "windowsBulkAzureDomainJoin"
    | "windowsCoManagement"
    | "windowsAzureADJoinUsingDeviceAuth"
    | "appleUserEnrollment"
    | "appleUserEnrollmentWithServiceAccount";
export type DeviceLogCollectionTemplateType = "predefined" | "unknownFutureValue";
export type DeviceManagementExchangeAccessState = "none" | "unknown" | "allowed" | "blocked" | "quarantined";
export type DeviceManagementExchangeAccessStateReason =
    | "none"
    | "unknown"
    | "exchangeGlobalRule"
    | "exchangeIndividualRule"
    | "exchangeDeviceRule"
    | "exchangeUpgrade"
    | "exchangeMailboxPolicy"
    | "other"
    | "compliant"
    | "notCompliant"
    | "notEnrolled"
    | "unknownLocation"
    | "mfaRequired"
    | "azureADBlockDueToAccessPolicy"
    | "compromisedPassword"
    | "deviceNotKnownWithManagedApp";
export type DeviceManagementSubscriptionState =
    | "pending"
    | "active"
    | "warning"
    | "disabled"
    | "deleted"
    | "blocked"
    | "lockedOut";
export type DeviceRegistrationState =
    | "notRegistered"
    | "registered"
    | "revoked"
    | "keyConflict"
    | "approvalPending"
    | "certificateReset"
    | "notRegisteredPendingEnrollment"
    | "unknown";
export type DiskType = "unknown" | "hdd" | "ssd" | "unknownFutureValue";
export type ManagedDeviceOwnerType = "unknown" | "company" | "personal";
export type ManagedDevicePartnerReportedHealthState =
    | "unknown"
    | "activated"
    | "deactivated"
    | "secured"
    | "lowSeverity"
    | "mediumSeverity"
    | "highSeverity"
    | "unresponsive"
    | "compromised"
    | "misconfigured";
export type ManagementAgentType =
    | "eas"
    | "mdm"
    | "easMdm"
    | "intuneClient"
    | "easIntuneClient"
    | "configurationManagerClient"
    | "configurationManagerClientMdm"
    | "configurationManagerClientMdmEas"
    | "unknown"
    | "jamf"
    | "googleCloudDevicePolicyController"
    | "microsoft365ManagedMdm"
    | "msSense";
export type ObliterationBehavior =
    | "default"
    | "doNotObliterate"
    | "obliterateWithWarning"
    | "always"
    | "unknownFutureValue";
export type OperatingSystemUpgradeEligibility = "upgraded" | "unknown" | "notCapable" | "capable" | "unknownFutureValue";
export type UserExperienceAnalyticsHealthState =
    | "unknown"
    | "insufficientData"
    | "needsAttention"
    | "meetingGoals"
    | "unknownFutureValue";
export type UserExperienceAnalyticsInsightSeverity =
    | "none"
    | "informational"
    | "warning"
    | "error"
    | "unknownFutureValue";
export type UserExperienceAnalyticsOperatingSystemRestartCategory =
    | "unknown"
    | "restartWithUpdate"
    | "restartWithoutUpdate"
    | "blueScreen"
    | "shutdownWithUpdate"
    | "shutdownWithoutUpdate"
    | "longPowerButtonPress"
    | "bootError"
    | "update"
    | "unknownFutureValue";
export type UserExperienceAnalyticsSummarizedBy =
    | "none"
    | "model"
    | "allRegressions"
    | "modelRegression"
    | "manufacturerRegression"
    | "operatingSystemVersionRegression"
    | "unknownFutureValue";
export type WindowsDefenderProductStatus =
    | "noStatus"
    | "serviceNotRunning"
    | "serviceStartedWithoutMalwareProtection"
    | "pendingFullScanDueToThreatAction"
    | "pendingRebootDueToThreatAction"
    | "pendingManualStepsDueToThreatAction"
    | "avSignaturesOutOfDate"
    | "asSignaturesOutOfDate"
    | "noQuickScanHappenedForSpecifiedPeriod"
    | "noFullScanHappenedForSpecifiedPeriod"
    | "systemInitiatedScanInProgress"
    | "systemInitiatedCleanInProgress"
    | "samplesPendingSubmission"
    | "productRunningInEvaluationMode"
    | "productRunningInNonGenuineMode"
    | "productExpired"
    | "offlineScanRequired"
    | "serviceShutdownAsPartOfSystemShutdown"
    | "threatRemediationFailedCritically"
    | "threatRemediationFailedNonCritically"
    | "noStatusFlagsSet"
    | "platformOutOfDate"
    | "platformUpdateInProgress"
    | "platformAboutToBeOutdated"
    | "signatureOrPlatformEndOfLifeIsPastOrIsImpending"
    | "windowsSModeSignaturesInUseOnNonWin10SInstall";
export type WindowsDeviceHealthState =
    | "clean"
    | "fullScanPending"
    | "rebootPending"
    | "manualStepsPending"
    | "offlineScanPending"
    | "critical";
export type WindowsMalwareCategory =
    | "invalid"
    | "adware"
    | "spyware"
    | "passwordStealer"
    | "trojanDownloader"
    | "worm"
    | "backdoor"
    | "remoteAccessTrojan"
    | "trojan"
    | "emailFlooder"
    | "keylogger"
    | "dialer"
    | "monitoringSoftware"
    | "browserModifier"
    | "cookie"
    | "browserPlugin"
    | "aolExploit"
    | "nuker"
    | "securityDisabler"
    | "jokeProgram"
    | "hostileActiveXControl"
    | "softwareBundler"
    | "stealthNotifier"
    | "settingsModifier"
    | "toolBar"
    | "remoteControlSoftware"
    | "trojanFtp"
    | "potentialUnwantedSoftware"
    | "icqExploit"
    | "trojanTelnet"
    | "exploit"
    | "filesharingProgram"
    | "malwareCreationTool"
    | "remote_Control_Software"
    | "tool"
    | "trojanDenialOfService"
    | "trojanDropper"
    | "trojanMassMailer"
    | "trojanMonitoringSoftware"
    | "trojanProxyServer"
    | "virus"
    | "known"
    | "unknown"
    | "spp"
    | "behavior"
    | "vulnerability"
    | "policy"
    | "enterpriseUnwantedSoftware"
    | "ransom"
    | "hipsRule";
export type WindowsMalwareExecutionState = "unknown" | "blocked" | "allowed" | "running" | "notRunning";
export type WindowsMalwareSeverity = "unknown" | "low" | "moderate" | "high" | "severe";
export type WindowsMalwareState =
    | "unknown"
    | "detected"
    | "cleaned"
    | "quarantined"
    | "removed"
    | "allowed"
    | "blocked"
    | "cleanFailed"
    | "quarantineFailed"
    | "removeFailed"
    | "allowFailed"
    | "abandoned"
    | "blockFailed";
export type WindowsMalwareThreatState =
    | "active"
    | "actionFailed"
    | "manualStepsRequired"
    | "fullScanRequired"
    | "rebootRequired"
    | "remediatedWithNonCriticalFailures"
    | "quarantined"
    | "removed"
    | "cleaned"
    | "allowed"
    | "noStatusCleared";
export type EnrollmentState = "unknown" | "enrolled" | "pendingReset" | "failed" | "notContacted";
export type ImportedWindowsAutopilotDeviceIdentityImportStatus =
    | "unknown"
    | "pending"
    | "partial"
    | "complete"
    | "error";
export type ImportedWindowsAutopilotDeviceIdentityUploadStatus = "noUpload" | "pending" | "complete" | "error";
export type ManagedAppClipboardSharingLevel = "allApps" | "managedAppsWithPasteIn" | "managedApps" | "blocked";
export type ManagedAppDataEncryptionType =
    | "useDeviceSettings"
    | "afterDeviceRestart"
    | "whenDeviceLockedExceptOpenFiles"
    | "whenDeviceLocked";
export type ManagedAppDataStorageLocation = "oneDriveForBusiness" | "sharePoint" | "box" | "localStorage";
export type ManagedAppDataTransferLevel = "allApps" | "managedApps" | "none";
export type ManagedAppFlaggedReason = "none" | "rootedDevice";
export type ManagedAppPinCharacterSet = "numeric" | "alphanumericAndSymbol";
export type ManagedBrowserType = "notConfigured" | "microsoftEdge";
export type TargetedManagedAppGroupType = "selectedPublicApps" | "allCoreMicrosoftApps" | "allMicrosoftApps" | "allApps";
export type WindowsInformationProtectionEnforcementLevel =
    | "noProtection"
    | "encryptAndAuditOnly"
    | "encryptAuditAndPrompt"
    | "encryptAuditAndBlock";
export type WindowsInformationProtectionPinCharacterRequirements = "notAllow" | "requireAtLeastOne" | "allow";
export type NotificationTemplateBrandingOptions =
    | "none"
    | "includeCompanyLogo"
    | "includeCompanyName"
    | "includeContactInformation"
    | "includeCompanyPortalLink"
    | "includeDeviceDetails"
    | "unknownFutureValue";
export type RemoteAssistanceOnboardingStatus = "notOnboarded" | "onboarding" | "onboarded";
export type DeviceManagementExportJobLocalizationType = "localizedValuesAsAdditionalColumn" | "replaceLocalizableValues";
export type DeviceManagementReportFileFormat = "csv" | "pdf" | "json" | "unknownFutureValue";
export type DeviceManagementReportStatus = "unknown" | "notStarted" | "inProgress" | "completed" | "failed";
export type DeviceEnrollmentFailureReason =
    | "unknown"
    | "authentication"
    | "authorization"
    | "accountValidation"
    | "userValidation"
    | "deviceNotSupported"
    | "inMaintenance"
    | "badRequest"
    | "featureNotSupported"
    | "enrollmentRestrictionsEnforced"
    | "clientDisconnected"
    | "userAbandonment";
export type ApplicationType = "universal" | "desktop";
export type PostType = "regular" | "quick" | "strategic" | "unknownFutureValue";
export type ServiceHealthClassificationType = "advisory" | "incident" | "unknownFutureValue";
export type ServiceHealthOrigin = "microsoft" | "thirdParty" | "customer" | "unknownFutureValue";
export type ServiceHealthStatus =
    | "serviceOperational"
    | "investigating"
    | "restoringService"
    | "verifyingService"
    | "serviceRestored"
    | "postIncidentReviewPublished"
    | "serviceDegradation"
    | "serviceInterruption"
    | "extendedRecovery"
    | "falsePositive"
    | "investigationSuspended"
    | "resolved"
    | "mitigatedExternal"
    | "mitigated"
    | "resolvedExternal"
    | "confirmed"
    | "reported"
    | "unknownFutureValue";
export type ServiceUpdateCategory = "preventOrFixIssue" | "planForChange" | "stayInformed" | "unknownFutureValue";
export type ServiceUpdateSeverity = "normal" | "high" | "critical" | "unknownFutureValue";
export type BucketAggregationSortProperty = "count" | "keyAsString" | "keyAsNumber" | "unknownFutureValue";
export type EntityType =
    | "event"
    | "message"
    | "driveItem"
    | "externalItem"
    | "site"
    | "list"
    | "listItem"
    | "drive"
    | "unknownFutureValue"
    | "acronym"
    | "bookmark"
    | "chatMessage"
    | "person";
export type SearchAlterationType = "suggestion" | "modification" | "unknownFutureValue";
export type SearchContent = "sharedContent" | "privateContent" | "unknownFutureValue";
export type PlannerContainerType = "group" | "unknownFutureValue" | "roster";
export type PlannerPreviewType = "automatic" | "noPreview" | "checklist" | "description" | "reference";
export type OnenotePatchActionType = "Replace" | "Append" | "Delete" | "Insert" | "Prepend";
export type OnenotePatchInsertPosition = "After" | "Before";
export type OnenoteSourceService = "Unknown" | "OneDrive" | "OneDriveForBusiness" | "OnPremOneDriveForBusiness";
export type OnenoteUserRole = "None" | "Owner" | "Contributor" | "Reader";
export type OperationStatus = "NotStarted" | "Running" | "Completed" | "Failed";
export type DelegatedAdminAccessAssignmentStatus =
    | "pending"
    | "active"
    | "deleting"
    | "deleted"
    | "error"
    | "unknownFutureValue";
export type DelegatedAdminAccessContainerType = "securityGroup" | "unknownFutureValue";
export type DelegatedAdminRelationshipOperationType = "delegatedAdminAccessAssignmentUpdate" | "unknownFutureValue";
export type DelegatedAdminRelationshipRequestAction =
    | "lockForApproval"
    | "approve"
    | "terminate"
    | "unknownFutureValue"
    | "reject";
export type DelegatedAdminRelationshipRequestStatus =
    | "created"
    | "pending"
    | "succeeded"
    | "failed"
    | "unknownFutureValue";
export type DelegatedAdminRelationshipStatus =
    | "activating"
    | "active"
    | "approvalPending"
    | "approved"
    | "created"
    | "expired"
    | "expiring"
    | "terminated"
    | "terminating"
    | "terminationRequested"
    | "unknownFutureValue";
export type AssignmentScheduleFilterByCurrentUserOptions = "principal" | "unknownFutureValue";
export type AssignmentScheduleInstanceFilterByCurrentUserOptions = "principal" | "unknownFutureValue";
export type AssignmentScheduleRequestFilterByCurrentUserOptions =
    | "principal"
    | "createdBy"
    | "approver"
    | "unknownFutureValue";
export type EligibilityScheduleFilterByCurrentUserOptions = "principal" | "unknownFutureValue";
export type EligibilityScheduleInstanceFilterByCurrentUserOptions = "principal" | "unknownFutureValue";
export type EligibilityScheduleRequestFilterByCurrentUserOptions =
    | "principal"
    | "createdBy"
    | "approver"
    | "unknownFutureValue";
export type PrivilegedAccessGroupAssignmentType = "assigned" | "activated" | "unknownFutureValue";
export type PrivilegedAccessGroupMemberType = "direct" | "group" | "unknownFutureValue";
export type PrivilegedAccessGroupRelationships = "owner" | "member" | "unknownFutureValue";
export type RoleAssignmentScheduleFilterByCurrentUserOptions = "principal" | "unknownFutureValue";
export type RoleAssignmentScheduleInstanceFilterByCurrentUserOptions = "principal" | "unknownFutureValue";
export type RoleAssignmentScheduleRequestFilterByCurrentUserOptions =
    | "principal"
    | "createdBy"
    | "approver"
    | "unknownFutureValue";
export type RoleEligibilityScheduleFilterByCurrentUserOptions = "principal" | "unknownFutureValue";
export type RoleEligibilityScheduleInstanceFilterByCurrentUserOptions = "principal" | "unknownFutureValue";
export type RoleEligibilityScheduleRequestFilterByCurrentUserOptions =
    | "principal"
    | "createdBy"
    | "approver"
    | "unknownFutureValue";
export type ScheduleRequestActions =
    | "adminAssign"
    | "adminUpdate"
    | "adminRemove"
    | "selfActivate"
    | "selfDeactivate"
    | "adminExtend"
    | "adminRenew"
    | "selfExtend"
    | "selfRenew"
    | "unknownFutureValue";
export type UnifiedRoleManagementPolicyRuleTargetOperations =
    | "all"
    | "activate"
    | "deactivate"
    | "assign"
    | "update"
    | "remove"
    | "extend"
    | "renew"
    | "unknownFutureValue";
export type UnifiedRoleScheduleRequestActions =
    | "adminAssign"
    | "adminUpdate"
    | "adminRemove"
    | "selfActivate"
    | "selfDeactivate"
    | "adminExtend"
    | "adminRenew"
    | "selfExtend"
    | "selfRenew"
    | "unknownFutureValue";
export type PrintColorMode = "blackAndWhite" | "grayscale" | "color" | "auto" | "unknownFutureValue";
export type PrintDuplexMode = "flipOnLongEdge" | "flipOnShortEdge" | "oneSided" | "unknownFutureValue";
export type PrinterFeedOrientation = "longEdgeFirst" | "shortEdgeFirst" | "unknownFutureValue";
export type PrinterProcessingState = "unknown" | "idle" | "processing" | "stopped" | "unknownFutureValue";
export type PrinterProcessingStateDetail =
    | "paused"
    | "mediaJam"
    | "mediaNeeded"
    | "mediaLow"
    | "mediaEmpty"
    | "coverOpen"
    | "interlockOpen"
    | "outputTrayMissing"
    | "outputAreaFull"
    | "markerSupplyLow"
    | "markerSupplyEmpty"
    | "inputTrayMissing"
    | "outputAreaAlmostFull"
    | "markerWasteAlmostFull"
    | "markerWasteFull"
    | "fuserOverTemp"
    | "fuserUnderTemp"
    | "other"
    | "none"
    | "movingToPaused"
    | "shutdown"
    | "connectingToDevice"
    | "timedOut"
    | "stopping"
    | "stoppedPartially"
    | "tonerLow"
    | "tonerEmpty"
    | "spoolAreaFull"
    | "doorOpen"
    | "opticalPhotoConductorNearEndOfLife"
    | "opticalPhotoConductorLifeOver"
    | "developerLow"
    | "developerEmpty"
    | "interpreterResourceUnavailable"
    | "unknownFutureValue"
    | "alertRemovalOfBinaryChangeEntry"
    | "banderAdded"
    | "banderAlmostEmpty"
    | "banderAlmostFull"
    | "banderAtLimit"
    | "banderClosed"
    | "banderConfigurationChange"
    | "banderCoverClosed"
    | "banderCoverOpen"
    | "banderEmpty"
    | "banderFull"
    | "banderInterlockClosed"
    | "banderInterlockOpen"
    | "banderJam"
    | "banderLifeAlmostOver"
    | "banderLifeOver"
    | "banderMemoryExhausted"
    | "banderMissing"
    | "banderMotorFailure"
    | "banderNearLimit"
    | "banderOffline"
    | "banderOpened"
    | "banderOverTemperature"
    | "banderPowerSaver"
    | "banderRecoverableFailure"
    | "banderRecoverableStorage"
    | "banderRemoved"
    | "banderResourceAdded"
    | "banderResourceRemoved"
    | "banderThermistorFailure"
    | "banderTimingFailure"
    | "banderTurnedOff"
    | "banderTurnedOn"
    | "banderUnderTemperature"
    | "banderUnrecoverableFailure"
    | "banderUnrecoverableStorageError"
    | "banderWarmingUp"
    | "binderAdded"
    | "binderAlmostEmpty"
    | "binderAlmostFull"
    | "binderAtLimit"
    | "binderClosed"
    | "binderConfigurationChange"
    | "binderCoverClosed"
    | "binderCoverOpen"
    | "binderEmpty"
    | "binderFull"
    | "binderInterlockClosed"
    | "binderInterlockOpen"
    | "binderJam"
    | "binderLifeAlmostOver"
    | "binderLifeOver"
    | "binderMemoryExhausted"
    | "binderMissing"
    | "binderMotorFailure"
    | "binderNearLimit"
    | "binderOffline"
    | "binderOpened"
    | "binderOverTemperature"
    | "binderPowerSaver"
    | "binderRecoverableFailure"
    | "binderRecoverableStorage"
    | "binderRemoved"
    | "binderResourceAdded"
    | "binderResourceRemoved"
    | "binderThermistorFailure"
    | "binderTimingFailure"
    | "binderTurnedOff"
    | "binderTurnedOn"
    | "binderUnderTemperature"
    | "binderUnrecoverableFailure"
    | "binderUnrecoverableStorageError"
    | "binderWarmingUp"
    | "cameraFailure"
    | "chamberCooling"
    | "chamberFailure"
    | "chamberHeating"
    | "chamberTemperatureHigh"
    | "chamberTemperatureLow"
    | "cleanerLifeAlmostOver"
    | "cleanerLifeOver"
    | "configurationChange"
    | "deactivated"
    | "deleted"
    | "dieCutterAdded"
    | "dieCutterAlmostEmpty"
    | "dieCutterAlmostFull"
    | "dieCutterAtLimit"
    | "dieCutterClosed"
    | "dieCutterConfigurationChange"
    | "dieCutterCoverClosed"
    | "dieCutterCoverOpen"
    | "dieCutterEmpty"
    | "dieCutterFull"
    | "dieCutterInterlockClosed"
    | "dieCutterInterlockOpen"
    | "dieCutterJam"
    | "dieCutterLifeAlmostOver"
    | "dieCutterLifeOver"
    | "dieCutterMemoryExhausted"
    | "dieCutterMissing"
    | "dieCutterMotorFailure"
    | "dieCutterNearLimit"
    | "dieCutterOffline"
    | "dieCutterOpened"
    | "dieCutterOverTemperature"
    | "dieCutterPowerSaver"
    | "dieCutterRecoverableFailure"
    | "dieCutterRecoverableStorage"
    | "dieCutterRemoved"
    | "dieCutterResourceAdded"
    | "dieCutterResourceRemoved"
    | "dieCutterThermistorFailure"
    | "dieCutterTimingFailure"
    | "dieCutterTurnedOff"
    | "dieCutterTurnedOn"
    | "dieCutterUnderTemperature"
    | "dieCutterUnrecoverableFailure"
    | "dieCutterUnrecoverableStorageError"
    | "dieCutterWarmingUp"
    | "extruderCooling"
    | "extruderFailure"
    | "extruderHeating"
    | "extruderJam"
    | "extruderTemperatureHigh"
    | "extruderTemperatureLow"
    | "fanFailure"
    | "faxModemLifeAlmostOver"
    | "faxModemLifeOver"
    | "faxModemMissing"
    | "faxModemTurnedOff"
    | "faxModemTurnedOn"
    | "folderAdded"
    | "folderAlmostEmpty"
    | "folderAlmostFull"
    | "folderAtLimit"
    | "folderClosed"
    | "folderConfigurationChange"
    | "folderCoverClosed"
    | "folderCoverOpen"
    | "folderEmpty"
    | "folderFull"
    | "folderInterlockClosed"
    | "folderInterlockOpen"
    | "folderJam"
    | "folderLifeAlmostOver"
    | "folderLifeOver"
    | "folderMemoryExhausted"
    | "folderMissing"
    | "folderMotorFailure"
    | "folderNearLimit"
    | "folderOffline"
    | "folderOpened"
    | "folderOverTemperature"
    | "folderPowerSaver"
    | "folderRecoverableFailure"
    | "folderRecoverableStorage"
    | "folderRemoved"
    | "folderResourceAdded"
    | "folderResourceRemoved"
    | "folderThermistorFailure"
    | "folderTimingFailure"
    | "folderTurnedOff"
    | "folderTurnedOn"
    | "folderUnderTemperature"
    | "folderUnrecoverableFailure"
    | "folderUnrecoverableStorageError"
    | "folderWarmingUp"
    | "hibernate"
    | "holdNewJobs"
    | "identifyPrinterRequested"
    | "imprinterAdded"
    | "imprinterAlmostEmpty"
    | "imprinterAlmostFull"
    | "imprinterAtLimit"
    | "imprinterClosed"
    | "imprinterConfigurationChange"
    | "imprinterCoverClosed"
    | "imprinterCoverOpen"
    | "imprinterEmpty"
    | "imprinterFull"
    | "imprinterInterlockClosed"
    | "imprinterInterlockOpen"
    | "imprinterJam"
    | "imprinterLifeAlmostOver"
    | "imprinterLifeOver"
    | "imprinterMemoryExhausted"
    | "imprinterMissing"
    | "imprinterMotorFailure"
    | "imprinterNearLimit"
    | "imprinterOffline"
    | "imprinterOpened"
    | "imprinterOverTemperature"
    | "imprinterPowerSaver"
    | "imprinterRecoverableFailure"
    | "imprinterRecoverableStorage"
    | "imprinterRemoved"
    | "imprinterResourceAdded"
    | "imprinterResourceRemoved"
    | "imprinterThermistorFailure"
    | "imprinterTimingFailure"
    | "imprinterTurnedOff"
    | "imprinterTurnedOn"
    | "imprinterUnderTemperature"
    | "imprinterUnrecoverableFailure"
    | "imprinterUnrecoverableStorageError"
    | "imprinterWarmingUp"
    | "inputCannotFeedSizeSelected"
    | "inputManualInputRequest"
    | "inputMediaColorChange"
    | "inputMediaFormPartsChange"
    | "inputMediaSizeChange"
    | "inputMediaTrayFailure"
    | "inputMediaTrayFeedError"
    | "inputMediaTrayJam"
    | "inputMediaTypeChange"
    | "inputMediaWeightChange"
    | "inputPickRollerFailure"
    | "inputPickRollerLifeOver"
    | "inputPickRollerLifeWarn"
    | "inputPickRollerMissing"
    | "inputTrayElevationFailure"
    | "inputTrayPositionFailure"
    | "inserterAdded"
    | "inserterAlmostEmpty"
    | "inserterAlmostFull"
    | "inserterAtLimit"
    | "inserterClosed"
    | "inserterConfigurationChange"
    | "inserterCoverClosed"
    | "inserterCoverOpen"
    | "inserterEmpty"
    | "inserterFull"
    | "inserterInterlockClosed"
    | "inserterInterlockOpen"
    | "inserterJam"
    | "inserterLifeAlmostOver"
    | "inserterLifeOver"
    | "inserterMemoryExhausted"
    | "inserterMissing"
    | "inserterMotorFailure"
    | "inserterNearLimit"
    | "inserterOffline"
    | "inserterOpened"
    | "inserterOverTemperature"
    | "inserterPowerSaver"
    | "inserterRecoverableFailure"
    | "inserterRecoverableStorage"
    | "inserterRemoved"
    | "inserterResourceAdded"
    | "inserterResourceRemoved"
    | "inserterThermistorFailure"
    | "inserterTimingFailure"
    | "inserterTurnedOff"
    | "inserterTurnedOn"
    | "inserterUnderTemperature"
    | "inserterUnrecoverableFailure"
    | "inserterUnrecoverableStorageError"
    | "inserterWarmingUp"
    | "interlockClosed"
    | "interpreterCartridgeAdded"
    | "interpreterCartridgeDeleted"
    | "interpreterComplexPageEncountered"
    | "interpreterMemoryDecrease"
    | "interpreterMemoryIncrease"
    | "interpreterResourceAdded"
    | "interpreterResourceDeleted"
    | "lampAtEol"
    | "lampFailure"
    | "lampNearEol"
    | "laserAtEol"
    | "laserFailure"
    | "laserNearEol"
    | "makeEnvelopeAdded"
    | "makeEnvelopeAlmostEmpty"
    | "makeEnvelopeAlmostFull"
    | "makeEnvelopeAtLimit"
    | "makeEnvelopeClosed"
    | "makeEnvelopeConfigurationChange"
    | "makeEnvelopeCoverClosed"
    | "makeEnvelopeCoverOpen"
    | "makeEnvelopeEmpty"
    | "makeEnvelopeFull"
    | "makeEnvelopeInterlockClosed"
    | "makeEnvelopeInterlockOpen"
    | "makeEnvelopeJam"
    | "makeEnvelopeLifeAlmostOver"
    | "makeEnvelopeLifeOver"
    | "makeEnvelopeMemoryExhausted"
    | "makeEnvelopeMissing"
    | "makeEnvelopeMotorFailure"
    | "makeEnvelopeNearLimit"
    | "makeEnvelopeOffline"
    | "makeEnvelopeOpened"
    | "makeEnvelopeOverTemperature"
    | "makeEnvelopePowerSaver"
    | "makeEnvelopeRecoverableFailure"
    | "makeEnvelopeRecoverableStorage"
    | "makeEnvelopeRemoved"
    | "makeEnvelopeResourceAdded"
    | "makeEnvelopeResourceRemoved"
    | "makeEnvelopeThermistorFailure"
    | "makeEnvelopeTimingFailure"
    | "makeEnvelopeTurnedOff"
    | "makeEnvelopeTurnedOn"
    | "makeEnvelopeUnderTemperature"
    | "makeEnvelopeUnrecoverableFailure"
    | "makeEnvelopeUnrecoverableStorageError"
    | "makeEnvelopeWarmingUp"
    | "markerAdjustingPrintQuality"
    | "markerCleanerMissing"
    | "markerDeveloperAlmostEmpty"
    | "markerDeveloperEmpty"
    | "markerDeveloperMissing"
    | "markerFuserMissing"
    | "markerFuserThermistorFailure"
    | "markerFuserTimingFailure"
    | "markerInkAlmostEmpty"
    | "markerInkEmpty"
    | "markerInkMissing"
    | "markerOpcMissing"
    | "markerPrintRibbonAlmostEmpty"
    | "markerPrintRibbonEmpty"
    | "markerPrintRibbonMissing"
    | "markerSupplyAlmostEmpty"
    | "markerSupplyMissing"
    | "markerTonerCartridgeMissing"
    | "markerTonerMissing"
    | "markerWasteInkReceptacleAlmostFull"
    | "markerWasteInkReceptacleFull"
    | "markerWasteInkReceptacleMissing"
    | "markerWasteMissing"
    | "markerWasteTonerReceptacleAlmostFull"
    | "markerWasteTonerReceptacleFull"
    | "markerWasteTonerReceptacleMissing"
    | "materialEmpty"
    | "materialLow"
    | "materialNeeded"
    | "mediaDrying"
    | "mediaPathCannotDuplexMediaSelected"
    | "mediaPathFailure"
    | "mediaPathInputEmpty"
    | "mediaPathInputFeedError"
    | "mediaPathInputJam"
    | "mediaPathInputRequest"
    | "mediaPathJam"
    | "mediaPathMediaTrayAlmostFull"
    | "mediaPathMediaTrayFull"
    | "mediaPathMediaTrayMissing"
    | "mediaPathOutputFeedError"
    | "mediaPathOutputFull"
    | "mediaPathOutputJam"
    | "mediaPathPickRollerFailure"
    | "mediaPathPickRollerLifeOver"
    | "mediaPathPickRollerLifeWarn"
    | "mediaPathPickRollerMissing"
    | "motorFailure"
    | "outputMailboxSelectFailure"
    | "outputMediaTrayFailure"
    | "outputMediaTrayFeedError"
    | "outputMediaTrayJam"
    | "perforaterAdded"
    | "perforaterAlmostEmpty"
    | "perforaterAlmostFull"
    | "perforaterAtLimit"
    | "perforaterClosed"
    | "perforaterConfigurationChange"
    | "perforaterCoverClosed"
    | "perforaterCoverOpen"
    | "perforaterEmpty"
    | "perforaterFull"
    | "perforaterInterlockClosed"
    | "perforaterInterlockOpen"
    | "perforaterJam"
    | "perforaterLifeAlmostOver"
    | "perforaterLifeOver"
    | "perforaterMemoryExhausted"
    | "perforaterMissing"
    | "perforaterMotorFailure"
    | "perforaterNearLimit"
    | "perforaterOffline"
    | "perforaterOpened"
    | "perforaterOverTemperature"
    | "perforaterPowerSaver"
    | "perforaterRecoverableFailure"
    | "perforaterRecoverableStorage"
    | "perforaterRemoved"
    | "perforaterResourceAdded"
    | "perforaterResourceRemoved"
    | "perforaterThermistorFailure"
    | "perforaterTimingFailure"
    | "perforaterTurnedOff"
    | "perforaterTurnedOn"
    | "perforaterUnderTemperature"
    | "perforaterUnrecoverableFailure"
    | "perforaterUnrecoverableStorageError"
    | "perforaterWarmingUp"
    | "platformCooling"
    | "platformFailure"
    | "platformHeating"
    | "platformTemperatureHigh"
    | "platformTemperatureLow"
    | "powerDown"
    | "powerUp"
    | "printerManualReset"
    | "printerNmsReset"
    | "printerReadyToPrint"
    | "puncherAdded"
    | "puncherAlmostEmpty"
    | "puncherAlmostFull"
    | "puncherAtLimit"
    | "puncherClosed"
    | "puncherConfigurationChange"
    | "puncherCoverClosed"
    | "puncherCoverOpen"
    | "puncherEmpty"
    | "puncherFull"
    | "puncherInterlockClosed"
    | "puncherInterlockOpen"
    | "puncherJam"
    | "puncherLifeAlmostOver"
    | "puncherLifeOver"
    | "puncherMemoryExhausted"
    | "puncherMissing"
    | "puncherMotorFailure"
    | "puncherNearLimit"
    | "puncherOffline"
    | "puncherOpened"
    | "puncherOverTemperature"
    | "puncherPowerSaver"
    | "puncherRecoverableFailure"
    | "puncherRecoverableStorage"
    | "puncherRemoved"
    | "puncherResourceAdded"
    | "puncherResourceRemoved"
    | "puncherThermistorFailure"
    | "puncherTimingFailure"
    | "puncherTurnedOff"
    | "puncherTurnedOn"
    | "puncherUnderTemperature"
    | "puncherUnrecoverableFailure"
    | "puncherUnrecoverableStorageError"
    | "puncherWarmingUp"
    | "resuming"
    | "scanMediaPathFailure"
    | "scanMediaPathInputEmpty"
    | "scanMediaPathInputFeedError"
    | "scanMediaPathInputJam"
    | "scanMediaPathInputRequest"
    | "scanMediaPathJam"
    | "scanMediaPathOutputFeedError"
    | "scanMediaPathOutputFull"
    | "scanMediaPathOutputJam"
    | "scanMediaPathPickRollerFailure"
    | "scanMediaPathPickRollerLifeOver"
    | "scanMediaPathPickRollerLifeWarn"
    | "scanMediaPathPickRollerMissing"
    | "scanMediaPathTrayAlmostFull"
    | "scanMediaPathTrayFull"
    | "scanMediaPathTrayMissing"
    | "scannerLightFailure"
    | "scannerLightLifeAlmostOver"
    | "scannerLightLifeOver"
    | "scannerLightMissing"
    | "scannerSensorFailure"
    | "scannerSensorLifeAlmostOver"
    | "scannerSensorLifeOver"
    | "scannerSensorMissing"
    | "separationCutterAdded"
    | "separationCutterAlmostEmpty"
    | "separationCutterAlmostFull"
    | "separationCutterAtLimit"
    | "separationCutterClosed"
    | "separationCutterConfigurationChange"
    | "separationCutterCoverClosed"
    | "separationCutterCoverOpen"
    | "separationCutterEmpty"
    | "separationCutterFull"
    | "separationCutterInterlockClosed"
    | "separationCutterInterlockOpen"
    | "separationCutterJam"
    | "separationCutterLifeAlmostOver"
    | "separationCutterLifeOver"
    | "separationCutterMemoryExhausted"
    | "separationCutterMissing"
    | "separationCutterMotorFailure"
    | "separationCutterNearLimit"
    | "separationCutterOffline"
    | "separationCutterOpened"
    | "separationCutterOverTemperature"
    | "separationCutterPowerSaver"
    | "separationCutterRecoverableFailure"
    | "separationCutterRecoverableStorage"
    | "separationCutterRemoved"
    | "separationCutterResourceAdded"
    | "separationCutterResourceRemoved"
    | "separationCutterThermistorFailure"
    | "separationCutterTimingFailure"
    | "separationCutterTurnedOff"
    | "separationCutterTurnedOn"
    | "separationCutterUnderTemperature"
    | "separationCutterUnrecoverableFailure"
    | "separationCutterUnrecoverableStorageError"
    | "separationCutterWarmingUp"
    | "sheetRotatorAdded"
    | "sheetRotatorAlmostEmpty"
    | "sheetRotatorAlmostFull"
    | "sheetRotatorAtLimit"
    | "sheetRotatorClosed"
    | "sheetRotatorConfigurationChange"
    | "sheetRotatorCoverClosed"
    | "sheetRotatorCoverOpen"
    | "sheetRotatorEmpty"
    | "sheetRotatorFull"
    | "sheetRotatorInterlockClosed"
    | "sheetRotatorInterlockOpen"
    | "sheetRotatorJam"
    | "sheetRotatorLifeAlmostOver"
    | "sheetRotatorLifeOver"
    | "sheetRotatorMemoryExhausted"
    | "sheetRotatorMissing"
    | "sheetRotatorMotorFailure"
    | "sheetRotatorNearLimit"
    | "sheetRotatorOffline"
    | "sheetRotatorOpened"
    | "sheetRotatorOverTemperature"
    | "sheetRotatorPowerSaver"
    | "sheetRotatorRecoverableFailure"
    | "sheetRotatorRecoverableStorage"
    | "sheetRotatorRemoved"
    | "sheetRotatorResourceAdded"
    | "sheetRotatorResourceRemoved"
    | "sheetRotatorThermistorFailure"
    | "sheetRotatorTimingFailure"
    | "sheetRotatorTurnedOff"
    | "sheetRotatorTurnedOn"
    | "sheetRotatorUnderTemperature"
    | "sheetRotatorUnrecoverableFailure"
    | "sheetRotatorUnrecoverableStorageError"
    | "sheetRotatorWarmingUp"
    | "slitterAdded"
    | "slitterAlmostEmpty"
    | "slitterAlmostFull"
    | "slitterAtLimit"
    | "slitterClosed"
    | "slitterConfigurationChange"
    | "slitterCoverClosed"
    | "slitterCoverOpen"
    | "slitterEmpty"
    | "slitterFull"
    | "slitterInterlockClosed"
    | "slitterInterlockOpen"
    | "slitterJam"
    | "slitterLifeAlmostOver"
    | "slitterLifeOver"
    | "slitterMemoryExhausted"
    | "slitterMissing"
    | "slitterMotorFailure"
    | "slitterNearLimit"
    | "slitterOffline"
    | "slitterOpened"
    | "slitterOverTemperature"
    | "slitterPowerSaver"
    | "slitterRecoverableFailure"
    | "slitterRecoverableStorage"
    | "slitterRemoved"
    | "slitterResourceAdded"
    | "slitterResourceRemoved"
    | "slitterThermistorFailure"
    | "slitterTimingFailure"
    | "slitterTurnedOff"
    | "slitterTurnedOn"
    | "slitterUnderTemperature"
    | "slitterUnrecoverableFailure"
    | "slitterUnrecoverableStorageError"
    | "slitterWarmingUp"
    | "stackerAdded"
    | "stackerAlmostEmpty"
    | "stackerAlmostFull"
    | "stackerAtLimit"
    | "stackerClosed"
    | "stackerConfigurationChange"
    | "stackerCoverClosed"
    | "stackerCoverOpen"
    | "stackerEmpty"
    | "stackerFull"
    | "stackerInterlockClosed"
    | "stackerInterlockOpen"
    | "stackerJam"
    | "stackerLifeAlmostOver"
    | "stackerLifeOver"
    | "stackerMemoryExhausted"
    | "stackerMissing"
    | "stackerMotorFailure"
    | "stackerNearLimit"
    | "stackerOffline"
    | "stackerOpened"
    | "stackerOverTemperature"
    | "stackerPowerSaver"
    | "stackerRecoverableFailure"
    | "stackerRecoverableStorage"
    | "stackerRemoved"
    | "stackerResourceAdded"
    | "stackerResourceRemoved"
    | "stackerThermistorFailure"
    | "stackerTimingFailure"
    | "stackerTurnedOff"
    | "stackerTurnedOn"
    | "stackerUnderTemperature"
    | "stackerUnrecoverableFailure"
    | "stackerUnrecoverableStorageError"
    | "stackerWarmingUp"
    | "standby"
    | "staplerAdded"
    | "staplerAlmostEmpty"
    | "staplerAlmostFull"
    | "staplerAtLimit"
    | "staplerClosed"
    | "staplerConfigurationChange"
    | "staplerCoverClosed"
    | "staplerCoverOpen"
    | "staplerEmpty"
    | "staplerFull"
    | "staplerInterlockClosed"
    | "staplerInterlockOpen"
    | "staplerJam"
    | "staplerLifeAlmostOver"
    | "staplerLifeOver"
    | "staplerMemoryExhausted"
    | "staplerMissing"
    | "staplerMotorFailure"
    | "staplerNearLimit"
    | "staplerOffline"
    | "staplerOpened"
    | "staplerOverTemperature"
    | "staplerPowerSaver"
    | "staplerRecoverableFailure"
    | "staplerRecoverableStorage"
    | "staplerRemoved"
    | "staplerResourceAdded"
    | "staplerResourceRemoved"
    | "staplerThermistorFailure"
    | "staplerTimingFailure"
    | "staplerTurnedOff"
    | "staplerTurnedOn"
    | "staplerUnderTemperature"
    | "staplerUnrecoverableFailure"
    | "staplerUnrecoverableStorageError"
    | "staplerWarmingUp"
    | "stitcherAdded"
    | "stitcherAlmostEmpty"
    | "stitcherAlmostFull"
    | "stitcherAtLimit"
    | "stitcherClosed"
    | "stitcherConfigurationChange"
    | "stitcherCoverClosed"
    | "stitcherCoverOpen"
    | "stitcherEmpty"
    | "stitcherFull"
    | "stitcherInterlockClosed"
    | "stitcherInterlockOpen"
    | "stitcherJam"
    | "stitcherLifeAlmostOver"
    | "stitcherLifeOver"
    | "stitcherMemoryExhausted"
    | "stitcherMissing"
    | "stitcherMotorFailure"
    | "stitcherNearLimit"
    | "stitcherOffline"
    | "stitcherOpened"
    | "stitcherOverTemperature"
    | "stitcherPowerSaver"
    | "stitcherRecoverableFailure"
    | "stitcherRecoverableStorage"
    | "stitcherRemoved"
    | "stitcherResourceAdded"
    | "stitcherResourceRemoved"
    | "stitcherThermistorFailure"
    | "stitcherTimingFailure"
    | "stitcherTurnedOff"
    | "stitcherTurnedOn"
    | "stitcherUnderTemperature"
    | "stitcherUnrecoverableFailure"
    | "stitcherUnrecoverableStorageError"
    | "stitcherWarmingUp"
    | "subunitAdded"
    | "subunitAlmostEmpty"
    | "subunitAlmostFull"
    | "subunitAtLimit"
    | "subunitClosed"
    | "subunitCoolingDown"
    | "subunitEmpty"
    | "subunitFull"
    | "subunitLifeAlmostOver"
    | "subunitLifeOver"
    | "subunitMemoryExhausted"
    | "subunitMissing"
    | "subunitMotorFailure"
    | "subunitNearLimit"
    | "subunitOffline"
    | "subunitOpened"
    | "subunitOverTemperature"
    | "subunitPowerSaver"
    | "subunitRecoverableFailure"
    | "subunitRecoverableStorage"
    | "subunitRemoved"
    | "subunitResourceAdded"
    | "subunitResourceRemoved"
    | "subunitThermistorFailure"
    | "subunitTimingFailure"
    | "subunitTurnedOff"
    | "subunitTurnedOn"
    | "subunitUnderTemperature"
    | "subunitUnrecoverableFailure"
    | "subunitUnrecoverableStorage"
    | "subunitWarmingUp"
    | "suspend"
    | "testing"
    | "trimmerAdded"
    | "trimmerAlmostEmpty"
    | "trimmerAlmostFull"
    | "trimmerAtLimit"
    | "trimmerClosed"
    | "trimmerConfigurationChange"
    | "trimmerCoverClosed"
    | "trimmerCoverOpen"
    | "trimmerEmpty"
    | "trimmerFull"
    | "trimmerInterlockClosed"
    | "trimmerInterlockOpen"
    | "trimmerJam"
    | "trimmerLifeAlmostOver"
    | "trimmerLifeOver"
    | "trimmerMemoryExhausted"
    | "trimmerMissing"
    | "trimmerMotorFailure"
    | "trimmerNearLimit"
    | "trimmerOffline"
    | "trimmerOpened"
    | "trimmerOverTemperature"
    | "trimmerPowerSaver"
    | "trimmerRecoverableFailure"
    | "trimmerRecoverableStorage"
    | "trimmerRemoved"
    | "trimmerResourceAdded"
    | "trimmerResourceRemoved"
    | "trimmerThermistorFailure"
    | "trimmerTimingFailure"
    | "trimmerTurnedOff"
    | "trimmerTurnedOn"
    | "trimmerUnderTemperature"
    | "trimmerUnrecoverableFailure"
    | "trimmerUnrecoverableStorageError"
    | "trimmerWarmingUp"
    | "unknown"
    | "wrapperAdded"
    | "wrapperAlmostEmpty"
    | "wrapperAlmostFull"
    | "wrapperAtLimit"
    | "wrapperClosed"
    | "wrapperConfigurationChange"
    | "wrapperCoverClosed"
    | "wrapperCoverOpen"
    | "wrapperEmpty"
    | "wrapperFull"
    | "wrapperInterlockClosed"
    | "wrapperInterlockOpen"
    | "wrapperJam"
    | "wrapperLifeAlmostOver"
    | "wrapperLifeOver"
    | "wrapperMemoryExhausted"
    | "wrapperMissing"
    | "wrapperMotorFailure"
    | "wrapperNearLimit"
    | "wrapperOffline"
    | "wrapperOpened"
    | "wrapperOverTemperature"
    | "wrapperPowerSaver"
    | "wrapperRecoverableFailure"
    | "wrapperRecoverableStorage"
    | "wrapperRemoved"
    | "wrapperResourceAdded"
    | "wrapperResourceRemoved"
    | "wrapperThermistorFailure"
    | "wrapperTimingFailure"
    | "wrapperTurnedOff"
    | "wrapperTurnedOn"
    | "wrapperUnderTemperature"
    | "wrapperUnrecoverableFailure"
    | "wrapperUnrecoverableStorageError"
    | "wrapperWarmingUp";
export type PrintEvent = "jobStarted" | "unknownFutureValue";
export type PrintFinishing =
    | "none"
    | "staple"
    | "punch"
    | "cover"
    | "bind"
    | "saddleStitch"
    | "stitchEdge"
    | "stapleTopLeft"
    | "stapleBottomLeft"
    | "stapleTopRight"
    | "stapleBottomRight"
    | "stitchLeftEdge"
    | "stitchTopEdge"
    | "stitchRightEdge"
    | "stitchBottomEdge"
    | "stapleDualLeft"
    | "stapleDualTop"
    | "stapleDualRight"
    | "stapleDualBottom"
    | "unknownFutureValue";
export type PrintJobProcessingState =
    | "unknown"
    | "pending"
    | "processing"
    | "paused"
    | "stopped"
    | "completed"
    | "canceled"
    | "aborted"
    | "unknownFutureValue";
export type PrintJobStateDetail =
    | "uploadPending"
    | "transforming"
    | "completedSuccessfully"
    | "completedWithWarnings"
    | "completedWithErrors"
    | "releaseWait"
    | "interpreting"
    | "unknownFutureValue";
export type PrintMultipageLayout =
    | "clockwiseFromTopLeft"
    | "counterclockwiseFromTopLeft"
    | "counterclockwiseFromTopRight"
    | "clockwiseFromTopRight"
    | "counterclockwiseFromBottomLeft"
    | "clockwiseFromBottomLeft"
    | "counterclockwiseFromBottomRight"
    | "clockwiseFromBottomRight"
    | "unknownFutureValue";
export type PrintOperationProcessingState = "notStarted" | "running" | "succeeded" | "failed" | "unknownFutureValue";
export type PrintOrientation = "portrait" | "landscape" | "reverseLandscape" | "reversePortrait" | "unknownFutureValue";
export type PrintQuality = "low" | "medium" | "high" | "unknownFutureValue";
export type PrintScaling = "auto" | "shrinkToFit" | "fill" | "fit" | "none" | "unknownFutureValue";
export type PrintTaskProcessingState = "pending" | "processing" | "completed" | "aborted" | "unknownFutureValue";
export type Status = "active" | "updated" | "deleted" | "ignored" | "unknownFutureValue";
export type DataPolicyOperationStatus = "notStarted" | "running" | "complete" | "failed" | "unknownFutureValue";
export type AccountTargetContentType = "unknown" | "includeAll" | "addressBook" | "unknownFutureValue";
export type AttackSimulationOperationType = "createSimualation" | "updateSimulation" | "unknownFutureValue";
export type CoachmarkLocationType =
    | "unknown"
    | "fromEmail"
    | "subject"
    | "externalTag"
    | "displayName"
    | "messageBody"
    | "unknownFutureValue";
export type EndUserNotificationPreference = "unknown" | "microsoft" | "custom" | "unknownFutureValue";
export type EndUserNotificationSettingType =
    | "unknown"
    | "noTraining"
    | "trainingSelected"
    | "noNotification"
    | "unknownFutureValue";
export type EndUserNotificationType =
    | "unknown"
    | "positiveReinforcement"
    | "noTraining"
    | "trainingAssignment"
    | "trainingReminder"
    | "unknownFutureValue";
export type NotificationDeliveryFrequency = "unknown" | "weekly" | "biWeekly" | "unknownFutureValue";
export type NotificationDeliveryPreference =
    | "unknown"
    | "deliverImmedietly"
    | "deliverAfterCampaignEnd"
    | "unknownFutureValue";
export type OAuthAppScope =
    | "unknown"
    | "readCalendar"
    | "readContact"
    | "readMail"
    | "readAllChat"
    | "readAllFile"
    | "readAndWriteMail"
    | "sendMail"
    | "unknownFutureValue";
export type PayloadBrand =
    | "unknown"
    | "other"
    | "americanExpress"
    | "capitalOne"
    | "dhl"
    | "docuSign"
    | "dropbox"
    | "facebook"
    | "firstAmerican"
    | "microsoft"
    | "netflix"
    | "scotiabank"
    | "sendGrid"
    | "stewartTitle"
    | "tesco"
    | "wellsFargo"
    | "syrinxCloud"
    | "adobe"
    | "teams"
    | "zoom"
    | "unknownFutureValue";
export type PayloadComplexity = "unknown" | "low" | "medium" | "high" | "unknownFutureValue";
export type PayloadDeliveryPlatform = "unknown" | "sms" | "email" | "teams" | "unknownFutureValue";
export type PayloadIndustry =
    | "unknown"
    | "other"
    | "banking"
    | "businessServices"
    | "consumerServices"
    | "education"
    | "energy"
    | "construction"
    | "consulting"
    | "financialServices"
    | "government"
    | "hospitality"
    | "insurance"
    | "legal"
    | "courierServices"
    | "IT"
    | "healthcare"
    | "manufacturing"
    | "retail"
    | "telecom"
    | "realEstate"
    | "unknownFutureValue";
export type PayloadTheme =
    | "unknown"
    | "other"
    | "accountActivation"
    | "accountVerification"
    | "billing"
    | "cleanUpMail"
    | "controversial"
    | "documentReceived"
    | "expense"
    | "fax"
    | "financeReport"
    | "incomingMessages"
    | "invoice"
    | "itemReceived"
    | "loginAlert"
    | "mailReceived"
    | "password"
    | "payment"
    | "payroll"
    | "personalizedOffer"
    | "quarantine"
    | "remoteWork"
    | "reviewMessage"
    | "securityUpdate"
    | "serviceSuspended"
    | "signatureRequired"
    | "upgradeMailboxStorage"
    | "verifyMailbox"
    | "voicemail"
    | "advertisement"
    | "employeeEngagement"
    | "unknownFutureValue";
export type SimulationAttackTechnique =
    | "unknown"
    | "credentialHarvesting"
    | "attachmentMalware"
    | "driveByUrl"
    | "linkInAttachment"
    | "linkToMalwareFile"
    | "unknownFutureValue";
export type SimulationAttackType = "unknown" | "social" | "cloud" | "endpoint" | "unknownFutureValue";
export type SimulationAutomationRunStatus =
    | "unknown"
    | "running"
    | "succeeded"
    | "failed"
    | "skipped"
    | "unknownFutureValue";
export type SimulationAutomationStatus =
    | "unknown"
    | "draft"
    | "notRunning"
    | "running"
    | "completed"
    | "unknownFutureValue";
export type SimulationContentSource = "unknown" | "global" | "tenant" | "unknownFutureValue";
export type SimulationContentStatus = "unknown" | "draft" | "ready" | "archive" | "delete" | "unknownFutureValue";
export type SimulationStatus =
    | "unknown"
    | "draft"
    | "running"
    | "scheduled"
    | "succeeded"
    | "failed"
    | "cancelled"
    | "excluded"
    | "unknownFutureValue";
export type TargettedUserType = "unknown" | "clicked" | "compromised" | "allUsers" | "unknownFutureValue";
export type TrainingAssignedTo =
    | "none"
    | "allUsers"
    | "clickedPayload"
    | "compromised"
    | "reportedPhish"
    | "readButNotClicked"
    | "didNothing"
    | "unknownFutureValue";
export type TrainingAvailabilityStatus =
    | "unknown"
    | "notAvailable"
    | "available"
    | "archive"
    | "delete"
    | "unknownFutureValue";
export type TrainingCompletionDuration = "week" | "fortnite" | "month" | "unknownFutureValue";
export type TrainingSettingType =
    | "microsoftCustom"
    | "microsoftManaged"
    | "noTraining"
    | "custom"
    | "unknownFutureValue";
export type TrainingStatus = "unknown" | "assigned" | "inProgress" | "completed" | "overdue" | "unknownFutureValue";
export type TrainingType = "unknown" | "phishing" | "unknownFutureValue";
export type AlertFeedback = "unknown" | "truePositive" | "falsePositive" | "benignPositive" | "unknownFutureValue";
export type AlertSeverity = "unknown" | "informational" | "low" | "medium" | "high" | "unknownFutureValue";
export type AlertStatus = "unknown" | "newAlert" | "inProgress" | "resolved" | "dismissed" | "unknownFutureValue";
export type ConnectionDirection = "unknown" | "inbound" | "outbound" | "unknownFutureValue";
export type ConnectionStatus = "unknown" | "attempted" | "succeeded" | "blocked" | "failed" | "unknownFutureValue";
export type EmailRole = "unknown" | "sender" | "recipient" | "unknownFutureValue";
export type FileHashType =
    | "unknown"
    | "sha1"
    | "sha256"
    | "md5"
    | "authenticodeHash256"
    | "lsHash"
    | "ctph"
    | "unknownFutureValue";
export type LogonType =
    | "unknown"
    | "interactive"
    | "remoteInteractive"
    | "network"
    | "batch"
    | "service"
    | "unknownFutureValue";
export type ProcessIntegrityLevel =
    | "unknown"
    | "untrusted"
    | "low"
    | "medium"
    | "high"
    | "system"
    | "unknownFutureValue";
export type RegistryHive =
    | "unknown"
    | "currentConfig"
    | "currentUser"
    | "localMachineSam"
    | "localMachineSecurity"
    | "localMachineSoftware"
    | "localMachineSystem"
    | "usersDefault"
    | "unknownFutureValue";
export type RegistryOperation = "unknown" | "create" | "modify" | "delete" | "unknownFutureValue";
export type RegistryValueType =
    | "unknown"
    | "binary"
    | "dword"
    | "dwordLittleEndian"
    | "dwordBigEndian"
    | "expandSz"
    | "link"
    | "multiSz"
    | "none"
    | "qword"
    | "qwordlittleEndian"
    | "sz"
    | "unknownFutureValue";
export type SecurityNetworkProtocol =
    | "unknown"
    | "ip"
    | "icmp"
    | "igmp"
    | "ggp"
    | "ipv4"
    | "tcp"
    | "pup"
    | "udp"
    | "idp"
    | "ipv6"
    | "ipv6RoutingHeader"
    | "ipv6FragmentHeader"
    | "ipSecEncapsulatingSecurityPayload"
    | "ipSecAuthenticationHeader"
    | "icmpV6"
    | "ipv6NoNextHeader"
    | "ipv6DestinationOptions"
    | "nd"
    | "raw"
    | "ipx"
    | "spx"
    | "spxII"
    | "unknownFutureValue";
export type SecurityResourceType = "unknown" | "attacked" | "related" | "unknownFutureValue";
export type UserAccountSecurityType = "unknown" | "standard" | "power" | "administrator" | "unknownFutureValue";
export type BroadcastMeetingAudience = "roleIsAttendee" | "organization" | "everyone" | "unknownFutureValue";
export type CallDirection = "incoming" | "outgoing";
export type CallState =
    | "incoming"
    | "establishing"
    | "established"
    | "hold"
    | "transferring"
    | "transferAccepted"
    | "redirecting"
    | "terminating"
    | "terminated"
    | "unknownFutureValue";
export type CallTranscriptionState = "notStarted" | "active" | "inactive" | "unknownFutureValue";
export type ChangeType = "created" | "updated" | "deleted";
export type EndpointType =
    | "default"
    | "voicemail"
    | "skypeForBusiness"
    | "skypeForBusinessVoipPhone"
    | "unknownFutureValue";
export type MediaDirection = "inactive" | "sendOnly" | "receiveOnly" | "sendReceive";
export type MediaState = "active" | "inactive" | "unknownFutureValue";
export type MeetingAudience = "everyone" | "organization" | "unknownFutureValue";
export type MeetingChatHistoryDefaultMode = "none" | "all" | "unknownFutureValue";
export type Modality = "audio" | "video" | "videoBasedScreenSharing" | "data" | "unknownFutureValue";
export type OnlineMeetingContentSharingDisabledReason = "watermarkProtection" | "unknownFutureValue";
export type OnlineMeetingRole = "attendee" | "presenter" | "unknownFutureValue" | "producer" | "coorganizer";
export type OnlineMeetingVideoDisabledReason = "watermarkProtection" | "unknownFutureValue";
export type RecordingStatus = "unknown" | "notRecording" | "recording" | "failed" | "unknownFutureValue";
export type RejectReason = "none" | "busy" | "forbidden" | "unknownFutureValue";
export type RoutingMode = "oneToOne" | "multicast" | "unknownFutureValue";
export type RoutingType = "forwarded" | "lookup" | "selfFork" | "unknownFutureValue";
export type ScreenSharingRole = "viewer" | "sharer";
export type Tone =
    | "tone0"
    | "tone1"
    | "tone2"
    | "tone3"
    | "tone4"
    | "tone5"
    | "tone6"
    | "tone7"
    | "tone8"
    | "tone9"
    | "star"
    | "pound"
    | "a"
    | "b"
    | "c"
    | "d"
    | "flash";
export type VirtualEventAttendeeRegistrationStatus =
    | "registered"
    | "canceled"
    | "waitlisted"
    | "pendingApproval"
    | "rejectedByOrganizer"
    | "unknownFutureValue";
export type VirtualEventStatus = "draft" | "published" | "canceled" | "unknownFutureValue";
export type AttestationLevel = "attested" | "notAttested" | "unknownFutureValue";
export type AuthenticationMethodKeyStrength = "normal" | "weak" | "unknown";
export type AuthenticationMethodSignInState =
    | "notSupported"
    | "notAllowedByPolicy"
    | "notEnabled"
    | "phoneNumberNotUnique"
    | "ready"
    | "notConfigured"
    | "unknownFutureValue";
export type AuthenticationPhoneType = "mobile" | "alternateMobile" | "office" | "unknownFutureValue";
export type LifecycleEventType = "missed" | "subscriptionRemoved" | "reauthorizationRequired";
export type BinaryOperator = "or" | "and";
export type CallRecordingStatus = "success" | "failure" | "initial" | "chunkFinished" | "unknownFutureValue";
export type ChannelMembershipType = "standard" | "private" | "unknownFutureValue" | "shared";
export type ChatMessageActions = "reactionAdded" | "reactionRemoved" | "actionUndefined" | "unknownFutureValue";
export type ChatMessageImportance = "normal" | "high" | "urgent" | "unknownFutureValue";
export type ChatMessagePolicyViolationDlpActionTypes = "none" | "notifySender" | "blockAccess" | "blockAccessExternal";
export type ChatMessagePolicyViolationUserActionTypes = "none" | "override" | "reportFalsePositive";
export type ChatMessagePolicyViolationVerdictDetailsTypes =
    | "none"
    | "allowFalsePositiveOverride"
    | "allowOverrideWithoutJustification"
    | "allowOverrideWithJustification";
export type ChatMessageType = "message" | "chatEvent" | "typing" | "unknownFutureValue" | "systemEventMessage";
export type ChatType = "oneOnOne" | "group" | "meeting" | "unknownFutureValue";
export type ClonableTeamParts = "apps" | "tabs" | "settings" | "channels" | "members";
export type GiphyRatingType = "strict" | "moderate" | "unknownFutureValue";
export type TeamsAppDistributionMethod = "store" | "organization" | "sideloaded" | "unknownFutureValue";
export type TeamsAppPublishingState = "submitted" | "rejected" | "published" | "unknownFutureValue";
export type TeamsAppResourceSpecificPermissionType = "delegated" | "application" | "unknownFutureValue";
export type TeamsAsyncOperationStatus =
    | "invalid"
    | "notStarted"
    | "inProgress"
    | "succeeded"
    | "failed"
    | "unknownFutureValue";
export type TeamsAsyncOperationType =
    | "invalid"
    | "cloneTeam"
    | "archiveTeam"
    | "unarchiveTeam"
    | "createTeam"
    | "unknownFutureValue"
    | "teamifyGroup"
    | "createChannel";
export type TeamSpecialization =
    | "none"
    | "educationStandard"
    | "educationClass"
    | "educationProfessionalLearningCommunity"
    | "educationStaff"
    | "healthcareStandard"
    | "healthcareCareCoordination"
    | "unknownFutureValue";
export type TeamVisibilityType = "private" | "public" | "hiddenMembership" | "unknownFutureValue";
export type TeamworkActivityTopicSource = "entityUrl" | "text";
export type TeamworkApplicationIdentityType =
    | "aadApplication"
    | "bot"
    | "tenantBot"
    | "office365Connector"
    | "outgoingWebhook"
    | "unknownFutureValue";
export type TeamworkCallEventType = "call" | "meeting" | "screenShare" | "unknownFutureValue";
export type TeamworkConversationIdentityType = "team" | "channel" | "chat" | "unknownFutureValue";
export type TeamworkTagType = "standard" | "unknownFutureValue";
export type TeamworkUserIdentityType =
    | "aadUser"
    | "onPremiseAadUser"
    | "anonymousGuest"
    | "federatedUser"
    | "personalMicrosoftAccountUser"
    | "skypeUser"
    | "phoneUser"
    | "unknownFutureValue"
    | "emailUser";
export type ScheduleChangeRequestActor = "sender" | "recipient" | "manager" | "system" | "unknownFutureValue";
export type ScheduleChangeState = "pending" | "approved" | "declined" | "unknownFutureValue";
export type ScheduleEntityTheme =
    | "white"
    | "blue"
    | "green"
    | "purple"
    | "pink"
    | "yellow"
    | "gray"
    | "darkBlue"
    | "darkGreen"
    | "darkPurple"
    | "darkPink"
    | "darkYellow"
    | "unknownFutureValue";
export type TimeOffReasonIconType =
    | "none"
    | "car"
    | "calendar"
    | "running"
    | "plane"
    | "firstAid"
    | "doctor"
    | "notWorking"
    | "clock"
    | "juryDuty"
    | "globe"
    | "cup"
    | "phone"
    | "weather"
    | "umbrella"
    | "piggyBank"
    | "dog"
    | "cake"
    | "trafficCone"
    | "pin"
    | "sunny"
    | "unknownFutureValue";
export type WorkforceIntegrationEncryptionProtocol = "sharedSecret" | "unknownFutureValue";
export type WorkforceIntegrationSupportedEntities =
    | "none"
    | "shift"
    | "swapRequest"
    | "userShiftPreferences"
    | "openShift"
    | "openShiftRequest"
    | "offerShiftRequest"
    | "unknownFutureValue";
export type MailDestinationRoutingReason =
    | "none"
    | "mailFlowRule"
    | "safeSender"
    | "blockedSender"
    | "advancedSpamFiltering"
    | "domainAllowList"
    | "domainBlockList"
    | "notInAddressBook"
    | "firstTimeSender"
    | "autoPurgeToInbox"
    | "autoPurgeToJunk"
    | "autoPurgeToDeleted"
    | "outbound"
    | "notJunk"
    | "junk"
    | "unknownFutureValue";
export type ThreatAssessmentContentType = "mail" | "url" | "file";
export type ThreatAssessmentRequestSource = "undefined" | "user" | "administrator";
export type ThreatAssessmentResultType = "checkPolicy" | "rescan" | "unknownFutureValue";
export type ThreatAssessmentStatus = "pending" | "completed";
export type ThreatCategory = "undefined" | "spam" | "phishing" | "malware" | "unknownFutureValue";
export type ThreatExpectedAssessment = "block" | "unblock";
export type TaskStatus = "notStarted" | "inProgress" | "completed" | "waitingOnOthers" | "deferred";
export type WellknownListName = "none" | "defaultList" | "flaggedEmails" | "unknownFutureValue";
export type AssignmentType = "required" | "recommended" | "unknownFutureValue";
export type CourseStatus = "notStarted" | "inProgress" | "completed" | "unknownFutureValue";
export interface Entity {
    // The unique identifier for an entity. Read-only.
    id?: string;
}
export interface DirectoryObject extends Entity {
    // Date and time when this object was deleted. Always null when the object hasn't been deleted.
    deletedDateTime?: NullableOption<string>;
}
export interface Application extends DirectoryObject {
    /**
     * Defines custom behavior that a consuming service can use to call an app in specific contexts. For example, applications
     * that can render file streams may set the addIns property for its 'FileHandler' functionality. This will let services
     * like Office 365 call the application in the context of a document the user is working on.
     */
    addIns?: AddIn[];
    // Specifies settings for an application that implements a web API.
    api?: NullableOption<ApiApplication>;
    /**
     * The unique identifier for the application that is assigned to an application by Microsoft Entra ID. Not nullable.
     * Read-only. Alternate key. Supports $filter (eq).
     */
    appId?: NullableOption<string>;
    // Unique identifier of the applicationTemplate. Supports $filter (eq, not, ne).
    applicationTemplateId?: NullableOption<string>;
    /**
     * The collection of roles defined for the application. With app role assignments, these roles can be assigned to users,
     * groups, or service principals associated with other applications. Not nullable.
     */
    appRoles?: AppRole[];
    // Specifies the certification status of the application.
    certification?: NullableOption<Certification>;
    /**
     * The date and time the application was registered. The DateTimeOffset type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     * Supports $filter (eq, ne, not, ge, le, in, and eq on null values) and $orderby.
     */
    createdDateTime?: NullableOption<string>;
    defaultRedirectUri?: NullableOption<string>;
    /**
     * Free text field to provide a description of the application object to end users. The maximum allowed size is 1024
     * characters. Supports $filter (eq, ne, not, ge, le, startsWith) and $search.
     */
    description?: NullableOption<string>;
    /**
     * Specifies whether Microsoft has disabled the registered application. Possible values are: null (default value),
     * NotDisabled, and DisabledDueToViolationOfServicesAgreement (reasons may include suspicious, abusive, or malicious
     * activity, or a violation of the Microsoft Services Agreement). Supports $filter (eq, ne, not).
     */
    disabledByMicrosoftStatus?: NullableOption<string>;
    /**
     * The display name for the application. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values),
     * $search, and $orderby.
     */
    displayName?: NullableOption<string>;
    /**
     * Configures the groups claim issued in a user or OAuth 2.0 access token that the application expects. To set this
     * attribute, use one of the following valid string values: None, SecurityGroup (for security groups and Microsoft Entra
     * roles), All (this gets all of the security groups, distribution groups, and Microsoft Entra directory roles that the
     * signed-in user is a member of).
     */
    groupMembershipClaims?: NullableOption<string>;
    /**
     * Also known as App ID URI, this value is set when an application is used as a resource app. The identifierUris acts as
     * the prefix for the scopes you'll reference in your API's code, and it must be globally unique. You can use the default
     * value provided, which is in the form api://&amp;lt;application-client-id&amp;gt;, or specify a more readable URI like
     * https://contoso.com/api. For more information on valid identifierUris patterns and best practices, see Microsoft Entra
     * application registration security best practices. Not nullable. Supports $filter (eq, ne, ge, le, startsWith).
     */
    identifierUris?: string[];
    /**
     * Basic profile information of the application such as app's marketing, support, terms of service and privacy statement
     * URLs. The terms of service and privacy statement are surfaced to users through the user consent experience. For more
     * info, see How to: Add Terms of service and privacy statement for registered Microsoft Entra apps. Supports $filter (eq,
     * ne, not, ge, le, and eq on null values).
     */
    info?: NullableOption<InformationalUrl>;
    // Specifies whether this application supports device authentication without a user. The default is false.
    isDeviceOnlyAuthSupported?: NullableOption<boolean>;
    /**
     * Specifies the fallback application type as public client, such as an installed application running on a mobile device.
     * The default value is false which means the fallback application type is confidential client such as a web app. There
     * are certain scenarios where Microsoft Entra ID cannot determine the client application type. For example, the ROPC flow
     * where it is configured without specifying a redirect URI. In those cases Microsoft Entra ID interprets the application
     * type based on the value of this property.
     */
    isFallbackPublicClient?: NullableOption<boolean>;
    // The collection of key credentials associated with the application. Not nullable. Supports $filter (eq, not, ge, le).
    keyCredentials?: KeyCredential[];
    // The main logo for the application. Not nullable.
    logo?: any;
    // Notes relevant for the management of the application.
    notes?: NullableOption<string>;
    oauth2RequirePostResponse?: boolean;
    /**
     * Application developers can configure optional claims in their Microsoft Entra applications to specify the claims that
     * are sent to their application by the Microsoft security token service. For more information, see How to: Provide
     * optional claims to your app.
     */
    optionalClaims?: NullableOption<OptionalClaims>;
    // Specifies parental control settings for an application.
    parentalControlSettings?: NullableOption<ParentalControlSettings>;
    // The collection of password credentials associated with the application. Not nullable.
    passwordCredentials?: PasswordCredential[];
    // Specifies settings for installed clients such as desktop or mobile devices.
    publicClient?: NullableOption<PublicClientApplication>;
    /**
     * The verified publisher domain for the application. Read-only. For more information, see How to: Configure an
     * application's publisher domain. Supports $filter (eq, ne, ge, le, startsWith).
     */
    publisherDomain?: NullableOption<string>;
    // Specifies whether this application requires Microsoft Entra ID to verify the signed authentication requests.
    requestSignatureVerification?: NullableOption<RequestSignatureVerification>;
    /**
     * Specifies the resources that the application needs to access. This property also specifies the set of delegated
     * permissions and application roles that it needs for each of those resources. This configuration of access to the
     * required resources drives the consent experience. No more than 50 resource services (APIs) can be configured. Beginning
     * mid-October 2021, the total number of required permissions must not exceed 400. For more information, see Limits on
     * requested permissions per app. Not nullable. Supports $filter (eq, not, ge, le).
     */
    requiredResourceAccess?: RequiredResourceAccess[];
    /**
     * The URL where the service exposes SAML metadata for federation. This property is valid only for single-tenant
     * applications. Nullable.
     */
    samlMetadataUrl?: NullableOption<string>;
    // References application or service contact information from a Service or Asset Management database. Nullable.
    serviceManagementReference?: NullableOption<string>;
    /**
     * Specifies whether sensitive properties of a multi-tenant application should be locked for editing after the application
     * is provisioned in a tenant. Nullable. null by default.
     */
    servicePrincipalLockConfiguration?: NullableOption<ServicePrincipalLockConfiguration>;
    /**
     * Specifies the Microsoft accounts that are supported for the current application. The possible values are: AzureADMyOrg,
     * AzureADMultipleOrgs, AzureADandPersonalMicrosoftAccount (default), and PersonalMicrosoftAccount. See more in the table.
     * The value of this object also limits the number of permissions an app can request. For more information, see Limits on
     * requested permissions per app. The value for this property has implications on other app object properties. As a
     * result, if you change this property, you may need to change other properties first. For more information, see
     * Validation differences for signInAudience.Supports $filter (eq, ne, not).
     */
    signInAudience?: NullableOption<string>;
    /**
     * Specifies settings for a single-page application, including sign out URLs and redirect URIs for authorization codes and
     * access tokens.
     */
    spa?: NullableOption<SpaApplication>;
    /**
     * Custom strings that can be used to categorize and identify the application. Not nullable. Strings added here will also
     * appear in the tags property of any associated service principals.Supports $filter (eq, not, ge, le, startsWith) and
     * $search.
     */
    tags?: string[];
    /**
     * Specifies the keyId of a public key from the keyCredentials collection. When configured, Microsoft Entra ID encrypts
     * all the tokens it emits by using the key this property points to. The application code that receives the encrypted
     * token must use the matching private key to decrypt the token before it can be used for the signed-in user.
     */
    tokenEncryptionKeyId?: NullableOption<string>;
    /**
     * Specifies the verified publisher of the application. For more information about how publisher verification helps
     * support application security, trustworthiness, and compliance, see Publisher verification.
     */
    verifiedPublisher?: NullableOption<VerifiedPublisher>;
    // Specifies settings for a web application.
    web?: NullableOption<WebApplication>;
    // The appManagementPolicy applied to this application.
    appManagementPolicies?: NullableOption<AppManagementPolicy[]>;
    // Supports $filter (/$count eq 0, /$count ne 0). Read-only.
    createdOnBehalfOf?: NullableOption<DirectoryObject>;
    // Read-only. Nullable. Supports $expand and $filter (/$count eq 0, /$count ne 0).
    extensionProperties?: NullableOption<ExtensionProperty[]>;
    // Federated identities for applications. Supports $expand and $filter (startsWith, /$count eq 0, /$count ne 0).
    federatedIdentityCredentials?: NullableOption<FederatedIdentityCredential[]>;
    homeRealmDiscoveryPolicies?: NullableOption<HomeRealmDiscoveryPolicy[]>;
    /**
     * Directory objects that are owners of the application. Read-only. Nullable. Supports $expand, $filter (/$count eq 0,
     * /$count ne 0, /$count eq 1, /$count ne 1), and $select nested in $expand.
     */
    owners?: NullableOption<DirectoryObject[]>;
    tokenIssuancePolicies?: NullableOption<TokenIssuancePolicy[]>;
    tokenLifetimePolicies?: NullableOption<TokenLifetimePolicy[]>;
    // Represents the capability for Microsoft Entra identity synchronization through the Microsoft Graph API.
    synchronization?: NullableOption<Synchronization>;
}
export interface PolicyBase extends DirectoryObject {
    // Description for this policy. Required.
    description?: NullableOption<string>;
    // Display name for this policy. Required.
    displayName?: NullableOption<string>;
}
export interface AppManagementPolicy extends PolicyBase {
    // Denotes whether the policy is enabled.
    isEnabled?: boolean;
    // Restrictions that apply to an application or service principal object.
    restrictions?: NullableOption<AppManagementConfiguration>;
    // Collection of applications and service principals to which the policy is applied.
    appliesTo?: NullableOption<DirectoryObject[]>;
}
export interface ExtensionProperty extends DirectoryObject {
    // Display name of the application object on which this extension property is defined. Read-only.
    appDisplayName?: NullableOption<string>;
    /**
     * Specifies the data type of the value the extension property can hold. Following values are supported. Not nullable.
     * Binary - 256 bytes maximumBooleanDateTime - Must be specified in ISO 8601 format. Will be stored in UTC.Integer -
     * 32-bit value.LargeInteger - 64-bit value.String - 256 characters maximum
     */
    dataType?: string;
    /**
     * Defines the directory extension as a multi-valued property. When true, the directory extension property can store a
     * collection of objects of the dataType; for example, a collection of integers. The default value is false. Supports
     * $filter (eq).
     */
    isMultiValued?: boolean;
    /**
     * Indicates if this extension property was synced from on-premises active directory using Microsoft Entra Connect.
     * Read-only.
     */
    isSyncedFromOnPremises?: NullableOption<boolean>;
    // Name of the extension property. Not nullable. Supports $filter (eq).
    name?: string;
    // Following values are supported. Not nullable. UserGroupAdministrativeUnitApplicationDeviceOrganization
    targetObjects?: string[];
}
export interface FederatedIdentityCredential extends Entity {
    /**
     * The audience that can appear in the external token. This field is mandatory and should be set to
     * api://AzureADTokenExchange for Microsoft Entra ID. It says what Microsoft identity platform should accept in the aud
     * claim in the incoming token. This value represents Microsoft Entra ID in your external identity provider and has no
     * fixed value across identity providers - you might need to create a new application registration in your identity
     * provider to serve as the audience of this token. This field can only accept a single value and has a limit of 600
     * characters. Required.
     */
    audiences?: string[];
    /**
     * The unvalidated description of the federated identity credential, provided by the user. It has a limit of 600
     * characters. Optional.
     */
    description?: NullableOption<string>;
    /**
     * The URL of the external identity provider, which must match the issuer claim of the external token being exchanged. The
     * combination of the values of issuer and subject must be unique within the app. It has a limit of 600 characters.
     * Required.
     */
    issuer?: string;
    /**
     * The unique identifier for the federated identity credential, which has a limit of 120 characters and must be URL
     * friendly. The string is immutable after it's created. Required. Not nullable. Supports $filter (eq).
     */
    name?: string;
    /**
     * Required. The identifier of the external software workload within the external identity provider. Like the audience
     * value, it has no fixed format; each identity provider uses their own - sometimes a GUID, sometimes a colon delimited
     * identifier, sometimes arbitrary strings. The value here must match the sub claim within the token presented to
     * Microsoft Entra ID. The combination of issuer and subject must be unique within the app. It has a limit of 600
     * characters. Supports $filter (eq).
     */
    subject?: string;
}
export interface StsPolicy extends PolicyBase {
    /**
     * A string collection containing a JSON string that defines the rules and settings for a policy. The syntax for the
     * definition differs for each derived policy type. Required.
     */
    definition?: string[];
    /**
     * If set to true, activates this policy. There can be many policies for the same policy type, but only one can be
     * activated as the organization default. Optional, default value is false.
     */
    isOrganizationDefault?: NullableOption<boolean>;
    appliesTo?: NullableOption<DirectoryObject[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface HomeRealmDiscoveryPolicy extends StsPolicy {}
// tslint:disable-next-line: no-empty-interface
export interface TokenIssuancePolicy extends StsPolicy {}
// tslint:disable-next-line: no-empty-interface
export interface TokenLifetimePolicy extends StsPolicy {}
export interface Synchronization extends Entity {
    // Represents a collection of credentials to access provisioned cloud applications.
    secrets?: NullableOption<SynchronizationSecretKeyStringValuePair[]>;
    /**
     * Performs synchronization by periodically running in the background, polling for changes in one directory, and pushing
     * them to another directory.
     */
    jobs?: NullableOption<SynchronizationJob[]>;
    // Preconfigured synchronization settings for a particular application.
    templates?: NullableOption<SynchronizationTemplate[]>;
}
export interface CustomCalloutExtension extends Entity {
    // Configuration for securing the API call to the logic app. For example, using OAuth client credentials flow.
    authenticationConfiguration?: NullableOption<CustomExtensionAuthenticationConfiguration>;
    /**
     * HTTP connection settings that define how long Microsoft Entra ID can wait for a connection to a logic app, how many
     * times you can retry a timed-out connection and the exception scenarios when retries are allowed.
     */
    clientConfiguration?: NullableOption<CustomExtensionClientConfiguration>;
    // Description for the customCalloutExtension object.
    description?: NullableOption<string>;
    // Display name for the customCalloutExtension object.
    displayName?: NullableOption<string>;
    // The type and details for configuring the endpoint to call the logic app's workflow.
    endpointConfiguration?: NullableOption<CustomExtensionEndpointConfiguration>;
}
export interface DeletedItemContainer extends Entity {
    // Deleted workflows that end up in the deletedItemsContainer.
    workflows?: NullableOption<IdentityGovernanceNamespace.Workflow[]>;
}
// tslint:disable-next-line: interface-name
export interface IdentityGovernance {
    lifecycleWorkflows?: NullableOption<IdentityGovernanceNamespace.LifecycleWorkflowsContainer>;
    accessReviews?: NullableOption<AccessReviewSet>;
    appConsent?: NullableOption<AppConsentApprovalRoute>;
    termsOfUse?: NullableOption<TermsOfUseContainer>;
    entitlementManagement?: NullableOption<EntitlementManagement>;
    privilegedAccess?: NullableOption<PrivilegedAccessRoot>;
}
export interface AccessReviewSet extends Entity {
    // Represents the template and scheduling for an access review.
    definitions?: NullableOption<AccessReviewScheduleDefinition[]>;
    // Represents a collection of access review history data and the scopes used to collect that data.
    historyDefinitions?: NullableOption<AccessReviewHistoryDefinition[]>;
}
export interface AppConsentApprovalRoute extends Entity {
    /**
     * A collection of appConsentRequest objects representing apps for which admin consent has been requested by one or more
     * users.
     */
    appConsentRequests?: NullableOption<AppConsentRequest[]>;
}
export interface TermsOfUseContainer extends Entity {
    // Represents the current status of a user's response to a company's customizable terms of use agreement.
    agreementAcceptances?: NullableOption<AgreementAcceptance[]>;
    /**
     * Represents a tenant's customizable terms of use agreement that's created and managed with Microsoft Entra ID
     * Governance.
     */
    agreements?: NullableOption<Agreement[]>;
}
export interface EntitlementManagement extends Entity {
    // Approval stages for decisions associated with access package assignment requests.
    accessPackageAssignmentApprovals?: NullableOption<Approval[]>;
    /**
     * Access packages define the collection of resource roles and the policies for which subjects can request or be assigned
     * access to those resources.
     */
    accessPackages?: NullableOption<AccessPackage[]>;
    /**
     * Access package assignment policies govern which subjects can request or be assigned an access package via an access
     * package assignment.
     */
    assignmentPolicies?: NullableOption<AccessPackageAssignmentPolicy[]>;
    // Access package assignment requests created by or on behalf of a subject.
    assignmentRequests?: NullableOption<AccessPackageAssignmentRequest[]>;
    // The assignment of an access package to a subject for a period of time.
    assignments?: NullableOption<AccessPackageAssignment[]>;
    // A container for access packages.
    catalogs?: NullableOption<AccessPackageCatalog[]>;
    // References to a directory or domain of another organization whose users can request access.
    connectedOrganizations?: NullableOption<ConnectedOrganization[]>;
    // A reference to the geolocation environments in which a resource is located.
    resourceEnvironments?: NullableOption<AccessPackageResourceEnvironment[]>;
    // Represents a request to add or remove a resource to or from a catalog respectively.
    resourceRequests?: NullableOption<AccessPackageResourceRequest[]>;
    resourceRoleScopes?: NullableOption<AccessPackageResourceRoleScope[]>;
    // The resources associated with the catalogs.
    resources?: NullableOption<AccessPackageResource[]>;
    // The settings that control the behavior of Microsoft Entra entitlement management.
    settings?: NullableOption<EntitlementManagementSettings>;
}
export interface PrivilegedAccessRoot extends Entity {
    // A group that's governed through Privileged Identity Management (PIM).
    group?: NullableOption<PrivilegedAccessGroup>;
}
export interface User extends DirectoryObject {
    /**
     * Get the last signed-in date and request ID of the sign-in for a given user. Read-only.Returned only on $select.
     * Supports $filter (eq, ne, not, ge, le) but not with any other filterable properties. Note: Details for this property
     * require a Microsoft Entra ID P1 or P2 license and the AuditLog.Read.All permission.This property is not returned for a
     * user who has never signed in or last signed in before April 2020.
     */
    signInActivity?: NullableOption<SignInActivity>;
    /**
     * true if the account is enabled; otherwise, false. This property is required when a user is created. Returned only on
     * $select. Supports $filter (eq, ne, not, and in).
     */
    accountEnabled?: NullableOption<boolean>;
    /**
     * Sets the age group of the user. Allowed values: null, Minor, NotAdult and Adult. For more information, see legal age
     * group property definitions. Returned only on $select. Supports $filter (eq, ne, not, and in).
     */
    ageGroup?: NullableOption<string>;
    /**
     * The licenses that are assigned to the user, including inherited (group-based) licenses. This property doesn't
     * differentiate directly assigned and inherited licenses. Use the licenseAssignmentStates property to identify the
     * directly assigned and inherited licenses. Not nullable. Returned only on $select. Supports $filter (eq, not, /$count eq
     * 0, /$count ne 0).
     */
    assignedLicenses?: AssignedLicense[];
    /**
     * The plans that are assigned to the user. Read-only. Not nullable. Returned only on $select. Supports $filter (eq and
     * not).
     */
    assignedPlans?: AssignedPlan[];
    authorizationInfo?: NullableOption<AuthorizationInfo>;
    /**
     * The telephone numbers for the user. NOTE: Although this is a string collection, only one number can be set for this
     * property. Read-only for users synced from on-premises directory. Returned by default. Supports $filter (eq, not, ge,
     * le, startsWith).
     */
    businessPhones?: string[];
    /**
     * The city where the user is located. Maximum length is 128 characters. Returned only on $select. Supports $filter (eq,
     * ne, not, ge, le, in, startsWith, and eq on null values).
     */
    city?: NullableOption<string>;
    /**
     * The name of the company that the user is associated with. This property can be useful for describing the company that
     * an external user comes from. The maximum length is 64 characters.Returned only on $select. Supports $filter (eq, ne,
     * not, ge, le, in, startsWith, and eq on null values).
     */
    companyName?: NullableOption<string>;
    /**
     * Sets whether consent has been obtained for minors. Allowed values: null, Granted, Denied and NotRequired. Refer to the
     * legal age group property definitions for further information. Returned only on $select. Supports $filter (eq, ne, not,
     * and in).
     */
    consentProvidedForMinor?: NullableOption<string>;
    /**
     * The country or region where the user is located; for example, US or UK. Maximum length is 128 characters. Returned only
     * on $select. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).
     */
    country?: NullableOption<string>;
    /**
     * The date and time the user was created, in ISO 8601 format and in UTC time. The value cannot be modified and is
     * automatically populated when the entity is created. Nullable. For on-premises users, the value represents when they
     * were first created in Microsoft Entra ID. Property is null for some users created before June 2018 and on-premises
     * users that were synced to Microsoft Entra ID before June 2018. Read-only. Returned only on $select. Supports $filter
     * (eq, ne, not , ge, le, in).
     */
    createdDateTime?: NullableOption<string>;
    /**
     * Indicates whether the user account was created through one of the following methods: As a regular school or work
     * account (null). As an external account (Invitation). As a local account for an Azure Active Directory B2C tenant
     * (LocalAccount). Through self-service sign-up by an internal user using email verification (EmailVerified). Through
     * self-service sign-up by an external user signing up through a link that is part of a user flow (SelfServiceSignUp).
     * Read-only.Returned only on $select. Supports $filter (eq, ne, not, in).
     */
    creationType?: NullableOption<string>;
    /**
     * An open complex type that holds the value of a custom security attribute that is assigned to a directory object.
     * Nullable. Returned only on $select. Supports $filter (eq, ne, not, startsWith). Filter value is case sensitive.
     */
    customSecurityAttributes?: NullableOption<CustomSecurityAttributeValue>;
    /**
     * The name for the department in which the user works. Maximum length is 64 characters. Returned only on $select.
     * Supports $filter (eq, ne, not , ge, le, in, and eq on null values).
     */
    department?: NullableOption<string>;
    /**
     * The name displayed in the address book for the user. This is usually the combination of the user's first name, middle
     * initial and last name. This property is required when a user is created and it cannot be cleared during updates.
     * Maximum length is 256 characters. Returned by default. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq
     * on null values), $orderby, and $search.
     */
    displayName?: NullableOption<string>;
    /**
     * The date and time when the user was hired or will start work in case of a future hire. Returned only on $select.
     * Supports $filter (eq, ne, not , ge, le, in).
     */
    employeeHireDate?: NullableOption<string>;
    /**
     * The employee identifier assigned to the user by the organization. The maximum length is 16 characters. Returned only on
     * $select. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on null values).
     */
    employeeId?: NullableOption<string>;
    /**
     * The date and time when the user left or will leave the organization. To read this property, the calling app must be
     * assigned the User-LifeCycleInfo.Read.All permission. To write this property, the calling app must be assigned the
     * User.Read.All and User-LifeCycleInfo.ReadWrite.All permissions. To read this property in delegated scenarios, the admin
     * needs one of the following Microsoft Entra roles: Lifecycle Workflows Administrator, Global Reader, or Global
     * Administrator. To write this property in delegated scenarios, the admin needs the Global Administrator role. Supports
     * $filter (eq, ne, not , ge, le, in). For more information, see Configure the employeeLeaveDateTime property for a user.
     */
    employeeLeaveDateTime?: NullableOption<string>;
    /**
     * Represents organization data (for example, division and costCenter) associated with a user. Returned only on $select.
     * Supports $filter (eq, ne, not , ge, le, in).
     */
    employeeOrgData?: NullableOption<EmployeeOrgData>;
    /**
     * Captures enterprise worker type. For example, Employee, Contractor, Consultant, or Vendor. Returned only on $select.
     * Supports $filter (eq, ne, not , ge, le, in, startsWith).
     */
    employeeType?: NullableOption<string>;
    /**
     * For an external user invited to the tenant using the invitation API, this property represents the invited user's
     * invitation status. For invited users, the state can be PendingAcceptance or Accepted, or null for all other users.
     * Returned only on $select. Supports $filter (eq, ne, not , in).
     */
    externalUserState?: NullableOption<string>;
    /**
     * Shows the timestamp for the latest change to the externalUserState property. Returned only on $select. Supports $filter
     * (eq, ne, not , in).
     */
    externalUserStateChangeDateTime?: NullableOption<string>;
    /**
     * The fax number of the user. Returned only on $select. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq on
     * null values).
     */
    faxNumber?: NullableOption<string>;
    /**
     * The given name (first name) of the user. Maximum length is 64 characters. Returned by default. Supports $filter (eq,
     * ne, not , ge, le, in, startsWith, and eq on null values).
     */
    givenName?: NullableOption<string>;
    /**
     * Represents the identities that can be used to sign in to this user account. An identity can be provided by Microsoft
     * (also known as a local account), by organizations, or by social identity providers such as Facebook, Google, and
     * Microsoft, and tied to a user account. May contain multiple items with the same signInType value. Returned only on
     * $select. Supports $filter (eq) including on null values, only where the signInType is not userPrincipalName.
     */
    identities?: NullableOption<ObjectIdentity[]>;
    /**
     * The instant message voice over IP (VOIP) session initiation protocol (SIP) addresses for the user. Read-only. Returned
     * only on $select. Supports $filter (eq, not, ge, le, startsWith).
     */
    imAddresses?: NullableOption<string[]>;
    // Do not use – reserved for future use.
    isResourceAccount?: NullableOption<boolean>;
    /**
     * The user's job title. Maximum length is 128 characters. Returned by default. Supports $filter (eq, ne, not , ge, le,
     * in, startsWith, and eq on null values).
     */
    jobTitle?: NullableOption<string>;
    /**
     * The time when this Microsoft Entra user last changed their password or when their password was created, whichever date
     * the latest action was performed. The date and time information uses ISO 8601 format and is always in UTC time. For
     * example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Returned only on $select.
     */
    lastPasswordChangeDateTime?: NullableOption<string>;
    /**
     * Used by enterprise applications to determine the legal age group of the user. This property is read-only and calculated
     * based on ageGroup and consentProvidedForMinor properties. Allowed values: null, MinorWithOutParentalConsent,
     * MinorWithParentalConsent, MinorNoParentalConsentRequired, NotAdult and Adult. Refer to the legal age group property
     * definitions for further information. Returned only on $select.
     */
    legalAgeGroupClassification?: NullableOption<string>;
    /**
     * State of license assignments for this user. Also indicates licenses that are directly assigned or the user has
     * inherited through group memberships. Read-only. Returned only on $select.
     */
    licenseAssignmentStates?: NullableOption<LicenseAssignmentState[]>;
    /**
     * The SMTP address for the user, for example, jeff@contoso.onmicrosoft.com. Changes to this property will also update the
     * user's proxyAddresses collection to include the value as an SMTP address. This property can't contain accent
     * characters. NOTE: We don't recommend updating this property for Azure AD B2C user profiles. Use the otherMails property
     * instead. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith, endsWith, and eq on null values).
     */
    mail?: NullableOption<string>;
    /**
     * The mail alias for the user. This property must be specified when a user is created. Maximum length is 64 characters.
     * Returned only on $select. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).
     */
    mailNickname?: NullableOption<string>;
    /**
     * The primary cellular telephone number for the user. Read-only for users synced from on-premises directory. Maximum
     * length is 64 characters. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null
     * values) and $search.
     */
    mobilePhone?: NullableOption<string>;
    /**
     * The office location in the user's place of business. Returned by default. Supports $filter (eq, ne, not, ge, le, in,
     * startsWith, and eq on null values).
     */
    officeLocation?: NullableOption<string>;
    /**
     * Contains the on-premises Active Directory distinguished name or DN. The property is only populated for customers who
     * are synchronizing their on-premises directory to Microsoft Entra ID via Microsoft Entra Connect. Read-only. Returned
     * only on $select.
     */
    onPremisesDistinguishedName?: NullableOption<string>;
    /**
     * Contains the on-premises domainFQDN, also called dnsDomainName synchronized from the on-premises directory. The
     * property is only populated for customers who are synchronizing their on-premises directory to Microsoft Entra ID via
     * Microsoft Entra Connect. Read-only. Returned only on $select.
     */
    onPremisesDomainName?: NullableOption<string>;
    /**
     * Contains extensionAttributes1-15 for the user. These extension attributes are also known as Exchange custom attributes
     * 1-15. For an onPremisesSyncEnabled user, the source of authority for this set of properties is the on-premises and is
     * read-only. For a cloud-only user (where onPremisesSyncEnabled is false), these properties can be set during creation or
     * update of a user object. For a cloud-only user previously synced from on-premises Active Directory, these properties
     * are read-only in Microsoft Graph but can be fully managed through the Exchange Admin Center or the Exchange Online V2
     * module in PowerShell. Returned only on $select. Supports $filter (eq, ne, not, in).
     */
    onPremisesExtensionAttributes?: NullableOption<OnPremisesExtensionAttributes>;
    /**
     * This property is used to associate an on-premises Active Directory user account to their Microsoft Entra user object.
     * This property must be specified when creating a new user account in the Graph if you're using a federated domain for
     * the user's userPrincipalName (UPN) property. NOTE: The $ and _ characters can't be used when specifying this property.
     * Returned only on $select. Supports $filter (eq, ne, not, ge, le, in)..
     */
    onPremisesImmutableId?: NullableOption<string>;
    /**
     * Indicates the last time at which the object was synced with the on-premises directory; for example:
     * 2013-02-16T03:04:54Z. The Timestamp type represents date and time information using ISO 8601 format and is always in
     * UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only. Returned only on $select.
     * Supports $filter (eq, ne, not, ge, le, in).
     */
    onPremisesLastSyncDateTime?: NullableOption<string>;
    /**
     * Errors when using Microsoft synchronization product during provisioning. Returned only on $select. Supports $filter
     * (eq, not, ge, le).
     */
    onPremisesProvisioningErrors?: NullableOption<OnPremisesProvisioningError[]>;
    /**
     * Contains the on-premises samAccountName synchronized from the on-premises directory. The property is only populated for
     * customers who are synchronizing their on-premises directory to Microsoft Entra ID via Microsoft Entra Connect.
     * Read-only. Returned only on $select. Supports $filter (eq, ne, not, ge, le, in, startsWith).
     */
    onPremisesSamAccountName?: NullableOption<string>;
    /**
     * Contains the on-premises security identifier (SID) for the user that was synchronized from on-premises to the cloud.
     * Read-only. Returned only on $select. Supports $filter (eq including on null values).
     */
    onPremisesSecurityIdentifier?: NullableOption<string>;
    /**
     * true if this user object is currently being synced from an on-premises Active Directory (AD); otherwise the user isn't
     * being synced and can be managed in Microsoft Entra ID. Read-only. Returned only on $select. Supports $filter (eq, ne,
     * not, in, and eq on null values).
     */
    onPremisesSyncEnabled?: NullableOption<boolean>;
    /**
     * Contains the on-premises userPrincipalName synchronized from the on-premises directory. The property is only populated
     * for customers who are synchronizing their on-premises directory to Microsoft Entra ID via Microsoft Entra Connect.
     * Read-only. Returned only on $select. Supports $filter (eq, ne, not, ge, le, in, startsWith).
     */
    onPremisesUserPrincipalName?: NullableOption<string>;
    /**
     * A list of additional email addresses for the user; for example: ['bob@contoso.com', 'Robert@fabrikam.com']. NOTE: This
     * property can't contain accent characters. Returned only on $select. Supports $filter (eq, not, ge, le, in, startsWith,
     * endsWith, /$count eq 0, /$count ne 0).
     */
    otherMails?: string[];
    /**
     * Specifies password policies for the user. This value is an enumeration with one possible value being
     * DisableStrongPassword, which allows weaker passwords than the default policy to be specified. DisablePasswordExpiration
     * can also be specified. The two may be specified together; for example: DisablePasswordExpiration,
     * DisableStrongPassword. Returned only on $select. For more information on the default password policies, see Microsoft
     * Entra password policies. Supports $filter (ne, not, and eq on null values).
     */
    passwordPolicies?: NullableOption<string>;
    /**
     * Specifies the password profile for the user. The profile contains the user's password. This property is required when a
     * user is created. The password in the profile must satisfy minimum requirements as specified by the passwordPolicies
     * property. By default, a strong password is required. Returned only on $select. Supports $filter (eq, ne, not, in, and
     * eq on null values).
     */
    passwordProfile?: NullableOption<PasswordProfile>;
    /**
     * The postal code for the user's postal address. The postal code is specific to the user's country/region. In the United
     * States of America, this attribute contains the ZIP code. Maximum length is 40 characters. Returned only on $select.
     * Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).
     */
    postalCode?: NullableOption<string>;
    // The preferred data location for the user. For more information, see OneDrive Online Multi-Geo.
    preferredDataLocation?: NullableOption<string>;
    /**
     * The preferred language for the user. The preferred language format is based on RFC 4646. The name is a combination of
     * an ISO 639 two-letter lowercase culture code associated with the language, and an ISO 3166 two-letter uppercase
     * subculture code associated with the country or region. Example: 'en-US', or 'es-ES'. Returned by default. Supports
     * $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values)
     */
    preferredLanguage?: NullableOption<string>;
    /**
     * The plans that are provisioned for the user. Read-only. Not nullable. Returned only on $select. Supports $filter (eq,
     * not, ge, le).
     */
    provisionedPlans?: ProvisionedPlan[];
    /**
     * For example: ['SMTP: bob@contoso.com', 'smtp: bob@sales.contoso.com']. Changes to the mail property will also update
     * this collection to include the value as an SMTP address. For more information, see mail and proxyAddresses properties.
     * The proxy address prefixed with SMTP (capitalized) is the primary proxy address while those prefixed with smtp are the
     * secondary proxy addresses. For Azure AD B2C accounts, this property has a limit of 10 unique addresses. Read-only in
     * Microsoft Graph; you can update this property only through the Microsoft 365 admin center. Not nullable. Returned only
     * on $select. Supports $filter (eq, not, ge, le, startsWith, endsWith, /$count eq 0, /$count ne 0).
     */
    proxyAddresses?: string[];
    /**
     * Security identifier (SID) of the user, used in Windows scenarios. Read-only. Returned by default. Supports $select and
     * $filter (eq, not, ge, le, startsWith).
     */
    securityIdentifier?: NullableOption<string>;
    serviceProvisioningErrors?: NullableOption<ServiceProvisioningError[]>;
    /**
     * Do not use in Microsoft Graph. Manage this property through the Microsoft 365 admin center instead. Represents whether
     * the user should be included in the Outlook global address list. See Known issue.
     */
    showInAddressList?: NullableOption<boolean>;
    /**
     * Any refresh tokens or sessions tokens (session cookies) issued before this time are invalid, and applications get an
     * error when using an invalid refresh or sessions token to acquire a delegated access token (to access APIs such as
     * Microsoft Graph). If this happens, the application needs to acquire a new refresh token by making a request to the
     * authorize endpoint. Read-only. Use revokeSignInSessions to reset. Returned only on $select.
     */
    signInSessionsValidFromDateTime?: NullableOption<string>;
    /**
     * The state or province in the user's address. Maximum length is 128 characters. Returned only on $select. Supports
     * $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).
     */
    state?: NullableOption<string>;
    /**
     * The street address of the user's place of business. Maximum length is 1024 characters. Returned only on $select.
     * Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).
     */
    streetAddress?: NullableOption<string>;
    /**
     * The user's surname (family name or last name). Maximum length is 64 characters. Returned by default. Supports $filter
     * (eq, ne, not, ge, le, in, startsWith, and eq on null values).
     */
    surname?: NullableOption<string>;
    /**
     * A two letter country code (ISO standard 3166). Required for users that are assigned licenses due to legal requirement
     * to check for availability of services in countries. Examples include: US, JP, and GB. Not nullable. Returned only on
     * $select. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).
     */
    usageLocation?: NullableOption<string>;
    /**
     * The user principal name (UPN) of the user. The UPN is an Internet-style sign-in name for the user based on the Internet
     * standard RFC 822. By convention, this should map to the user's email name. The general format is alias@domain, where
     * domain must be present in the tenant's collection of verified domains. This property is required when a user is
     * created. The verified domains for the tenant can be accessed from the verifiedDomains property of organization.NOTE:
     * This property can't contain accent characters. Only the following characters are allowed A - Z, a - z, 0 - 9, ' . - _ !
     * # ^ ~. For the complete list of allowed characters, see username policies. Returned by default. Supports $filter (eq,
     * ne, not, ge, le, in, startsWith, endsWith) and $orderby.
     */
    userPrincipalName?: NullableOption<string>;
    /**
     * A string value that can be used to classify user types in your directory, such as Member and Guest. Returned only on
     * $select. Supports $filter (eq, ne, not, in, and eq on null values). NOTE: For more information about the permissions
     * for member and guest users, see What are the default user permissions in Microsoft Entra ID?
     */
    userType?: NullableOption<string>;
    /**
     * Settings for the primary mailbox of the signed-in user. You can get or update settings for sending automatic replies to
     * incoming messages, locale and time zone. Returned only on $select.
     */
    mailboxSettings?: NullableOption<MailboxSettings>;
    // The limit on the maximum number of devices that the user is permitted to enroll. Allowed values are 5 or 1000.
    deviceEnrollmentLimit?: number;
    print?: NullableOption<UserPrint>;
    // A freeform text entry field for the user to describe themselves. Returned only on $select.
    aboutMe?: NullableOption<string>;
    /**
     * The birthday of the user. The Timestamp type represents date and time information using ISO 8601 format and is always
     * in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Returned only on $select.
     */
    birthday?: string;
    /**
     * The hire date of the user. The Timestamp type represents date and time information using ISO 8601 format and is always
     * in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Returned only on $select. Note: This
     * property is specific to SharePoint Online. We recommend using the native employeeHireDate property to set and update
     * hire date values using Microsoft Graph APIs.
     */
    hireDate?: string;
    // A list for the user to describe their interests. Returned only on $select.
    interests?: NullableOption<string[]>;
    // The URL for the user's personal site. Returned only on $select.
    mySite?: NullableOption<string>;
    // A list for the user to enumerate their past projects. Returned only on $select.
    pastProjects?: NullableOption<string[]>;
    // The preferred name for the user. Not Supported. This attribute returns an empty string.Returned only on $select.
    preferredName?: NullableOption<string>;
    // A list for the user to enumerate their responsibilities. Returned only on $select.
    responsibilities?: NullableOption<string[]>;
    // A list for the user to enumerate the schools they have attended. Returned only on $select.
    schools?: NullableOption<string[]>;
    // A list for the user to enumerate their skills. Returned only on $select.
    skills?: NullableOption<string[]>;
    // Represents the app roles a user has been granted for an application. Supports $expand.
    appRoleAssignments?: NullableOption<AppRoleAssignment[]>;
    // Directory objects that the user created. Read-only. Nullable.
    createdObjects?: NullableOption<DirectoryObject[]>;
    /**
     * The users and contacts that report to the user. (The users and contacts that have their manager property set to this
     * user.) Read-only. Nullable. Supports $expand.
     */
    directReports?: NullableOption<DirectoryObject[]>;
    // A collection of this user's license details. Read-only.
    licenseDetails?: NullableOption<LicenseDetails[]>;
    // The user or contact that is this user's manager. Read-only. (HTTP Methods: GET, PUT, DELETE.). Supports $expand.
    manager?: NullableOption<DirectoryObject>;
    // The groups and directory roles that the user is a member of. Read-only. Nullable. Supports $expand.
    memberOf?: NullableOption<DirectoryObject[]>;
    oauth2PermissionGrants?: NullableOption<OAuth2PermissionGrant[]>;
    /**
     * Devices that are owned by the user. Read-only. Nullable. Supports $expand and $filter (/$count eq 0, /$count ne 0,
     * /$count eq 1, /$count ne 1).
     */
    ownedDevices?: NullableOption<DirectoryObject[]>;
    /**
     * Directory objects that are owned by the user. Read-only. Nullable. Supports $expand, $select nested in $expand, and
     * $filter (/$count eq 0, /$count ne 0, /$count eq 1, /$count ne 1).
     */
    ownedObjects?: NullableOption<DirectoryObject[]>;
    // Devices that are registered for the user. Read-only. Nullable. Supports $expand and returns up to 100 objects.
    registeredDevices?: NullableOption<DirectoryObject[]>;
    scopedRoleMemberOf?: NullableOption<ScopedRoleMembership[]>;
    // The groups, including nested groups, and directory roles that a user is a member of. Nullable.
    transitiveMemberOf?: NullableOption<DirectoryObject[]>;
    // The user's primary calendar. Read-only.
    calendar?: NullableOption<Calendar>;
    // The user's calendar groups. Read-only. Nullable.
    calendarGroups?: NullableOption<CalendarGroup[]>;
    // The user's calendars. Read-only. Nullable.
    calendars?: NullableOption<Calendar[]>;
    // The calendar view for the calendar. Read-only. Nullable.
    calendarView?: NullableOption<Event[]>;
    // The user's contacts folders. Read-only. Nullable.
    contactFolders?: NullableOption<ContactFolder[]>;
    // The user's contacts. Read-only. Nullable.
    contacts?: NullableOption<Contact[]>;
    // The user's events. Default is to show Events under the Default Calendar. Read-only. Nullable.
    events?: NullableOption<Event[]>;
    /**
     * Relevance classification of the user's messages based on explicit designations that override inferred relevance or
     * importance.
     */
    inferenceClassification?: NullableOption<InferenceClassification>;
    // The user's mail folders. Read-only. Nullable.
    mailFolders?: NullableOption<MailFolder[]>;
    // The messages in a mailbox or folder. Read-only. Nullable.
    messages?: NullableOption<Message[]>;
    outlook?: NullableOption<OutlookUser>;
    // People that are relevant to the user. Read-only. Nullable.
    people?: NullableOption<Person[]>;
    // The user's OneDrive. Read-only.
    drive?: NullableOption<Drive>;
    // A collection of drives available for this user. Read-only.
    drives?: NullableOption<Drive[]>;
    followedSites?: NullableOption<Site[]>;
    // The collection of open extensions defined for the user. Read-only. Supports $expand. Nullable.
    extensions?: NullableOption<Extension[]>;
    // The user's terms of use acceptance statuses. Read-only. Nullable.
    agreementAcceptances?: NullableOption<AgreementAcceptance[]>;
    // The managed devices associated with the user.
    managedDevices?: NullableOption<ManagedDevice[]>;
    // Zero or more managed app registrations that belong to the user.
    managedAppRegistrations?: NullableOption<ManagedAppRegistration[]>;
    // The list of troubleshooting events for this user.
    deviceManagementTroubleshootingEvents?: NullableOption<DeviceManagementTroubleshootingEvent[]>;
    // Entry-point to the Planner resource that might exist for a user. Read-only.
    planner?: NullableOption<PlannerUser>;
    insights?: NullableOption<OfficeGraphInsights>;
    settings?: NullableOption<UserSettings>;
    onenote?: NullableOption<Onenote>;
    // The user's profile photo. Read-only.
    photo?: NullableOption<ProfilePhoto>;
    // The collection of the user's profile photos in different sizes. Read-only.
    photos?: NullableOption<ProfilePhoto[]>;
    // The user's activities across devices. Read-only. Nullable.
    activities?: NullableOption<UserActivity[]>;
    // Information about a meeting, including the URL used to join a meeting, the attendees' list, and the description.
    onlineMeetings?: NullableOption<OnlineMeeting[]>;
    presence?: NullableOption<Presence>;
    // The authentication methods that are supported for the user.
    authentication?: NullableOption<Authentication>;
    chats?: NullableOption<Chat[]>;
    joinedTeams?: NullableOption<Team[]>;
    // A container for Microsoft Teams features available for the user. Read-only. Nullable.
    teamwork?: NullableOption<UserTeamwork>;
    // Represents the To Do services available to a user.
    todo?: NullableOption<Todo>;
    employeeExperience?: NullableOption<EmployeeExperienceUser>;
}
export interface AppRoleAssignment extends DirectoryObject {
    /**
     * The identifier (id) for the app role which is assigned to the principal. This app role must be exposed in the appRoles
     * property on the resource application's service principal (resourceId). If the resource application has not declared any
     * app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal that the principal
     * is assigned to the resource app without any specific app roles. Required on create.
     */
    appRoleId?: string;
    /**
     * The time when the app role assignment was created. The Timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    /**
     * The display name of the user, group, or service principal that was granted the app role assignment. Read-only. Supports
     * $filter (eq and startswith).
     */
    principalDisplayName?: NullableOption<string>;
    /**
     * The unique identifier (id) for the user, security group, or service principal being granted the app role. Security
     * groups with dynamic memberships are supported. Required on create.
     */
    principalId?: NullableOption<string>;
    // The type of the assigned principal. This can either be User, Group, or ServicePrincipal. Read-only.
    principalType?: NullableOption<string>;
    // The display name of the resource app's service principal to which the assignment is made.
    resourceDisplayName?: NullableOption<string>;
    /**
     * The unique identifier (id) for the resource service principal for which the assignment is made. Required on create.
     * Supports $filter (eq only).
     */
    resourceId?: NullableOption<string>;
}
export interface LicenseDetails extends Entity {
    // Information about the service plans assigned with the license. Read-only, Not nullable
    servicePlans?: ServicePlanInfo[];
    /**
     * Unique identifier (GUID) for the service SKU. Equal to the skuId property on the related SubscribedSku object.
     * Read-only
     */
    skuId?: NullableOption<string>;
    /**
     * Unique SKU display name. Equal to the skuPartNumber on the related SubscribedSku object; for example: 'AAD_Premium'.
     * Read-only
     */
    skuPartNumber?: NullableOption<string>;
}
export interface OAuth2PermissionGrant extends Entity {
    /**
     * The object id (not appId) of the client service principal for the application which is authorized to act on behalf of a
     * signed-in user when accessing an API. Required. Supports $filter (eq only).
     */
    clientId?: string;
    /**
     * Indicates if authorization is granted for the client application to impersonate all users or only a specific user.
     * AllPrincipals indicates authorization to impersonate all users. Principal indicates authorization to impersonate a
     * specific user. Consent on behalf of all users can be granted by an administrator. Non-admin users may be authorized to
     * consent on behalf of themselves in some cases, for some delegated permissions. Required. Supports $filter (eq only).
     */
    consentType?: NullableOption<string>;
    /**
     * The id of the user on behalf of whom the client is authorized to access the resource, when consentType is Principal. If
     * consentType is AllPrincipals this value is null. Required when consentType is Principal. Supports $filter (eq only).
     */
    principalId?: NullableOption<string>;
    /**
     * The id of the resource service principal to which access is authorized. This identifies the API which the client is
     * authorized to attempt to call on behalf of a signed-in user. Supports $filter (eq only).
     */
    resourceId?: string;
    /**
     * A space-separated list of the claim values for delegated permissions which should be included in access tokens for the
     * resource application (the API). For example, openid User.Read GroupMember.Read.All. Each claim value should match the
     * value field of one of the delegated permissions defined by the API, listed in the oauth2PermissionScopes property of
     * the resource service principal. Must not exceed 3850 characters in length.
     */
    scope?: NullableOption<string>;
}
export interface ScopedRoleMembership extends Entity {
    // Unique identifier for the administrative unit that the directory role is scoped to
    administrativeUnitId?: string;
    // Unique identifier for the directory role that the member is in.
    roleId?: string;
    // Role member identity information. Represents the user that is a member of this scoped-role.
    roleMemberInfo?: Identity;
}
export interface Calendar extends Entity {
    /**
     * Represent the online meeting service providers that can be used to create online meetings in this calendar. Possible
     * values are: unknown, skypeForBusiness, skypeForConsumer, teamsForBusiness.
     */
    allowedOnlineMeetingProviders?: NullableOption<OnlineMeetingProviderType[]>;
    /**
     * true if the user can write to the calendar, false otherwise. This property is true for the user who created the
     * calendar. This property is also true for a user who has been shared a calendar and granted write access.
     */
    canEdit?: NullableOption<boolean>;
    /**
     * true if the user has the permission to share the calendar, false otherwise. Only the user who created the calendar can
     * share it.
     */
    canShare?: NullableOption<boolean>;
    // true if the user can read calendar items that have been marked private, false otherwise.
    canViewPrivateItems?: NullableOption<boolean>;
    /**
     * Identifies the version of the calendar object. Every time the calendar is changed, changeKey changes as well. This
     * allows Exchange to apply changes to the correct version of the object. Read-only.
     */
    changeKey?: NullableOption<string>;
    /**
     * Specifies the color theme to distinguish the calendar from other calendars in a UI. The property values are: auto,
     * lightBlue, lightGreen, lightOrange, lightGray, lightYellow, lightTeal, lightPink, lightBrown, lightRed, maxColor.
     */
    color?: NullableOption<CalendarColor>;
    /**
     * The default online meeting provider for meetings sent from this calendar. Possible values are: unknown,
     * skypeForBusiness, skypeForConsumer, teamsForBusiness.
     */
    defaultOnlineMeetingProvider?: NullableOption<OnlineMeetingProviderType>;
    /**
     * The calendar color, expressed in a hex color code of three hexadecimal values, each ranging from 00 to FF and
     * representing the red, green, or blue components of the color in the RGB color space. If the user has never explicitly
     * set a color for the calendar, this property is empty. Read-only.
     */
    hexColor?: NullableOption<string>;
    // true if this is the default calendar where new events are created by default, false otherwise.
    isDefaultCalendar?: NullableOption<boolean>;
    // Indicates whether this user calendar can be deleted from the user mailbox.
    isRemovable?: NullableOption<boolean>;
    /**
     * Indicates whether this user calendar supports tracking of meeting responses. Only meeting invites sent from users'
     * primary calendars support tracking of meeting responses.
     */
    isTallyingResponses?: NullableOption<boolean>;
    // The calendar name.
    name?: NullableOption<string>;
    /**
     * If set, this represents the user who created or added the calendar. For a calendar that the user created or added, the
     * owner property is set to the user. For a calendar shared with the user, the owner property is set to the person who
     * shared that calendar with the user.
     */
    owner?: NullableOption<EmailAddress>;
    // The permissions of the users with whom the calendar is shared.
    calendarPermissions?: NullableOption<CalendarPermission[]>;
    // The calendar view for the calendar. Navigation property. Read-only.
    calendarView?: NullableOption<Event[]>;
    // The events in the calendar. Navigation property. Read-only.
    events?: NullableOption<Event[]>;
    // The collection of multi-value extended properties defined for the calendar. Read-only. Nullable.
    multiValueExtendedProperties?: NullableOption<MultiValueLegacyExtendedProperty[]>;
    // The collection of single-value extended properties defined for the calendar. Read-only. Nullable.
    singleValueExtendedProperties?: NullableOption<SingleValueLegacyExtendedProperty[]>;
}
export interface CalendarGroup extends Entity {
    /**
     * Identifies the version of the calendar group. Every time the calendar group is changed, ChangeKey changes as well. This
     * allows Exchange to apply changes to the correct version of the object. Read-only.
     */
    changeKey?: NullableOption<string>;
    // The class identifier. Read-only.
    classId?: NullableOption<string>;
    // The group name.
    name?: NullableOption<string>;
    // The calendars in the calendar group. Navigation property. Read-only. Nullable.
    calendars?: NullableOption<Calendar[]>;
}
export interface OutlookItem extends Entity {
    // The categories associated with the item
    categories?: NullableOption<string[]>;
    /**
     * Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to
     * apply changes to the correct version of the object. Read-only.
     */
    changeKey?: NullableOption<string>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: NullableOption<string>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastModifiedDateTime?: NullableOption<string>;
}
export interface Event extends OutlookItem {
    /**
     * true if the meeting organizer allows invitees to propose a new time when responding; otherwise, false. Optional.
     * Default is true.
     */
    allowNewTimeProposals?: NullableOption<boolean>;
    // The collection of attendees for the event.
    attendees?: NullableOption<Attendee[]>;
    // The body of the message associated with the event. It can be in HTML or text format.
    body?: NullableOption<ItemBody>;
    // The preview of the message associated with the event. It is in text format.
    bodyPreview?: NullableOption<string>;
    // The date, time, and time zone that the event ends. By default, the end time is in UTC.
    end?: NullableOption<DateTimeTimeZone>;
    // Set to true if the event has attachments.
    hasAttachments?: NullableOption<boolean>;
    /**
     * When set to true, each attendee only sees themselves in the meeting request and meeting Tracking list. Default is
     * false.
     */
    hideAttendees?: NullableOption<boolean>;
    /**
     * A unique identifier for an event across calendars. This ID is different for each occurrence in a recurring series.
     * Read-only.
     */
    iCalUId?: NullableOption<string>;
    importance?: NullableOption<Importance>;
    isAllDay?: NullableOption<boolean>;
    isCancelled?: NullableOption<boolean>;
    isDraft?: NullableOption<boolean>;
    isOnlineMeeting?: NullableOption<boolean>;
    isOrganizer?: NullableOption<boolean>;
    isReminderOn?: NullableOption<boolean>;
    location?: NullableOption<Location>;
    locations?: NullableOption<Location[]>;
    onlineMeeting?: NullableOption<OnlineMeetingInfo>;
    onlineMeetingProvider?: NullableOption<OnlineMeetingProviderType>;
    onlineMeetingUrl?: NullableOption<string>;
    organizer?: NullableOption<Recipient>;
    originalEndTimeZone?: NullableOption<string>;
    originalStart?: NullableOption<string>;
    originalStartTimeZone?: NullableOption<string>;
    recurrence?: NullableOption<PatternedRecurrence>;
    reminderMinutesBeforeStart?: NullableOption<number>;
    responseRequested?: NullableOption<boolean>;
    responseStatus?: NullableOption<ResponseStatus>;
    sensitivity?: NullableOption<Sensitivity>;
    seriesMasterId?: NullableOption<string>;
    showAs?: NullableOption<FreeBusyStatus>;
    start?: NullableOption<DateTimeTimeZone>;
    subject?: NullableOption<string>;
    transactionId?: NullableOption<string>;
    type?: NullableOption<EventType>;
    webLink?: NullableOption<string>;
    /**
     * The collection of FileAttachment, ItemAttachment, and referenceAttachment attachments for the event. Navigation
     * property. Read-only. Nullable.
     */
    attachments?: NullableOption<Attachment[]>;
    // The calendar that contains the event. Navigation property. Read-only.
    calendar?: NullableOption<Calendar>;
    // The collection of open extensions defined for the event. Nullable.
    extensions?: NullableOption<Extension[]>;
    /**
     * The occurrences of a recurring series, if the event is a series master. This property includes occurrences that are
     * part of the recurrence pattern, and exceptions that have been modified, but does not include occurrences that have been
     * cancelled from the series. Navigation property. Read-only. Nullable.
     */
    instances?: NullableOption<Event[]>;
    // The collection of multi-value extended properties defined for the event. Read-only. Nullable.
    multiValueExtendedProperties?: NullableOption<MultiValueLegacyExtendedProperty[]>;
    // The collection of single-value extended properties defined for the event. Read-only. Nullable.
    singleValueExtendedProperties?: NullableOption<SingleValueLegacyExtendedProperty[]>;
}
export interface ContactFolder extends Entity {
    // The folder's display name.
    displayName?: NullableOption<string>;
    // The ID of the folder's parent folder.
    parentFolderId?: NullableOption<string>;
    // The collection of child folders in the folder. Navigation property. Read-only. Nullable.
    childFolders?: NullableOption<ContactFolder[]>;
    // The contacts in the folder. Navigation property. Read-only. Nullable.
    contacts?: NullableOption<Contact[]>;
    // The collection of multi-value extended properties defined for the contactFolder. Read-only. Nullable.
    multiValueExtendedProperties?: NullableOption<MultiValueLegacyExtendedProperty[]>;
    // The collection of single-value extended properties defined for the contactFolder. Read-only. Nullable.
    singleValueExtendedProperties?: NullableOption<SingleValueLegacyExtendedProperty[]>;
}
export interface Contact extends OutlookItem {
    // The name of the contact's assistant.
    assistantName?: NullableOption<string>;
    /**
     * The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in
     * UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    birthday?: NullableOption<string>;
    // The contact's business address.
    businessAddress?: NullableOption<PhysicalAddress>;
    // The business home page of the contact.
    businessHomePage?: NullableOption<string>;
    // The contact's business phone numbers.
    businessPhones?: NullableOption<string[]>;
    // The names of the contact's children.
    children?: NullableOption<string[]>;
    // The name of the contact's company.
    companyName?: NullableOption<string>;
    // The contact's department.
    department?: NullableOption<string>;
    /**
     * The contact's display name. You can specify the display name in a create or update operation. Note that later updates
     * to other properties may cause an automatically generated value to overwrite the displayName value you have specified.
     * To preserve a pre-existing value, always include it as displayName in an update operation.
     */
    displayName?: NullableOption<string>;
    // The contact's email addresses.
    emailAddresses?: NullableOption<EmailAddress[]>;
    // The name the contact is filed under.
    fileAs?: NullableOption<string>;
    // The contact's generation.
    generation?: NullableOption<string>;
    // The contact's given name.
    givenName?: NullableOption<string>;
    // The contact's home address.
    homeAddress?: NullableOption<PhysicalAddress>;
    // The contact's home phone numbers.
    homePhones?: NullableOption<string[]>;
    imAddresses?: NullableOption<string[]>;
    initials?: NullableOption<string>;
    jobTitle?: NullableOption<string>;
    manager?: NullableOption<string>;
    middleName?: NullableOption<string>;
    mobilePhone?: NullableOption<string>;
    nickName?: NullableOption<string>;
    officeLocation?: NullableOption<string>;
    otherAddress?: NullableOption<PhysicalAddress>;
    parentFolderId?: NullableOption<string>;
    personalNotes?: NullableOption<string>;
    profession?: NullableOption<string>;
    spouseName?: NullableOption<string>;
    surname?: NullableOption<string>;
    title?: NullableOption<string>;
    yomiCompanyName?: NullableOption<string>;
    yomiGivenName?: NullableOption<string>;
    yomiSurname?: NullableOption<string>;
    // The collection of open extensions defined for the contact. Read-only. Nullable.
    extensions?: NullableOption<Extension[]>;
    // The collection of multi-value extended properties defined for the contact. Read-only. Nullable.
    multiValueExtendedProperties?: NullableOption<MultiValueLegacyExtendedProperty[]>;
    // Optional contact picture. You can get or set a photo for a contact.
    photo?: NullableOption<ProfilePhoto>;
    // The collection of single-value extended properties defined for the contact. Read-only. Nullable.
    singleValueExtendedProperties?: NullableOption<SingleValueLegacyExtendedProperty[]>;
}
// tslint:disable-next-line: interface-name
export interface InferenceClassification extends Entity {
    /**
     * A set of overrides for a user to always classify messages from specific senders in certain ways: focused, or other.
     * Read-only. Nullable.
     */
    overrides?: NullableOption<InferenceClassificationOverride[]>;
}
export interface MailFolder extends Entity {
    // The number of immediate child mailFolders in the current mailFolder.
    childFolderCount?: NullableOption<number>;
    // The mailFolder's display name.
    displayName?: NullableOption<string>;
    /**
     * Indicates whether the mailFolder is hidden. This property can be set only when creating the folder. Find more
     * information in Hidden mail folders.
     */
    isHidden?: NullableOption<boolean>;
    // The unique identifier for the mailFolder's parent mailFolder.
    parentFolderId?: NullableOption<string>;
    // The number of items in the mailFolder.
    totalItemCount?: NullableOption<number>;
    // The number of items in the mailFolder marked as unread.
    unreadItemCount?: NullableOption<number>;
    // The collection of child folders in the mailFolder.
    childFolders?: NullableOption<MailFolder[]>;
    // The collection of rules that apply to the user's Inbox folder.
    messageRules?: NullableOption<MessageRule[]>;
    // The collection of messages in the mailFolder.
    messages?: NullableOption<Message[]>;
    // The collection of multi-value extended properties defined for the mailFolder. Read-only. Nullable.
    multiValueExtendedProperties?: NullableOption<MultiValueLegacyExtendedProperty[]>;
    // The collection of single-value extended properties defined for the mailFolder. Read-only. Nullable.
    singleValueExtendedProperties?: NullableOption<SingleValueLegacyExtendedProperty[]>;
}
export interface Message extends OutlookItem {
    // The Bcc: recipients for the message.
    bccRecipients?: NullableOption<Recipient[]>;
    // The body of the message. It can be in HTML or text format. Find out about safe HTML in a message body.
    body?: NullableOption<ItemBody>;
    // The first 255 characters of the message body. It is in text format.
    bodyPreview?: NullableOption<string>;
    // The Cc: recipients for the message.
    ccRecipients?: NullableOption<Recipient[]>;
    // The ID of the conversation the email belongs to.
    conversationId?: NullableOption<string>;
    // Indicates the position of the message within the conversation.
    conversationIndex?: NullableOption<string>;
    // The flag value that indicates the status, start date, due date, or completion date for the message.
    flag?: NullableOption<FollowupFlag>;
    /**
     * The owner of the mailbox from which the message is sent. In most cases, this value is the same as the sender property,
     * except for sharing or delegation scenarios. The value must correspond to the actual mailbox used. Find out more about
     * setting the from and sender properties of a message.
     */
    from?: NullableOption<Recipient>;
    /**
     * Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message
     * contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body
     * property to look for a src attribute, such as &amp;lt;IMG src='cid:image001.jpg@01D26CD8.6C05F070'&amp;gt;.
     */
    hasAttachments?: NullableOption<boolean>;
    importance?: NullableOption<Importance>;
    inferenceClassification?: NullableOption<InferenceClassificationType>;
    internetMessageHeaders?: NullableOption<InternetMessageHeader[]>;
    internetMessageId?: NullableOption<string>;
    isDeliveryReceiptRequested?: NullableOption<boolean>;
    isDraft?: NullableOption<boolean>;
    isRead?: NullableOption<boolean>;
    isReadReceiptRequested?: NullableOption<boolean>;
    parentFolderId?: NullableOption<string>;
    receivedDateTime?: NullableOption<string>;
    replyTo?: NullableOption<Recipient[]>;
    sender?: NullableOption<Recipient>;
    sentDateTime?: NullableOption<string>;
    subject?: NullableOption<string>;
    toRecipients?: NullableOption<Recipient[]>;
    uniqueBody?: NullableOption<ItemBody>;
    webLink?: NullableOption<string>;
    // The fileAttachment and itemAttachment attachments for the message.
    attachments?: NullableOption<Attachment[]>;
    // The collection of open extensions defined for the message. Nullable.
    extensions?: NullableOption<Extension[]>;
    // The collection of multi-value extended properties defined for the message. Nullable.
    multiValueExtendedProperties?: NullableOption<MultiValueLegacyExtendedProperty[]>;
    // The collection of single-value extended properties defined for the message. Nullable.
    singleValueExtendedProperties?: NullableOption<SingleValueLegacyExtendedProperty[]>;
}
export interface OutlookUser extends Entity {
    // A list of categories defined for the user.
    masterCategories?: NullableOption<OutlookCategory[]>;
}
export interface Person extends Entity {
    // The person's birthday.
    birthday?: NullableOption<string>;
    // The name of the person's company.
    companyName?: NullableOption<string>;
    // The person's department.
    department?: NullableOption<string>;
    // The person's display name.
    displayName?: NullableOption<string>;
    // The person's given name.
    givenName?: NullableOption<string>;
    // The instant message voice over IP (VOIP) session initiation protocol (SIP) address for the user. Read-only.
    imAddress?: NullableOption<string>;
    // True if the user has flagged this person as a favorite.
    isFavorite?: NullableOption<boolean>;
    // The person's job title.
    jobTitle?: NullableOption<string>;
    // The location of the person's office.
    officeLocation?: NullableOption<string>;
    // Free-form notes that the user has taken about this person.
    personNotes?: NullableOption<string>;
    // The type of person.
    personType?: NullableOption<PersonType>;
    // The person's phone numbers.
    phones?: NullableOption<Phone[]>;
    // The person's addresses.
    postalAddresses?: NullableOption<Location[]>;
    // The person's profession.
    profession?: NullableOption<string>;
    // The person's email addresses.
    scoredEmailAddresses?: NullableOption<ScoredEmailAddress[]>;
    // The person's surname.
    surname?: NullableOption<string>;
    /**
     * The user principal name (UPN) of the person. The UPN is an Internet-style login name for the person based on the
     * Internet standard RFC 822. By convention, this should map to the person's email name. The general format is
     * alias@domain.
     */
    userPrincipalName?: NullableOption<string>;
    // The person's websites.
    websites?: NullableOption<Website[]>;
    // The phonetic Japanese name of the person's company.
    yomiCompany?: NullableOption<string>;
}
export interface BaseItem extends Entity {
    // Identity of the user, device, or application that created the item. Read-only.
    createdBy?: NullableOption<IdentitySet>;
    // Date and time of item creation. Read-only.
    createdDateTime?: string;
    // Provides a user-visible description of the item. Optional.
    description?: NullableOption<string>;
    // ETag for the item. Read-only.
    eTag?: NullableOption<string>;
    // Identity of the user, device, and application that last modified the item. Read-only.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // Date and time the item was last modified. Read-only.
    lastModifiedDateTime?: string;
    // The name of the item. Read-write.
    name?: NullableOption<string>;
    // Parent information, if the item has a parent. Read-write.
    parentReference?: NullableOption<ItemReference>;
    /**
     * URL that either displays the resource in the browser (for Office file formats), or is a direct link to the file (for
     * other formats). Read-only.
     */
    webUrl?: NullableOption<string>;
    // Identity of the user who created the item. Read-only.
    createdByUser?: NullableOption<User>;
    // Identity of the user who last modified the item. Read-only.
    lastModifiedByUser?: NullableOption<User>;
}
export interface Drive extends BaseItem {
    /**
     * Describes the type of drive represented by this resource. OneDrive personal drives will return personal. OneDrive for
     * Business will return business. SharePoint document libraries will return documentLibrary. Read-only.
     */
    driveType?: NullableOption<string>;
    // Optional. The user account that owns the drive. Read-only.
    owner?: NullableOption<IdentitySet>;
    // Optional. Information about the drive's storage space quota. Read-only.
    quota?: NullableOption<Quota>;
    sharePointIds?: NullableOption<SharepointIds>;
    // If present, indicates that this is a system-managed drive. Read-only.
    system?: NullableOption<SystemFacet>;
    // Collection of [bundles][bundle] (albums and multi-select-shared sets of items). Only in personal OneDrive.
    bundles?: NullableOption<DriveItem[]>;
    // The list of items the user is following. Only in OneDrive for Business.
    following?: NullableOption<DriveItem[]>;
    // All items contained in the drive. Read-only. Nullable.
    items?: NullableOption<DriveItem[]>;
    // For drives in SharePoint, the underlying document library list. Read-only. Nullable.
    list?: NullableOption<List>;
    // The root folder of the drive. Read-only.
    root?: NullableOption<DriveItem>;
    // Collection of common folders available in OneDrive. Read-only. Nullable.
    special?: NullableOption<DriveItem[]>;
}
export interface Site extends BaseItem {
    // The full title for the site. Read-only.
    displayName?: NullableOption<string>;
    error?: NullableOption<PublicError>;
    isPersonalSite?: NullableOption<boolean>;
    // If present, indicates that this is the root site in the site collection. Read-only.
    root?: NullableOption<Root>;
    // Returns identifiers useful for SharePoint REST compatibility. Read-only.
    sharepointIds?: NullableOption<SharepointIds>;
    // Provides details about the site's site collection. Available only on the root site. Read-only.
    siteCollection?: NullableOption<SiteCollection>;
    // Analytics about the view activities that took place in this site.
    analytics?: NullableOption<ItemAnalytics>;
    // The collection of column definitions reusable across lists under this site.
    columns?: NullableOption<ColumnDefinition[]>;
    // The collection of content types defined for this site.
    contentTypes?: NullableOption<ContentType[]>;
    // The default drive (document library) for this site.
    drive?: NullableOption<Drive>;
    // The collection of drives (document libraries) under this site.
    drives?: NullableOption<Drive[]>;
    externalColumns?: NullableOption<ColumnDefinition[]>;
    // Used to address any item contained in this site. This collection can't be enumerated.
    items?: NullableOption<BaseItem[]>;
    // The collection of lists under this site.
    lists?: NullableOption<List[]>;
    // The collection of long-running operations on the site.
    operations?: NullableOption<RichLongRunningOperation[]>;
    // The permissions associated with the site. Nullable.
    permissions?: NullableOption<Permission[]>;
    // The collection of the sub-sites under this site.
    sites?: NullableOption<Site[]>;
    // The default termStore under this site.
    termStore?: NullableOption<TermStore.Store>;
    // The collection of termStores under this site.
    termStores?: NullableOption<TermStore.Store[]>;
    // Calls the OneNote service for notebook related operations.
    onenote?: NullableOption<Onenote>;
}
// tslint:disable-next-line: no-empty-interface
export interface Extension extends Entity {}
export interface AgreementAcceptance extends Entity {
    // The identifier of the agreement file accepted by the user.
    agreementFileId?: NullableOption<string>;
    // The identifier of the agreement.
    agreementId?: NullableOption<string>;
    // The display name of the device used for accepting the agreement.
    deviceDisplayName?: NullableOption<string>;
    // The unique identifier of the device used for accepting the agreement. Supports $filter (eq) and eq for null values.
    deviceId?: NullableOption<string>;
    // The operating system used to accept the agreement.
    deviceOSType?: NullableOption<string>;
    // The operating system version of the device used to accept the agreement.
    deviceOSVersion?: NullableOption<string>;
    /**
     * The expiration date time of the acceptance. The Timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Supports $filter
     * (eq, ge, le) and eq for null values.
     */
    expirationDateTime?: NullableOption<string>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    recordedDateTime?: NullableOption<string>;
    // The state of the agreement acceptance. Possible values are: accepted, declined. Supports $filter (eq).
    state?: NullableOption<AgreementAcceptanceState>;
    // Display name of the user when the acceptance was recorded.
    userDisplayName?: NullableOption<string>;
    // Email of the user when the acceptance was recorded.
    userEmail?: NullableOption<string>;
    // The identifier of the user who accepted the agreement. Supports $filter (eq).
    userId?: NullableOption<string>;
    // UPN of the user when the acceptance was recorded.
    userPrincipalName?: NullableOption<string>;
}
export interface ManagedDevice extends Entity {
    /**
     * The code that allows the Activation Lock on managed device to be bypassed. Default, is Null (Non-Default property) for
     * this property when returned as part of managedDevice entity in LIST call. To retrieve actual values GET call needs to
     * be made, with device id and included in select parameter. Supports: $select. $Search is not supported. Read-only. This
     * property is read-only.
     */
    activationLockBypassCode?: NullableOption<string>;
    // Android security patch level. This property is read-only.
    androidSecurityPatchLevel?: NullableOption<string>;
    // The unique identifier for the Azure Active Directory device. Read only. This property is read-only.
    azureADDeviceId?: NullableOption<string>;
    // Whether the device is Azure Active Directory registered. This property is read-only.
    azureADRegistered?: NullableOption<boolean>;
    // The DateTime when device compliance grace period expires. This property is read-only.
    complianceGracePeriodExpirationDateTime?: string;
    /**
     * Compliance state of the device. Examples: Compliant, Conflict, Error, etc. Default is unknown. Supports $filter
     * operator 'eq' and 'or'. This property is read-only. Possible values are: unknown, compliant, noncompliant, conflict,
     * error, inGracePeriod, configManager.
     */
    complianceState?: ComplianceState;
    // ConfigrMgr client enabled features. This property is read-only.
    configurationManagerClientEnabledFeatures?: NullableOption<ConfigurationManagerClientEnabledFeatures>;
    // List of ComplexType deviceActionResult objects. This property is read-only.
    deviceActionResults?: NullableOption<DeviceActionResult[]>;
    /**
     * Device category display name. Default is an empty string. Supports $filter operator 'eq' and 'or'. This property is
     * read-only.
     */
    deviceCategoryDisplayName?: NullableOption<string>;
    /**
     * Enrollment type of the device. This property is read-only. Possible values are: unknown, userEnrollment,
     * deviceEnrollmentManager, appleBulkWithUser, appleBulkWithoutUser, windowsAzureADJoin, windowsBulkUserless,
     * windowsAutoEnrollment, windowsBulkAzureDomainJoin, windowsCoManagement, windowsAzureADJoinUsingDeviceAuth,
     * appleUserEnrollment, appleUserEnrollmentWithServiceAccount.
     */
    deviceEnrollmentType?: DeviceEnrollmentType;
    // The device health attestation state. This property is read-only.
    deviceHealthAttestationState?: NullableOption<DeviceHealthAttestationState>;
    // Name of the device. This property is read-only.
    deviceName?: NullableOption<string>;
    /**
     * Device registration state. This property is read-only. Possible values are: notRegistered, registered, revoked,
     * keyConflict, approvalPending, certificateReset, notRegisteredPendingEnrollment, unknown.
     */
    deviceRegistrationState?: DeviceRegistrationState;
    // Whether the device is Exchange ActiveSync activated. This property is read-only.
    easActivated?: boolean;
    // Exchange ActivationSync activation time of the device. This property is read-only.
    easActivationDateTime?: string;
    // Exchange ActiveSync Id of the device. This property is read-only.
    easDeviceId?: NullableOption<string>;
    // Email(s) for the user associated with the device. This property is read-only.
    emailAddress?: NullableOption<string>;
    // Enrollment time of the device. Supports $filter operator 'lt' and 'gt'. This property is read-only.
    enrolledDateTime?: string;
    /**
     * Indicates Ethernet MAC Address of the device. Default, is Null (Non-Default property) for this property when returned
     * as part of managedDevice entity. Individual get call with select query options is needed to retrieve actual values.
     * Example: deviceManagement/managedDevices({managedDeviceId})?$select=ethernetMacAddress Supports: $select. $Search is
     * not supported. Read-only. This property is read-only.
     */
    ethernetMacAddress?: NullableOption<string>;
    /**
     * The Access State of the device in Exchange. This property is read-only. Possible values are: none, unknown, allowed,
     * blocked, quarantined.
     */
    exchangeAccessState?: DeviceManagementExchangeAccessState;
    /**
     * The reason for the device's access state in Exchange. This property is read-only. Possible values are: none, unknown,
     * exchangeGlobalRule, exchangeIndividualRule, exchangeDeviceRule, exchangeUpgrade, exchangeMailboxPolicy, other,
     * compliant, notCompliant, notEnrolled, unknownLocation, mfaRequired, azureADBlockDueToAccessPolicy, compromisedPassword,
     * deviceNotKnownWithManagedApp.
     */
    exchangeAccessStateReason?: DeviceManagementExchangeAccessStateReason;
    // Last time the device contacted Exchange. This property is read-only.
    exchangeLastSuccessfulSyncDateTime?: string;
    // Free Storage in Bytes. Default value is 0. Read-only. This property is read-only.
    freeStorageSpaceInBytes?: number;
    /**
     * Integrated Circuit Card Identifier, it is A SIM card's unique identification number. Default is an empty string. To
     * retrieve actual values GET call needs to be made, with device id and included in select parameter. Supports: $select.
     * $Search is not supported. Read-only. This property is read-only.
     */
    iccid?: NullableOption<string>;
    // IMEI. This property is read-only.
    imei?: NullableOption<string>;
    // Device encryption status. This property is read-only.
    isEncrypted?: boolean;
    // Device supervised status. This property is read-only.
    isSupervised?: boolean;
    /**
     * Whether the device is jail broken or rooted. Default is an empty string. Supports $filter operator 'eq' and 'or'. This
     * property is read-only.
     */
    jailBroken?: NullableOption<string>;
    /**
     * The date and time that the device last completed a successful sync with Intune. Supports $filter operator 'lt' and
     * 'gt'. This property is read-only.
     */
    lastSyncDateTime?: string;
    // Automatically generated name to identify a device. Can be overwritten to a user friendly name.
    managedDeviceName?: NullableOption<string>;
    // Ownership of the device. Can be 'company' or 'personal'. Possible values are: unknown, company, personal.
    managedDeviceOwnerType?: ManagedDeviceOwnerType;
    /**
     * Management channel of the device. Examples: Intune, EAS, etc. Default is unknown. Supports $filter operator 'eq' and
     * 'or'. This property is read-only. Possible values are: eas, mdm, easMdm, intuneClient, easIntuneClient,
     * configurationManagerClient, configurationManagerClientMdm, configurationManagerClientMdmEas, unknown, jamf,
     * googleCloudDevicePolicyController.
     */
    managementAgent?: ManagementAgentType;
    // Reports device management certificate expiration date. This property is read-only.
    managementCertificateExpirationDate?: string;
    // Manufacturer of the device. This property is read-only.
    manufacturer?: NullableOption<string>;
    // MEID. This property is read-only.
    meid?: NullableOption<string>;
    // Model of the device. This property is read-only.
    model?: NullableOption<string>;
    /**
     * Notes on the device created by IT Admin. Default is null. To retrieve actual values GET call needs to be made, with
     * device id and included in select parameter. Supports: $select. $Search is not supported.
     */
    notes?: NullableOption<string>;
    // Operating system of the device. Windows, iOS, etc. This property is read-only.
    operatingSystem?: NullableOption<string>;
    // Operating system version of the device. This property is read-only.
    osVersion?: NullableOption<string>;
    /**
     * Indicates the threat state of a device when a Mobile Threat Defense partner is in use by the account and device. Read
     * Only. This property is read-only. Possible values are: unknown, activated, deactivated, secured, lowSeverity,
     * mediumSeverity, highSeverity, unresponsive, compromised, misconfigured.
     */
    partnerReportedThreatState?: ManagedDevicePartnerReportedHealthState;
    // Phone number of the device. This property is read-only.
    phoneNumber?: NullableOption<string>;
    /**
     * Total Memory in Bytes. Default is 0. To retrieve actual values GET call needs to be made, with device id and included
     * in select parameter. Supports: $select. Read-only. This property is read-only.
     */
    physicalMemoryInBytes?: number;
    // An error string that identifies issues when creating Remote Assistance session objects. This property is read-only.
    remoteAssistanceSessionErrorDetails?: NullableOption<string>;
    /**
     * Url that allows a Remote Assistance session to be established with the device. Default is an empty string. To retrieve
     * actual values GET call needs to be made, with device id and included in select parameter. This property is read-only.
     */
    remoteAssistanceSessionUrl?: NullableOption<string>;
    // Reports if the managed iOS device is user approval enrollment. This property is read-only.
    requireUserEnrollmentApproval?: NullableOption<boolean>;
    // SerialNumber. This property is read-only.
    serialNumber?: NullableOption<string>;
    // Subscriber Carrier. This property is read-only.
    subscriberCarrier?: NullableOption<string>;
    // Total Storage in Bytes. This property is read-only.
    totalStorageSpaceInBytes?: number;
    /**
     * Unique Device Identifier for iOS and macOS devices. Default is an empty string. To retrieve actual values GET call
     * needs to be made, with device id and included in select parameter. Supports: $select. $Search is not supported.
     * Read-only. This property is read-only.
     */
    udid?: NullableOption<string>;
    // User display name. This property is read-only.
    userDisplayName?: NullableOption<string>;
    // Unique Identifier for the user associated with the device. This property is read-only.
    userId?: NullableOption<string>;
    // Device user principal name. This property is read-only.
    userPrincipalName?: NullableOption<string>;
    // Wi-Fi MAC. This property is read-only.
    wiFiMacAddress?: NullableOption<string>;
    // Device compliance policy states for this device.
    deviceCompliancePolicyStates?: NullableOption<DeviceCompliancePolicyState[]>;
    // Device configuration states for this device.
    deviceConfigurationStates?: NullableOption<DeviceConfigurationState[]>;
    // Device category
    deviceCategory?: NullableOption<DeviceCategory>;
    // List of log collection requests
    logCollectionRequests?: NullableOption<DeviceLogCollectionResponse[]>;
    // The primary users associated with the managed device.
    users?: NullableOption<User[]>;
    // The device protection status. This property is read-only.
    windowsProtectionState?: NullableOption<WindowsProtectionState>;
}
export interface ManagedAppRegistration extends Entity {
    // The app package Identifier
    appIdentifier?: NullableOption<MobileAppIdentifier>;
    // App version
    applicationVersion?: NullableOption<string>;
    // Date and time of creation
    createdDateTime?: string;
    // Host device name
    deviceName?: NullableOption<string>;
    /**
     * App management SDK generated tag, which helps relate apps hosted on the same device. Not guaranteed to relate apps in
     * all conditions.
     */
    deviceTag?: NullableOption<string>;
    // Host device type
    deviceType?: NullableOption<string>;
    // Zero or more reasons an app registration is flagged. E.g. app running on rooted device
    flaggedReasons?: ManagedAppFlaggedReason[];
    // Date and time of last the app synced with management service.
    lastSyncDateTime?: string;
    // App management SDK version
    managementSdkVersion?: NullableOption<string>;
    // Operating System version
    platformVersion?: NullableOption<string>;
    // The user Id to who this app registration belongs.
    userId?: NullableOption<string>;
    // Version of the entity.
    version?: NullableOption<string>;
    // Zero or more policys already applied on the registered app when it last synchronized with managment service.
    appliedPolicies?: NullableOption<ManagedAppPolicy[]>;
    // Zero or more policies admin intended for the app as of now.
    intendedPolicies?: NullableOption<ManagedAppPolicy[]>;
    // Zero or more long running operations triggered on the app registration.
    operations?: NullableOption<ManagedAppOperation[]>;
}
export interface DeviceManagementTroubleshootingEvent extends Entity {
    // Id used for tracing the failure in the service.
    correlationId?: NullableOption<string>;
    // Time when the event occurred .
    eventDateTime?: string;
}
export interface PlannerUser extends Entity {
    // Read-only. Nullable. Returns the plannerTasks assigned to the user.
    plans?: NullableOption<PlannerPlan[]>;
    // Read-only. Nullable. Returns the plannerPlans shared with the user.
    tasks?: NullableOption<PlannerTask[]>;
}
export interface OfficeGraphInsights extends Entity {
    /**
     * Calculated relationship identifying documents shared with or by the user. This includes URLs, file attachments, and
     * reference attachments to OneDrive for Business and SharePoint files found in Outlook messages and meetings. This also
     * includes URLs and reference attachments to Teams conversations. Ordered by recency of share.
     */
    shared?: NullableOption<SharedInsight[]>;
    /**
     * Calculated relationship identifying documents trending around a user. Trending documents are calculated based on
     * activity of the user's closest network of people and include files stored in OneDrive for Business and SharePoint.
     * Trending insights help the user to discover potentially useful content that the user has access to, but has never
     * viewed before.
     */
    trending?: NullableOption<Trending[]>;
    /**
     * Calculated relationship identifying the latest documents viewed or modified by a user, including OneDrive for Business
     * and SharePoint documents, ranked by recency of use.
     */
    used?: NullableOption<UsedInsight[]>;
}
export interface UserSettings extends Entity {
    /**
     * Reflects the organization level setting controlling delegate access to the trending API. When set to true, the
     * organization doesn't have access to Office Delve. The relevancy of the content displayed in Microsoft 365, for example
     * in Suggested sites in SharePoint Home and the Discover view in OneDrive for Business is affected for the whole
     * organization. This setting is read-only and can only be changed by administrators in the SharePoint admin center.
     */
    contributionToContentDiscoveryAsOrganizationDisabled?: boolean;
    /**
     * When set to true, the delegate access to the user's trending API is disabled. When set to true, documents in the user's
     * Office Delve are disabled. When set to true, the relevancy of the content displayed in Microsoft 365, for example in
     * Suggested sites in SharePoint Home and the Discover view in OneDrive for Business is affected. Users can control this
     * setting in Office Delve.
     */
    contributionToContentDiscoveryDisabled?: boolean;
    shiftPreferences?: NullableOption<ShiftPreferences>;
}
export interface Onenote extends Entity {
    // The collection of OneNote notebooks that are owned by the user or group. Read-only. Nullable.
    notebooks?: NullableOption<Notebook[]>;
    /**
     * The status of OneNote operations. Getting an operations collection isn't supported, but you can get the status of
     * long-running operations if the Operation-Location header is returned in the response. Read-only. Nullable.
     */
    operations?: NullableOption<OnenoteOperation[]>;
    // The pages in all OneNote notebooks that are owned by the user or group. Read-only. Nullable.
    pages?: NullableOption<OnenotePage[]>;
    /**
     * The image and other file resources in OneNote pages. Getting a resources collection isn't supported, but you can get
     * the binary content of a specific resource. Read-only. Nullable.
     */
    resources?: NullableOption<OnenoteResource[]>;
    // The section groups in all OneNote notebooks that are owned by the user or group. Read-only. Nullable.
    sectionGroups?: NullableOption<SectionGroup[]>;
    // The sections in all OneNote notebooks that are owned by the user or group. Read-only. Nullable.
    sections?: NullableOption<OnenoteSection[]>;
}
export interface ProfilePhoto extends Entity {
    // The height of the photo. Read-only.
    height?: NullableOption<number>;
    // The width of the photo. Read-only.
    width?: NullableOption<number>;
}
export interface UserActivity extends Entity {
    /**
     * Required. URL used to launch the activity in the best native experience represented by the appId. Might launch a
     * web-based app if no native app exists.
     */
    activationUrl?: string;
    /**
     * Required. URL for the domain representing the cross-platform identity mapping for the app. Mapping is stored either as
     * a JSON file hosted on the domain or configurable via Windows Dev Center. The JSON file is named
     * cross-platform-app-identifiers and is hosted at root of your HTTPS domain, either at the top level domain or include a
     * sub domain. For example: https://contoso.com or https://myapp.contoso.com but NOT https://myapp.contoso.com/somepath.
     * You must have a unique file and domain (or sub domain) per cross-platform app identity. For example, a separate file
     * and domain is needed for Word vs. PowerPoint.
     */
    activitySourceHost?: string;
    // Required. The unique activity ID in the context of the app - supplied by caller and immutable thereafter.
    appActivityId?: string;
    /**
     * Optional. Short text description of the app used to generate the activity for use in cases when the app is not
     * installed on the user’s local device.
     */
    appDisplayName?: NullableOption<string>;
    // Optional. A custom piece of data - JSON-LD extensible description of content according to schema.org syntax.
    contentInfo?: NullableOption<any>;
    /**
     * Optional. Used in the event the content can be rendered outside of a native or web-based app experience (for example, a
     * pointer to an item in an RSS feed).
     */
    contentUrl?: NullableOption<string>;
    // Set by the server. DateTime in UTC when the object was created on the server.
    createdDateTime?: NullableOption<string>;
    // Set by the server. DateTime in UTC when the object expired on the server.
    expirationDateTime?: NullableOption<string>;
    // Optional. URL used to launch the activity in a web-based app, if available.
    fallbackUrl?: NullableOption<string>;
    // Set by the server. DateTime in UTC when the object was modified on the server.
    lastModifiedDateTime?: NullableOption<string>;
    // Set by the server. A status code used to identify valid objects. Values: active, updated, deleted, ignored.
    status?: NullableOption<Status>;
    /**
     * Optional. The timezone in which the user's device used to generate the activity was located at activity creation time;
     * values supplied as Olson IDs in order to support cross-platform representation.
     */
    userTimezone?: NullableOption<string>;
    // Required. The object containing information to render the activity in the UX.
    visualElements?: VisualInfo;
    // Optional. NavigationProperty/Containment; navigation property to the activity's historyItems.
    historyItems?: NullableOption<ActivityHistoryItem[]>;
}
export interface OnlineMeetingBase extends Entity {
    allowAttendeeToEnableCamera?: NullableOption<boolean>;
    allowAttendeeToEnableMic?: NullableOption<boolean>;
    allowedPresenters?: NullableOption<OnlineMeetingPresenters>;
    allowMeetingChat?: NullableOption<MeetingChatMode>;
    allowParticipantsToChangeName?: NullableOption<boolean>;
    allowTeamworkReactions?: NullableOption<boolean>;
    audioConferencing?: NullableOption<AudioConferencing>;
    chatInfo?: NullableOption<ChatInfo>;
    isEntryExitAnnounced?: NullableOption<boolean>;
    joinInformation?: NullableOption<ItemBody>;
    joinMeetingIdSettings?: NullableOption<JoinMeetingIdSettings>;
    joinWebUrl?: NullableOption<string>;
    lobbyBypassSettings?: NullableOption<LobbyBypassSettings>;
    recordAutomatically?: NullableOption<boolean>;
    shareMeetingChatHistoryDefault?: NullableOption<MeetingChatHistoryDefaultMode>;
    subject?: NullableOption<string>;
    videoTeleconferenceId?: NullableOption<string>;
    watermarkProtection?: NullableOption<WatermarkProtectionValues>;
    attendanceReports?: NullableOption<MeetingAttendanceReport[]>;
}
export interface OnlineMeeting extends OnlineMeetingBase {
    attendeeReport?: NullableOption<any>;
    broadcastSettings?: NullableOption<BroadcastMeetingSettings>;
    // The meeting creation time in UTC. Read-only.
    creationDateTime?: NullableOption<string>;
    // The meeting end time in UTC.
    endDateTime?: NullableOption<string>;
    externalId?: NullableOption<string>;
    isBroadcast?: NullableOption<boolean>;
    // The participants associated with the online meeting. This includes the organizer and the attendees.
    participants?: NullableOption<MeetingParticipants>;
    // The meeting start time in UTC.
    startDateTime?: NullableOption<string>;
    // The recordings of an online meeting. Read-only.
    recordings?: NullableOption<CallRecording[]>;
    // The transcripts of an online meeting. Read-only.
    transcripts?: NullableOption<CallTranscript[]>;
}
export interface Presence extends Entity {
    /**
     * The supplemental information to a user's availability. Possible values are Available, Away, BeRightBack, Busy,
     * DoNotDisturb, InACall, InAConferenceCall, Inactive, InAMeeting, Offline, OffWork, OutOfOffice, PresenceUnknown,
     * Presenting, UrgentInterruptionsOnly.
     */
    activity?: NullableOption<string>;
    /**
     * The base presence information for a user. Possible values are Available, AvailableIdle, Away, BeRightBack, Busy,
     * BusyIdle, DoNotDisturb, Offline, PresenceUnknown
     */
    availability?: NullableOption<string>;
    // The presence status message of a user.
    statusMessage?: NullableOption<PresenceStatusMessage>;
}
export interface Authentication extends Entity {
    // The email address registered to a user for authentication.
    emailMethods?: NullableOption<EmailAuthenticationMethod[]>;
    // Represents the FIDO2 security keys registered to a user for authentication.
    fido2Methods?: NullableOption<Fido2AuthenticationMethod[]>;
    // Represents all authentication methods registered to a user.
    methods?: NullableOption<AuthenticationMethod[]>;
    // The details of the Microsoft Authenticator app registered to a user for authentication.
    microsoftAuthenticatorMethods?: NullableOption<MicrosoftAuthenticatorAuthenticationMethod[]>;
    // Represents the status of a long-running operation.
    operations?: NullableOption<LongRunningOperation[]>;
    /**
     * Represents the password that's registered to a user for authentication. For security, the password itself will never be
     * returned in the object, but action can be taken to reset a password.
     */
    passwordMethods?: NullableOption<PasswordAuthenticationMethod[]>;
    // The phone numbers registered to a user for authentication.
    phoneMethods?: NullableOption<PhoneAuthenticationMethod[]>;
    // The software OATH TOTP applications registered to a user for authentication.
    softwareOathMethods?: NullableOption<SoftwareOathAuthenticationMethod[]>;
    // Represents a Temporary Access Pass registered to a user for authentication through time-limited passcodes.
    temporaryAccessPassMethods?: NullableOption<TemporaryAccessPassAuthenticationMethod[]>;
    // Represents the Windows Hello for Business authentication method registered to a user for authentication.
    windowsHelloForBusinessMethods?: NullableOption<WindowsHelloForBusinessAuthenticationMethod[]>;
}
export interface Chat extends Entity {
    // Specifies the type of chat. Possible values are: group, oneOnOne, meeting, unknownFutureValue.
    chatType?: ChatType;
    // Date and time at which the chat was created. Read-only.
    createdDateTime?: NullableOption<string>;
    // Date and time at which the chat was renamed or list of members were last changed. Read-only.
    lastUpdatedDateTime?: NullableOption<string>;
    /**
     * Represents details about an online meeting. If the chat isn't associated with an online meeting, the property is empty.
     * Read-only.
     */
    onlineMeetingInfo?: NullableOption<TeamworkOnlineMeetingInfo>;
    // The identifier of the tenant in which the chat was created. Read-only.
    tenantId?: NullableOption<string>;
    // (Optional) Subject or topic for the chat. Only available for group chats.
    topic?: NullableOption<string>;
    /**
     * Represents caller-specific information about the chat, such as last message read date and time. This property is
     * populated only when the request is made in a delegated context.
     */
    viewpoint?: NullableOption<ChatViewpoint>;
    // The URL for the chat in Microsoft Teams. The URL should be treated as an opaque blob, and not parsed. Read-only.
    webUrl?: NullableOption<string>;
    // A collection of all the apps in the chat. Nullable.
    installedApps?: NullableOption<TeamsAppInstallation[]>;
    /**
     * Preview of the last message sent in the chat. Null if no messages have been sent in the chat. Currently, only the list
     * chats operation supports this property.
     */
    lastMessagePreview?: NullableOption<ChatMessageInfo>;
    // A collection of all the members in the chat. Nullable.
    members?: NullableOption<ConversationMember[]>;
    // A collection of all the messages in the chat. Nullable.
    messages?: NullableOption<ChatMessage[]>;
    // A collection of permissions granted to apps for the chat.
    permissionGrants?: NullableOption<ResourceSpecificPermissionGrant[]>;
    // A collection of all the pinned messages in the chat. Nullable.
    pinnedMessages?: NullableOption<PinnedChatMessageInfo[]>;
    // A collection of all the tabs in the chat. Nullable.
    tabs?: NullableOption<TeamsTab[]>;
}
export interface Team extends Entity {
    /**
     * An optional label. Typically describes the data or business sensitivity of the team. Must match one of a pre-configured
     * set in the tenant's directory.
     */
    classification?: NullableOption<string>;
    // Timestamp at which the team was created.
    createdDateTime?: NullableOption<string>;
    // An optional description for the team. Maximum length: 1024 characters.
    description?: NullableOption<string>;
    // The name of the team.
    displayName?: NullableOption<string>;
    // Settings to configure use of Giphy, memes, and stickers in the team.
    funSettings?: NullableOption<TeamFunSettings>;
    // Settings to configure whether guests can create, update, or delete channels in the team.
    guestSettings?: NullableOption<TeamGuestSettings>;
    // A unique ID for the team that has been used in a few places such as the audit log/Office 365 Management Activity API.
    internalId?: NullableOption<string>;
    // Whether this team is in read-only mode.
    isArchived?: NullableOption<boolean>;
    /**
     * Settings to configure whether members can perform certain actions, for example, create channels and add bots, in the
     * team.
     */
    memberSettings?: NullableOption<TeamMemberSettings>;
    // Settings to configure messaging and mentions in the team.
    messagingSettings?: NullableOption<TeamMessagingSettings>;
    /**
     * Optional. Indicates whether the team is intended for a particular use case. Each team specialization has access to
     * unique behaviors and experiences targeted to its use case.
     */
    specialization?: NullableOption<TeamSpecialization>;
    // Contains summary information about the team, including number of owners, members, and guests.
    summary?: NullableOption<TeamSummary>;
    // The ID of the Microsoft Entra tenant.
    tenantId?: NullableOption<string>;
    // The visibility of the group and team. Defaults to Public.
    visibility?: NullableOption<TeamVisibilityType>;
    /**
     * A hyperlink that will go to the team in the Microsoft Teams client. This is the URL that you get when you right-click a
     * team in the Microsoft Teams client and select Get link to team. This URL should be treated as an opaque blob, and not
     * parsed.
     */
    webUrl?: NullableOption<string>;
    // List of channels either hosted in or shared with the team (incoming channels).
    allChannels?: NullableOption<Channel[]>;
    // The collection of channels and messages associated with the team.
    channels?: NullableOption<Channel[]>;
    group?: NullableOption<Group>;
    // List of channels shared with the team.
    incomingChannels?: NullableOption<Channel[]>;
    // The apps installed in this team.
    installedApps?: NullableOption<TeamsAppInstallation[]>;
    // Members and owners of the team.
    members?: NullableOption<ConversationMember[]>;
    // The async operations that ran or are running on this team.
    operations?: NullableOption<TeamsAsyncOperation[]>;
    // A collection of permissions granted to apps to access the team.
    permissionGrants?: NullableOption<ResourceSpecificPermissionGrant[]>;
    // The profile photo for the team.
    photo?: NullableOption<ProfilePhoto>;
    // The general channel for the team.
    primaryChannel?: NullableOption<Channel>;
    // The tags associated with the team.
    tags?: NullableOption<TeamworkTag[]>;
    // The template this team was created from. See available templates.
    template?: NullableOption<TeamsTemplate>;
    // The schedule of shifts for this team.
    schedule?: NullableOption<Schedule>;
}
export interface UserTeamwork extends Entity {
    // The list of associatedTeamInfo objects that a user is associated with.
    associatedTeams?: NullableOption<AssociatedTeamInfo[]>;
    // The apps installed in the personal scope of this user.
    installedApps?: NullableOption<UserScopeTeamsAppInstallation[]>;
}
export interface Todo extends Entity {
    // The task lists in the users mailbox.
    lists?: NullableOption<TodoTaskList[]>;
}
export interface EmployeeExperienceUser extends Entity {
    learningCourseActivities?: NullableOption<LearningCourseActivity[]>;
}
export interface AuditLogRoot extends Entity {
    directoryAudits?: NullableOption<DirectoryAudit[]>;
    provisioning?: NullableOption<ProvisioningObjectSummary[]>;
    signIns?: NullableOption<SignIn[]>;
}
export interface DirectoryAudit extends Entity {
    /**
     * Indicates the date and time the activity was performed. The Timestamp type is always in UTC time. For example, midnight
     * UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Supports $filter (eq, ge, le) and $orderby.
     */
    activityDateTime?: string;
    /**
     * Indicates the activity name or the operation name (examples: 'Create User' and 'Add member to group'). For a list of
     * activities logged, refer to Microsoft Entra audit log categories and activities. Supports $filter (eq, startswith).
     */
    activityDisplayName?: string;
    // Indicates additional details on the activity.
    additionalDetails?: NullableOption<KeyValue[]>;
    /**
     * Indicates which resource category that's targeted by the activity. For example: UserManagement, GroupManagement,
     * ApplicationManagement, RoleManagement. For a list of categories for activities logged, refer to Microsoft Entra audit
     * log categories and activities.
     */
    category?: string;
    /**
     * Indicates a unique ID that helps correlate activities that span across various services. Can be used to trace logs
     * across services. Supports $filter (eq).
     */
    correlationId?: NullableOption<string>;
    /**
     * Indicates information about the user or app initiated the activity. Supports $filter (eq) for user/id,
     * user/displayName, user/userPrincipalName, app/appId, app/displayName; and $filter (startswith) for
     * user/userPrincipalName.
     */
    initiatedBy?: AuditActivityInitiator;
    /**
     * Indicates information on which service initiated the activity (For example: Self-service Password Management, Core
     * Directory, B2C, Invited Users, Microsoft Identity Manager, Privileged Identity Management. Supports $filter (eq).
     */
    loggedByService?: NullableOption<string>;
    /**
     * Indicates the type of operation that was performed. The possible values include but are not limited to the following:
     * Add, Assign, Update, Unassign, and Delete.
     */
    operationType?: NullableOption<string>;
    // Indicates the result of the activity. Possible values are: success, failure, timeout, unknownFutureValue.
    result?: NullableOption<OperationResult>;
    // Indicates the reason for failure if the result is failure or timeout.
    resultReason?: NullableOption<string>;
    /**
     * Indicates information on which resource was changed due to the activity. Target Resource Type can be User, Device,
     * Directory, App, Role, Group, Policy or Other. Supports $filter (eq) for id and displayName; and $filter (startswith)
     * for displayName.
     */
    targetResources?: NullableOption<TargetResource[]>;
}
export interface ProvisioningObjectSummary extends Entity {
    /**
     * Represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan
     * 1, 2014 is 2014-01-01T00:00:00Z. SUpports $filter (eq, gt, lt) and orderby.
     */
    activityDateTime?: string;
    // Unique ID of this change in this cycle. Supports $filter (eq, contains).
    changeId?: NullableOption<string>;
    // Unique ID per job iteration. Supports $filter (eq, contains).
    cycleId?: NullableOption<string>;
    // Indicates how long this provisioning action took to finish. Measured in milliseconds.
    durationInMilliseconds?: NullableOption<number>;
    // Details of who initiated this provisioning. Supports $filter (eq, contains).
    initiatedBy?: NullableOption<Initiator>;
    // The unique ID for the whole provisioning job. Supports $filter (eq, contains).
    jobId?: NullableOption<string>;
    // Details of each property that was modified in this provisioning action on this object.
    modifiedProperties?: NullableOption<ModifiedProperty[]>;
    /**
     * Indicates the activity name or the operation name. Possible values are: create, update, delete, stageddelete, disable,
     * other and unknownFutureValue. For a list of activities logged, refer to Microsoft Entra activity list. Supports $filter
     * (eq, contains).
     */
    provisioningAction?: NullableOption<ProvisioningAction>;
    // Details of provisioning status.
    provisioningStatusInfo?: NullableOption<ProvisioningStatusInfo>;
    // Details of each step in provisioning.
    provisioningSteps?: NullableOption<ProvisioningStep[]>;
    // Represents the service principal used for provisioning. Supports $filter (eq) for id and name.
    servicePrincipal?: NullableOption<ProvisioningServicePrincipal>;
    // Details of source object being provisioned. Supports $filter (eq, contains) for identityType, id, and displayName.
    sourceIdentity?: NullableOption<ProvisionedIdentity>;
    // Details of source system of the object being provisioned. Supports $filter (eq, contains) for displayName.
    sourceSystem?: NullableOption<ProvisioningSystem>;
    // Details of target object being provisioned. Supports $filter (eq, contains) for identityType, id, and displayName.
    targetIdentity?: NullableOption<ProvisionedIdentity>;
    // Details of target system of the object being provisioned. Supports $filter (eq, contains) for displayName.
    targetSystem?: NullableOption<ProvisioningSystem>;
    // Unique Microsoft Entra tenant ID. Supports $filter (eq, contains).
    tenantId?: NullableOption<string>;
}
export interface SignIn extends Entity {
    // App name displayed in the Microsoft Entra admin center. Supports $filter (eq, startsWith).
    appDisplayName?: NullableOption<string>;
    // Unique GUID representing the app ID in the Microsoft Entra ID. Supports $filter (eq).
    appId?: NullableOption<string>;
    /**
     * Provides a list of conditional access policies that are triggered by the corresponding sign-in activity. Apps need
     * additional Conditional Access-related privileges to read the details of this property. For more information, see
     * Viewing applied conditional access (CA) policies in sign-ins.
     */
    appliedConditionalAccessPolicies?: NullableOption<AppliedConditionalAccessPolicy[]>;
    /**
     * Identifies the client used for the sign-in activity. Modern authentication clients include Browser, modern clients.
     * Legacy authentication clients include Exchange ActiveSync, IMAP, MAPI, SMTP, POP, and other clients. Supports $filter
     * (eq).
     */
    clientAppUsed?: NullableOption<string>;
    /**
     * Reports status of an activated conditional access policy. Possible values are: success, failure, notApplied, and
     * unknownFutureValue. Supports $filter (eq).
     */
    conditionalAccessStatus?: NullableOption<ConditionalAccessStatus>;
    /**
     * The request ID sent from the client when the sign-in is initiated; used to troubleshoot sign-in activity. Supports
     * $filter (eq).
     */
    correlationId?: NullableOption<string>;
    /**
     * Date and time (UTC) the sign-in was initiated. Example: midnight on Jan 1, 2014 is reported as 2014-01-01T00:00:00Z.
     * Supports $orderby, $filter (eq, le, and ge).
     */
    createdDateTime?: string;
    /**
     * Device information from where the sign-in occurred; includes device ID, operating system, and browser. Supports $filter
     * (eq, startsWith) on browser and operatingSytem properties.
     */
    deviceDetail?: NullableOption<DeviceDetail>;
    // IP address of the client used to sign in. Supports $filter (eq, startsWith).
    ipAddress?: NullableOption<string>;
    // Indicates if a sign-in is interactive or not.
    isInteractive?: NullableOption<boolean>;
    /**
     * Provides the city, state, and country code where the sign-in originated. Supports $filter (eq, startsWith) on city,
     * state, and countryOrRegion properties.
     */
    location?: NullableOption<SignInLocation>;
    // Name of the resource the user signed into. Supports $filter (eq).
    resourceDisplayName?: NullableOption<string>;
    // ID of the resource that the user signed into. Supports $filter (eq).
    resourceId?: NullableOption<string>;
    /**
     * Provides the 'reason' behind a specific state of a risky user, sign-in or a risk event. The possible values are: none,
     * adminGeneratedTemporaryPassword, userPerformedSecuredPasswordChange, userPerformedSecuredPasswordReset,
     * adminConfirmedSigninSafe, aiConfirmedSigninSafe, userPassedMFADrivenByRiskBasedPolicy, adminDismissedAllRiskForUser,
     * adminConfirmedSigninCompromised, unknownFutureValue. The value none means that no action has been performed on the user
     * or sign-in so far. Supports $filter (eq).Note: Details for this property require a Microsoft Entra ID P2 license. Other
     * licenses return the value hidden.
     */
    riskDetail?: NullableOption<RiskDetail>;
    /**
     * Risk event types associated with the sign-in. The possible values are: unlikelyTravel, anonymizedIPAddress,
     * maliciousIPAddress, unfamiliarFeatures, malwareInfectedIPAddress, suspiciousIPAddress, leakedCredentials,
     * investigationsThreatIntelligence, generic, and unknownFutureValue. Supports $filter (eq).
     */
    riskEventTypes?: NullableOption<RiskEventType[]>;
    /**
     * The list of risk event types associated with the sign-in. Possible values: unlikelyTravel, anonymizedIPAddress,
     * maliciousIPAddress, unfamiliarFeatures, malwareInfectedIPAddress, suspiciousIPAddress, leakedCredentials,
     * investigationsThreatIntelligence, generic, or unknownFutureValue. Supports $filter (eq, startsWith).
     */
    riskEventTypes_v2?: NullableOption<string[]>;
    /**
     * Aggregated risk level. The possible values are: none, low, medium, high, hidden, and unknownFutureValue. The value
     * hidden means the user or sign-in wasn't enabled for Microsoft Entra ID Protection. Supports $filter (eq). Note: Details
     * for this property are only available for Microsoft Entra ID P2 customers. All other customers are returned hidden.
     */
    riskLevelAggregated?: NullableOption<RiskLevel>;
    /**
     * Risk level during sign-in. The possible values are: none, low, medium, high, hidden, and unknownFutureValue. The value
     * hidden means the user or sign-in wasn't enabled for Microsoft Entra ID Protection. Supports $filter (eq). Note: Details
     * for this property are only available for Microsoft Entra ID P2 customers. All other customers are returned hidden.
     */
    riskLevelDuringSignIn?: NullableOption<RiskLevel>;
    /**
     * Reports status of the risky user, sign-in, or a risk event. The possible values are: none, confirmedSafe, remediated,
     * dismissed, atRisk, confirmedCompromised, unknownFutureValue. Supports $filter (eq).
     */
    riskState?: NullableOption<RiskState>;
    /**
     * Sign-in status. Includes the error code and description of the error (if there's a sign-in failure). Supports $filter
     * (eq) on errorCode property.
     */
    status?: NullableOption<SignInStatus>;
    // Display name of the user that initiated the sign-in. Supports $filter (eq, startsWith).
    userDisplayName?: NullableOption<string>;
    // ID of the user that initiated the sign-in. Supports $filter (eq).
    userId?: string;
    // User principal name of the user that initiated the sign-in. Supports $filter (eq, startsWith).
    userPrincipalName?: NullableOption<string>;
}
export interface AuthenticationMethodsRoot extends Entity {
    /**
     * Represents the state of a user's authentication methods, including which methods are registered and which features the
     * user is registered and capable of (such as multifactor authentication, self-service password reset, and passwordless
     * authentication).
     */
    userRegistrationDetails?: NullableOption<UserRegistrationDetails[]>;
}
export interface UserRegistrationDetails extends Entity {
    /**
     * Indicates whether the user has an admin role in the tenant. This value can be used to check the authentication methods
     * that privileged accounts are registered for and capable of.
     */
    isAdmin?: NullableOption<boolean>;
    /**
     * Indicates whether the user has registered a strong authentication method for multifactor authentication. The method
     * must be allowed by the authentication methods policy. Supports $filter (eq).
     */
    isMfaCapable?: boolean;
    /**
     * Indicates whether the user has registered a strong authentication method for multifactor authentication. The method may
     * not necessarily be allowed by the authentication methods policy. Supports $filter (eq).
     */
    isMfaRegistered?: boolean;
    /**
     * Indicates whether the user has registered a passwordless strong authentication method (including FIDO2, Windows Hello
     * for Business, and Microsoft Authenticator (Passwordless)) that is allowed by the authentication methods policy.
     * Supports $filter (eq).
     */
    isPasswordlessCapable?: boolean;
    /**
     * Indicates whether the user has registered the required number of authentication methods for self-service password reset
     * and the user is allowed to perform self-service password reset by policy. Supports $filter (eq).
     */
    isSsprCapable?: boolean;
    /**
     * Indicates whether the user is allowed to perform self-service password reset by policy. The user may not necessarily
     * have registered the required number of authentication methods for self-service password reset. Supports $filter (eq).
     */
    isSsprEnabled?: boolean;
    /**
     * Indicates whether the user has registered the required number of authentication methods for self-service password
     * reset. The user may not necessarily be allowed to perform self-service password reset by policy. Supports $filter (eq).
     */
    isSsprRegistered?: boolean;
    /**
     * Indicates whether system preferred authentication method is enabled. If enabled, the system dynamically determines the
     * most secure authentication method among the methods registered by the user. Supports $filter (eq).
     */
    isSystemPreferredAuthenticationMethodEnabled?: NullableOption<boolean>;
    /**
     * The date and time (UTC) when the record was last updated. The DateTimeOffset type represents date and time information
     * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastUpdatedDateTime?: string;
    // Collection of authentication methods registered, such as mobilePhone, email, fido2. Supports $filter (any with eq).
    methodsRegistered?: NullableOption<string[]>;
    /**
     * Collection of authentication methods that the system determined to be the most secure authentication methods among the
     * registered methods for second factor authentication. Possible values are: push, oath, voiceMobile,
     * voiceAlternateMobile, voiceOffice, sms, none, unknownFutureValue. Supports $filter (any with eq).
     */
    systemPreferredAuthenticationMethods?: NullableOption<string[]>;
    // The user display name, such as Adele Vance. Supports $filter (eq, startsWith) and $orderby.
    userDisplayName?: string;
    /**
     * The method the user selected as the default second-factor for performing multifactor authentication. Possible values
     * are: push, oath, voiceMobile, voiceAlternateMobile, voiceOffice, sms, none, unknownFutureValue. This property is used
     * as preferred MFA method when isSystemPreferredAuthenticationMethodEnabled is false. Supports $filter (any with eq).
     */
    userPreferredMethodForSecondaryAuthentication?: NullableOption<UserDefaultAuthenticationMethod>;
    // The user principal name, such as AdeleV@contoso.com. Supports $filter (eq, startsWith) and $orderby.
    userPrincipalName?: string;
    /**
     * Identifies whether the user is a member or guest in the tenant. The possible values are: member, guest,
     * unknownFutureValue.
     */
    userType?: NullableOption<SignInUserType>;
}
export interface GovernanceInsight extends Entity {
    // Indicates when the insight was created.
    insightCreatedDateTime?: NullableOption<string>;
}
export interface MembershipOutlierInsight extends GovernanceInsight {
    // Indicates the identifier of the container, for example, a group ID.
    containerId?: string;
    // Indicates the identifier of the user.
    memberId?: string;
    // Indicates the type of container. The possible values are: group, unknownFutureValue.
    outlierContainerType?: OutlierContainerType;
    // Indicates the type of outlier member. The possible values are: user, unknownFutureValue.
    outlierMemberType?: OutlierMemberType;
    // Navigation link to the container directory object. For example, to a group.
    container?: NullableOption<DirectoryObject>;
    // Navigation link to a member object who modified the record. For example, to a user.
    lastModifiedBy?: NullableOption<User>;
    // Navigation link to a member object. For example, to a user.
    member?: NullableOption<DirectoryObject>;
}
export interface ReportRoot {
    // Container for navigation properties for Microsoft Entra authentication methods resources.
    authenticationMethods?: NullableOption<AuthenticationMethodsRoot>;
    // Retrieve a list of daily print usage summaries, grouped by printer.
    dailyPrintUsageByPrinter?: NullableOption<PrintUsageByPrinter[]>;
    // Retrieve a list of daily print usage summaries, grouped by user.
    dailyPrintUsageByUser?: NullableOption<PrintUsageByUser[]>;
    // Retrieve a list of monthly print usage summaries, grouped by printer.
    monthlyPrintUsageByPrinter?: NullableOption<PrintUsageByPrinter[]>;
    // Retrieve a list of monthly print usage summaries, grouped by user.
    monthlyPrintUsageByUser?: NullableOption<PrintUsageByUser[]>;
    // Represents an abstract type that contains resources for attack simulation and training reports.
    security?: NullableOption<SecurityReportsRoot>;
}
export interface PrintUsage extends Entity {
    blackAndWhitePageCount?: NullableOption<number>;
    colorPageCount?: NullableOption<number>;
    completedBlackAndWhiteJobCount?: number;
    completedColorJobCount?: number;
    completedJobCount?: NullableOption<number>;
    doubleSidedSheetCount?: NullableOption<number>;
    incompleteJobCount?: number;
    mediaSheetCount?: NullableOption<number>;
    pageCount?: NullableOption<number>;
    singleSidedSheetCount?: NullableOption<number>;
    usageDate?: string;
}
export interface PrintUsageByPrinter extends PrintUsage {
    printerId?: string;
    // The name of the printer represented by these statistics.
    printerName?: NullableOption<string>;
}
export interface PrintUsageByUser extends PrintUsage {
    // The UPN of the user represented by these statistics.
    userPrincipalName?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface SecurityReportsRoot extends Entity {}
// tslint:disable-next-line: interface-name
export interface Invitation extends Entity {
    // The display name of the user being invited.
    invitedUserDisplayName?: NullableOption<string>;
    /**
     * The email address of the user being invited. Required. The following special characters aren't permitted in the email
     * address:Tilde (~)Exclamation point (!)Number sign (#)Dollar sign ($)Percent (%)Circumflex (^)Ampersand (&amp;)Asterisk
     * (*)Parentheses (( ))Plus sign (+)Equal sign (=)Brackets ([ ])Braces ({ })Backslash (/)Slash mark (/)Pipe (/|)Semicolon
     * (;)Colon (:)Quotation marks (')Angle brackets (&amp;lt; &amp;gt;)Question mark (?)Comma (,)However, the following
     * exceptions apply:A period (.) or a hyphen (-) is permitted anywhere in the user name, except at the beginning or end of
     * the name.An underscore (_) is permitted anywhere in the user name. This includes at the beginning or end of the name.
     */
    invitedUserEmailAddress?: string;
    /**
     * Additional configuration for the message being sent to the invited user, including customizing message text, language
     * and cc recipient list.
     */
    invitedUserMessageInfo?: NullableOption<InvitedUserMessageInfo>;
    /**
     * The userType of the user being invited. By default, this is Guest. You can invite as Member if you're a company
     * administrator.
     */
    invitedUserType?: NullableOption<string>;
    // The URL the user can use to redeem their invitation. Read-only.
    inviteRedeemUrl?: NullableOption<string>;
    // The URL the user should be redirected to once the invitation is redeemed. Required.
    inviteRedirectUrl?: string;
    /**
     * Reset the user's redemption status and reinvite a user while retaining their user identifier, group memberships, and
     * app assignments. This property allows you to enable a user to sign-in using a different email address from the one in
     * the previous invitation. For more information about using this property, see Reset redemption status for a guest user.
     */
    resetRedemption?: NullableOption<boolean>;
    // Indicates whether an email should be sent to the user being invited. The default is false.
    sendInvitationMessage?: NullableOption<boolean>;
    // The status of the invitation. Possible values are: PendingAcceptance, Completed, InProgress, and Error.
    status?: NullableOption<string>;
    // The user created as part of the invitation creation. Read-Only
    invitedUser?: NullableOption<User>;
}
export interface ServicePrincipal extends DirectoryObject {
    /**
     * true if the service principal account is enabled; otherwise, false. If set to false, then no users will be able to sign
     * in to this app, even if they are assigned to it. Supports $filter (eq, ne, not, in).
     */
    accountEnabled?: NullableOption<boolean>;
    /**
     * Defines custom behavior that a consuming service can use to call an app in specific contexts. For example, applications
     * that can render file streams may set the addIns property for its 'FileHandler' functionality. This will let services
     * like Microsoft 365 call the application in the context of a document the user is working on.
     */
    addIns?: AddIn[];
    /**
     * Used to retrieve service principals by subscription, identify resource group and full resource ids for managed
     * identities. Supports $filter (eq, not, ge, le, startsWith).
     */
    alternativeNames?: string[];
    // The description exposed by the associated application.
    appDescription?: NullableOption<string>;
    // The display name exposed by the associated application.
    appDisplayName?: NullableOption<string>;
    /**
     * The unique identifier for the associated application (its appId property). Alternate key. Supports $filter (eq, ne,
     * not, in, startsWith).
     */
    appId?: NullableOption<string>;
    /**
     * Unique identifier of the applicationTemplate that the servicePrincipal was created from. Read-only. Supports $filter
     * (eq, ne, NOT, startsWith).
     */
    applicationTemplateId?: NullableOption<string>;
    /**
     * Contains the tenant id where the application is registered. This is applicable only to service principals backed by
     * applications. Supports $filter (eq, ne, NOT, ge, le).
     */
    appOwnerOrganizationId?: NullableOption<string>;
    /**
     * Specifies whether users or other service principals need to be granted an app role assignment for this service
     * principal before users can sign in or apps can get tokens. The default value is false. Not nullable. Supports $filter
     * (eq, ne, NOT).
     */
    appRoleAssignmentRequired?: boolean;
    /**
     * The roles exposed by the application which this service principal represents. For more information see the appRoles
     * property definition on the application entity. Not nullable.
     */
    appRoles?: AppRole[];
    /**
     * An open complex type that holds the value of a custom security attribute that is assigned to a directory object.
     * Nullable. Returned only on $select. Supports $filter (eq, ne, not, startsWith). Filter value is case sensitive.
     */
    customSecurityAttributes?: NullableOption<CustomSecurityAttributeValue>;
    /**
     * Free text field to provide an internal end-user facing description of the service principal. End-user portals such
     * MyApps will display the application description in this field. The maximum allowed size is 1024 characters. Supports
     * $filter (eq, ne, not, ge, le, startsWith) and $search.
     */
    description?: NullableOption<string>;
    /**
     * Specifies whether Microsoft has disabled the registered application. Possible values are: null (default value),
     * NotDisabled, and DisabledDueToViolationOfServicesAgreement (reasons may include suspicious, abusive, or malicious
     * activity, or a violation of the Microsoft Services Agreement). Supports $filter (eq, ne, not).
     */
    disabledByMicrosoftStatus?: NullableOption<string>;
    /**
     * The display name for the service principal. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null
     * values), $search, and $orderby.
     */
    displayName?: NullableOption<string>;
    // Home page or landing page of the application.
    homepage?: NullableOption<string>;
    /**
     * Basic profile information of the acquired application such as app's marketing, support, terms of service and privacy
     * statement URLs. The terms of service and privacy statement are surfaced to users through the user consent experience.
     * For more info, see How to: Add Terms of service and privacy statement for registered Microsoft Entra apps. Supports
     * $filter (eq, ne, not, ge, le, and eq on null values).
     */
    info?: NullableOption<InformationalUrl>;
    /**
     * The collection of key credentials associated with the service principal. Not nullable. Supports $filter (eq, not, ge,
     * le).
     */
    keyCredentials?: KeyCredential[];
    /**
     * Specifies the URL where the service provider redirects the user to Microsoft Entra ID to authenticate. Microsoft Entra
     * ID uses the URL to launch the application from Microsoft 365 or the Microsoft Entra My Apps. When blank, Microsoft
     * Entra ID performs IdP-initiated sign-on for applications configured with SAML-based single sign-on. The user launches
     * the application from Microsoft 365, the Microsoft Entra My Apps, or the Microsoft Entra SSO URL.
     */
    loginUrl?: NullableOption<string>;
    /**
     * Specifies the URL that will be used by Microsoft's authorization service to logout an user using OpenId Connect
     * front-channel, back-channel or SAML logout protocols.
     */
    logoutUrl?: NullableOption<string>;
    /**
     * Free text field to capture information about the service principal, typically used for operational purposes. Maximum
     * allowed size is 1024 characters.
     */
    notes?: NullableOption<string>;
    /**
     * Specifies the list of email addresses where Microsoft Entra ID sends a notification when the active certificate is near
     * the expiration date. This is only for the certificates used to sign the SAML token issued for Microsoft Entra Gallery
     * applications.
     */
    notificationEmailAddresses?: string[];
    /**
     * The delegated permissions exposed by the application. For more information see the oauth2PermissionScopes property on
     * the application entity's api property. Not nullable.
     */
    oauth2PermissionScopes?: PermissionScope[];
    // The collection of password credentials associated with the application. Not nullable.
    passwordCredentials?: PasswordCredential[];
    /**
     * Specifies the single sign-on mode configured for this application. Microsoft Entra ID uses the preferred single sign-on
     * mode to launch the application from Microsoft 365 or the My Apps portal. The supported values are password, saml,
     * notSupported, and oidc.
     */
    preferredSingleSignOnMode?: NullableOption<string>;
    /**
     * This property can be used on SAML applications (apps that have preferredSingleSignOnMode set to saml) to control which
     * certificate is used to sign the SAML responses. For applications that are not SAML, do not write or otherwise rely on
     * this property.
     */
    preferredTokenSigningKeyThumbprint?: NullableOption<string>;
    /**
     * The URLs that user tokens are sent to for sign in with the associated application, or the redirect URIs that OAuth 2.0
     * authorization codes and access tokens are sent to for the associated application. Not nullable.
     */
    replyUrls?: string[];
    /**
     * The resource-specific application permissions exposed by this application. Currently, resource-specific permissions are
     * only supported for Teams apps accessing to specific chats and teams using Microsoft Graph. Read-only.
     */
    resourceSpecificApplicationPermissions?: ResourceSpecificPermission[];
    // The collection for settings related to saml single sign-on.
    samlSingleSignOnSettings?: NullableOption<SamlSingleSignOnSettings>;
    /**
     * Contains the list of identifiersUris, copied over from the associated application. Additional values can be added to
     * hybrid applications. These values can be used to identify the permissions exposed by this app within Microsoft Entra
     * ID. For example,Client apps can specify a resource URI which is based on the values of this property to acquire an
     * access token, which is the URI returned in the 'aud' claim.The any operator is required for filter expressions on
     * multi-valued properties. Not nullable. Supports $filter (eq, not, ge, le, startsWith).
     */
    servicePrincipalNames?: string[];
    /**
     * Identifies whether the service principal represents an application, a managed identity, or a legacy application. This
     * is set by Microsoft Entra ID internally. The servicePrincipalType property can be set to three different values:
     * Application - A service principal that represents an application or service. The appId property identifies the
     * associated app registration, and matches the appId of an application, possibly from a different tenant. If the
     * associated app registration is missing, tokens are not issued for the service principal.ManagedIdentity - A service
     * principal that represents a managed identity. Service principals representing managed identities can be granted access
     * and permissions, but cannot be updated or modified directly.Legacy - A service principal that represents an app created
     * before app registrations, or through legacy experiences. Legacy service principal can have credentials, service
     * principal names, reply URLs, and other properties which are editable by an authorized user, but does not have an
     * associated app registration. The appId value does not associate the service principal with an app registration. The
     * service principal can only be used in the tenant where it was created.SocialIdp - For internal use.
     */
    servicePrincipalType?: NullableOption<string>;
    /**
     * Specifies the Microsoft accounts that are supported for the current application. Read-only. Supported values
     * are:AzureADMyOrg: Users with a Microsoft work or school account in my organization's Microsoft Entra tenant
     * (single-tenant).AzureADMultipleOrgs: Users with a Microsoft work or school account in any organization's Microsoft
     * Entra tenant (multi-tenant).AzureADandPersonalMicrosoftAccount: Users with a personal Microsoft account, or a work or
     * school account in any organization's Microsoft Entra tenant.PersonalMicrosoftAccount: Users with a personal Microsoft
     * account only.
     */
    signInAudience?: NullableOption<string>;
    /**
     * Custom strings that can be used to categorize and identify the service principal. Not nullable. The value is the union
     * of strings set here and on the associated application entity's tags property.Supports $filter (eq, not, ge, le,
     * startsWith).
     */
    tags?: string[];
    /**
     * Specifies the keyId of a public key from the keyCredentials collection. When configured, Microsoft Entra ID issues
     * tokens for this application encrypted using the key specified by this property. The application code that receives the
     * encrypted token must use the matching private key to decrypt the token before it can be used for the signed-in user.
     */
    tokenEncryptionKeyId?: NullableOption<string>;
    // Specifies the verified publisher of the application which this service principal represents.
    verifiedPublisher?: NullableOption<VerifiedPublisher>;
    // The appManagementPolicy applied to this application.
    appManagementPolicies?: NullableOption<AppManagementPolicy[]>;
    // App role assignments for this app or service, granted to users, groups, and other service principals. Supports $expand.
    appRoleAssignedTo?: NullableOption<AppRoleAssignment[]>;
    // App role assignment for another app or service, granted to this service principal. Supports $expand.
    appRoleAssignments?: NullableOption<AppRoleAssignment[]>;
    // The claimsMappingPolicies assigned to this service principal. Supports $expand.
    claimsMappingPolicies?: NullableOption<ClaimsMappingPolicy[]>;
    // Directory objects created by this service principal. Read-only. Nullable.
    createdObjects?: NullableOption<DirectoryObject[]>;
    delegatedPermissionClassifications?: NullableOption<DelegatedPermissionClassification[]>;
    endpoints?: NullableOption<Endpoint[]>;
    /**
     * Federated identities for a specific type of service principal - managed identity. Supports $expand and $filter (/$count
     * eq 0, /$count ne 0).
     */
    federatedIdentityCredentials?: NullableOption<FederatedIdentityCredential[]>;
    // The homeRealmDiscoveryPolicies assigned to this service principal. Supports $expand.
    homeRealmDiscoveryPolicies?: NullableOption<HomeRealmDiscoveryPolicy[]>;
    // Roles that this service principal is a member of. HTTP Methods: GET Read-only. Nullable. Supports $expand.
    memberOf?: NullableOption<DirectoryObject[]>;
    /**
     * Delegated permission grants authorizing this service principal to access an API on behalf of a signed-in user.
     * Read-only. Nullable.
     */
    oauth2PermissionGrants?: NullableOption<OAuth2PermissionGrant[]>;
    /**
     * Directory objects that are owned by this service principal. Read-only. Nullable. Supports $expand, $select nested in
     * $expand, and $filter (/$count eq 0, /$count ne 0, /$count eq 1, /$count ne 1).
     */
    ownedObjects?: NullableOption<DirectoryObject[]>;
    /**
     * Directory objects that are owners of this servicePrincipal. The owners are a set of non-admin users or
     * servicePrincipals who are allowed to modify this object. Read-only. Nullable. Supports $expand, $filter (/$count eq 0,
     * /$count ne 0, /$count eq 1, /$count ne 1), and $select nested in $expand.
     */
    owners?: NullableOption<DirectoryObject[]>;
    /**
     * The remoteDesktopSecurityConfiguration object applied to this service principal. Supports $filter (eq) for
     * isRemoteDesktopProtocolEnabled property.
     */
    remoteDesktopSecurityConfiguration?: NullableOption<RemoteDesktopSecurityConfiguration>;
    // The tokenIssuancePolicies assigned to this service principal.
    tokenIssuancePolicies?: NullableOption<TokenIssuancePolicy[]>;
    // The tokenLifetimePolicies assigned to this service principal.
    tokenLifetimePolicies?: NullableOption<TokenLifetimePolicy[]>;
    transitiveMemberOf?: NullableOption<DirectoryObject[]>;
    // Represents the capability for Microsoft Entra identity synchronization through the Microsoft Graph API.
    synchronization?: NullableOption<Synchronization>;
}
export interface ApplicationTemplate extends Entity {
    /**
     * The list of categories for the application. Supported values can be: Collaboration, Business Management, Consumer,
     * Content management, CRM, Data services, Developer services, E-commerce, Education, ERP, Finance, Health, Human
     * resources, IT infrastructure, Mail, Management, Marketing, Media, Productivity, Project management, Telecommunications,
     * Tools, Travel, and Web design &amp; hosting.
     */
    categories?: NullableOption<string[]>;
    // A description of the application.
    description?: NullableOption<string>;
    // The name of the application.
    displayName?: NullableOption<string>;
    // The home page URL of the application.
    homePageUrl?: NullableOption<string>;
    // The URL to get the logo for this application.
    logoUrl?: NullableOption<string>;
    // The name of the publisher for this application.
    publisher?: NullableOption<string>;
    // The list of provisioning modes supported by this application. The only valid value is sync.
    supportedProvisioningTypes?: NullableOption<string[]>;
    /**
     * The list of single sign-on modes supported by this application. The supported values are oidc, password, saml, and
     * notSupported.
     */
    supportedSingleSignOnModes?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface ClaimsMappingPolicy extends StsPolicy {}
export interface DelegatedPermissionClassification extends Entity {
    // The classification value being given. Possible value: low. Doesn't support $filter.
    classification?: NullableOption<PermissionClassificationType>;
    /**
     * The unique identifier (id) for the delegated permission listed in the oauth2PermissionScopes collection of the
     * servicePrincipal. Required on create. Doesn't support $filter.
     */
    permissionId?: NullableOption<string>;
    /**
     * The claim value (value) for the delegated permission listed in the oauth2PermissionScopes collection of the
     * servicePrincipal. Doesn't support $filter.
     */
    permissionName?: NullableOption<string>;
}
export interface Endpoint extends DirectoryObject {
    capability?: string;
    providerId?: NullableOption<string>;
    providerName?: NullableOption<string>;
    providerResourceId?: NullableOption<string>;
    uri?: string;
}
export interface RemoteDesktopSecurityConfiguration extends Entity {
    // Determines if Microsoft Entra ID RDS authentication protocol for RDP is enabled.
    isRemoteDesktopProtocolEnabled?: boolean;
    /**
     * The collection of target device groups that are associated with the RDS security configuration that will be enabled for
     * SSO when a client connects to the target device over RDP using the new Microsoft Entra ID RDS authentication protocol.
     */
    targetDeviceGroups?: NullableOption<TargetDeviceGroup[]>;
}
export interface AuthenticationCombinationConfiguration extends Entity {
    /**
     * Which authentication method combinations this configuration applies to. Must be an allowedCombinations object that's
     * defined for the authenticationStrengthPolicy. The only possible value for fido2combinationConfigurations is 'fido2'.
     */
    appliesToCombinations?: AuthenticationMethodModes[];
}
export interface AuthenticationMethodConfiguration extends Entity {
    // Groups of users that are excluded from a policy.
    excludeTargets?: NullableOption<ExcludeTarget[]>;
    // The state of the policy. Possible values are: enabled, disabled.
    state?: NullableOption<AuthenticationMethodState>;
}
export interface AuthenticationMethodModeDetail extends Entity {
    /**
     * The authentication method that this mode modifies. The possible values are: password, voice, hardwareOath,
     * softwareOath, sms, fido2, windowsHelloForBusiness, microsoftAuthenticator, temporaryAccessPass, email, x509Certificate,
     * federation, unknownFutureValue.
     */
    authenticationMethod?: BaseAuthenticationMethod;
    // The display name of this mode
    displayName?: string;
}
export interface AuthenticationMethodsPolicy extends Entity {
    // A description of the policy. Read-only.
    description?: NullableOption<string>;
    // The name of the policy. Read-only.
    displayName?: NullableOption<string>;
    // The date and time of the last update to the policy. Read-only.
    lastModifiedDateTime?: NullableOption<string>;
    /**
     * The state of migration of the authentication methods policy from the legacy multifactor authentication and self-service
     * password reset (SSPR) policies. The possible values are: premigration - means the authentication methods policy is used
     * for authentication only, legacy policies are respected. migrationInProgress - means the authentication methods policy
     * is used for both authentication and SSPR, legacy policies are respected. migrationComplete - means the authentication
     * methods policy is used for authentication and SSPR, legacy policies are ignored. unknownFutureValue - Evolvable
     * enumeration sentinel value. Do not use.
     */
    policyMigrationState?: NullableOption<AuthenticationMethodsPolicyMigrationState>;
    // The version of the policy in use. Read-only.
    policyVersion?: NullableOption<string>;
    reconfirmationInDays?: NullableOption<number>;
    /**
     * Enforce registration at sign-in time. This property can be used to remind users to set up targeted authentication
     * methods.
     */
    registrationEnforcement?: NullableOption<RegistrationEnforcement>;
    /**
     * Represents the settings for each authentication method. Automatically expanded on GET
     * /policies/authenticationMethodsPolicy.
     */
    authenticationMethodConfigurations?: NullableOption<AuthenticationMethodConfiguration[]>;
}
export interface AuthenticationMethodTarget extends Entity {
    // Determines if the user is enforced to register the authentication method.
    isRegistrationRequired?: boolean;
    // Possible values are: user, group.
    targetType?: AuthenticationMethodTargetType;
}
export interface AuthenticationStrengthPolicy extends Entity {
    // A collection of authentication method modes that are required be used to satify this authentication strength.
    allowedCombinations?: AuthenticationMethodModes[];
    // The datetime when this policy was created.
    createdDateTime?: string;
    // The human-readable description of this policy.
    description?: NullableOption<string>;
    // The human-readable display name of this policy. Supports $filter (eq, ne, not , and in).
    displayName?: string;
    // The datetime when this policy was last modified.
    modifiedDateTime?: string;
    /**
     * A descriptor of whether this policy is built into Microsoft Entra ID or created by an admin for the tenant. The
     * possible values are: builtIn, custom, unknownFutureValue. Supports $filter (eq, ne, not , and in).
     */
    policyType?: AuthenticationStrengthPolicyType;
    /**
     * A descriptor of whether this authentication strength grants the MFA claim upon successful satisfaction. The possible
     * values are: none, mfa, unknownFutureValue.
     */
    requirementsSatisfied?: AuthenticationStrengthRequirements;
    /**
     * Settings that may be used to require specific types or instances of an authentication method to be used when
     * authenticating with a specified combination of authentication methods.
     */
    combinationConfigurations?: NullableOption<AuthenticationCombinationConfiguration[]>;
}
export interface AuthenticationStrengthRoot extends Entity {
    combinations?: AuthenticationMethodModes[];
    // Names and descriptions of all valid authentication method modes in the system.
    authenticationMethodModes?: NullableOption<AuthenticationMethodModeDetail[]>;
    /**
     * A collection of authentication strength policies that exist for this tenant, including both built-in and custom
     * policies.
     */
    policies?: NullableOption<AuthenticationStrengthPolicy[]>;
}
export interface ConditionalAccessRoot extends Entity {
    authenticationStrength?: NullableOption<AuthenticationStrengthRoot>;
    // Read-only. Nullable. Returns a collection of the specified authentication context class references.
    authenticationContextClassReferences?: NullableOption<AuthenticationContextClassReference[]>;
    // Read-only. Nullable. Returns a collection of the specified named locations.
    namedLocations?: NullableOption<NamedLocation[]>;
    // Read-only. Nullable. Returns a collection of the specified Conditional Access (CA) policies.
    policies?: NullableOption<ConditionalAccessPolicy[]>;
    // Read-only. Nullable. Returns a collection of the specified Conditional Access templates.
    templates?: NullableOption<ConditionalAccessTemplate[]>;
}
export interface AuthenticationContextClassReference extends Entity {
    /**
     * A short explanation of the policies that are enforced by authenticationContextClassReference. This value should be used
     * to provide secondary text to describe the authentication context class reference when building user-facing admin
     * experiences. For example, a selection UX.
     */
    description?: NullableOption<string>;
    /**
     * The display name is the friendly name of the authenticationContextClassReference object. This value should be used to
     * identify the authentication context class reference when building user-facing admin experiences. For example, a
     * selection UX.
     */
    displayName?: NullableOption<string>;
    /**
     * Indicates whether the authenticationContextClassReference has been published by the security admin and is ready for use
     * by apps. When it's set to false, it shouldn't be shown in authentication context selection UX, or used to protect app
     * resources. It's shown and available for Conditional Access policy authoring. The default value is false. Supports
     * $filter (eq).
     */
    isAvailable?: NullableOption<boolean>;
}
export interface NamedLocation extends Entity {
    /**
     * The Timestamp type represents creation date and time of the location using ISO 8601 format and is always in UTC time.
     * For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    // Human-readable name of the location.
    displayName?: string;
    /**
     * The Timestamp type represents last modified date and time of the location using ISO 8601 format and is always in UTC
     * time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    modifiedDateTime?: NullableOption<string>;
}
export interface ConditionalAccessPolicy extends Entity {
    // Specifies the rules that must be met for the policy to apply. Required.
    conditions?: ConditionalAccessConditionSet;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Readonly.
     */
    createdDateTime?: NullableOption<string>;
    description?: NullableOption<string>;
    // Specifies a display name for the conditionalAccessPolicy object.
    displayName?: string;
    // Specifies the grant controls that must be fulfilled to pass the policy.
    grantControls?: NullableOption<ConditionalAccessGrantControls>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Readonly.
     */
    modifiedDateTime?: NullableOption<string>;
    // Specifies the session controls that are enforced after sign-in.
    sessionControls?: NullableOption<ConditionalAccessSessionControls>;
    /**
     * Specifies the state of the conditionalAccessPolicy object. Possible values are: enabled, disabled,
     * enabledForReportingButNotEnforced. Required.
     */
    state?: ConditionalAccessPolicyState;
    templateId?: NullableOption<string>;
}
export interface ConditionalAccessTemplate extends Entity {
    // The user-friendly name of the template.
    description?: string;
    /**
     * Complete list of policy details specific to the template. This property contains the JSON of policy settings for
     * configuring a Conditional Access policy.
     */
    details?: ConditionalAccessPolicyDetail;
    // The user-friendly name of the template.
    name?: string;
    /**
     * List of conditional access scenarios that the template is recommended for. The possible values are: new,
     * secureFoundation, zeroTrust, remoteWork, protectAdmins, emergingThreats, unknownFutureValue. This is a multi-valued
     * enum. Supports $filter (has).
     */
    scenarios?: TemplateScenarios;
}
export interface EmailAuthenticationMethodConfiguration extends AuthenticationMethodConfiguration {
    /**
     * Determines whether email OTP is usable by external users for authentication. Possible values are: default, enabled,
     * disabled, unknownFutureValue. Tenants in the default state who didn't use public preview have email OTP enabled
     * beginning in October 2021.
     */
    allowExternalIdToUseEmailOtp?: NullableOption<ExternalEmailOtpState>;
    // A collection of groups that are enabled to use the authentication method.
    includeTargets?: NullableOption<AuthenticationMethodTarget[]>;
}
export interface Fido2AuthenticationMethodConfiguration extends AuthenticationMethodConfiguration {
    // Determines whether attestation must be enforced for FIDO2 security key registration.
    isAttestationEnforced?: NullableOption<boolean>;
    // Determines if users can register new FIDO2 security keys.
    isSelfServiceRegistrationAllowed?: NullableOption<boolean>;
    /**
     * Controls whether key restrictions are enforced on FIDO2 security keys, either allowing or disallowing certain key types
     * as defined by Authenticator Attestation GUID (AAGUID), an identifier that indicates the type (e.g. make and model) of
     * the authenticator.
     */
    keyRestrictions?: NullableOption<Fido2KeyRestrictions>;
    // A collection of groups that are enabled to use the authentication method.
    includeTargets?: NullableOption<AuthenticationMethodTarget[]>;
}
export interface Fido2CombinationConfiguration extends AuthenticationCombinationConfiguration {
    // A list of AAGUIDs allowed to be used as part of the specified authentication method combinations.
    allowedAAGUIDs?: string[];
}
export interface MicrosoftAuthenticatorAuthenticationMethodConfiguration extends AuthenticationMethodConfiguration {
    /**
     * A collection of Microsoft Authenticator settings such as application context and location context, and whether they are
     * enabled for all users or specific users only.
     */
    featureSettings?: NullableOption<MicrosoftAuthenticatorFeatureSettings>;
    isSoftwareOathEnabled?: NullableOption<boolean>;
    // A collection of groups that are enabled to use the authentication method. Expanded by default.
    includeTargets?: NullableOption<MicrosoftAuthenticatorAuthenticationMethodTarget[]>;
}
export interface MicrosoftAuthenticatorAuthenticationMethodTarget extends AuthenticationMethodTarget {
    /**
     * Determines which types of notifications can be used for sign-in. Possible values are: any, deviceBasedPush
     * (passwordless only), push.
     */
    authenticationMode?: MicrosoftAuthenticatorAuthenticationMode;
}
export interface PolicyRoot extends Entity {
    /**
     * The authentication methods and the users that are allowed to use them to sign in and perform multifactor authentication
     * (MFA) in Microsoft Entra ID.
     */
    authenticationMethodsPolicy?: NullableOption<AuthenticationMethodsPolicy>;
    // The authentication method combinations that are to be used in scenarios defined by Microsoft Entra Conditional Access.
    authenticationStrengthPolicies?: NullableOption<AuthenticationStrengthPolicy[]>;
    // The policy configuration of the self-service sign-up experience of external users.
    authenticationFlowsPolicy?: NullableOption<AuthenticationFlowsPolicy>;
    // The policy that controls the idle time out for web sessions for applications.
    activityBasedTimeoutPolicies?: NullableOption<ActivityBasedTimeoutPolicy[]>;
    /**
     * The policies that enforce app management restrictions for specific applications and service principals, overriding the
     * defaultAppManagementPolicy.
     */
    appManagementPolicies?: NullableOption<AppManagementPolicy[]>;
    // The policy that controls Microsoft Entra authorization settings.
    authorizationPolicy?: NullableOption<AuthorizationPolicy>;
    /**
     * The claim-mapping policies for WS-Fed, SAML, OAuth 2.0, and OpenID Connect protocols, for tokens issued to a specific
     * application.
     */
    claimsMappingPolicies?: NullableOption<ClaimsMappingPolicy[]>;
    // The custom rules that define an access scenario when interacting with external Microsoft Entra tenants.
    crossTenantAccessPolicy?: NullableOption<CrossTenantAccessPolicy>;
    // The tenant-wide policy that enforces app management restrictions for all applications and service principals.
    defaultAppManagementPolicy?: NullableOption<TenantAppManagementPolicy>;
    // The policy to control Microsoft Entra authentication behavior for federated users.
    homeRealmDiscoveryPolicies?: NullableOption<HomeRealmDiscoveryPolicy[]>;
    // The policy that specifies the conditions under which consent can be granted.
    permissionGrantPolicies?: NullableOption<PermissionGrantPolicy[]>;
    // The policy that specifies the characteristics of SAML tokens issued by Microsoft Entra ID.
    tokenIssuancePolicies?: NullableOption<TokenIssuancePolicy[]>;
    /**
     * The policy that controls the lifetime of a JWT access token, an ID token, or a SAML 1.1/2.0 token issued by Microsoft
     * Entra ID.
     */
    tokenLifetimePolicies?: NullableOption<TokenLifetimePolicy[]>;
    // The feature rollout policy associated with a directory object.
    featureRolloutPolicies?: NullableOption<FeatureRolloutPolicy[]>;
    // The policy by which consent requests are created and managed for the entire tenant.
    adminConsentRequestPolicy?: NullableOption<AdminConsentRequestPolicy>;
    // The custom rules that define an access scenario.
    conditionalAccessPolicies?: NullableOption<ConditionalAccessPolicy[]>;
    // The policy that represents the security defaults that protect against common attacks.
    identitySecurityDefaultsEnforcementPolicy?: NullableOption<IdentitySecurityDefaultsEnforcementPolicy>;
    // Specifies the various policies associated with scopes and roles.
    roleManagementPolicies?: NullableOption<UnifiedRoleManagementPolicy[]>;
    // The assignment of a role management policy to a role definition object.
    roleManagementPolicyAssignments?: NullableOption<UnifiedRoleManagementPolicyAssignment[]>;
}
export interface AuthenticationFlowsPolicy extends Entity {
    // Inherited property. A description of the policy. Optional. Read-only.
    description?: NullableOption<string>;
    // Inherited property. The human-readable name of the policy. Optional. Read-only.
    displayName?: NullableOption<string>;
    /**
     * Contains selfServiceSignUpAuthenticationFlowConfiguration settings that convey whether self-service sign-up is enabled
     * or disabled. Optional. Read-only.
     */
    selfServiceSignUp?: NullableOption<SelfServiceSignUpAuthenticationFlowConfiguration>;
}
// tslint:disable-next-line: no-empty-interface
export interface ActivityBasedTimeoutPolicy extends StsPolicy {}
export interface AuthorizationPolicy extends PolicyBase {
    // Indicates whether users can sign up for email based subscriptions.
    allowedToSignUpEmailBasedSubscriptions?: boolean;
    // Indicates whether users can use the Self-Service Password Reset feature on the tenant.
    allowedToUseSSPR?: boolean;
    // Indicates whether a user can join the tenant by email validation.
    allowEmailVerifiedUsersToJoinOrganization?: boolean;
    /**
     * Indicates who can invite external users to the organization. Possible values are: none, adminsAndGuestInviters,
     * adminsGuestInvitersAndAllMembers, everyone. everyone is the default setting for all cloud environments except US
     * Government. For more information, see allowInvitesFrom values.
     */
    allowInvitesFrom?: NullableOption<AllowInvitesFrom>;
    /**
     * Indicates whether user consent for risky apps is allowed. We recommend keeping allowUserConsentForRiskyApps as false.
     * Default value is false.
     */
    allowUserConsentForRiskyApps?: NullableOption<boolean>;
    /**
     * To disable the use of MSOL PowerShell, set this property to true. This also disables user-based access to the legacy
     * service endpoint used by MSOL PowerShell. This doesn't affect Microsoft Entra Connect or Microsoft Graph.
     */
    blockMsolPowerShell?: NullableOption<boolean>;
    // Specifies certain customizable permissions for default user role.
    defaultUserRolePermissions?: DefaultUserRolePermissions;
    /**
     * Represents role templateId for the role that should be granted to guest user. Currently following roles are supported:
     * User (a0b1b346-4d3e-4e8b-98f8-753987be4970), Guest User (10dae51f-b6af-4016-8d66-8c2a99b929b3), and Restricted Guest
     * User (2af84b1e-32c8-42b7-82bc-daa82404023b).
     */
    guestUserRoleId?: NullableOption<string>;
}
export interface CrossTenantAccessPolicy extends PolicyBase {
    /**
     * Used to specify which Microsoft clouds an organization would like to collaborate with. By default, this value is empty.
     * Supported values for this field are: microsoftonline.com, microsoftonline.us, and partner.microsoftonline.cn.
     */
    allowedCloudEndpoints?: string[];
    // Defines the default configuration for how your organization interacts with external Microsoft Entra organizations.
    default?: NullableOption<CrossTenantAccessPolicyConfigurationDefault>;
    // Defines partner-specific configurations for external Microsoft Entra organizations.
    partners?: NullableOption<CrossTenantAccessPolicyConfigurationPartner[]>;
}
export interface TenantAppManagementPolicy extends PolicyBase {
    // Restrictions that apply as default to all application objects in the tenant.
    applicationRestrictions?: NullableOption<AppManagementConfiguration>;
    // Denotes whether the policy is enabled. Default value is false.
    isEnabled?: boolean;
    // Restrictions that apply as default to all service principal objects in the tenant.
    servicePrincipalRestrictions?: NullableOption<AppManagementConfiguration>;
}
export interface PermissionGrantPolicy extends PolicyBase {
    // Condition sets which are excluded in this permission grant policy. Automatically expanded on GET.
    excludes?: NullableOption<PermissionGrantConditionSet[]>;
    // Condition sets which are included in this permission grant policy. Automatically expanded on GET.
    includes?: NullableOption<PermissionGrantConditionSet[]>;
}
export interface FeatureRolloutPolicy extends Entity {
    // A description for this feature rollout policy.
    description?: NullableOption<string>;
    // The display name for this feature rollout policy.
    displayName?: string;
    // Possible values are: passthroughAuthentication, seamlessSso, passwordHashSync, emailAsAlternateId, unknownFutureValue.
    feature?: StagedFeatureName;
    // Indicates whether this feature rollout policy should be applied to the entire organization.
    isAppliedToOrganization?: boolean;
    // Indicates whether the feature rollout is enabled.
    isEnabled?: boolean;
    // Nullable. Specifies a list of directoryObjects that feature is enabled for.
    appliesTo?: NullableOption<DirectoryObject[]>;
}
export interface AdminConsentRequestPolicy extends Entity {
    // Specifies whether the admin consent request feature is enabled or disabled. Required.
    isEnabled?: boolean;
    // Specifies whether reviewers will receive notifications. Required.
    notifyReviewers?: boolean;
    // Specifies whether reviewers will receive reminder emails. Required.
    remindersEnabled?: boolean;
    // Specifies the duration the request is active before it automatically expires if no decision is applied.
    requestDurationInDays?: number;
    // The list of reviewers for the admin consent. Required.
    reviewers?: NullableOption<AccessReviewReviewerScope[]>;
    // Specifies the version of this policy. When the policy is updated, this version is updated. Read-only.
    version?: number;
}
// tslint:disable-next-line: interface-name
export interface IdentitySecurityDefaultsEnforcementPolicy extends PolicyBase {
    // If set to true, Microsoft Entra security defaults are enabled for the tenant.
    isEnabled?: boolean;
}
export interface UnifiedRoleManagementPolicy extends Entity {
    // Description for the policy.
    description?: string;
    // Display name for the policy.
    displayName?: string;
    /**
     * This can only be set to true for a single tenant-wide policy which will apply to all scopes and roles. Set the scopeId
     * to / and scopeType to Directory. Supports $filter (eq, ne).
     */
    isOrganizationDefault?: NullableOption<boolean>;
    // The identity who last modified the role setting.
    lastModifiedBy?: NullableOption<Identity>;
    // The time when the role setting was last modified.
    lastModifiedDateTime?: NullableOption<string>;
    // The identifier of the scope where the policy is created. Can be / for the tenant or a group ID. Required.
    scopeId?: string;
    // The type of the scope where the policy is created. One of Directory, DirectoryRole, Group. Required.
    scopeType?: string;
    /**
     * The list of effective rules like approval rules and expiration rules evaluated based on inherited referenced rules. For
     * example, if there is a tenant-wide policy to enforce enabling an approval rule, the effective rule will be to enable
     * approval even if the policy has a rule to disable approval. Supports $expand.
     */
    effectiveRules?: NullableOption<UnifiedRoleManagementPolicyRule[]>;
    // The collection of rules like approval rules and expiration rules. Supports $expand.
    rules?: NullableOption<UnifiedRoleManagementPolicyRule[]>;
}
export interface UnifiedRoleManagementPolicyAssignment extends Entity {
    // The id of the policy. Inherited from entity.
    policyId?: string;
    /**
     * For Microsoft Entra roles policy, it's the identifier of the role definition object where the policy applies. For PIM
     * for groups membership and ownership, it's either member or owner. Supports $filter (eq).
     */
    roleDefinitionId?: NullableOption<string>;
    // The identifier of the scope where the policy is assigned. Can be / for the tenant or a group ID. Required.
    scopeId?: string;
    // The type of the scope where the policy is assigned. One of Directory, DirectoryRole, Group. Required.
    scopeType?: string;
    /**
     * The policy that's associated with a policy assignment. Supports $expand and a nested $expand of the rules and
     * effectiveRules relationships for the policy.
     */
    policy?: NullableOption<UnifiedRoleManagementPolicy>;
}
export interface SmsAuthenticationMethodConfiguration extends AuthenticationMethodConfiguration {
    // A collection of groups that are enabled to use the authentication method.
    includeTargets?: NullableOption<SmsAuthenticationMethodTarget[]>;
}
export interface SmsAuthenticationMethodTarget extends AuthenticationMethodTarget {
    /**
     * Determines if users can use this authentication method to sign in to Microsoft Entra ID. true if users can use this
     * method for primary authentication, otherwise false.
     */
    isUsableForSignIn?: boolean;
}
export interface SoftwareOathAuthenticationMethodConfiguration extends AuthenticationMethodConfiguration {
    // A collection of groups that are enabled to use the authentication method. Expanded by default.
    includeTargets?: NullableOption<AuthenticationMethodTarget[]>;
}
export interface TemporaryAccessPassAuthenticationMethodConfiguration extends AuthenticationMethodConfiguration {
    // Default length in characters of a Temporary Access Pass object. Must be between 8 and 48 characters.
    defaultLength?: NullableOption<number>;
    /**
     * Default lifetime in minutes for a Temporary Access Pass. Value can be any integer between the minimumLifetimeInMinutes
     * and maximumLifetimeInMinutes.
     */
    defaultLifetimeInMinutes?: NullableOption<number>;
    /**
     * If true, all the passes in the tenant will be restricted to one-time use. If false, passes in the tenant can be created
     * to be either one-time use or reusable.
     */
    isUsableOnce?: NullableOption<boolean>;
    /**
     * Maximum lifetime in minutes for any Temporary Access Pass created in the tenant. Value can be between 10 and 43200
     * minutes (equivalent to 30 days).
     */
    maximumLifetimeInMinutes?: NullableOption<number>;
    /**
     * Minimum lifetime in minutes for any Temporary Access Pass created in the tenant. Value can be between 10 and 43200
     * minutes (equivalent to 30 days).
     */
    minimumLifetimeInMinutes?: NullableOption<number>;
    // A collection of groups that are enabled to use the authentication method.
    includeTargets?: NullableOption<AuthenticationMethodTarget[]>;
}
export interface VoiceAuthenticationMethodConfiguration extends AuthenticationMethodConfiguration {
    // true if users can register office phones, otherwise, false.
    isOfficePhoneAllowed?: NullableOption<boolean>;
    // A collection of groups that are enabled to use the authentication method. Expanded by default.
    includeTargets?: NullableOption<AuthenticationMethodTarget[]>;
}
export interface X509CertificateAuthenticationMethodConfiguration extends AuthenticationMethodConfiguration {
    /**
     * Defines strong authentication configurations. This configuration includes the default authentication mode and the
     * different rules for strong authentication bindings.
     */
    authenticationModeConfiguration?: NullableOption<X509CertificateAuthenticationModeConfiguration>;
    /**
     * Defines fields in the X.509 certificate that map to attributes of the Microsoft Entra user object in order to bind the
     * certificate to the user. The priority of the object determines the order in which the binding is carried out. The first
     * binding that matches will be used and the rest ignored.
     */
    certificateUserBindings?: NullableOption<X509CertificateUserBinding[]>;
    // A collection of groups that are enabled to use the authentication method.
    includeTargets?: NullableOption<AuthenticationMethodTarget[]>;
}
export interface Bitlocker extends Entity {
    // The recovery keys associated with the bitlocker entity.
    recoveryKeys?: NullableOption<BitlockerRecoveryKey[]>;
}
export interface BitlockerRecoveryKey extends Entity {
    // The date and time when the key was originally backed up to Microsoft Entra ID. Not nullable.
    createdDateTime?: string;
    // Identifier of the device the BitLocker key is originally backed up from. Supports $filter (eq).
    deviceId?: NullableOption<string>;
    // The BitLocker recovery key. Returned only on $select. Not nullable.
    key?: string;
    /**
     * Indicates the type of volume the BitLocker key is associated with. The possible values are: 1 (for
     * operatingSystemVolume), 2 (for fixedDataVolume), 3 (for removableDataVolume), and 4 (for unknownFutureValue).
     */
    volumeType?: NullableOption<VolumeType>;
}
// tslint:disable-next-line: interface-name
export interface InformationProtection {
    bitlocker?: NullableOption<Bitlocker>;
    threatAssessmentRequests?: NullableOption<ThreatAssessmentRequest[]>;
}
export interface ThreatAssessmentRequest extends Entity {
    // The threat category. Possible values are: spam, phishing, malware.
    category?: ThreatCategory;
    // The content type of threat assessment. Possible values are: mail, url, file.
    contentType?: NullableOption<ThreatAssessmentContentType>;
    // The threat assessment request creator.
    createdBy?: NullableOption<IdentitySet>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // The expected assessment from submitter. Possible values are: block, unblock.
    expectedAssessment?: ThreatExpectedAssessment;
    // The source of the threat assessment request. Possible values are: administrator.
    requestSource?: NullableOption<ThreatAssessmentRequestSource>;
    // The assessment process status. Possible values are: pending, completed.
    status?: NullableOption<ThreatAssessmentStatus>;
    /**
     * A collection of threat assessment results. Read-only. By default, a GET /threatAssessmentRequests/{id} does not return
     * this property unless you apply $expand on it.
     */
    results?: NullableOption<ThreatAssessmentResult[]>;
}
export interface BookingAppointment extends Entity {
    // Additional information that is sent to the customer when an appointment is confirmed.
    additionalInformation?: NullableOption<string>;
    // The URL of the meeting to join anonymously.
    anonymousJoinWebUrl?: NullableOption<string>;
    /**
     * A collection of customer properties for an appointment. An appointment contains a list of customer information and each
     * unit will indicate the properties of a customer who is part of that appointment. Optional.
     */
    customers?: BookingCustomerInformationBase[];
    // The time zone of the customer. For a list of possible values, see dateTimeTimeZone.
    customerTimeZone?: NullableOption<string>;
    // The length of the appointment, denoted in ISO8601 format.
    duration?: string;
    // The date, time, and time zone that the appointment ends.
    endDateTime?: DateTimeTimeZone;
    // The current number of customers in the appointment
    filledAttendeesCount?: number;
    // If true, indicates that the appointment will be held online. Default value is false.
    isLocationOnline?: boolean;
    // The URL of the online meeting for the appointment.
    joinWebUrl?: NullableOption<string>;
    /**
     * The maximum number of customers allowed in an appointment. If maximumAttendeesCount of the service is greater than 1,
     * pass valid customer IDs while creating or updating an appointment. To create a customer, use the Create bookingCustomer
     * operation.
     */
    maximumAttendeesCount?: number;
    /**
     * If true indicates that the bookingCustomer for this appointment doesn't wish to receive a confirmation for this
     * appointment.
     */
    optOutOfCustomerEmail?: boolean;
    /**
     * The amount of time to reserve after the appointment ends, for cleaning up, as an example. The value is expressed in
     * ISO8601 format.
     */
    postBuffer?: string;
    /**
     * The amount of time to reserve before the appointment begins, for preparation, as an example. The value is expressed in
     * ISO8601 format.
     */
    preBuffer?: string;
    // The regular price for an appointment for the specified bookingService.
    price?: number;
    /**
     * A setting to provide flexibility for the pricing structure of services. Possible values are: undefined, fixedPrice,
     * startingAt, hourly, free, priceVaries, callUs, notSet, unknownFutureValue.
     */
    priceType?: BookingPriceType;
    // The value of this property is only available when reading an individual booking appointment by id.
    reminders?: NullableOption<BookingReminder[]>;
    /**
     * An additional tracking ID for the appointment, if the appointment has been created directly by the customer on the
     * scheduling page, as opposed to by a staff member on the behalf of the customer. Only supported for appointment if
     * maxAttendeeCount is 1.
     */
    selfServiceAppointmentId?: NullableOption<string>;
    // The ID of the bookingService associated with this appointment.
    serviceId?: NullableOption<string>;
    // The location where the service is delivered.
    serviceLocation?: NullableOption<Location>;
    /**
     * This property is optional when creating a new appointment. If not specified, it is computed from the service associated
     * with the appointment by the service id.
     */
    serviceName?: string;
    // The value of this property is only available when reading an individual booking appointment by id.
    serviceNotes?: NullableOption<string>;
    // If true, indicates SMS notifications will be sent to the customers for the appointment. Default value is false.
    smsNotificationsEnabled?: boolean;
    // The ID of each bookingStaffMember who is scheduled in this appointment.
    staffMemberIds?: NullableOption<string[]>;
    // The date, time, and time zone that the appointment begins.
    startDateTime?: DateTimeTimeZone;
}
export interface BookingBusiness extends Entity {
    /**
     * The street address of the business. The address property, together with phone and webSiteUrl, appear in the footer of a
     * business scheduling page. The attribute type of physicalAddress is not supported in v1.0. Internally we map the
     * addresses to the type others.
     */
    address?: NullableOption<PhysicalAddress>;
    // The hours of operation for the business.
    businessHours?: NullableOption<BookingWorkHours[]>;
    // The type of business.
    businessType?: NullableOption<string>;
    // The code for the currency that the business operates in on Microsoft Bookings.
    defaultCurrencyIso?: NullableOption<string>;
    // The display name is suitable for human-readable interfaces.
    displayName?: string;
    // The email address for the business.
    email?: NullableOption<string>;
    /**
     * The scheduling page has been made available to external customers. Use the publish and unpublish actions to set this
     * property. Read-only.
     */
    isPublished?: NullableOption<boolean>;
    // The language of the self-service booking page.
    languageTag?: NullableOption<string>;
    /**
     * The telephone number for the business. The phone property, together with address and webSiteUrl, appear in the footer
     * of a business scheduling page.
     */
    phone?: NullableOption<string>;
    // The URL for the scheduling page, which is set after you publish or unpublish the page. Read-only.
    publicUrl?: NullableOption<string>;
    // Specifies how bookings can be created for this business.
    schedulingPolicy?: NullableOption<BookingSchedulingPolicy>;
    // Example: https://www.contoso.com
    webSiteUrl?: NullableOption<string>;
    // All the appointments of this business. Read-only. Nullable.
    appointments?: NullableOption<BookingAppointment[]>;
    // The set of appointments of this business in a specified date range. Read-only. Nullable.
    calendarView?: NullableOption<BookingAppointment[]>;
    // All the customers of this business. Read-only. Nullable.
    customers?: NullableOption<BookingCustomerBase[]>;
    // All the custom questions of this business. Read-only. Nullable.
    customQuestions?: NullableOption<BookingCustomQuestion[]>;
    // All the services offered by this business. Read-only. Nullable.
    services?: NullableOption<BookingService[]>;
    // All the staff members that provide services in this business. Read-only. Nullable.
    staffMembers?: NullableOption<BookingStaffMemberBase[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface BookingCustomerBase extends Entity {}
export interface BookingCustomQuestion extends Entity {
    // The expected answer type. The possible values are: text, radioButton, unknownFutureValue.
    answerInputType?: NullableOption<AnswerInputType>;
    // List of possible answer values.
    answerOptions?: NullableOption<string[]>;
    // The display name is suitable for human-readable interfaces.
    displayName?: string;
}
export interface BookingService extends Entity {
    // Additional information that is sent to the customer when an appointment is confirmed.
    additionalInformation?: NullableOption<string>;
    // Contains the set of custom questions associated with a particular service.
    customQuestions?: NullableOption<BookingQuestionAssignment[]>;
    /**
     * The default length of the service, represented in numbers of days, hours, minutes, and seconds. For example,
     * P11D23H59M59.999999999999S.
     */
    defaultDuration?: string;
    // The default physical location for the service.
    defaultLocation?: NullableOption<Location>;
    // The default monetary price for the service.
    defaultPrice?: number;
    /**
     * The default way the service is charged. Possible values are: undefined, fixedPrice, startingAt, hourly, free,
     * priceVaries, callUs, notSet, unknownFutureValue.
     */
    defaultPriceType?: BookingPriceType;
    // The value of this property is only available when reading an individual booking service by id.
    defaultReminders?: NullableOption<BookingReminder[]>;
    // A text description for the service.
    description?: NullableOption<string>;
    // The display name is suitable for human-readable interfaces.
    displayName?: string;
    /**
     * True if the URL to join the appointment anonymously (anonymousJoinWebUrl) will be generated for the appointment booked
     * for this service.
     */
    isAnonymousJoinEnabled?: boolean;
    // True means this service is not available to customers for booking.
    isHiddenFromCustomers?: boolean;
    // True indicates that the appointments for the service will be held online. Default value is false.
    isLocationOnline?: boolean;
    // The language of the self-service booking page.
    languageTag?: string;
    /**
     * The maximum number of customers allowed in a service. If maximumAttendeesCount of the service is greater than 1, pass
     * valid customer IDs while creating or updating an appointment. To create a customer, use the Create bookingCustomer
     * operation.
     */
    maximumAttendeesCount?: number;
    // Additional information about this service.
    notes?: NullableOption<string>;
    // The time to buffer after an appointment for this service ends, and before the next customer appointment can be booked.
    postBuffer?: string;
    // The time to buffer before an appointment for this service can start.
    preBuffer?: string;
    // The set of policies that determine how appointments for this type of service should be created and managed.
    schedulingPolicy?: NullableOption<BookingSchedulingPolicy>;
    /**
     * True indicates SMS notifications can be sent to the customers for the appointment of the service. Default value is
     * false.
     */
    smsNotificationsEnabled?: boolean;
    // Represents those staff members who provide this service.
    staffMemberIds?: NullableOption<string[]>;
    // The URL a customer uses to access the service.
    webUrl?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface BookingStaffMemberBase extends Entity {}
export interface BookingCurrency extends Entity {
    // The currency symbol. For example, the currency symbol for the US dollar and for the Australian dollar is $.
    symbol?: string;
}
export interface BookingCustomer extends BookingCustomerBase {
    /**
     * Addresses associated with the customer. The attribute type of physicalAddress is not supported in v1.0. Internally we
     * map the addresses to the type others.
     */
    addresses?: NullableOption<PhysicalAddress[]>;
    // The display name is suitable for human-readable interfaces.
    displayName?: string;
    // The SMTP address of the customer.
    emailAddress?: NullableOption<string>;
    // Phone numbers associated with the customer, including home, business and mobile numbers.
    phones?: NullableOption<Phone[]>;
}
export interface BookingStaffMember extends BookingStaffMemberBase {
    /**
     * True means that if the staff member is a Microsoft 365 user, the Bookings API would verify the staff member's
     * availability in their personal calendar in Microsoft 365, before making a booking.
     */
    availabilityIsAffectedByPersonalCalendar?: boolean;
    // The display name is suitable for human-readable interfaces.
    displayName?: string;
    /**
     * The email address of the staff member. This can be in the same Microsoft 365 tenant as the business, or in a different
     * email domain. This email address can be used if the sendConfirmationsToOwner property is set to true in the scheduling
     * policy of the business. Required.
     */
    emailAddress?: NullableOption<string>;
    // True indicates that a staff member will be notified via email when a booking assigned to them is created or changed.
    isEmailNotificationEnabled?: boolean;
    /**
     * The role of the staff member in the business. Possible values are: guest, administrator, viewer, externalGuest,
     * unknownFutureValue, scheduler, teamMember. Note that you must use the Prefer: include-unknown-enum-members request
     * header to get the following values from this evolvable enum: scheduler, teamMember. Required.
     */
    role?: BookingStaffRole;
    // The time zone of the staff member. For a list of possible values, see dateTimeTimeZone.
    timeZone?: NullableOption<string>;
    /**
     * True means the staff member's availability is as specified in the businessHours property of the business. False means
     * the availability is determined by the staff member's workingHours property setting.
     */
    useBusinessHours?: boolean;
    /**
     * The range of hours each day of the week that the staff member is available for booking. By default, they are
     * initialized to be the same as the businessHours property of the business.
     */
    workingHours?: NullableOption<BookingWorkHours[]>;
}
export interface SolutionsRoot {
    bookingBusinesses?: NullableOption<BookingBusiness[]>;
    bookingCurrencies?: NullableOption<BookingCurrency[]>;
    virtualEvents?: NullableOption<VirtualEventsRoot>;
}
export interface VirtualEventsRoot extends Entity {
    events?: NullableOption<VirtualEvent[]>;
    webinars?: NullableOption<VirtualEventWebinar[]>;
}
export interface AuthoredNote extends Entity {
    // Identity information about the note's author.
    author?: NullableOption<Identity>;
    // The content of the note.
    content?: NullableOption<ItemBody>;
    /**
     * The date and time when the entity was created. The Timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
}
export interface Privacy {
    subjectRightsRequests?: NullableOption<SubjectRightsRequest[]>;
}
export interface SubjectRightsRequest extends Entity {
    // Identity that the request is assigned to.
    assignedTo?: NullableOption<Identity>;
    /**
     * The date and time when the request was closed. The timestamp type represents date and time information using ISO 8601
     * format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    closedDateTime?: NullableOption<string>;
    /**
     * KQL based content query that should be used for search. This property is defined only for APIs accessed using the
     * /security query path and not the /privacy query path.
     */
    contentQuery?: NullableOption<string>;
    // Identity information for the entity that created the request.
    createdBy?: NullableOption<IdentitySet>;
    /**
     * The date and time when the request was created. The timestamp type represents date and time information using ISO 8601
     * format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // Information about the data subject.
    dataSubject?: NullableOption<DataSubject>;
    /**
     * The type of the data subject. Possible values are: customer, currentEmployee, formerEmployee, prospectiveEmployee,
     * student, teacher, faculty, other, unknownFutureValue.
     */
    dataSubjectType?: NullableOption<DataSubjectType>;
    // Description for the request.
    description?: NullableOption<string>;
    // The name of the request.
    displayName?: NullableOption<string>;
    /**
     * The external ID for the request that is immutable after creation and is used for tracking the request for the external
     * system. This property is defined only for APIs accessed using the /security query path and not the /privacy query path.
     */
    externalId?: NullableOption<string>;
    // Collection of history change events.
    history?: NullableOption<SubjectRightsRequestHistory[]>;
    /**
     * Include all versions of the documents. By default, the current copies of the documents are returned. If SharePoint
     * sites have versioning enabled, including all versions includes the historical copies of the documents. This property is
     * defined only for APIs accessed using the /security query path and not the /privacy query path.
     */
    includeAllVersions?: NullableOption<boolean>;
    /**
     * Include content authored by the data subject. This property is defined only for APIs accessed using the /security query
     * path and not the /privacy query path.
     */
    includeAuthoredContent?: NullableOption<boolean>;
    // Insight about the request.
    insight?: NullableOption<SubjectRightsRequestDetail>;
    /**
     * The date and time when the request is internally due. The timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    internalDueDateTime?: NullableOption<string>;
    // Identity information for the entity that last modified the request.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * The date and time when the request was last modified. The timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
    /**
     * The mailbox locations that should be searched. This property is defined only for APIs accessed using the /security
     * query path and not the /privacy query path.
     */
    mailboxLocations?: NullableOption<SubjectRightsRequestMailboxLocation>;
    /**
     * Pause the request after estimate has finished. By default, the data estimate runs and then pauses, allowing you to
     * preview results and then select the option to retrieve data in the UI. You can set this property to false if you want
     * it to perform the estimate and then automatically begin with the retrieval of the content. This property is defined
     * only for APIs accessed using the /security query path and not the /privacy query path.
     */
    pauseAfterEstimate?: NullableOption<boolean>;
    // List of regulations that this request fulfill.
    regulations?: NullableOption<string[]>;
    /**
     * The SharePoint and OneDrive site locations that should be searched. This property is defined only for APIs accessed
     * using the /security query path and not the /privacy query path.
     */
    siteLocations?: NullableOption<SubjectRightsRequestSiteLocation>;
    // Information about the different stages for the request.
    stages?: NullableOption<SubjectRightsRequestStageDetail[]>;
    // The status of the request. Possible values are: active, closed, unknownFutureValue.
    status?: NullableOption<SubjectRightsRequestStatus>;
    // The type of the request. Possible values are: export, delete, access, tagForAction, unknownFutureValue.
    type?: NullableOption<SubjectRightsRequestType>;
    // Collection of users who can approve the request. Currently only supported for requests of type delete.
    approvers?: NullableOption<User[]>;
    // Collection of users who can collaborate on the request.
    collaborators?: NullableOption<User[]>;
    // List of notes associated with the request.
    notes?: NullableOption<AuthoredNote[]>;
    // Information about the Microsoft Teams team that was created for the request.
    team?: NullableOption<Team>;
}
export interface Security extends Entity {
    subjectRightsRequests?: NullableOption<SubjectRightsRequest[]>;
    cases?: NullableOption<SecurityNamespace.CasesRoot>;
    // A collection of alerts in Microsoft 365 Defender.
    alerts_v2?: NullableOption<SecurityNamespace.Alert[]>;
    /**
     * A collection of incidents in Microsoft 365 Defender, each of which is a set of correlated alerts and associated
     * metadata that reflects the story of an attack.
     */
    incidents?: NullableOption<SecurityNamespace.Incident[]>;
    attackSimulation?: NullableOption<AttackSimulationRoot>;
    triggers?: NullableOption<SecurityNamespace.TriggersRoot>;
    triggerTypes?: NullableOption<SecurityNamespace.TriggerTypesRoot>;
    alerts?: NullableOption<Alert[]>;
    secureScoreControlProfiles?: NullableOption<SecureScoreControlProfile[]>;
    secureScores?: NullableOption<SecureScore[]>;
    threatIntelligence?: NullableOption<SecurityNamespace.ThreatIntelligence>;
}
export interface AttackSimulationRoot extends Entity {
    // Represents an end user's notification for an attack simulation training.
    endUserNotifications?: NullableOption<EndUserNotification[]>;
    // Represents an attack simulation training landing page.
    landingPages?: NullableOption<LandingPage[]>;
    // Represents an attack simulation training login page.
    loginPages?: NullableOption<LoginPage[]>;
    // Represents an attack simulation training operation.
    operations?: NullableOption<AttackSimulationOperation[]>;
    // Represents an attack simulation training campaign payload in a tenant.
    payloads?: NullableOption<Payload[]>;
    // Represents simulation automation created to run on a tenant.
    simulationAutomations?: NullableOption<SimulationAutomation[]>;
    // Represents an attack simulation training campaign in a tenant.
    simulations?: NullableOption<Simulation[]>;
    // Represents details about attack simulation trainings.
    trainings?: NullableOption<Training[]>;
}
export interface Alert extends Entity {
    // Name or alias of the activity group (attacker) this alert is attributed to.
    activityGroupName?: NullableOption<string>;
    alertDetections?: NullableOption<AlertDetection[]>;
    // Name of the analyst the alert is assigned to for triage, investigation, or remediation (supports update).
    assignedTo?: NullableOption<string>;
    // Azure subscription ID, present if this alert is related to an Azure resource.
    azureSubscriptionId?: NullableOption<string>;
    // Microsoft Entra tenant ID. Required.
    azureTenantId?: string;
    // Category of the alert (for example, credentialTheft, ransomware, etc.).
    category?: NullableOption<string>;
    /**
     * Time at which the alert was closed. The Timestamp type represents date and time information using ISO 8601 format and
     * is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z (supports update).
     */
    closedDateTime?: NullableOption<string>;
    // Security-related stateful information generated by the provider about the cloud application/s related to this alert.
    cloudAppStates?: NullableOption<CloudAppSecurityState[]>;
    // Customer-provided comments on alert (for customer alert management) (supports update).
    comments?: NullableOption<string[]>;
    // Confidence of the detection logic (percentage between 1-100).
    confidence?: NullableOption<number>;
    /**
     * Time at which the alert was created by the alert provider. The Timestamp type represents date and time information
     * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     * Required.
     */
    createdDateTime?: NullableOption<string>;
    // Alert description.
    description?: NullableOption<string>;
    // Set of alerts related to this alert entity (each alert is pushed to the SIEM as a separate record).
    detectionIds?: NullableOption<string[]>;
    /**
     * Time at which the event(s) that served as the trigger(s) to generate the alert occurred. The Timestamp type represents
     * date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z. Required.
     */
    eventDateTime?: NullableOption<string>;
    /**
     * Analyst feedback on the alert. Possible values are: unknown, truePositive, falsePositive, benignPositive. (supports
     * update)
     */
    feedback?: NullableOption<AlertFeedback>;
    // Security-related stateful information generated by the provider about the file(s) related to this alert.
    fileStates?: NullableOption<FileSecurityState[]>;
    historyStates?: NullableOption<AlertHistoryState[]>;
    // Security-related stateful information generated by the provider about the host(s) related to this alert.
    hostStates?: NullableOption<HostSecurityState[]>;
    // IDs of incidents related to current alert.
    incidentIds?: NullableOption<string[]>;
    investigationSecurityStates?: NullableOption<InvestigationSecurityState[]>;
    lastEventDateTime?: NullableOption<string>;
    /**
     * Time at which the alert entity was last modified. The Timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // Threat Intelligence pertaining to malware related to this alert.
    malwareStates?: NullableOption<MalwareState[]>;
    messageSecurityStates?: NullableOption<MessageSecurityState[]>;
    // Security-related stateful information generated by the provider about the network connection(s) related to this alert.
    networkConnections?: NullableOption<NetworkConnection[]>;
    // Security-related stateful information generated by the provider about the process or processes related to this alert.
    processes?: NullableOption<Process[]>;
    /**
     * Vendor/provider recommended action(s) to take as a result of the alert (for example, isolate machine, enforce2FA,
     * reimage host).
     */
    recommendedActions?: NullableOption<string[]>;
    // Security-related stateful information generated by the provider about the registry keys related to this alert.
    registryKeyStates?: NullableOption<RegistryKeyState[]>;
    // Resources related to current alert. For example, for some alerts this can have the Azure Resource value.
    securityResources?: NullableOption<SecurityResource[]>;
    // Alert severity - set by vendor/provider. Possible values are: unknown, informational, low, medium, high. Required.
    severity?: AlertSeverity;
    /**
     * Hyperlinks (URIs) to the source material related to the alert, for example, provider's user interface for alerts or log
     * search, etc.
     */
    sourceMaterials?: NullableOption<string[]>;
    /**
     * Alert lifecycle status (stage). Possible values are: unknown, newAlert, inProgress, resolved. (supports update).
     * Required.
     */
    status?: AlertStatus;
    /**
     * User-definable labels that can be applied to an alert and can serve as filter conditions (for example 'HVA', 'SAW',
     * etc.) (supports update).
     */
    tags?: NullableOption<string[]>;
    // Alert title. Required.
    title?: NullableOption<string>;
    /**
     * Security-related information about the specific properties that triggered the alert (properties appearing in the
     * alert). Alerts might contain information about multiple users, hosts, files, ip addresses. This field indicates which
     * properties triggered the alert generation.
     */
    triggers?: NullableOption<AlertTrigger[]>;
    uriClickSecurityStates?: NullableOption<UriClickSecurityState[]>;
    // Security-related stateful information generated by the provider about the user accounts related to this alert.
    userStates?: NullableOption<UserSecurityState[]>;
    /**
     * Complex type containing details about the security product/service vendor, provider, and subprovider (for example,
     * vendor=Microsoft; provider=Windows Defender ATP; subProvider=AppLocker). Required.
     */
    vendorInformation?: NullableOption<SecurityVendorInformation>;
    // Threat intelligence pertaining to one or more vulnerabilities related to this alert.
    vulnerabilityStates?: NullableOption<VulnerabilityState[]>;
}
export interface SecureScoreControlProfile extends Entity {
    // Control action type (Config, Review, Behavior).
    actionType?: NullableOption<string>;
    // URL to where the control can be actioned.
    actionUrl?: NullableOption<string>;
    // GUID string for tenant ID.
    azureTenantId?: string;
    // The collection of compliance information associated with secure score control
    complianceInformation?: NullableOption<ComplianceInformation[]>;
    // Control action category (Identity, Data, Device, Apps, Infrastructure).
    controlCategory?: NullableOption<string>;
    // Flag to indicate where the tenant has marked a control (ignored, thirdParty, reviewed) (supports update).
    controlStateUpdates?: NullableOption<SecureScoreControlStateUpdate[]>;
    // Flag to indicate if a control is depreciated.
    deprecated?: NullableOption<boolean>;
    // Resource cost of implemmentating control (low, moderate, high).
    implementationCost?: NullableOption<string>;
    // Time at which the control profile entity was last modified. The Timestamp type represents date and time
    lastModifiedDateTime?: NullableOption<string>;
    // max attainable score for the control.
    maxScore?: NullableOption<number>;
    // Microsoft's stack ranking of control.
    rank?: NullableOption<number>;
    // Description of what the control will help remediate.
    remediation?: NullableOption<string>;
    // Description of the impact on users of the remediation.
    remediationImpact?: NullableOption<string>;
    // Service that owns the control (Exchange, Sharepoint, Microsoft Entra ID).
    service?: NullableOption<string>;
    // List of threats the control mitigates (accountBreach, dataDeletion, dataExfiltration, dataSpillage,
    threats?: NullableOption<string[]>;
    tier?: NullableOption<string>;
    title?: NullableOption<string>;
    userImpact?: NullableOption<string>;
    vendorInformation?: NullableOption<SecurityVendorInformation>;
}
export interface SecureScore extends Entity {
    // Active user count of the given tenant.
    activeUserCount?: NullableOption<number>;
    /**
     * Average score by different scopes (for example, average by industry, average by seating) and control category
     * (Identity, Data, Device, Apps, Infrastructure) within the scope.
     */
    averageComparativeScores?: NullableOption<AverageComparativeScore[]>;
    // GUID string for tenant ID.
    azureTenantId?: string;
    // Contains tenant scores for a set of controls.
    controlScores?: NullableOption<ControlScore[]>;
    // The date when the entity is created.
    createdDateTime?: NullableOption<string>;
    // Tenant current attained score on specified date.
    currentScore?: NullableOption<number>;
    // Microsoft-provided services for the tenant (for example, Exchange online, Skype, Sharepoint).
    enabledServices?: NullableOption<string[]>;
    // Licensed user count of the given tenant.
    licensedUserCount?: NullableOption<number>;
    // Tenant maximum possible score on specified date.
    maxScore?: NullableOption<number>;
    /**
     * Complex type containing details about the security product/service vendor, provider, and subprovider (for example,
     * vendor=Microsoft; provider=SecureScore). Required.
     */
    vendorInformation?: NullableOption<SecurityVendorInformation>;
}
export interface Channel extends Entity {
    // Read only. Timestamp at which the channel was created.
    createdDateTime?: NullableOption<string>;
    // Optional textual description for the channel.
    description?: NullableOption<string>;
    // Channel name as it will appear to the user in Microsoft Teams. The maximum length is 50 characters.
    displayName?: string;
    // The email address for sending messages to the channel. Read-only.
    email?: NullableOption<string>;
    /**
     * Indicates whether the channel should automatically be marked 'favorite' for all members of the team. Can only be set
     * programmatically with Create team. Default: false.
     */
    isFavoriteByDefault?: NullableOption<boolean>;
    /**
     * The type of the channel. Can be set during creation and can't be changed. The possible values are: standard, private,
     * unknownFutureValue, shared. The default value is standard. Note that you must use the Prefer:
     * include-unknown-enum-members request header to get the following value in this evolvable enum: shared.
     */
    membershipType?: NullableOption<ChannelMembershipType>;
    /**
     * Contains summary information about the channel, including number of owners, members, guests, and an indicator for
     * members from other tenants. The summary property will only be returned if it is specified in the $select clause of the
     * Get channel method.
     */
    summary?: NullableOption<ChannelSummary>;
    // The ID of the Microsoft Entra tenant.
    tenantId?: NullableOption<string>;
    /**
     * A hyperlink that will go to the channel in Microsoft Teams. This is the URL that you get when you right-click a channel
     * in Microsoft Teams and select Get link to channel. This URL should be treated as an opaque blob, and not parsed.
     * Read-only.
     */
    webUrl?: NullableOption<string>;
    // Metadata for the location where the channel's files are stored.
    filesFolder?: NullableOption<DriveItem>;
    // A collection of membership records associated with the channel.
    members?: NullableOption<ConversationMember[]>;
    // A collection of all the messages in the channel. A navigation property. Nullable.
    messages?: NullableOption<ChatMessage[]>;
    // A collection of teams with which a channel is shared.
    sharedWithTeams?: NullableOption<SharedWithChannelTeamInfo[]>;
    // A collection of all the tabs in the channel. A navigation property.
    tabs?: NullableOption<TeamsTab[]>;
}
export interface Group extends DirectoryObject {
    /**
     * The list of sensitivity label pairs (label ID, label name) associated with a Microsoft 365 group. Returned only on
     * $select.
     */
    assignedLabels?: NullableOption<AssignedLabel[]>;
    // The licenses that are assigned to the group. Returned only on $select. Supports $filter (eq).Read-only.
    assignedLicenses?: NullableOption<AssignedLicense[]>;
    /**
     * Describes a classification for the group (such as low, medium or high business impact). Valid values for this property
     * are defined by creating a ClassificationList setting value, based on the template definition.Returned by default.
     * Supports $filter (eq, ne, not, ge, le, startsWith).
     */
    classification?: NullableOption<string>;
    /**
     * Timestamp of when the group was created. The value cannot be modified and is automatically populated when the group is
     * created. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For
     * example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Returned by default. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    /**
     * An optional description for the group. Returned by default. Supports $filter (eq, ne, not, ge, le, startsWith) and
     * $search.
     */
    description?: NullableOption<string>;
    /**
     * The display name for the group. This property is required when a group is created and cannot be cleared during updates.
     * Maximum length is 256 characters. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on
     * null values), $search, and $orderby.
     */
    displayName?: NullableOption<string>;
    /**
     * Timestamp of when the group is set to expire. It is null for security groups, but for Microsoft 365 groups, it
     * represents when the group is set to expire as defined in the groupLifecyclePolicy. The Timestamp type represents date
     * and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z. Returned by default. Supports $filter (eq, ne, not, ge, le, in). Read-only.
     */
    expirationDateTime?: NullableOption<string>;
    /**
     * Specifies the group type and its membership. If the collection contains Unified, the group is a Microsoft 365 group;
     * otherwise, it's either a security group or a distribution group. For details, see groups overview.If the collection
     * includes DynamicMembership, the group has dynamic membership; otherwise, membership is static. Returned by default.
     * Supports $filter (eq, not).
     */
    groupTypes?: string[];
    /**
     * Indicates whether there are members in this group that have license errors from its group-based license assignment.
     * This property is never returned on a GET operation. You can use it as a $filter argument to get groups that have
     * members with license errors (that is, filter for this property being true). See an example. Supports $filter (eq).
     */
    hasMembersWithLicenseErrors?: NullableOption<boolean>;
    /**
     * Indicates whether this group can be assigned to a Microsoft Entra role. Optional. This property can only be set while
     * creating the group and is immutable. If set to true, the securityEnabled property must also be set to true, visibility
     * must be Hidden, and the group cannot be a dynamic group (that is, groupTypes cannot contain DynamicMembership). Only
     * callers in Global Administrator and Privileged Role Administrator roles can set this property. The caller must also be
     * assigned the RoleManagement.ReadWrite.Directory permission to set this property or update the membership of such
     * groups. For more, see Using a group to manage Microsoft Entra role assignmentsUsing this feature requires a Microsoft
     * Entra ID P1 license. Returned by default. Supports $filter (eq, ne, not).
     */
    isAssignableToRole?: NullableOption<boolean>;
    /**
     * Indicates the status of the group license assignment to all group members. The default value is false. Read-only.
     * Possible values: QueuedForProcessing, ProcessingInProgress, and ProcessingComplete.Returned only on $select. Read-only.
     */
    licenseProcessingState?: NullableOption<LicenseProcessingState>;
    /**
     * The SMTP address for the group, for example, 'serviceadmins@contoso.onmicrosoft.com'. Returned by default. Read-only.
     * Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).
     */
    mail?: NullableOption<string>;
    // Specifies whether the group is mail-enabled. Required. Returned by default. Supports $filter (eq, ne, not).
    mailEnabled?: NullableOption<boolean>;
    /**
     * The mail alias for the group, unique for Microsoft 365 groups in the organization. Maximum length is 64 characters.
     * This property can contain only characters in the ASCII character set 0 - 127 except the following: @ () / [] ' ; :
     * &amp;lt;&amp;gt; , SPACE. Required. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq
     * on null values).
     */
    mailNickname?: NullableOption<string>;
    /**
     * The rule that determines members for this group if the group is a dynamic group (groupTypes contains
     * DynamicMembership). For more information about the syntax of the membership rule, see Membership Rules syntax. Returned
     * by default. Supports $filter (eq, ne, not, ge, le, startsWith).
     */
    membershipRule?: NullableOption<string>;
    /**
     * Indicates whether the dynamic membership processing is on or paused. Possible values are On or Paused. Returned by
     * default. Supports $filter (eq, ne, not, in).
     */
    membershipRuleProcessingState?: NullableOption<string>;
    onPremisesDomainName?: NullableOption<string>;
    /**
     * Indicates the last time at which the group was synced with the on-premises directory.The Timestamp type represents date
     * and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z. Returned by default. Read-only. Supports $filter (eq, ne, not, ge, le, in).
     */
    onPremisesLastSyncDateTime?: NullableOption<string>;
    onPremisesNetBiosName?: NullableOption<string>;
    /**
     * Errors when using Microsoft synchronization product during provisioning. Returned by default. Supports $filter (eq,
     * not).
     */
    onPremisesProvisioningErrors?: NullableOption<OnPremisesProvisioningError[]>;
    /**
     * Contains the on-premises SAM account name synchronized from the on-premises directory. The property is only populated
     * for customers synchronizing their on-premises directory to Microsoft Entra ID via Microsoft Entra Connect.Returned by
     * default. Supports $filter (eq, ne, not, ge, le, in, startsWith). Read-only.
     */
    onPremisesSamAccountName?: NullableOption<string>;
    /**
     * Contains the on-premises security identifier (SID) for the group synchronized from on-premises to the cloud. Returned
     * by default. Supports $filter (eq including on null values). Read-only.
     */
    onPremisesSecurityIdentifier?: NullableOption<string>;
    /**
     * true if this group is synced from an on-premises directory; false if this group was originally synced from an
     * on-premises directory but is no longer synced; null if this object has never been synced from an on-premises directory
     * (default). Returned by default. Read-only. Supports $filter (eq, ne, not, in, and eq on null values).
     */
    onPremisesSyncEnabled?: NullableOption<boolean>;
    /**
     * The preferred data location for the Microsoft 365 group. By default, the group inherits the group creator's preferred
     * data location. To set this property, the calling app must be granted the Directory.ReadWrite.All permission and the
     * user be assigned one of the following Microsoft Entra roles: Global Administrator User Account Administrator Directory
     * Writer Exchange Administrator SharePoint Administrator For more information about this property, see OneDrive Online
     * Multi-Geo. Nullable. Returned by default.
     */
    preferredDataLocation?: NullableOption<string>;
    /**
     * The preferred language for a Microsoft 365 group. Should follow ISO 639-1 Code; for example, en-US. Returned by
     * default. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values).
     */
    preferredLanguage?: NullableOption<string>;
    /**
     * Email addresses for the group that direct to the same group mailbox. For example: ['SMTP: bob@contoso.com', 'smtp:
     * bob@sales.contoso.com']. The any operator is required to filter expressions on multi-valued properties. Returned by
     * default. Read-only. Not nullable. Supports $filter (eq, not, ge, le, startsWith, endsWith, /$count eq 0, /$count ne 0).
     */
    proxyAddresses?: string[];
    /**
     * Timestamp of when the group was last renewed. This cannot be modified directly and is only updated via the renew
     * service action. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC. For
     * example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Returned by default. Supports $filter (eq, ne, not, ge,
     * le, in). Read-only.
     */
    renewedDateTime?: NullableOption<string>;
    // Specifies whether the group is a security group. Required. Returned by default. Supports $filter (eq, ne, not, in).
    securityEnabled?: NullableOption<boolean>;
    // Security identifier of the group, used in Windows scenarios. Returned by default.
    securityIdentifier?: NullableOption<string>;
    serviceProvisioningErrors?: NullableOption<ServiceProvisioningError[]>;
    /**
     * Specifies a Microsoft 365 group's color theme. Possible values are Teal, Purple, Green, Blue, Pink, Orange or Red.
     * Returned by default.
     */
    theme?: NullableOption<string>;
    /**
     * Specifies the group join policy and group content visibility for groups. Possible values are: Private, Public, or
     * HiddenMembership. HiddenMembership can be set only for Microsoft 365 groups when the groups are created. It can't be
     * updated later. Other values of visibility can be updated after group creation. If visibility value is not specified
     * during group creation on Microsoft Graph, a security group is created as Private by default, and the Microsoft 365
     * group is Public. Groups assignable to roles are always Private. To learn more, see group visibility options. Returned
     * by default. Nullable.
     */
    visibility?: NullableOption<string>;
    /**
     * Indicates if people external to the organization can send messages to the group. The default value is false. Returned
     * only on $select. Supported only on the Get group API (GET /groups/{ID}).
     */
    allowExternalSenders?: NullableOption<boolean>;
    /**
     * Indicates if new members added to the group will be auto-subscribed to receive email notifications. You can set this
     * property in a PATCH request for the group; do not set it in the initial POST request that creates the group. Default
     * value is false. Returned only on $select. Supported only on the Get group API (GET /groups/{ID}).
     */
    autoSubscribeNewMembers?: NullableOption<boolean>;
    /**
     * True if the group is not displayed in certain parts of the Outlook UI: the Address Book, address lists for selecting
     * message recipients, and the Browse Groups dialog for searching groups; otherwise, false. Default value is false.
     * Returned only on $select. Supported only on the Get group API (GET /groups/{ID}).
     */
    hideFromAddressLists?: NullableOption<boolean>;
    /**
     * True if the group is not displayed in Outlook clients, such as Outlook for Windows and Outlook on the web; otherwise,
     * false. The default value is false. Returned only on $select. Supported only on the Get group API (GET /groups/{ID}).
     */
    hideFromOutlookClients?: NullableOption<boolean>;
    /**
     * Indicates whether the signed-in user is subscribed to receive email conversations. The default value is true. Returned
     * only on $select. Supported only on the Get group API (GET /groups/{ID}).
     */
    isSubscribedByMail?: NullableOption<boolean>;
    /**
     * Count of conversations that have received new posts since the signed-in user last visited the group. Returned only on
     * $select. Supported only on the Get group API (GET /groups/{ID}).
     */
    unseenCount?: NullableOption<number>;
    /**
     * When a group is associated with a team, this property determines whether the team is in read-only mode.To read this
     * property, use the /group/{groupId}/team endpoint or the Get team API. To update this property, use the archiveTeam and
     * unarchiveTeam APIs.
     */
    isArchived?: NullableOption<boolean>;
    // Represents the app roles a group has been granted for an application. Supports $expand.
    appRoleAssignments?: NullableOption<AppRoleAssignment[]>;
    // The user (or application) that created the group. NOTE: This is not set if the user is an administrator. Read-only.
    createdOnBehalfOf?: NullableOption<DirectoryObject>;
    /**
     * Groups that this group is a member of. HTTP Methods: GET (supported for all groups). Read-only. Nullable. Supports
     * $expand.
     */
    memberOf?: NullableOption<DirectoryObject[]>;
    /**
     * The members of this group, who can be users, devices, other groups, or service principals. Supports the List members,
     * Add member, and Remove member operations. Nullable. Supports $expand including nested $select. For example,
     * /groups?$filter=startsWith(displayName,'Role')&amp;$select=id,displayName&amp;$expand=members($select=id,userPrincipalName,displayName).
     */
    members?: NullableOption<DirectoryObject[]>;
    // A list of group members with license errors from this group-based license assignment. Read-only.
    membersWithLicenseErrors?: NullableOption<DirectoryObject[]>;
    /**
     * The owners of the group. Limited to 100 owners. Nullable. If this property is not specified when creating a Microsoft
     * 365 group, the calling user is automatically assigned as the group owner. Supports $filter (/$count eq 0, /$count ne 0,
     * /$count eq 1, /$count ne 1). Supports $expand including nested $select. For example,
     * /groups?$filter=startsWith(displayName,'Role')&amp;$select=id,displayName&amp;$expand=owners($select=id,userPrincipalName,displayName).
     */
    owners?: NullableOption<DirectoryObject[]>;
    permissionGrants?: NullableOption<ResourceSpecificPermissionGrant[]>;
    // Settings that can govern this group's behavior, like whether members can invite guest users to the group. Nullable.
    settings?: NullableOption<GroupSetting[]>;
    // The groups that a group is a member of, either directly or through nested membership. Nullable.
    transitiveMemberOf?: NullableOption<DirectoryObject[]>;
    // The direct and transitive members of a group. Nullable.
    transitiveMembers?: NullableOption<DirectoryObject[]>;
    /**
     * The list of users or groups allowed to create posts or calendar events in this group. If this list is non-empty, then
     * only users or groups listed here are allowed to post.
     */
    acceptedSenders?: NullableOption<DirectoryObject[]>;
    // The group's calendar. Read-only.
    calendar?: NullableOption<Calendar>;
    // The calendar view for the calendar. Read-only.
    calendarView?: NullableOption<Event[]>;
    // The group's conversations.
    conversations?: NullableOption<Conversation[]>;
    // The group's calendar events.
    events?: NullableOption<Event[]>;
    // The list of users or groups not allowed to create posts or calendar events in this group. Nullable
    rejectedSenders?: NullableOption<DirectoryObject[]>;
    // The group's conversation threads. Nullable.
    threads?: NullableOption<ConversationThread[]>;
    // The group's default drive. Read-only.
    drive?: NullableOption<Drive>;
    // The group's drives. Read-only.
    drives?: NullableOption<Drive[]>;
    // The list of SharePoint sites in this group. Access the default site with /sites/root.
    sites?: NullableOption<Site[]>;
    // The collection of open extensions defined for the group. Read-only. Nullable.
    extensions?: NullableOption<Extension[]>;
    // The collection of lifecycle policies for this group. Read-only. Nullable.
    groupLifecyclePolicies?: NullableOption<GroupLifecyclePolicy[]>;
    // Entry-point to Planner resource that might exist for a Unified Group.
    planner?: NullableOption<PlannerGroup>;
    onenote?: NullableOption<Onenote>;
    // The group's profile photo
    photo?: NullableOption<ProfilePhoto>;
    // The profile photos owned by the group. Read-only. Nullable.
    photos?: NullableOption<ProfilePhoto[]>;
    // The team associated with this group.
    team?: NullableOption<Team>;
}
export interface TeamsAppInstallation extends Entity {
    // The set of resource-specific permissions consented to while installing or upgrading the teamsApp.
    consentedPermissionSet?: NullableOption<TeamsAppPermissionSet>;
    // The app that is installed.
    teamsApp?: NullableOption<TeamsApp>;
    // The details of this version of the app.
    teamsAppDefinition?: NullableOption<TeamsAppDefinition>;
}
export interface ConversationMember extends Entity {
    // The display name of the user.
    displayName?: NullableOption<string>;
    /**
     * The roles for that user. This property contains additional qualifiers only when relevant - for example, if the member
     * has owner privileges, the roles property contains owner as one of the values. Similarly, if the member is an in-tenant
     * guest, the roles property contains guest as one of the values. A basic member should not have any values specified in
     * the roles property. An Out-of-tenant external member is assigned the owner role.
     */
    roles?: NullableOption<string[]>;
    /**
     * The timestamp denoting how far back a conversation's history is shared with the conversation member. This property is
     * settable only for members of a chat.
     */
    visibleHistoryStartDateTime?: NullableOption<string>;
}
export interface TeamsAsyncOperation extends Entity {
    // Number of times the operation was attempted before being marked successful or failed.
    attemptsCount?: number;
    // Time when the operation was created.
    createdDateTime?: string;
    // Any error that causes the async operation to fail.
    error?: NullableOption<OperationError>;
    // Time when the async operation was last updated.
    lastActionDateTime?: string;
    // Denotes which type of operation is being described.
    operationType?: TeamsAsyncOperationType;
    // Operation status.
    status?: TeamsAsyncOperationStatus;
    // The ID of the object that's created or modified as result of this async operation, typically a team.
    targetResourceId?: NullableOption<string>;
    /**
     * The location of the object that's created or modified as result of this async operation. This URL should be treated as
     * an opaque value and not parsed into its component paths.
     */
    targetResourceLocation?: NullableOption<string>;
}
export interface ResourceSpecificPermissionGrant extends DirectoryObject {
    // ID of the service principal of the Microsoft Entra app that has been granted access. Read-only.
    clientAppId?: NullableOption<string>;
    // ID of the Microsoft Entra app that has been granted access. Read-only.
    clientId?: NullableOption<string>;
    // The name of the resource-specific permission. Read-only.
    permission?: NullableOption<string>;
    // The type of permission. Possible values are: Application, Delegated. Read-only.
    permissionType?: NullableOption<string>;
    // ID of the Microsoft Entra app that is hosting the resource. Read-only.
    resourceAppId?: NullableOption<string>;
}
export interface TeamworkTag extends Entity {
    /**
     * The description of the tag as it appears to the user in Microsoft Teams. A teamworkTag can't have more than 200
     * teamworkTagMembers.
     */
    description?: NullableOption<string>;
    // The name of the tag as it appears to the user in Microsoft Teams.
    displayName?: NullableOption<string>;
    // The number of users assigned to the tag.
    memberCount?: NullableOption<number>;
    // The type of the tag. Default is standard.
    tagType?: NullableOption<TeamworkTagType>;
    // ID of the team in which the tag is defined.
    teamId?: NullableOption<string>;
    // Users assigned to the tag.
    members?: NullableOption<TeamworkTagMember[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface TeamsTemplate extends Entity {}
export interface Schedule extends Entity {
    // Indicates whether the schedule is enabled for the team. Required.
    enabled?: NullableOption<boolean>;
    // Indicates whether offer shift requests are enabled for the schedule.
    offerShiftRequestsEnabled?: NullableOption<boolean>;
    // Indicates whether open shifts are enabled for the schedule.
    openShiftsEnabled?: NullableOption<boolean>;
    // The status of the schedule provisioning. The possible values are notStarted, running, completed, failed.
    provisionStatus?: NullableOption<OperationStatus>;
    // Additional information about why schedule provisioning failed.
    provisionStatusCode?: NullableOption<string>;
    // Indicates whether swap shifts requests are enabled for the schedule.
    swapShiftsRequestsEnabled?: NullableOption<boolean>;
    // Indicates whether time clock is enabled for the schedule.
    timeClockEnabled?: NullableOption<boolean>;
    // Indicates whether time off requests are enabled for the schedule.
    timeOffRequestsEnabled?: NullableOption<boolean>;
    // Indicates the time zone of the schedule team using tz database format. Required.
    timeZone?: NullableOption<string>;
    workforceIntegrationIds?: NullableOption<string[]>;
    // The offer requests for shifts in the schedule.
    offerShiftRequests?: NullableOption<OfferShiftRequest[]>;
    // The open shift requests in the schedule.
    openShiftChangeRequests?: NullableOption<OpenShiftChangeRequest[]>;
    // The set of open shifts in a scheduling group in the schedule.
    openShifts?: NullableOption<OpenShift[]>;
    // The logical grouping of users in the schedule (usually by role).
    schedulingGroups?: NullableOption<SchedulingGroup[]>;
    // The shifts in the schedule.
    shifts?: NullableOption<Shift[]>;
    // The swap requests for shifts in the schedule.
    swapShiftsChangeRequests?: NullableOption<SwapShiftsChangeRequest[]>;
    // The set of reasons for a time off in the schedule.
    timeOffReasons?: NullableOption<TimeOffReason[]>;
    // The time off requests in the schedule.
    timeOffRequests?: NullableOption<TimeOffRequest[]>;
    // The instances of times off in the schedule.
    timesOff?: NullableOption<TimeOff[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface Compliance {}
export interface GroupSetting extends Entity {
    // Display name of this group of settings, which comes from the associated template.
    displayName?: NullableOption<string>;
    /**
     * Unique identifier for the tenant-level groupSettingTemplates object that's been customized for this group-level
     * settings object. Read-only.
     */
    templateId?: NullableOption<string>;
    /**
     * Collection of name-value pairs corresponding to the name and defaultValue properties in the referenced
     * groupSettingTemplates object.
     */
    values?: SettingValue[];
}
export interface Conversation extends Entity {
    /**
     * Indicates whether any of the posts within this Conversation has at least one attachment. Supports $filter (eq, ne) and
     * $search.
     */
    hasAttachments?: boolean;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastDeliveredDateTime?: string;
    // A short summary from the body of the latest post in this conversation. Supports $filter (eq, ne, le, ge).
    preview?: string;
    // The topic of the conversation. This property can be set when the conversation is created, but it cannot be updated.
    topic?: string;
    // All the users that sent a message to this Conversation.
    uniqueSenders?: string[];
    // A collection of all the conversation threads in the conversation. A navigation property. Read-only. Nullable.
    threads?: NullableOption<ConversationThread[]>;
}
export interface ConversationThread extends Entity {
    // The Cc: recipients for the thread. Returned only on $select.
    ccRecipients?: Recipient[];
    // Indicates whether any of the posts within this thread has at least one attachment. Returned by default.
    hasAttachments?: boolean;
    // Indicates if the thread is locked. Returned by default.
    isLocked?: boolean;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.Returned by default.
     */
    lastDeliveredDateTime?: string;
    // A short summary from the body of the latest post in this conversation. Returned by default.
    preview?: string;
    /**
     * The topic of the conversation. This property can be set when the conversation is created, but it cannot be updated.
     * Returned by default.
     */
    topic?: string;
    // The To: recipients for the thread. Returned only on $select.
    toRecipients?: Recipient[];
    // All the users that sent a message to this thread. Returned by default.
    uniqueSenders?: string[];
    posts?: NullableOption<Post[]>;
}
export interface GroupLifecyclePolicy extends Entity {
    /**
     * List of email address to send notifications for groups without owners. Multiple email address can be defined by
     * separating email address with a semicolon.
     */
    alternateNotificationEmails?: NullableOption<string>;
    /**
     * Number of days before a group expires and needs to be renewed. Once renewed, the group expiration is extended by the
     * number of days defined.
     */
    groupLifetimeInDays?: NullableOption<number>;
    // The group type for which the expiration policy applies. Possible values are All, Selected or None.
    managedGroupTypes?: NullableOption<string>;
}
export interface PlannerGroup extends Entity {
    // Read-only. Nullable. Returns the plannerPlans owned by the group.
    plans?: NullableOption<PlannerPlan[]>;
}
// tslint:disable-next-line: interface-name
export interface ItemAnalytics extends Entity {
    allTime?: NullableOption<ItemActivityStat>;
    itemActivityStats?: NullableOption<ItemActivityStat[]>;
    lastSevenDays?: NullableOption<ItemActivityStat>;
}
export interface ColumnDefinition extends Entity {
    // This column stores boolean values.
    boolean?: NullableOption<BooleanColumn>;
    // This column's data is calculated based on other columns.
    calculated?: NullableOption<CalculatedColumn>;
    // This column stores data from a list of choices.
    choice?: NullableOption<ChoiceColumn>;
    // For site columns, the name of the group this column belongs to. Helps organize related columns.
    columnGroup?: NullableOption<string>;
    // This column stores content approval status.
    contentApprovalStatus?: NullableOption<ContentApprovalStatusColumn>;
    // This column stores currency values.
    currency?: NullableOption<CurrencyColumn>;
    // This column stores DateTime values.
    dateTime?: NullableOption<DateTimeColumn>;
    // The default value for this column.
    defaultValue?: NullableOption<DefaultColumnValue>;
    // The user-facing description of the column.
    description?: NullableOption<string>;
    // The user-facing name of the column.
    displayName?: NullableOption<string>;
    // If true, no two list items may have the same value for this column.
    enforceUniqueValues?: NullableOption<boolean>;
    // This column stores a geolocation.
    geolocation?: NullableOption<GeolocationColumn>;
    // Specifies whether the column is displayed in the user interface.
    hidden?: NullableOption<boolean>;
    // This column stores hyperlink or picture values.
    hyperlinkOrPicture?: NullableOption<HyperlinkOrPictureColumn>;
    // Specifies whether the column values can be used for sorting and searching.
    indexed?: NullableOption<boolean>;
    // Indicates whether this column can be deleted.
    isDeletable?: NullableOption<boolean>;
    // Indicates whether values in the column can be reordered. Read-only.
    isReorderable?: NullableOption<boolean>;
    // Specifies whether the column can be changed.
    isSealed?: NullableOption<boolean>;
    // This column's data is looked up from another source in the site.
    lookup?: NullableOption<LookupColumn>;
    /**
     * The API-facing name of the column as it appears in the [fields][] on a [listItem][]. For the user-facing name, see
     * displayName.
     */
    name?: NullableOption<string>;
    // This column stores number values.
    number?: NullableOption<NumberColumn>;
    // This column stores Person or Group values.
    personOrGroup?: NullableOption<PersonOrGroupColumn>;
    // If 'true', changes to this column will be propagated to lists that implement the column.
    propagateChanges?: NullableOption<boolean>;
    // Specifies whether the column values can be modified.
    readOnly?: NullableOption<boolean>;
    // Specifies whether the column value isn't optional.
    required?: NullableOption<boolean>;
    // ContentType from which this column is inherited from. Present only in contentTypes columns response. Read-only.
    sourceContentType?: NullableOption<ContentTypeInfo>;
    // This column stores taxonomy terms.
    term?: NullableOption<TermColumn>;
    // This column stores text values.
    text?: NullableOption<TextColumn>;
    // This column stores thumbnail values.
    thumbnail?: NullableOption<ThumbnailColumn>;
    // For site columns, the type of column. Read-only.
    type?: NullableOption<ColumnTypes>;
    // This column stores validation formula and message for the column.
    validation?: NullableOption<ColumnValidation>;
    // The source column for the content type column.
    sourceColumn?: NullableOption<ColumnDefinition>;
}
export interface ContentType extends Entity {
    /**
     * List of canonical URLs for hub sites with which this content type is associated to. This will contain all hub sites
     * where this content type is queued to be enforced or is already enforced. Enforcing a content type means that the
     * content type will be applied to the lists in the enforced sites.
     */
    associatedHubsUrls?: NullableOption<string[]>;
    // The descriptive text for the item.
    description?: NullableOption<string>;
    // Document Set metadata.
    documentSet?: NullableOption<DocumentSet>;
    /**
     * Document template metadata. To make sure that documents have consistent content across a site and its subsites, you can
     * associate a Word, Excel, or PowerPoint template with a site content type.
     */
    documentTemplate?: NullableOption<DocumentSetContent>;
    // The name of the group this content type belongs to. Helps organize related content types.
    group?: NullableOption<string>;
    // Indicates whether the content type is hidden in the list's 'New' menu.
    hidden?: NullableOption<boolean>;
    /**
     * If this content type is inherited from another scope (like a site), provides a reference to the item where the content
     * type is defined.
     */
    inheritedFrom?: NullableOption<ItemReference>;
    // Specifies if a content type is a built-in content type.
    isBuiltIn?: NullableOption<boolean>;
    // The name of the content type.
    name?: NullableOption<string>;
    // Specifies the order in which the content type appears in the selection UI.
    order?: NullableOption<ContentTypeOrder>;
    // The unique identifier of the content type.
    parentId?: NullableOption<string>;
    /**
     * If true, any changes made to the content type will be pushed to inherited content types and lists that implement the
     * content type.
     */
    propagateChanges?: NullableOption<boolean>;
    // If true, the content type can't be modified unless this value is first set to false.
    readOnly?: NullableOption<boolean>;
    /**
     * If true, the content type can't be modified by users or through push-down operations. Only site collection
     * administrators can seal or unseal content types.
     */
    sealed?: NullableOption<boolean>;
    // Parent contentType from which this content type is derived.
    base?: NullableOption<ContentType>;
    // The collection of content types that are ancestors of this content type.
    baseTypes?: NullableOption<ContentType[]>;
    // The collection of columns that are required by this content type.
    columnLinks?: NullableOption<ColumnLink[]>;
    // Column order information in a content type.
    columnPositions?: NullableOption<ColumnDefinition[]>;
    // The collection of column definitions for this contentType.
    columns?: NullableOption<ColumnDefinition[]>;
}
export interface List extends BaseItem {
    // The displayable title of the list.
    displayName?: NullableOption<string>;
    // Contains more details about the list.
    list?: NullableOption<ListInfo>;
    // Returns identifiers useful for SharePoint REST compatibility. Read-only.
    sharepointIds?: NullableOption<SharepointIds>;
    // If present, indicates that the list is system-managed. Read-only.
    system?: NullableOption<SystemFacet>;
    // The collection of field definitions for this list.
    columns?: NullableOption<ColumnDefinition[]>;
    // The collection of content types present in this list.
    contentTypes?: NullableOption<ContentType[]>;
    // Allows access to the list as a drive resource with driveItems. Only present on document libraries.
    drive?: NullableOption<Drive>;
    // All items contained in the list.
    items?: NullableOption<ListItem[]>;
    // The collection of long-running operations on the list.
    operations?: NullableOption<RichLongRunningOperation[]>;
    // The set of subscriptions on the list.
    subscriptions?: NullableOption<Subscription[]>;
}
export interface LongRunningOperation extends Entity {
    /**
     * The start time of the operation. The Timestamp type represents date and time information using ISO 8601 format and is
     * always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    /**
     * The time of the last action in the operation. The Timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastActionDateTime?: NullableOption<string>;
    // URI of the resource that the operation is performed on.
    resourceLocation?: NullableOption<string>;
    // The status of the operation. The possible values are: notStarted, running, succeeded, failed, unknownFutureValue.
    status?: NullableOption<LongRunningOperationStatus>;
    // Details about the status of the operation.
    statusDetail?: NullableOption<string>;
}
export interface RichLongRunningOperation extends LongRunningOperation {
    // Error that caused the operation to fail.
    error?: NullableOption<PublicError>;
    // A value between 0 and 100 that indicates the progress of the operation.
    percentageComplete?: NullableOption<number>;
    // The unique identifier for the result.
    resourceId?: NullableOption<string>;
    // The type of the operation.
    type?: NullableOption<string>;
}
export interface Permission extends Entity {
    /**
     * A format of yyyy-MM-ddTHH:mm:ssZ of DateTimeOffset indicates the expiration time of the permission. DateTime.MinValue
     * indicates there's no expiration set for this permission. Optional.
     */
    expirationDateTime?: NullableOption<string>;
    grantedTo?: NullableOption<IdentitySet>;
    grantedToIdentities?: NullableOption<IdentitySet[]>;
    // For link type permissions, the details of the users to whom permission was granted. Read-only.
    grantedToIdentitiesV2?: NullableOption<SharePointIdentitySet[]>;
    // For user type permissions, the details of the users and applications for this permission. Read-only.
    grantedToV2?: NullableOption<SharePointIdentitySet>;
    /**
     * Indicates whether the password is set for this permission. This property only appears in the response. Optional.
     * Read-only. For OneDrive Personal only..
     */
    hasPassword?: NullableOption<boolean>;
    // Provides a reference to the ancestor of the current permission, if it's inherited from an ancestor. Read-only.
    inheritedFrom?: NullableOption<ItemReference>;
    // Details of any associated sharing invitation for this permission. Read-only.
    invitation?: NullableOption<SharingInvitation>;
    // Provides the link details of the current permission, if it's a link type permission. Read-only.
    link?: NullableOption<SharingLink>;
    // The type of permission, for example, read. See below for the full list of roles. Read-only.
    roles?: NullableOption<string[]>;
    // A unique token that can be used to access this shared item via the shares API. Read-only.
    shareId?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IdentityApiConnector extends Entity {
    /**
     * The object which describes the authentication configuration details for calling the API. Basic and PKCS 12 client
     * certificate are supported.
     */
    authenticationConfiguration?: NullableOption<ApiAuthenticationConfigurationBase>;
    // The name of the API connector.
    displayName?: NullableOption<string>;
    // The URL of the API endpoint to call.
    targetUrl?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IdentityProviderBase extends Entity {
    // The display name of the identity provider.
    displayName?: NullableOption<string>;
}
export interface AppleManagedIdentityProvider extends IdentityProviderBase {
    // The certificate data, which is a long string of text from the certificate. Can be null.
    certificateData?: NullableOption<string>;
    // The Apple developer identifier. Required.
    developerId?: NullableOption<string>;
    // The Apple key identifier. Required.
    keyId?: NullableOption<string>;
    // The Apple service identifier. Required.
    serviceId?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IdentityUserFlow extends Entity {
    userFlowType?: UserFlowType;
    userFlowTypeVersion?: number;
}
export interface B2xIdentityUserFlow extends IdentityUserFlow {
    /**
     * Configuration for enabling an API connector for use as part of the self-service sign-up user flow. You can only obtain
     * the value of this object using Get userFlowApiConnectorConfiguration.
     */
    apiConnectorConfiguration?: NullableOption<UserFlowApiConnectorConfiguration>;
    // The identity providers included in the user flow.
    identityProviders?: NullableOption<IdentityProvider[]>;
    /**
     * The languages supported for customization within the user flow. Language customization is enabled by default in
     * self-service sign-up user flow. You can't create custom languages in self-service sign-up user flows.
     */
    languages?: NullableOption<UserFlowLanguageConfiguration[]>;
    // The user attribute assignments included in the user flow.
    userAttributeAssignments?: NullableOption<IdentityUserFlowAttributeAssignment[]>;
    userFlowIdentityProviders?: NullableOption<IdentityProviderBase[]>;
}
// tslint:disable-next-line: interface-name
export interface IdentityProvider extends Entity {
    /**
     * The client ID for the application. This is the client ID obtained when registering the application with the identity
     * provider. Required. Not nullable.
     */
    clientId?: NullableOption<string>;
    /**
     * The client secret for the application. This is the client secret obtained when registering the application with the
     * identity provider. This is write-only. A read operation will return . Required. Not nullable.
     */
    clientSecret?: NullableOption<string>;
    // The display name of the identity provider. Not nullable.
    name?: NullableOption<string>;
    /**
     * The identity provider type is a required field. For B2B scenario: Google, Facebook. For B2C scenario: Microsoft,
     * Google, Amazon, LinkedIn, Facebook, GitHub, Twitter, Weibo, QQ, WeChat, OpenIDConnect. Not nullable.
     */
    type?: NullableOption<string>;
}
export interface UserFlowLanguageConfiguration extends Entity {
    // The language name to display. This property is read-only.
    displayName?: NullableOption<string>;
    // Indicates whether the language is enabled within the user flow.
    isEnabled?: boolean;
    /**
     * Collection of pages with the default content to display in a user flow for a specified language. This collection
     * doesn't allow any kind of modification.
     */
    defaultPages?: NullableOption<UserFlowLanguagePage[]>;
    /**
     * Collection of pages with the overrides messages to display in a user flow for a specified language. This collection
     * only allows you to modify the content of the page, any other modification isn't allowed (creation or deletion of
     * pages).
     */
    overridesPages?: NullableOption<UserFlowLanguagePage[]>;
}
// tslint:disable-next-line: interface-name
export interface IdentityUserFlowAttributeAssignment extends Entity {
    // The display name of the identityUserFlowAttribute within a user flow.
    displayName?: NullableOption<string>;
    /**
     * Determines whether the identityUserFlowAttribute is optional. true means the user doesn't have to provide a value.
     * false means the user can't complete sign-up without providing a value.
     */
    isOptional?: boolean;
    /**
     * Determines whether the identityUserFlowAttribute requires verification, and is only used for verifying the user's phone
     * number or email address.
     */
    requiresVerification?: boolean;
    /**
     * The input options for the user flow attribute. Only applicable when the userInputType is radioSingleSelect,
     * dropdownSingleSelect, or checkboxMultiSelect.
     */
    userAttributeValues?: NullableOption<UserAttributeValuesItem[]>;
    /**
     * The input type of the user flow attribute. Possible values are: textBox, dateTimeDropdown, radioSingleSelect,
     * dropdownSingleSelect, emailBox, checkboxMultiSelect.
     */
    userInputType?: IdentityUserFlowAttributeInputType;
    // The user attribute that you want to add to your user flow.
    userAttribute?: NullableOption<IdentityUserFlowAttribute>;
}
export interface BuiltInIdentityProvider extends IdentityProviderBase {
    // The identity provider type. For a B2B scenario, possible values: AADSignup, MicrosoftAccount, EmailOTP. Required.
    identityProviderType?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IdentityUserFlowAttribute extends Entity {
    /**
     * The data type of the user flow attribute. This can't be modified after the custom user flow attribute is created. The
     * supported values for dataType are: string , boolean , int64 , stringCollection , dateTime, unknownFutureValue. Supports
     * $filter (eq, ne).
     */
    dataType?: IdentityUserFlowAttributeDataType;
    // The description of the user flow attribute that's shown to the user at the time of sign-up.
    description?: NullableOption<string>;
    // The display name of the user flow attribute. Supports $filter (eq, ne).
    displayName?: NullableOption<string>;
    /**
     * The type of the user flow attribute. This is a read-only attribute that is automatically set. Depending on the type of
     * attribute, the values for this property are builtIn, custom, required, unknownFutureValue. Supports $filter (eq, ne).
     */
    userFlowAttributeType?: IdentityUserFlowAttributeType;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IdentityBuiltInUserFlowAttribute extends IdentityUserFlowAttribute {}
// tslint:disable-next-line: interface-name
export interface IdentityContainer extends Entity {
    // Represents entry point for API connectors.
    apiConnectors?: NullableOption<IdentityApiConnector[]>;
    // Represents entry point for B2X/self-service sign-up identity userflows.
    b2xUserFlows?: NullableOption<B2xIdentityUserFlow[]>;
    identityProviders?: NullableOption<IdentityProviderBase[]>;
    // Represents entry point for identity userflow attributes.
    userFlowAttributes?: NullableOption<IdentityUserFlowAttribute[]>;
    // the entry point for the Conditional Access (CA) object model.
    conditionalAccess?: NullableOption<ConditionalAccessRoot>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IdentityCustomUserFlowAttribute extends IdentityUserFlowAttribute {}
export interface SocialIdentityProvider extends IdentityProviderBase {
    /**
     * The identifier for the client application obtained when registering the application with the identity provider.
     * Required.
     */
    clientId?: NullableOption<string>;
    /**
     * The client secret for the application that is obtained when the application is registered with the identity provider.
     * This is write-only. A read operation returns . Required.
     */
    clientSecret?: NullableOption<string>;
    /**
     * For a B2B scenario, possible values: Google, Facebook. For a B2C scenario, possible values: Microsoft, Google, Amazon,
     * LinkedIn, Facebook, GitHub, Twitter, Weibo, QQ, WeChat. Required.
     */
    identityProviderType?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface UserFlowLanguagePage extends Entity {}
export interface DeviceLocalCredentialInfo extends Entity {
    // The credentials of the device's local administrator account backed up to Azure Active Directory.
    credentials?: DeviceLocalCredential[];
    // Display name of the device that the local credentials are associated with.
    deviceName?: string;
    // When the local administrator account credential was backed up to Azure Active Directory.
    lastBackupDateTime?: string;
    // When the local administrator account credential will be refreshed and backed up to Azure Active Directory.
    refreshDateTime?: string;
}
export interface Directory extends Entity {
    // The credentials of the device's local administrator account backed up to Microsoft Entra ID.
    deviceLocalCredentials?: NullableOption<DeviceLocalCredentialInfo[]>;
    // Conceptual container for user and group directory objects.
    administrativeUnits?: NullableOption<AdministrativeUnit[]>;
    // Group of related custom security attribute definitions.
    attributeSets?: NullableOption<AttributeSet[]>;
    // Schema of a custom security attributes (key-value pairs).
    customSecurityAttributeDefinitions?: NullableOption<CustomSecurityAttributeDefinition[]>;
    // Recently deleted items. Read-only. Nullable.
    deletedItems?: NullableOption<DirectoryObject[]>;
    /**
     * Configure domain federation with organizations whose identity provider (IdP) supports either the SAML or WS-Fed
     * protocol.
     */
    federationConfigurations?: NullableOption<IdentityProviderBase[]>;
    // A container for on-premises directory synchronization functionalities that are available for the organization.
    onPremisesSynchronization?: NullableOption<OnPremisesDirectorySynchronization[]>;
}
export interface AdministrativeUnit extends DirectoryObject {
    // An optional description for the administrative unit. Supports $filter (eq, ne, in, startsWith), $search.
    description?: NullableOption<string>;
    /**
     * Display name for the administrative unit. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null
     * values), $search, and $orderby.
     */
    displayName?: NullableOption<string>;
    /**
     * Controls whether the administrative unit and its members are hidden or public. Can be set to HiddenMembership. If not
     * set (value is null), the default behavior is public. When set to HiddenMembership, only members of the administrative
     * unit can list other members of the administrative unit.
     */
    visibility?: NullableOption<string>;
    // Users and groups that are members of this administrative unit. Supports $expand.
    members?: NullableOption<DirectoryObject[]>;
    // Scoped-role members of this administrative unit.
    scopedRoleMembers?: NullableOption<ScopedRoleMembership[]>;
    // The collection of open extensions defined for this administrative unit. Nullable.
    extensions?: NullableOption<Extension[]>;
}
export interface AttributeSet extends Entity {
    /**
     * Description of the attribute set. Can be up to 128 characters long and include Unicode characters. Can be changed
     * later.
     */
    description?: NullableOption<string>;
    /**
     * Maximum number of custom security attributes that can be defined in this attribute set. Default value is null. If not
     * specified, the administrator can add up to the maximum of 500 active attributes per tenant. Can be changed later.
     */
    maxAttributesPerSet?: NullableOption<number>;
}
export interface CustomSecurityAttributeDefinition extends Entity {
    // Name of the attribute set. Case insensitive.
    attributeSet?: string;
    /**
     * Description of the custom security attribute. Can be up to 128 characters long and include Unicode characters. Can be
     * changed later.
     */
    description?: NullableOption<string>;
    /**
     * Indicates whether multiple values can be assigned to the custom security attribute. Cannot be changed later. If type is
     * set to Boolean, isCollection cannot be set to true.
     */
    isCollection?: boolean;
    /**
     * Indicates whether custom security attribute values are indexed for searching on objects that are assigned attribute
     * values. Cannot be changed later.
     */
    isSearchable?: NullableOption<boolean>;
    /**
     * Name of the custom security attribute. Must be unique within an attribute set. Can be up to 32 characters long and
     * include Unicode characters. Cannot contain spaces or special characters. Cannot be changed later. Case insensitive.
     */
    name?: string;
    /**
     * Specifies whether the custom security attribute is active or deactivated. Acceptable values are: Available and
     * Deprecated. Can be changed later.
     */
    status?: string;
    /**
     * Data type for the custom security attribute values. Supported types are: Boolean, Integer, and String. Cannot be
     * changed later.
     */
    type?: string;
    /**
     * Indicates whether only predefined values can be assigned to the custom security attribute. If set to false, free-form
     * values are allowed. Can later be changed from true to false, but cannot be changed from false to true. If type is set
     * to Boolean, usePreDefinedValuesOnly cannot be set to true.
     */
    usePreDefinedValuesOnly?: NullableOption<boolean>;
    /**
     * Values that are predefined for this custom security attribute. This navigation property is not returned by default and
     * must be specified in an $expand query. For example,
     * /directory/customSecurityAttributeDefinitions?$expand=allowedValues.
     */
    allowedValues?: NullableOption<AllowedValue[]>;
}
export interface OnPremisesDirectorySynchronization extends Entity {
    /**
     * Consists of configurations that can be fine-tuned and impact the on-premises directory synchronization process for a
     * tenant.
     */
    configuration?: NullableOption<OnPremisesDirectorySynchronizationConfiguration>;
    // Consists of directory synchronization features that can be enabled or disabled.
    features?: OnPremisesDirectorySynchronizationFeature;
}
export interface AllowedValue extends Entity {
    /**
     * Indicates whether the predefined value is active or deactivated. If set to false, this predefined value can't be
     * assigned to any other supported directory objects.
     */
    isActive?: NullableOption<boolean>;
}
export interface AppScope extends Entity {
    /**
     * Provides the display name of the app-specific resource represented by the app scope. Provided for display purposes
     * since appScopeId is often an immutable, non-human-readable id. Read-only.
     */
    displayName?: NullableOption<string>;
    /**
     * Describes the type of app-specific resource represented by the app scope and is provided for display purposes, so a
     * user interface can convey to the user the kind of app specific resource represented by the app scope. Read-only.
     */
    type?: NullableOption<string>;
}
export interface CertificateBasedAuthConfiguration extends Entity {
    // Collection of certificate authorities which creates a trusted certificate chain.
    certificateAuthorities?: CertificateAuthority[];
}
export interface Contract extends DirectoryObject {
    /**
     * Type of contract. Possible values are: SyndicationPartner, BreadthPartner, ResellerPartner. See more in the table
     * below.
     */
    contractType?: NullableOption<string>;
    /**
     * The unique identifier for the customer tenant referenced by this partnership. Corresponds to the id property of the
     * customer tenant's organization resource.
     */
    customerId?: NullableOption<string>;
    /**
     * A copy of the customer tenant's default domain name. The copy is made when the partnership with the customer is
     * established. It isn't automatically updated if the customer tenant's default domain name changes.
     */
    defaultDomainName?: NullableOption<string>;
    /**
     * A copy of the customer tenant's display name. The copy is made when the partnership with the customer is established.
     * It is not automatically updated if the customer tenant's display name changes.
     */
    displayName?: NullableOption<string>;
}
export interface CrossTenantAccessPolicyConfigurationDefault extends Entity {
    /**
     * Determines the default configuration for automatic user consent settings. The inboundAllowed and outboundAllowed
     * properties are always false and cannot be updated in the default configuration. Read-only.
     */
    automaticUserConsentSettings?: NullableOption<InboundOutboundPolicyConfiguration>;
    /**
     * Defines your default configuration for users from other organizations accessing your resources via Microsoft Entra B2B
     * collaboration.
     */
    b2bCollaborationInbound?: NullableOption<CrossTenantAccessPolicyB2BSetting>;
    /**
     * Defines your default configuration for users in your organization going outbound to access resources in another
     * organization via Microsoft Entra B2B collaboration.
     */
    b2bCollaborationOutbound?: NullableOption<CrossTenantAccessPolicyB2BSetting>;
    /**
     * Defines your default configuration for users from other organizations accessing your resources via Microsoft Entra B2B
     * direct connect.
     */
    b2bDirectConnectInbound?: NullableOption<CrossTenantAccessPolicyB2BSetting>;
    /**
     * Defines your default configuration for users in your organization going outbound to access resources in another
     * organization via Microsoft Entra B2B direct connect.
     */
    b2bDirectConnectOutbound?: NullableOption<CrossTenantAccessPolicyB2BSetting>;
    /**
     * Determines the default configuration for trusting other Conditional Access claims from external Microsoft Entra
     * organizations.
     */
    inboundTrust?: NullableOption<CrossTenantAccessPolicyInboundTrust>;
    /**
     * If true, the default configuration is set to the system default configuration. If false, the default settings have been
     * customized.
     */
    isServiceDefault?: NullableOption<boolean>;
}
export interface CrossTenantAccessPolicyConfigurationPartner {
    /**
     * Determines the partner-specific configuration for automatic user consent settings. Unless specifically configured, the
     * inboundAllowed and outboundAllowed properties are null and inherit from the default settings, which is always false.
     */
    automaticUserConsentSettings?: NullableOption<InboundOutboundPolicyConfiguration>;
    /**
     * Defines your partner-specific configuration for users from other organizations accessing your resources via Microsoft
     * Entra B2B collaboration.
     */
    b2bCollaborationInbound?: NullableOption<CrossTenantAccessPolicyB2BSetting>;
    /**
     * Defines your partner-specific configuration for users in your organization going outbound to access resources in
     * another organization via Microsoft Entra B2B collaboration.
     */
    b2bCollaborationOutbound?: NullableOption<CrossTenantAccessPolicyB2BSetting>;
    /**
     * Defines your partner-specific configuration for users from other organizations accessing your resources via Azure B2B
     * direct connect.
     */
    b2bDirectConnectInbound?: NullableOption<CrossTenantAccessPolicyB2BSetting>;
    /**
     * Defines your partner-specific configuration for users in your organization going outbound to access resources in
     * another organization via Microsoft Entra B2B direct connect.
     */
    b2bDirectConnectOutbound?: NullableOption<CrossTenantAccessPolicyB2BSetting>;
    /**
     * Determines the partner-specific configuration for trusting other Conditional Access claims from external Microsoft
     * Entra organizations.
     */
    inboundTrust?: NullableOption<CrossTenantAccessPolicyInboundTrust>;
    // Identifies whether the partner-specific configuration is a Cloud Service Provider for your organization.
    isServiceProvider?: NullableOption<boolean>;
    // The tenant identifier for the partner Microsoft Entra organization. Read-only. Key.
    tenantId?: string;
    /**
     * Defines the cross-tenant policy for the synchronization of users from a partner tenant. Use this user synchronization
     * policy to streamline collaboration between users in a multitenant organization by automating the creation, update, and
     * deletion of users from one tenant to another.
     */
    identitySynchronization?: NullableOption<CrossTenantIdentitySyncPolicyPartner>;
}
export interface CrossTenantIdentitySyncPolicyPartner {
    /**
     * Display name for the cross-tenant user synchronization policy. Use the name of the partner Microsoft Entra tenant to
     * easily identify the policy. Optional.
     */
    displayName?: NullableOption<string>;
    // Tenant identifier for the partner Microsoft Entra organization. Read-only.
    tenantId?: string;
    // Defines whether users can be synchronized from the partner tenant. Key.
    userSyncInbound?: NullableOption<CrossTenantUserSyncInbound>;
}
export interface Device extends DirectoryObject {
    /**
     * true if the account is enabled; otherwise, false. Required. Default is true. Supports $filter (eq, ne, not, in). Only
     * callers in Global Administrator and Cloud Device Administrator roles can set this property.
     */
    accountEnabled?: NullableOption<boolean>;
    // For internal use only. Not nullable. Supports $filter (eq, not, ge, le).
    alternativeSecurityIds?: AlternativeSecurityId[];
    /**
     * The timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only. Supports $filter (eq, ne, not, ge, le, and eq on null
     * values) and $orderby.
     */
    approximateLastSignInDateTime?: NullableOption<string>;
    /**
     * The timestamp when the device is no longer deemed compliant. The timestamp type represents date and time information
     * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     * Read-only.
     */
    complianceExpirationDateTime?: NullableOption<string>;
    // User-defined property set by Intune to automatically add devices to groups and simplify managing devices.
    deviceCategory?: NullableOption<string>;
    /**
     * Unique identifier set by Azure Device Registration Service at the time of registration. This is an alternate key that
     * can be used to reference the device object. Supports $filter (eq, ne, not, startsWith).
     */
    deviceId?: NullableOption<string>;
    // For internal use only. Set to null.
    deviceMetadata?: NullableOption<string>;
    // Ownership of the device. This property is set by Intune. Possible values are: unknown, company, personal.
    deviceOwnership?: NullableOption<string>;
    // For internal use only.
    deviceVersion?: NullableOption<number>;
    /**
     * The display name for the device. Required. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null
     * values), $search, and $orderby.
     */
    displayName?: NullableOption<string>;
    /**
     * Enrollment profile applied to the device. For example, Apple Device Enrollment Profile, Device enrollment - Corporate
     * device identifiers, or Windows Autopilot profile name. This property is set by Intune.
     */
    enrollmentProfileName?: NullableOption<string>;
    /**
     * true if the device complies with Mobile Device Management (MDM) policies; otherwise, false. Read-only. This can only be
     * updated by Intune for any device OS type or by an approved MDM app for Windows OS devices. Supports $filter (eq, ne,
     * not).
     */
    isCompliant?: NullableOption<boolean>;
    /**
     * true if the device is managed by a Mobile Device Management (MDM) app; otherwise, false. This can only be updated by
     * Intune for any device OS type or by an approved MDM app for Windows OS devices. Supports $filter (eq, ne, not).
     */
    isManaged?: NullableOption<boolean>;
    // Application identifier used to register device into MDM. Read-only. Supports $filter (eq, ne, not, startsWith).
    mdmAppId?: NullableOption<string>;
    /**
     * The last time at which the object was synced with the on-premises directory. The Timestamp type represents date and
     * time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z Read-only. Supports $filter (eq, ne, not, ge, le, in).
     */
    onPremisesLastSyncDateTime?: NullableOption<string>;
    /**
     * true if this object is synced from an on-premises directory; false if this object was originally synced from an
     * on-premises directory but is no longer synced; null if this object has never been synced from an on-premises directory
     * (default). Read-only. Supports $filter (eq, ne, not, in, and eq on null values).
     */
    onPremisesSyncEnabled?: NullableOption<boolean>;
    /**
     * The type of operating system on the device. Required. Supports $filter (eq, ne, not, ge, le, startsWith, and eq on null
     * values).
     */
    operatingSystem?: NullableOption<string>;
    /**
     * The version of the operating system on the device. Required. Supports $filter (eq, ne, not, ge, le, startsWith, and eq
     * on null values).
     */
    operatingSystemVersion?: NullableOption<string>;
    // For internal use only. Not nullable. Supports $filter (eq, not, ge, le, startsWith,/$count eq 0, /$count ne 0).
    physicalIds?: string[];
    // The profile type of the device. Possible values: RegisteredDevice (default), SecureVM, Printer, Shared, IoT.
    profileType?: NullableOption<string>;
    /**
     * Date and time of when the device was registered. The timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    registrationDateTime?: NullableOption<string>;
    // List of labels applied to the device by the system. Supports $filter (/$count eq 0, /$count ne 0).
    systemLabels?: string[];
    /**
     * Type of trust for the joined device. Read-only. Possible values: Workplace (indicates bring your own personal devices),
     * AzureAd (Cloud only joined devices), ServerAd (on-premises domain joined devices joined to Microsoft Entra ID). For
     * more details, see Introduction to device management in Microsoft Entra ID.
     */
    trustType?: NullableOption<string>;
    // Groups and administrative units that this device is a member of. Read-only. Nullable. Supports $expand.
    memberOf?: NullableOption<DirectoryObject[]>;
    /**
     * The user that cloud joined the device or registered their personal device. The registered owner is set at the time of
     * registration. Read-only. Nullable. Supports $expand.
     */
    registeredOwners?: NullableOption<DirectoryObject[]>;
    /**
     * Collection of registered users of the device. For cloud joined devices and registered personal devices, registered
     * users are set to the same value as registered owners at the time of registration. Read-only. Nullable. Supports
     * $expand.
     */
    registeredUsers?: NullableOption<DirectoryObject[]>;
    // Groups and administrative units that the device is a member of. This operation is transitive. Supports $expand.
    transitiveMemberOf?: NullableOption<DirectoryObject[]>;
    // The collection of open extensions defined for the device. Read-only. Nullable.
    extensions?: NullableOption<Extension[]>;
}
export interface DirectoryObjectPartnerReference extends DirectoryObject {
    // Description of the object returned. Read-only.
    description?: NullableOption<string>;
    // Name of directory object being returned, like group or application. Read-only.
    displayName?: NullableOption<string>;
    // The tenant identifier for the partner tenant. Read-only.
    externalPartnerTenantId?: NullableOption<string>;
    // The type of the referenced object in the partner tenant. Read-only.
    objectType?: NullableOption<string>;
}
export interface DirectoryRole extends DirectoryObject {
    // The description for the directory role. Read-only. Supports $filter (eq), $search, $select.
    description?: NullableOption<string>;
    // The display name for the directory role. Read-only. Supports $filter (eq), $search, $select.
    displayName?: NullableOption<string>;
    /**
     * The id of the directoryRoleTemplate that this role is based on. The property must be specified when activating a
     * directory role in a tenant with a POST operation. After the directory role has been activated, the property is read
     * only. Supports $filter (eq), $select.
     */
    roleTemplateId?: NullableOption<string>;
    // Users that are members of this directory role. HTTP Methods: GET, POST, DELETE. Read-only. Nullable. Supports $expand.
    members?: NullableOption<DirectoryObject[]>;
    // Members of this directory role that are scoped to administrative units. Read-only. Nullable.
    scopedMembers?: NullableOption<ScopedRoleMembership[]>;
}
export interface DirectoryRoleTemplate extends DirectoryObject {
    // The description to set for the directory role. Read-only.
    description?: NullableOption<string>;
    // The display name to set for the directory role. Read-only.
    displayName?: NullableOption<string>;
}
export interface Domain extends Entity {
    /**
     * Indicates the configured authentication type for the domain. The value is either Managed or Federated. Managed
     * indicates a cloud managed domain where Microsoft Entra ID performs user authentication. Federated indicates
     * authentication is federated with an identity provider such as the tenant's on-premises Active Directory via Active
     * Directory Federation Services. Not nullable.
     */
    authenticationType?: string;
    /**
     * This property is always null except when the verify action is used. When the verify action is used, a domain entity is
     * returned in the response. The availabilityStatus property of the domain entity in the response is either
     * AvailableImmediately or EmailVerifiedDomainTakeoverScheduled.
     */
    availabilityStatus?: NullableOption<string>;
    /**
     * The value of the property is false if the DNS record management of the domain has been delegated to Microsoft 365.
     * Otherwise, the value is true. Not nullable
     */
    isAdminManaged?: boolean;
    /**
     * true if this is the default domain that is used for user creation. There is only one default domain per company. Not
     * nullable
     */
    isDefault?: boolean;
    /**
     * true if this is the initial domain created by Microsoft Online Services (companyname.onmicrosoft.com). There is only
     * one initial domain per company. Not nullable
     */
    isInitial?: boolean;
    // true if the domain is a verified root domain. Otherwise, false if the domain is a subdomain or unverified. Not nullable
    isRoot?: boolean;
    // true if the domain has completed domain ownership verification. Not nullable
    isVerified?: boolean;
    manufacturer?: NullableOption<string>;
    model?: NullableOption<string>;
    /**
     * Specifies the number of days before a user receives notification that their password will expire. If the property is
     * not set, a default value of 14 days will be used.
     */
    passwordNotificationWindowInDays?: NullableOption<number>;
    /**
     * Specifies the length of time that a password is valid before it must be changed. If the property is not set, a default
     * value of 90 days will be used.
     */
    passwordValidityPeriodInDays?: NullableOption<number>;
    // Status of asynchronous operations scheduled for the domain.
    state?: NullableOption<DomainState>;
    /**
     * The capabilities assigned to the domain. Can include 0, 1 or more of following values: Email, Sharepoint,
     * EmailInternalRelayOnly, OfficeCommunicationsOnline, SharePointDefaultDomain, FullRedelegation, SharePointPublic,
     * OrgIdAuthentication, Yammer, Intune. The values which you can add/remove using Graph API include: Email,
     * OfficeCommunicationsOnline, Yammer. Not nullable.
     */
    supportedServices?: string[];
    /**
     * The objects such as users and groups that reference the domain ID. Read-only, Nullable. Supports $expand and $filter by
     * the OData type of objects returned. For example /domains/{domainId}/domainNameReferences/microsoft.graph.user and
     * /domains/{domainId}/domainNameReferences/microsoft.graph.group.
     */
    domainNameReferences?: NullableOption<DirectoryObject[]>;
    // Domain settings configured by a customer when federated with Microsoft Entra ID. Supports $expand.
    federationConfiguration?: NullableOption<InternalDomainFederation[]>;
    /**
     * DNS records the customer adds to the DNS zone file of the domain before the domain can be used by Microsoft Online
     * services. Read-only, Nullable. Supports $expand.
     */
    serviceConfigurationRecords?: NullableOption<DomainDnsRecord[]>;
    /**
     * DNS records that the customer adds to the DNS zone file of the domain before the customer can complete domain ownership
     * verification with Microsoft Entra ID. Read-only, Nullable. Supports $expand.
     */
    verificationDnsRecords?: NullableOption<DomainDnsRecord[]>;
}
export interface SamlOrWsFedProvider extends IdentityProviderBase {
    // Issuer URI of the federation server.
    issuerUri?: NullableOption<string>;
    // URI of the metadata exchange endpoint used for authentication from rich client applications.
    metadataExchangeUri?: NullableOption<string>;
    // URI that web-based clients are directed to when signing in to Microsoft Entra services.
    passiveSignInUri?: NullableOption<string>;
    // Preferred authentication protocol. The possible values are: wsFed, saml, unknownFutureValue.
    preferredAuthenticationProtocol?: NullableOption<AuthenticationProtocol>;
    /**
     * Current certificate used to sign tokens passed to the Microsoft identity platform. The certificate is formatted as a
     * Base64 encoded string of the public portion of the federated IdP's token signing certificate and must be compatible
     * with the X509Certificate2 class. This property is used in the following scenarios: if a rollover is required outside of
     * the autorollover update a new federation service is being set up if the new token signing certificate isn't present in
     * the federation properties after the federation service certificate has been updated. Microsoft Entra ID updates
     * certificates via an autorollover process in which it attempts to retrieve a new certificate from the federation service
     * metadata, 30 days before expiry of the current certificate. If a new certificate isn't available, Microsoft Entra ID
     * monitors the metadata daily and will update the federation settings for the domain when a new certificate is available.
     */
    signingCertificate?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InternalDomainFederation extends SamlOrWsFedProvider {
    /**
     * URL of the endpoint used by active clients when authenticating with federated domains set up for single sign-on in
     * Microsoft Entra ID. Corresponds to the ActiveLogOnUri property of the Set-MsolDomainFederationSettings MSOnline v1
     * PowerShell cmdlet.
     */
    activeSignInUri?: NullableOption<string>;
    /**
     * Determines whether Microsoft Entra ID accepts the MFA performed by the federated IdP when a federated user accesses an
     * application that is governed by a conditional access policy that requires MFA. The possible values are:
     * acceptIfMfaDoneByFederatedIdp, enforceMfaByFederatedIdp, rejectMfaByFederatedIdp, unknownFutureValue. For more
     * information, see federatedIdpMfaBehavior values.
     */
    federatedIdpMfaBehavior?: NullableOption<FederatedIdpMfaBehavior>;
    /**
     * If true, when SAML authentication requests are sent to the federated SAML IdP, Microsoft Entra ID will sign those
     * requests using the OrgID signing key. If false (default), the SAML authentication requests sent to the federated IdP
     * aren't signed.
     */
    isSignedAuthenticationRequestRequired?: NullableOption<boolean>;
    /**
     * Fallback token signing certificate that can also be used to sign tokens, for example when the primary signing
     * certificate expires. Formatted as Base64 encoded strings of the public portion of the federated IdP's token signing
     * certificate. Needs to be compatible with the X509Certificate2 class. Much like the signingCertificate, the
     * nextSigningCertificate property is used if a rollover is required outside of the auto-rollover update, a new federation
     * service is being set up, or if the new token signing certificate isn't present in the federation properties after the
     * federation service certificate has been updated.
     */
    nextSigningCertificate?: NullableOption<string>;
    /**
     * Sets the preferred behavior for the sign-in prompt. The possible values are: translateToFreshPasswordAuthentication,
     * nativeSupport, disabled, unknownFutureValue.
     */
    promptLoginBehavior?: NullableOption<PromptLoginBehavior>;
    // Provides status and timestamp of the last update of the signing certificate.
    signingCertificateUpdateStatus?: NullableOption<SigningCertificateUpdateStatus>;
    /**
     * URI that clients are redirected to when they sign out of Microsoft Entra services. Corresponds to the LogOffUri
     * property of the Set-MsolDomainFederationSettings MSOnline v1 PowerShell cmdlet.
     */
    signOutUri?: NullableOption<string>;
}
export interface DomainDnsRecord extends Entity {
    /**
     * If false, this record must be configured by the customer at the DNS host for Microsoft Online Services to operate
     * correctly with the domain.
     */
    isOptional?: boolean;
    // Value used when configuring the name of the DNS record at the DNS host.
    label?: string;
    // Indicates what type of DNS record this entity represents. The value can be CName, Mx, Srv, or Txt.
    recordType?: NullableOption<string>;
    /**
     * Microsoft Online Service or feature that has a dependency on this DNS record. Can be one of the following values: null,
     * Email, Sharepoint, EmailInternalRelayOnly, OfficeCommunicationsOnline, SharePointDefaultDomain, FullRedelegation,
     * SharePointPublic, OrgIdAuthentication, Yammer, Intune.
     */
    supportedService?: string;
    // Value to use when configuring the time-to-live (ttl) property of the DNS record at the DNS host. Not nullable.
    ttl?: number;
}
export interface DomainDnsCnameRecord extends DomainDnsRecord {
    // The canonical name of the CNAME record. Used to configure the CNAME record at the DNS host.
    canonicalName?: NullableOption<string>;
}
export interface DomainDnsMxRecord extends DomainDnsRecord {
    // Value used when configuring the answer/destination/value of the MX record at the DNS host.
    mailExchange?: string;
    // Value used when configuring the Preference/Priority property of the MX record at the DNS host.
    preference?: NullableOption<number>;
}
export interface DomainDnsSrvRecord extends DomainDnsRecord {
    // Value to use when configuring the Target property of the SRV record at the DNS host.
    nameTarget?: NullableOption<string>;
    // Value to use when configuring the port property of the SRV record at the DNS host.
    port?: NullableOption<number>;
    // Value to use when configuring the priority property of the SRV record at the DNS host.
    priority?: NullableOption<number>;
    // Value to use when configuring the protocol property of the SRV record at the DNS host.
    protocol?: NullableOption<string>;
    // Value to use when configuring the service property of the SRV record at the DNS host.
    service?: NullableOption<string>;
    // Value to use when configuring the weight property of the SRV record at the DNS host.
    weight?: NullableOption<number>;
}
export interface DomainDnsTxtRecord extends DomainDnsRecord {
    // Value used when configuring the text property at the DNS host.
    text?: string;
}
export interface DomainDnsUnavailableRecord extends DomainDnsRecord {
    // Provides the reason why the DomainDnsUnavailableRecord entity is returned.
    description?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface ExternalDomainName extends Entity {}
export interface GroupSettingTemplate extends DirectoryObject {
    // Description of the template.
    description?: NullableOption<string>;
    /**
     * Display name of the template. The template named Group.Unified can be used to configure tenant-wide Microsoft 365 group
     * settings, while the template named Group.Unified.Guest can be used to configure group-specific settings.
     */
    displayName?: NullableOption<string>;
    /**
     * Collection of settingTemplateValues that list the set of available settings, defaults and types that make up this
     * template.
     */
    values?: SettingTemplateValue[];
}
export interface Organization extends DirectoryObject {
    // The collection of service plans associated with the tenant. Not nullable.
    assignedPlans?: AssignedPlan[];
    /**
     * Telephone number for the organization. Although this is a string collection, only one number can be set for this
     * property.
     */
    businessPhones?: string[];
    // City name of the address for the organization.
    city?: NullableOption<string>;
    // Country/region name of the address for the organization.
    country?: NullableOption<string>;
    // Country or region abbreviation for the organization in ISO 3166-2 format.
    countryLetterCode?: NullableOption<string>;
    /**
     * Timestamp of when the organization was created. The value cannot be modified and is automatically populated when the
     * organization is created. The Timestamp type represents date and time information using ISO 8601 format and is always in
     * UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    // Two-letter ISO 3166 country code indicating the default service usage location of an organization.
    defaultUsageLocation?: NullableOption<string>;
    // The display name for the tenant.
    displayName?: NullableOption<string>;
    // Not nullable.
    marketingNotificationEmails?: string[];
    /**
     * The time and date at which the tenant was last synced with the on-premises directory. The Timestamp type represents
     * date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z. Read-only.
     */
    onPremisesLastSyncDateTime?: NullableOption<string>;
    /**
     * true if this object is synced from an on-premises directory; false if this object was originally synced from an
     * on-premises directory but is no longer synced. Nullable. null if this object has never been synced from an on-premises
     * directory (default).
     */
    onPremisesSyncEnabled?: NullableOption<boolean>;
    /**
     * The type of partnership this tenant has with Microsoft. The possible values are: microsoftSupport, syndicatePartner,
     * breadthPartner, breadthPartnerDelegatedAdmin, resellerPartnerDelegatedAdmin, valueAddedResellerPartnerDelegatedAdmin,
     * unknownFutureValue. Nullable. For more information about the possible types, see partnerTenantType values.
     */
    partnerTenantType?: NullableOption<PartnerTenantType>;
    // Postal code of the address for the organization.
    postalCode?: NullableOption<string>;
    // The preferred language for the organization. Should follow ISO 639-1 Code; for example, en.
    preferredLanguage?: NullableOption<string>;
    // The privacy profile of an organization.
    privacyProfile?: NullableOption<PrivacyProfile>;
    // Not nullable.
    provisionedPlans?: ProvisionedPlan[];
    // Not nullable.
    securityComplianceNotificationMails?: string[];
    // Not nullable.
    securityComplianceNotificationPhones?: string[];
    // State name of the address for the organization.
    state?: NullableOption<string>;
    // Street name of the address for organization.
    street?: NullableOption<string>;
    // Not nullable.
    technicalNotificationMails?: string[];
    /**
     * Not nullable. The tenant type option that was selected when the tenant was created. The possible values are: AAD - An
     * enterprise identity access management (IAM) service that serves business-to-employee and business-to-business (B2B)
     * scenarios. AAD B2C A customer identity access management (CIAM) service that serves business-to-consumer (B2C)
     * scenarios.
     */
    tenantType?: NullableOption<string>;
    // The collection of domains associated with this tenant. Not nullable.
    verifiedDomains?: VerifiedDomain[];
    // Mobile device management authority. Possible values are: unknown, intune, sccm, office365.
    mobileDeviceManagementAuthority?: MdmAuthority;
    // Branding for the organization. Nullable.
    branding?: NullableOption<OrganizationalBranding>;
    /**
     * Navigation property to manage certificate-based authentication configuration. Only a single instance of
     * certificateBasedAuthConfiguration can be created in the collection.
     */
    certificateBasedAuthConfiguration?: NullableOption<CertificateBasedAuthConfiguration[]>;
    // The collection of open extensions defined for the organization. Read-only. Nullable.
    extensions?: NullableOption<Extension[]>;
}
export interface OrganizationalBrandingProperties extends Entity {
    /**
     * Color that appears in place of the background image in low-bandwidth connections. We recommend that you use the primary
     * color of your banner logo or your organization color. Specify this in hexadecimal format, for example, white is
     * #FFFFFF.
     */
    backgroundColor?: NullableOption<string>;
    /**
     * Image that appears as the background of the sign-in page. The allowed types are PNG or JPEG not smaller than 300 KB and
     * not larger than 1920 × 1080 pixels. A smaller image will reduce bandwidth requirements and make the page load faster.
     */
    backgroundImage?: NullableOption<any>;
    /**
     * A relative URL for the backgroundImage property that is combined with a CDN base URL from the cdnList to provide the
     * version served by a CDN. Read-only.
     */
    backgroundImageRelativeUrl?: NullableOption<string>;
    /**
     * A banner version of your company logo that appears on the sign-in page. The allowed types are PNG or JPEG not larger
     * than 36 × 245 pixels. We recommend using a transparent image with no padding around the logo.
     */
    bannerLogo?: NullableOption<any>;
    /**
     * A relative URL for the bannerLogo property that is combined with a CDN base URL from the cdnList to provide the
     * read-only version served by a CDN. Read-only.
     */
    bannerLogoRelativeUrl?: NullableOption<string>;
    /**
     * A list of base URLs for all available CDN providers that are serving the assets of the current resource. Several CDN
     * providers are used at the same time for high availability of read requests. Read-only.
     */
    cdnList?: NullableOption<string[]>;
    /**
     * A custom URL for resetting account credentials. This URL must be in ASCII format or non-ASCII characters must be URL
     * encoded, and not exceed 128 characters.
     */
    customAccountResetCredentialsUrl?: NullableOption<string>;
    /**
     * A string to replace the default 'Can't access your account?' self-service password reset (SSPR) hyperlink text on the
     * sign-in page. This text must be in Unicode format and not exceed 256 characters.
     */
    customCannotAccessYourAccountText?: NullableOption<string>;
    /**
     * A custom URL to replace the default URL of the self-service password reset (SSPR) 'Can't access your account?'
     * hyperlink on the sign-in page. This URL must be in ASCII format or non-ASCII characters must be URL encoded, and not
     * exceed 128 characters. DO NOT USE. Use customAccountResetCredentialsUrl instead.
     */
    customCannotAccessYourAccountUrl?: NullableOption<string>;
    // CSS styling that appears on the sign-in page. The allowed format is .css format only and not larger than 25 KB.
    customCSS?: NullableOption<any>;
    /**
     * A relative URL for the customCSS property that is combined with a CDN base URL from the cdnList to provide the version
     * served by a CDN. Read-only.
     */
    customCSSRelativeUrl?: NullableOption<string>;
    /**
     * A string to replace the default 'Forgot my password' hyperlink text on the sign-in form. This text must be in Unicode
     * format and not exceed 256 characters.
     */
    customForgotMyPasswordText?: NullableOption<string>;
    /**
     * A string to replace the default 'Privacy and Cookies' hyperlink text in the footer. This text must be in Unicode format
     * and not exceed 256 characters.
     */
    customPrivacyAndCookiesText?: NullableOption<string>;
    /**
     * A custom URL to replace the default URL of the 'Privacy and Cookies' hyperlink in the footer. This URL must be in ASCII
     * format or non-ASCII characters must be URL encoded, and not exceed 128 characters.
     */
    customPrivacyAndCookiesUrl?: NullableOption<string>;
    /**
     * A string to replace the default 'reset it now' hyperlink text on the sign-in form. This text must be in Unicode format
     * and not exceed 256 characters. DO NOT USE: Customization of the 'reset it now' hyperlink text is currently not
     * supported.
     */
    customResetItNowText?: NullableOption<string>;
    /**
     * A string to replace the the default 'Terms of Use' hyperlink text in the footer. This text must be in Unicode format
     * and not exceed 256 characters.
     */
    customTermsOfUseText?: NullableOption<string>;
    /**
     * A custom URL to replace the default URL of the 'Terms of Use' hyperlink in the footer. This URL must be in ASCII format
     * or non-ASCII characters must be URL encoded, and not exceed 128characters.
     */
    customTermsOfUseUrl?: NullableOption<string>;
    // A custom icon (favicon) to replace a default Microsoft product favicon on a Microsoft Entra tenant.
    favicon?: NullableOption<any>;
    /**
     * A relative url for the favicon above that is combined with a CDN base URL from the cdnList to provide the version
     * served by a CDN. Read-only.
     */
    faviconRelativeUrl?: NullableOption<string>;
    // The RGB color to apply to customize the color of the header.
    headerBackgroundColor?: NullableOption<string>;
    /**
     * A company logo that appears in the header of the sign-in page. The allowed types are PNG or JPEG not larger than 36 ×
     * 245 pixels. We recommend using a transparent image with no padding around the logo.
     */
    headerLogo?: NullableOption<any>;
    /**
     * A relative URL for the headerLogo property that is combined with a CDN base URL from the cdnList to provide the
     * read-only version served by a CDN. Read-only.
     */
    headerLogoRelativeUrl?: NullableOption<string>;
    // Represents the layout configuration to be displayed on the login page for a tenant.
    loginPageLayoutConfiguration?: NullableOption<LoginPageLayoutConfiguration>;
    // Represents the various texts that can be hidden on the login page for a tenant.
    loginPageTextVisibilitySettings?: NullableOption<LoginPageTextVisibilitySettings>;
    /**
     * Text that appears at the bottom of the sign-in box. Use this to communicate additional information, such as the phone
     * number to your help desk or a legal statement. This text must be in Unicode format and not exceed 1024 characters.
     */
    signInPageText?: NullableOption<string>;
    /**
     * A square version of your company logo that appears in Windows 10 out-of-box experiences (OOBE) and when Windows
     * Autopilot is enabled for deployment. Allowed types are PNG or JPEG not larger than 240 x 240 pixels and not more than
     * 10 KB in size. We recommend using a transparent image with no padding around the logo.
     */
    squareLogo?: NullableOption<any>;
    /**
     * A square dark version of your company logo that appears in Windows 10 out-of-box experiences (OOBE) and when Windows
     * Autopilot is enabled for deployment. Allowed types are PNG or JPEG not larger than 240 x 240 pixels and not more than
     * 10 KB in size. We recommend using a transparent image with no padding around the logo.
     */
    squareLogoDark?: NullableOption<any>;
    /**
     * A relative URL for the squareLogoDark property that is combined with a CDN base URL from the cdnList to provide the
     * version served by a CDN. Read-only.
     */
    squareLogoDarkRelativeUrl?: NullableOption<string>;
    /**
     * A relative URL for the squareLogo property that is combined with a CDN base URL from the cdnList to provide the version
     * served by a CDN. Read-only.
     */
    squareLogoRelativeUrl?: NullableOption<string>;
    /**
     * A string that shows as the hint in the username textbox on the sign-in screen. This text must be a Unicode, without
     * links or code, and can't exceed 64 characters.
     */
    usernameHintText?: NullableOption<string>;
}
export interface OrganizationalBranding extends OrganizationalBrandingProperties {
    // Add different branding based on a locale.
    localizations?: NullableOption<OrganizationalBrandingLocalization[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface OrganizationalBrandingLocalization extends OrganizationalBrandingProperties {}
export interface OrgContact extends DirectoryObject {
    // Postal addresses for this organizational contact. For now a contact can only have one physical address.
    addresses?: NullableOption<PhysicalOfficeAddress[]>;
    /**
     * Name of the company that this organizational contact belongs to. Supports $filter (eq, ne, not, ge, le, in, startsWith,
     * and eq for null values).
     */
    companyName?: NullableOption<string>;
    /**
     * The name for the department in which the contact works. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq
     * for null values).
     */
    department?: NullableOption<string>;
    /**
     * Display name for this organizational contact. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq for null
     * values), $search, and $orderby.
     */
    displayName?: NullableOption<string>;
    /**
     * First name for this organizational contact. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq for null
     * values).
     */
    givenName?: NullableOption<string>;
    /**
     * Job title for this organizational contact. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq for null
     * values).
     */
    jobTitle?: NullableOption<string>;
    /**
     * The SMTP address for the contact, for example, 'jeff@contoso.onmicrosoft.com'. Supports $filter (eq, ne, not, ge, le,
     * in, startsWith, and eq for null values).
     */
    mail?: NullableOption<string>;
    /**
     * Email alias (portion of email address pre-pending the @ symbol) for this organizational contact. Supports $filter (eq,
     * ne, not, ge, le, in, startsWith, and eq for null values).
     */
    mailNickname?: NullableOption<string>;
    /**
     * Date and time when this organizational contact was last synchronized from on-premises AD. This date and time
     * information uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z. Supports $filter (eq, ne, not, ge, le, in).
     */
    onPremisesLastSyncDateTime?: NullableOption<string>;
    /**
     * List of any synchronization provisioning errors for this organizational contact. Supports $filter (eq, not for category
     * and propertyCausingError), /$count eq 0, /$count ne 0.
     */
    onPremisesProvisioningErrors?: NullableOption<OnPremisesProvisioningError[]>;
    /**
     * true if this object is synced from an on-premises directory; false if this object was originally synced from an
     * on-premises directory but is no longer synced and now mastered in Exchange; null if this object has never been synced
     * from an on-premises directory (default). Supports $filter (eq, ne, not, in, and eq for null values).
     */
    onPremisesSyncEnabled?: NullableOption<boolean>;
    /**
     * List of phones for this organizational contact. Phone types can be mobile, business, and businessFax. Only one of each
     * type can ever be present in the collection.
     */
    phones?: NullableOption<Phone[]>;
    /**
     * For example: 'SMTP: bob@contoso.com', 'smtp: bob@sales.contoso.com'. The any operator is required for filter
     * expressions on multi-valued properties. Supports $filter (eq, not, ge, le, startsWith, /$count eq 0, /$count ne 0).
     */
    proxyAddresses?: string[];
    serviceProvisioningErrors?: NullableOption<ServiceProvisioningError[]>;
    /**
     * Last name for this organizational contact. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq for null
     * values).
     */
    surname?: NullableOption<string>;
    /**
     * The contact's direct reports. (The users and contacts that have their manager property set to this contact.) Read-only.
     * Nullable. Supports $expand.
     */
    directReports?: NullableOption<DirectoryObject[]>;
    // The user or contact that is this contact's manager. Read-only. Supports $expand and $filter (eq) by id.
    manager?: NullableOption<DirectoryObject>;
    // Groups that this contact is a member of. Read-only. Nullable. Supports $expand.
    memberOf?: NullableOption<DirectoryObject[]>;
    // Groups that this contact is a member of, including groups that the contact is nested under. Read-only. Nullable.
    transitiveMemberOf?: NullableOption<DirectoryObject[]>;
}
export interface PermissionGrantConditionSet extends Entity {
    /**
     * A list of appId values for the client applications to match with, or a list with the single value all to match any
     * client application. Default is the single value all.
     */
    clientApplicationIds?: NullableOption<string[]>;
    /**
     * A list of Microsoft Partner Network (MPN) IDs for verified publishers of the client application, or a list with the
     * single value all to match with client apps from any publisher. Default is the single value all.
     */
    clientApplicationPublisherIds?: NullableOption<string[]>;
    /**
     * Set to true to only match on client applications with a verified publisher. Set to false to match on any client app,
     * even if it doesn't have a verified publisher. Default is false.
     */
    clientApplicationsFromVerifiedPublisherOnly?: NullableOption<boolean>;
    /**
     * A list of Microsoft Entra tenant IDs in which the client application is registered, or a list with the single value all
     * to match with client apps registered in any tenant. Default is the single value all.
     */
    clientApplicationTenantIds?: NullableOption<string[]>;
    /**
     * The permission classification for the permission being granted, or all to match with any permission classification
     * (including permissions that aren't classified). Default is all.
     */
    permissionClassification?: NullableOption<string>;
    /**
     * The list of id values for the specific permissions to match with, or a list with the single value all to match with any
     * permission. The id of delegated permissions can be found in the oauth2PermissionScopes property of the API's
     * servicePrincipal object. The id of application permissions can be found in the appRoles property of the API's
     * servicePrincipal object. The id of resource-specific application permissions can be found in the
     * resourceSpecificApplicationPermissions property of the API's servicePrincipal object. Default is the single value all.
     */
    permissions?: NullableOption<string[]>;
    /**
     * The permission type of the permission being granted. Possible values: application for application permissions (for
     * example app roles), or delegated for delegated permissions. The value delegatedUserConsentable indicates delegated
     * permissions that haven't been configured by the API publisher to require admin consent—this value may be used in
     * built-in permission grant policies, but can't be used in custom permission grant policies. Required.
     */
    permissionType?: NullableOption<PermissionType>;
    /**
     * The appId of the resource application (for example the API) for which a permission is being granted, or any to match
     * with any resource application or API. Default is any.
     */
    resourceApplication?: NullableOption<string>;
}
export interface RbacApplication extends Entity {
    resourceNamespaces?: NullableOption<UnifiedRbacResourceNamespace[]>;
    // Resource to grant access to users or groups.
    roleAssignments?: NullableOption<UnifiedRoleAssignment[]>;
    // Resource representing the roles allowed by RBAC providers and the permissions assigned to the roles.
    roleDefinitions?: NullableOption<UnifiedRoleDefinition[]>;
    // Instances for active role assignments.
    roleAssignmentScheduleInstances?: NullableOption<UnifiedRoleAssignmentScheduleInstance[]>;
    // Requests for active role assignments to principals through PIM.
    roleAssignmentScheduleRequests?: NullableOption<UnifiedRoleAssignmentScheduleRequest[]>;
    // Schedules for active role assignment operations.
    roleAssignmentSchedules?: NullableOption<UnifiedRoleAssignmentSchedule[]>;
    // Instances for role eligibility requests.
    roleEligibilityScheduleInstances?: NullableOption<UnifiedRoleEligibilityScheduleInstance[]>;
    // Requests for role eligibilities for principals through PIM.
    roleEligibilityScheduleRequests?: NullableOption<UnifiedRoleEligibilityScheduleRequest[]>;
    // Schedules for role eligibility operations.
    roleEligibilitySchedules?: NullableOption<UnifiedRoleEligibilitySchedule[]>;
}
export interface UnifiedRbacResourceNamespace extends Entity {
    name?: string;
    resourceActions?: NullableOption<UnifiedRbacResourceAction[]>;
}
export interface UnifiedRoleAssignment extends Entity {
    /**
     * Identifier of the app-specific scope when the assignment scope is app-specific. Either this property or
     * directoryScopeId is required. App scopes are scopes that are defined and understood by this application only. Use / for
     * tenant-wide app scopes. Use directoryScopeId to limit the scope to particular directory objects, for example,
     * administrative units. Supports $filter (eq, in).
     */
    appScopeId?: NullableOption<string>;
    condition?: NullableOption<string>;
    /**
     * Identifier of the directory object representing the scope of the assignment. Either this property or appScopeId is
     * required. The scope of an assignment determines the set of resources for which the principal has been granted access.
     * Directory scopes are shared scopes stored in the directory that are understood by multiple applications. Use / for
     * tenant-wide scope. Use appScopeId to limit the scope to an application only. Supports $filter (eq, in).
     */
    directoryScopeId?: NullableOption<string>;
    // Identifier of the principal to which the assignment is granted. Supports $filter (eq, in).
    principalId?: NullableOption<string>;
    // Identifier of the role definition the assignment is for. Read only. Supports $filter (eq, in).
    roleDefinitionId?: NullableOption<string>;
    /**
     * Read-only property with details of the app specific scope when the assignment scope is app specific. Containment
     * entity. Supports $expand.
     */
    appScope?: NullableOption<AppScope>;
    // The directory object that is the scope of the assignment. Read-only. Supports $expand.
    directoryScope?: NullableOption<DirectoryObject>;
    // Referencing the assigned principal. Read-only. Supports $expand.
    principal?: NullableOption<DirectoryObject>;
    // The roleDefinition the assignment is for. Supports $expand. roleDefinition.Id will be auto expanded.
    roleDefinition?: NullableOption<UnifiedRoleDefinition>;
}
export interface UnifiedRoleDefinition extends Entity {
    // The description for the unifiedRoleDefinition. Read-only when isBuiltIn is true.
    description?: NullableOption<string>;
    // The display name for the unifiedRoleDefinition. Read-only when isBuiltIn is true. Required. Supports $filter (eq, in).
    displayName?: NullableOption<string>;
    /**
     * Flag indicating whether the role definition is part of the default set included in Microsoft Entra or a custom
     * definition. Read-only. Supports $filter (eq, in).
     */
    isBuiltIn?: NullableOption<boolean>;
    /**
     * Flag indicating whether the role is enabled for assignment. If false the role is not available for assignment.
     * Read-only when isBuiltIn is true.
     */
    isEnabled?: NullableOption<boolean>;
    /**
     * List of the scopes or permissions the role definition applies to. Currently only / is supported. Read-only when
     * isBuiltIn is true. DO NOT USE. This will be deprecated soon. Attach scope to role assignment.
     */
    resourceScopes?: string[];
    // List of permissions included in the role. Read-only when isBuiltIn is true. Required.
    rolePermissions?: UnifiedRolePermission[];
    /**
     * Custom template identifier that can be set when isBuiltIn is false but is read-only when isBuiltIn is true. This
     * identifier is typically used if one needs an identifier to be the same across different directories.
     */
    templateId?: NullableOption<string>;
    // Indicates version of the role definition. Read-only when isBuiltIn is true.
    version?: NullableOption<string>;
    /**
     * Read-only collection of role definitions that the given role definition inherits from. Only Microsoft Entra built-in
     * roles (isBuiltIn is true) support this attribute. Supports $expand.
     */
    inheritsPermissionsFrom?: NullableOption<UnifiedRoleDefinition[]>;
}
export interface UnifiedRoleScheduleInstanceBase extends Entity {
    /**
     * Identifier of the app-specific scope when the assignment or role eligibility is scoped to an app. The scope of an
     * assignment or role eligibility determines the set of resources for which the principal has been granted access. App
     * scopes are scopes that are defined and understood by this application only. Use / for tenant-wide app scopes. Use
     * directoryScopeId to limit the scope to particular directory objects, for example, administrative units.
     */
    appScopeId?: NullableOption<string>;
    /**
     * Identifier of the directory object representing the scope of the assignment or role eligibility. The scope of an
     * assignment or role eligibility determines the set of resources for which the principal has been granted access.
     * Directory scopes are shared scopes stored in the directory that are understood by multiple applications. Use / for
     * tenant-wide scope. Use appScopeId to limit the scope to an application only.
     */
    directoryScopeId?: NullableOption<string>;
    // Identifier of the principal that has been granted the role assignment or that's eligible for a role.
    principalId?: NullableOption<string>;
    /**
     * Identifier of the unifiedRoleDefinition object that is being assigned to the principal or that the principal is
     * eligible for.
     */
    roleDefinitionId?: NullableOption<string>;
    /**
     * Read-only property with details of the app-specific scope when the assignment or role eligibility is scoped to an app.
     * Nullable.
     */
    appScope?: NullableOption<AppScope>;
    // The directory object that is the scope of the assignment or role eligibility. Read-only.
    directoryScope?: NullableOption<DirectoryObject>;
    // The principal that's getting a role assignment or role eligibility through the request.
    principal?: NullableOption<DirectoryObject>;
    // Detailed information for the roleDefinition object that is referenced through the roleDefinitionId property.
    roleDefinition?: NullableOption<UnifiedRoleDefinition>;
}
export interface UnifiedRoleAssignmentScheduleInstance extends UnifiedRoleScheduleInstanceBase {
    // Type of the assignment which can either be Assigned or Activated. Supports $filter (eq, ne).
    assignmentType?: NullableOption<string>;
    // The end date of the schedule instance.
    endDateTime?: NullableOption<string>;
    /**
     * How the assignments is inherited. It can either be Inherited, Direct, or Group. It can further imply whether the
     * unifiedRoleAssignmentSchedule can be managed by the caller. Supports $filter (eq, ne).
     */
    memberType?: NullableOption<string>;
    // The identifier of the role assignment in Microsoft Entra. Supports $filter (eq, ne).
    roleAssignmentOriginId?: NullableOption<string>;
    /**
     * The identifier of the unifiedRoleAssignmentSchedule object from which this instance was created. Supports $filter (eq,
     * ne).
     */
    roleAssignmentScheduleId?: NullableOption<string>;
    // When this instance starts.
    startDateTime?: NullableOption<string>;
    /**
     * If the request is from an eligible administrator to activate a role, this parameter will show the related eligible
     * assignment for that activation. Otherwise, it is null. Supports $expand.
     */
    activatedUsing?: NullableOption<UnifiedRoleEligibilityScheduleInstance>;
}
export interface Request extends Entity {
    // The identifier of the approval of the request.
    approvalId?: NullableOption<string>;
    // The request completion date time.
    completedDateTime?: NullableOption<string>;
    // The principal that created the request.
    createdBy?: NullableOption<IdentitySet>;
    // The request creation date time.
    createdDateTime?: NullableOption<string>;
    // Free text field to define any custom data for the request. Not used.
    customData?: NullableOption<string>;
    /**
     * The status of the request. Not nullable. The possible values are: Canceled, Denied, Failed, Granted,
     * PendingAdminDecision, PendingApproval, PendingProvisioning, PendingScheduleCreation, Provisioned, Revoked, and
     * ScheduleCreated. Not nullable.
     */
    status?: string;
}
export interface UnifiedRoleAssignmentScheduleRequest extends Request {
    /**
     * Represents the type of the operation on the role assignment request. The possible values are: adminAssign, adminUpdate,
     * adminRemove, selfActivate, selfDeactivate, adminExtend, adminRenew, selfExtend, selfRenew, unknownFutureValue.
     * adminAssign: For administrators to assign roles to principals.adminRemove: For administrators to remove principals from
     * roles. adminUpdate: For administrators to change existing role assignments.adminExtend: For administrators to extend
     * expiring assignments.adminRenew: For administrators to renew expired assignments.selfActivate: For principals to
     * activate their assignments.selfDeactivate: For principals to deactivate their active assignments.selfExtend: For
     * principals to request to extend their expiring assignments.selfRenew: For principals to request to renew their expired
     * assignments.
     */
    action?: NullableOption<UnifiedRoleScheduleRequestActions>;
    /**
     * Identifier of the app-specific scope when the assignment is scoped to an app. The scope of an assignment determines the
     * set of resources for which the principal has been granted access. App scopes are scopes that are defined and understood
     * by this application only. Use / for tenant-wide app scopes. Use directoryScopeId to limit the scope to particular
     * directory objects, for example, administrative units. Supports $filter (eq, ne, and on null values).
     */
    appScopeId?: NullableOption<string>;
    /**
     * Identifier of the directory object representing the scope of the assignment. The scope of an assignment determines the
     * set of resources for which the principal has been granted access. Directory scopes are shared scopes stored in the
     * directory that are understood by multiple applications. Use / for tenant-wide scope. Use appScopeId to limit the scope
     * to an application only. Supports $filter (eq, ne, and on null values).
     */
    directoryScopeId?: NullableOption<string>;
    /**
     * Determines whether the call is a validation or an actual call. Only set this property if you want to check whether an
     * activation is subject to additional rules like MFA before actually submitting the request.
     */
    isValidationOnly?: NullableOption<boolean>;
    // A message provided by users and administrators when create they create the unifiedRoleAssignmentScheduleRequest object.
    justification?: NullableOption<string>;
    /**
     * Identifier of the principal that has been granted the assignment. Can be a user, role-assignable group, or a service
     * principal. Supports $filter (eq, ne).
     */
    principalId?: NullableOption<string>;
    // Identifier of the unifiedRoleDefinition object that is being assigned to the principal. Supports $filter (eq, ne).
    roleDefinitionId?: NullableOption<string>;
    // The period of the role assignment. Recurring schedules are currently unsupported.
    scheduleInfo?: NullableOption<RequestSchedule>;
    // Identifier of the schedule object that's linked to the assignment request. Supports $filter (eq, ne).
    targetScheduleId?: NullableOption<string>;
    // Ticket details linked to the role assignment request including details of the ticket number and ticket system.
    ticketInfo?: NullableOption<TicketInfo>;
    /**
     * If the request is from an eligible administrator to activate a role, this parameter will show the related eligible
     * assignment for that activation. Otherwise, it's null. Supports $expand.
     */
    activatedUsing?: NullableOption<UnifiedRoleEligibilitySchedule>;
    /**
     * Read-only property with details of the app-specific scope when the assignment is scoped to an app. Nullable. Supports
     * $expand.
     */
    appScope?: NullableOption<AppScope>;
    // The directory object that is the scope of the assignment. Read-only. Supports $expand.
    directoryScope?: NullableOption<DirectoryObject>;
    // The principal that's getting a role assignment through the request. Supports $expand.
    principal?: NullableOption<DirectoryObject>;
    /**
     * Detailed information for the unifiedRoleDefinition object that is referenced through the roleDefinitionId property.
     * Supports $expand.
     */
    roleDefinition?: NullableOption<UnifiedRoleDefinition>;
    /**
     * The schedule for an eligible role assignment that is referenced through the targetScheduleId property. Supports
     * $expand.
     */
    targetSchedule?: NullableOption<UnifiedRoleAssignmentSchedule>;
}
export interface UnifiedRoleScheduleBase extends Entity {
    /**
     * Identifier of the app-specific scope when the assignment or eligibility is scoped to an app. The scope of an assignment
     * or eligibility determines the set of resources for which the principal has been granted access. App scopes are scopes
     * that are defined and understood by this application only. Use / for tenant-wide app scopes. Use directoryScopeId to
     * limit the scope to particular directory objects, for example, administrative units.
     */
    appScopeId?: NullableOption<string>;
    // When the schedule was created.
    createdDateTime?: NullableOption<string>;
    // Identifier of the object through which this schedule was created.
    createdUsing?: NullableOption<string>;
    /**
     * Identifier of the directory object representing the scope of the assignment or eligibility. The scope of an assignment
     * or eligibility determines the set of resources for which the principal has been granted access. Directory scopes are
     * shared scopes stored in the directory that are understood by multiple applications. Use / for tenant-wide scope. Use
     * appScopeId to limit the scope to an application only.
     */
    directoryScopeId?: NullableOption<string>;
    // When the schedule was last modified.
    modifiedDateTime?: NullableOption<string>;
    // Identifier of the principal that has been granted the role assignment or eligibility.
    principalId?: NullableOption<string>;
    /**
     * Identifier of the unifiedRoleDefinition object that is being assigned to the principal or that a principal is eligible
     * for.
     */
    roleDefinitionId?: NullableOption<string>;
    // The status of the role assignment or eligibility request.
    status?: NullableOption<string>;
    /**
     * Read-only property with details of the app-specific scope when the role eligibility or assignment is scoped to an app.
     * Nullable.
     */
    appScope?: NullableOption<AppScope>;
    // The directory object that is the scope of the role eligibility or assignment. Read-only.
    directoryScope?: NullableOption<DirectoryObject>;
    // The principal that's getting a role assignment or that's eligible for a role through the request.
    principal?: NullableOption<DirectoryObject>;
    // Detailed information for the roleDefinition object that is referenced through the roleDefinitionId property.
    roleDefinition?: NullableOption<UnifiedRoleDefinition>;
}
export interface UnifiedRoleAssignmentSchedule extends UnifiedRoleScheduleBase {
    // Type of the assignment which can either be Assigned or Activated. Supports $filter (eq, ne).
    assignmentType?: NullableOption<string>;
    /**
     * How the assignments is inherited. It can either be Inherited, Direct, or Group. It can further imply whether the
     * unifiedRoleAssignmentSchedule can be managed by the caller. Supports $filter (eq, ne).
     */
    memberType?: NullableOption<string>;
    // The period of the role assignment. It can represent a single occurrence or multiple recurrences.
    scheduleInfo?: NullableOption<RequestSchedule>;
    /**
     * If the request is from an eligible administrator to activate a role, this parameter will show the related eligible
     * assignment for that activation. Otherwise, it is null. Supports $expand.
     */
    activatedUsing?: NullableOption<UnifiedRoleEligibilitySchedule>;
}
export interface UnifiedRoleEligibilityScheduleInstance extends UnifiedRoleScheduleInstanceBase {
    // The end date of the schedule instance.
    endDateTime?: NullableOption<string>;
    /**
     * How the role eligibility is inherited. It can either be Inherited, Direct, or Group. It can further imply whether the
     * unifiedRoleEligibilitySchedule can be managed by the caller. Supports $filter (eq, ne).
     */
    memberType?: NullableOption<string>;
    /**
     * The identifier of the unifiedRoleEligibilitySchedule object from which this instance was created. Supports $filter (eq,
     * ne).
     */
    roleEligibilityScheduleId?: NullableOption<string>;
    // When this instance starts.
    startDateTime?: NullableOption<string>;
}
export interface UnifiedRoleEligibilityScheduleRequest extends Request {
    /**
     * Represents the type of operation on the role eligibility request. The possible values are: adminAssign, adminUpdate,
     * adminRemove, selfActivate, selfDeactivate, adminExtend, adminRenew, selfExtend, selfRenew, unknownFutureValue.
     * adminAssign: For administrators to assign eligible roles to principals.adminRemove: For administrators to remove
     * eligible roles from principals. adminUpdate: For administrators to change existing role eligibilities.adminExtend: For
     * administrators to extend expiring role eligibilities.adminRenew: For administrators to renew expired
     * eligibilities.selfActivate: For users to activate their assignments.selfDeactivate: For users to deactivate their
     * active assignments.selfExtend: For users to request to extend their expiring assignments.selfRenew: For users to
     * request to renew their expired assignments.
     */
    action?: NullableOption<UnifiedRoleScheduleRequestActions>;
    /**
     * Identifier of the app-specific scope when the role eligibility is scoped to an app. The scope of a role eligibility
     * determines the set of resources for which the principal is eligible to access. App scopes are scopes that are defined
     * and understood by this application only. Use / for tenant-wide app scopes. Use directoryScopeId to limit the scope to
     * particular directory objects, for example, administrative units. Supports $filter (eq, ne, and on null values).
     */
    appScopeId?: NullableOption<string>;
    /**
     * Identifier of the directory object representing the scope of the role eligibility. The scope of a role eligibility
     * determines the set of resources for which the principal has been granted access. Directory scopes are shared scopes
     * stored in the directory that are understood by multiple applications. Use / for tenant-wide scope. Use appScopeId to
     * limit the scope to an application only. Supports $filter (eq, ne, and on null values).
     */
    directoryScopeId?: NullableOption<string>;
    /**
     * Determines whether the call is a validation or an actual call. Only set this property if you want to check whether an
     * activation is subject to additional rules like MFA before actually submitting the request.
     */
    isValidationOnly?: NullableOption<boolean>;
    /**
     * A message provided by users and administrators when create they create the unifiedRoleEligibilityScheduleRequest
     * object.
     */
    justification?: NullableOption<string>;
    /**
     * Identifier of the principal that has been granted the role eligibility. Can be a user or a role-assignable group. You
     * can grant only active assignments service principals.Supports $filter (eq, ne).
     */
    principalId?: NullableOption<string>;
    // Identifier of the unifiedRoleDefinition object that is being assigned to the principal. Supports $filter (eq, ne).
    roleDefinitionId?: NullableOption<string>;
    // The period of the role eligibility. Recurring schedules are currently unsupported.
    scheduleInfo?: NullableOption<RequestSchedule>;
    // Identifier of the schedule object that's linked to the eligibility request. Supports $filter (eq, ne).
    targetScheduleId?: NullableOption<string>;
    /**
     * Ticket details linked to the role eligibility request including details of the ticket number and ticket system.
     * Optional.
     */
    ticketInfo?: NullableOption<TicketInfo>;
    /**
     * Read-only property with details of the app-specific scope when the role eligibility is scoped to an app. Nullable.
     * Supports $expand.
     */
    appScope?: NullableOption<AppScope>;
    // The directory object that is the scope of the role eligibility. Read-only. Supports $expand.
    directoryScope?: NullableOption<DirectoryObject>;
    // The principal that's getting a role eligibility through the request. Supports $expand.
    principal?: NullableOption<DirectoryObject>;
    /**
     * Detailed information for the unifiedRoleDefinition object that is referenced through the roleDefinitionId property.
     * Supports $expand.
     */
    roleDefinition?: NullableOption<UnifiedRoleDefinition>;
    // The schedule for a role eligibility that is referenced through the targetScheduleId property. Supports $expand.
    targetSchedule?: NullableOption<UnifiedRoleEligibilitySchedule>;
}
export interface UnifiedRoleEligibilitySchedule extends UnifiedRoleScheduleBase {
    /**
     * How the role eligibility is inherited. It can either be Inherited, Direct, or Group. It can further imply whether the
     * unifiedRoleEligibilitySchedule can be managed by the caller. Supports $filter (eq, ne).
     */
    memberType?: NullableOption<string>;
    // The period of the role eligibility.
    scheduleInfo?: NullableOption<RequestSchedule>;
}
export interface TargetDeviceGroup extends Entity {
    // Display name for the target device group.
    displayName?: NullableOption<string>;
}
export interface RoleManagement {
    directory?: NullableOption<RbacApplication>;
    // Container for roles and assignments for entitlement management resources.
    entitlementManagement?: NullableOption<RbacApplication>;
}
export interface SamlOrWsFedExternalDomainFederation extends SamlOrWsFedProvider {
    // Collection of domain names of the external organizations that the tenant is federating with. Supports $filter (eq).
    domains?: NullableOption<ExternalDomainName[]>;
}
export interface SubscribedSku extends Entity {
    // The unique ID of the account this SKU belongs to.
    accountId?: NullableOption<string>;
    // The name of the account this SKU belongs to.
    accountName?: NullableOption<string>;
    // The target class for this SKU. Only SKUs with target class User are assignable. Possible values are: 'User', 'Company'.
    appliesTo?: NullableOption<string>;
    /**
     * Enabled indicates that the prepaidUnits property has at least one unit that is enabled. LockedOut indicates that the
     * customer canceled their subscription. Possible values are: Enabled, Warning, Suspended, Deleted, LockedOut.
     */
    capabilityStatus?: NullableOption<string>;
    // The number of licenses that have been assigned.
    consumedUnits?: NullableOption<number>;
    // Information about the number and status of prepaid licenses.
    prepaidUnits?: NullableOption<LicenseUnitsDetail>;
    // Information about the service plans that are available with the SKU. Not nullable.
    servicePlans?: ServicePlanInfo[];
    // The unique identifier (GUID) for the service SKU.
    skuId?: NullableOption<string>;
    /**
     * The SKU part number; for example: 'AAD_PREMIUM' or 'RMSBASIC'. To get a list of commercial subscriptions that an
     * organization has acquired, see List subscribedSkus.
     */
    skuPartNumber?: NullableOption<string>;
    subscriptionIds?: NullableOption<string[]>;
}
export interface TenantRelationship {
    // The customer who has a delegated admin relationship with a Microsoft partner.
    delegatedAdminCustomers?: NullableOption<DelegatedAdminCustomer[]>;
    // The details of the delegated administrative privileges that a Microsoft partner has in a customer tenant.
    delegatedAdminRelationships?: NullableOption<DelegatedAdminRelationship[]>;
}
export interface DelegatedAdminCustomer extends Entity {
    // The Microsoft Entra ID display name of the customer tenant. Read-only. Supports $orderby.
    displayName?: NullableOption<string>;
    // The Microsoft Entra ID-assigned tenant ID of the customer. Read-only.
    tenantId?: string;
    // Contains the management details of a service in the customer tenant that's managed by delegated administration.
    serviceManagementDetails?: NullableOption<DelegatedAdminServiceManagementDetail[]>;
}
export interface DelegatedAdminRelationship extends Entity {
    /**
     * The access details that contain the identifiers of the administrative roles that the partner admin is requesting in the
     * customer tenant.
     */
    accessDetails?: DelegatedAdminAccessDetails;
    // The date and time in ISO 8601 format and in UTC time when the relationship became active. Read-only.
    activatedDateTime?: NullableOption<string>;
    /**
     * The duration by which the validity of the relationship is automatically extended, denoted in ISO 8601 format. Supported
     * values are: P0D, PT0S, P180D. The default value is PT0S. PT0S indicates that the relationship expires when the
     * endDateTime is reached and it isn't automatically extended.
     */
    autoExtendDuration?: NullableOption<string>;
    // The date and time in ISO 8601 format and in UTC time when the relationship was created. Read-only.
    createdDateTime?: NullableOption<string>;
    /**
     * The display name and unique identifier of the customer of the relationship. This is configured either by the partner at
     * the time the relationship is created or by the system after the customer approves the relationship. Can't be changed by
     * the customer.
     */
    customer?: NullableOption<DelegatedAdminRelationshipCustomerParticipant>;
    /**
     * The display name of the relationship used for ease of identification. Must be unique across all delegated admin
     * relationships of the partner and is set by the partner only when the relationship is in the created status and can't be
     * changed by the customer.
     */
    displayName?: string;
    /**
     * The duration of the relationship in ISO 8601 format. Must be a value between P1D and P2Y inclusive. This is set by the
     * partner only when the relationship is in the created status and can't be changed by the customer.
     */
    duration?: string;
    /**
     * The date and time in ISO 8601 format and in UTC time when the status of relationship changes to either terminated or
     * expired. Calculated as endDateTime = activatedDateTime + duration. Read-only.
     */
    endDateTime?: NullableOption<string>;
    // The date and time in ISO 8601 format and in UTC time when the relationship was last modified. Read-only.
    lastModifiedDateTime?: NullableOption<string>;
    /**
     * The status of the relationship. Read Only. The possible values are: activating, active, approvalPending, approved,
     * created, expired, expiring, terminated, terminating, terminationRequested, unknownFutureValue. Supports $orderby.
     */
    status?: NullableOption<DelegatedAdminRelationshipStatus>;
    // The access assignments associated with the delegated admin relationship.
    accessAssignments?: NullableOption<DelegatedAdminAccessAssignment[]>;
    // The long running operations associated with the delegated admin relationship.
    operations?: NullableOption<DelegatedAdminRelationshipOperation[]>;
    // The requests associated with the delegated admin relationship.
    requests?: NullableOption<DelegatedAdminRelationshipRequest[]>;
}
export interface UnifiedRbacResourceAction extends Entity {
    actionVerb?: NullableOption<string>;
    authenticationContextId?: NullableOption<string>;
    description?: NullableOption<string>;
    isAuthenticationContextSettable?: NullableOption<boolean>;
    name?: string;
    resourceScopeId?: NullableOption<string>;
}
export interface Admin {
    // A container for Microsoft Edge resources. Read-only.
    edge?: NullableOption<Edge>;
    sharepoint?: NullableOption<Sharepoint>;
    // A container for service communications resources. Read-only.
    serviceAnnouncement?: NullableOption<ServiceAnnouncement>;
    // Represents a setting to control people-related admin settings in the tenant.
    people?: NullableOption<PeopleAdminSettings>;
}
export interface Edge extends Entity {
    // A container for Internet Explorer mode resources.
    internetExplorerMode?: NullableOption<InternetExplorerMode>;
}
export interface Sharepoint extends Entity {
    settings?: NullableOption<SharepointSettings>;
}
export interface ServiceAnnouncement extends Entity {
    /**
     * A collection of service health information for tenant. This property is a contained navigation property, it is nullable
     * and readonly.
     */
    healthOverviews?: NullableOption<ServiceHealth[]>;
    /**
     * A collection of service issues for tenant. This property is a contained navigation property, it is nullable and
     * readonly.
     */
    issues?: NullableOption<ServiceHealthIssue[]>;
    /**
     * A collection of service messages for tenant. This property is a contained navigation property, it is nullable and
     * readonly.
     */
    messages?: NullableOption<ServiceUpdateMessage[]>;
}
export interface PeopleAdminSettings extends Entity {
    // Contains a collection of the properties an administrator has defined as visible on the Microsoft 365 profile card.
    profileCardProperties?: NullableOption<ProfileCardProperty[]>;
}
export interface BrowserSharedCookie extends Entity {
    // The comment for the shared cookie.
    comment?: string;
    // The date and time when the shared cookie was created.
    createdDateTime?: string;
    // The date and time when the shared cookie was deleted.
    deletedDateTime?: NullableOption<string>;
    // The name of the cookie.
    displayName?: string;
    // The history of modifications applied to the cookie.
    history?: BrowserSharedCookieHistory[];
    // Controls whether a cookie is a host-only or domain cookie.
    hostOnly?: boolean;
    // The URL of the cookie.
    hostOrDomain?: string;
    // The user who last modified the cookie.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // The date and time when the cookie was last modified.
    lastModifiedDateTime?: string;
    // The path of the cookie.
    path?: string;
    /**
     * Specifies how the cookies are shared between Microsoft Edge and Internet Explorer. The possible values are:
     * microsoftEdge, internetExplorer11, both, unknownFutureValue.
     */
    sourceEnvironment?: BrowserSharedCookieSourceEnvironment;
    /**
     * The status of the cookie. The possible values are: published, pendingAdd, pendingEdit, pendingDelete,
     * unknownFutureValue.
     */
    status?: BrowserSharedCookieStatus;
}
export interface BrowserSite extends Entity {
    /**
     * Controls the behavior of redirected sites. If true, indicates that the site will open in Internet Explorer 11 or
     * Microsoft Edge even if the site is navigated to as part of a HTTP or meta refresh redirection chain.
     */
    allowRedirect?: boolean;
    // The comment for the site.
    comment?: string;
    /**
     * Controls what compatibility setting is used for specific sites or domains. The possible values are: default,
     * internetExplorer8Enterprise, internetExplorer7Enterprise, internetExplorer11, internetExplorer10, internetExplorer9,
     * internetExplorer8, internetExplorer7, internetExplorer5, unknownFutureValue.
     */
    compatibilityMode?: BrowserSiteCompatibilityMode;
    // The date and time when the site was created.
    createdDateTime?: string;
    // The date and time when the site was deleted.
    deletedDateTime?: NullableOption<string>;
    // The history of modifications applied to the site.
    history?: BrowserSiteHistory[];
    // The user who last modified the site.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // The date and time when the site was last modified.
    lastModifiedDateTime?: string;
    // The merge type of the site. The possible values are: noMerge, default, unknownFutureValue.
    mergeType?: BrowserSiteMergeType;
    /**
     * Indicates the status of the site. The possible values are: published, pendingAdd, pendingEdit, pendingDelete,
     * unknownFutureValue.
     */
    status?: BrowserSiteStatus;
    /**
     * The target environment that the site should open in. The possible values are: internetExplorerMode, internetExplorer11,
     * microsoftEdge, configurable, none, unknownFutureValue.Prior to June 15, 2022, the internetExplorer11 option would allow
     * opening a site in the Internet Explorer 11 (IE11) desktop application. Following the retirement of IE11 on June 15,
     * 2022, the internetExplorer11 option will no longer open an IE11 window and will instead behave the same as the
     * internetExplorerMode option.
     */
    targetEnvironment?: BrowserSiteTargetEnvironment;
    // The URL of the site.
    webUrl?: string;
}
export interface BrowserSiteList extends Entity {
    // The description of the site list.
    description?: string;
    // The name of the site list.
    displayName?: string;
    // The user who last modified the site list.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // The date and time when the site list was last modified.
    lastModifiedDateTime?: string;
    // The user who published the site list.
    publishedBy?: NullableOption<IdentitySet>;
    // The date and time when the site list was published.
    publishedDateTime?: NullableOption<string>;
    // The current revision of the site list.
    revision?: string;
    // The current status of the site list. The possible values are: draft, published, pending, unknownFutureValue.
    status?: BrowserSiteListStatus;
    // A collection of shared cookies defined for the site list.
    sharedCookies?: NullableOption<BrowserSharedCookie[]>;
    // A collection of sites defined for the site list.
    sites?: NullableOption<BrowserSite[]>;
}
// tslint:disable-next-line: interface-name
export interface InternetExplorerMode extends Entity {
    // A collection of site lists to support Internet Explorer mode.
    siteLists?: NullableOption<BrowserSiteList[]>;
}
export interface EducationAssignment extends Entity {
    /**
     * Optional field to control the assignment behavior for students who are added after the assignment is published. If not
     * specified, defaults to none. Supported values are: none, assignIfOpen. For example, a teacher can use assignIfOpen to
     * indicate that an assignment should be assigned to any new student who joins the class while the assignment is still
     * open, and none to indicate that an assignment should not be assigned to new students.
     */
    addedStudentAction?: NullableOption<EducationAddedStudentAction>;
    /**
     * Optional field to control the assignment behavior for adding assignments to students' and teachers' calendars when the
     * assignment is published. The possible values are: none, studentsAndPublisher, studentsAndTeamOwners,
     * unknownFutureValue, and studentsOnly. Note that you must use the Prefer: include-unknown-enum-members request header to
     * get the following value(s) in this evolvable enum: studentsOnly. The default value is none.
     */
    addToCalendarAction?: NullableOption<EducationAddToCalendarOptions>;
    /**
     * Identifies whether students can submit after the due date. If this property isn't specified during create, it defaults
     * to true.
     */
    allowLateSubmissions?: NullableOption<boolean>;
    /**
     * Identifies whether students can add their own resources to a submission or if they can only modify resources added by
     * the teacher.
     */
    allowStudentsToAddResourcesToSubmission?: NullableOption<boolean>;
    /**
     * The date when the assignment should become active. If in the future, the assignment isn't shown to the student until
     * this date. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For
     * example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    assignDateTime?: NullableOption<string>;
    /**
     * The moment that the assignment was published to students and the assignment shows up on the students timeline. The
     * Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    assignedDateTime?: NullableOption<string>;
    // Which users, or whole class should receive a submission object once the assignment is published.
    assignTo?: NullableOption<EducationAssignmentRecipient>;
    // Class which this assignment belongs.
    classId?: NullableOption<string>;
    /**
     * Date when the assignment will be closed for submissions. This is an optional field that can be null if the assignment
     * does not allowLateSubmissions or when the closeDateTime is the same as the dueDateTime. But if specified, then the
     * closeDateTime must be greater than or equal to the dueDateTime. The Timestamp type represents date and time information
     * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    closeDateTime?: NullableOption<string>;
    // Who created the assignment.
    createdBy?: NullableOption<IdentitySet>;
    /**
     * Moment when the assignment was created. The Timestamp type represents date and time information using ISO 8601 format
     * and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: NullableOption<string>;
    // Name of the assignment.
    displayName?: NullableOption<string>;
    /**
     * Date when the students assignment is due. The Timestamp type represents date and time information using ISO 8601 format
     * and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    dueDateTime?: NullableOption<string>;
    // Folder URL where all the feedback file resources for this assignment are stored.
    feedbackResourcesFolderUrl?: NullableOption<string>;
    // How the assignment will be graded.
    grading?: NullableOption<EducationAssignmentGradeType>;
    // Instructions for the assignment. This along with the display name tell the student what to do.
    instructions?: NullableOption<EducationItemBody>;
    // Who last modified the assignment.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * Moment when the assignment was last modified. The Timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastModifiedDateTime?: NullableOption<string>;
    /**
     * Optional field to specify the URL of the channel to post the assignment publish notification. If not specified or null,
     * defaults to the General channel. This field only applies to assignments where the assignTo value is
     * educationAssignmentClassRecipient. Updating the notificationChannelUrl isn't allowed after the assignment has been
     * published.
     */
    notificationChannelUrl?: NullableOption<string>;
    // Folder URL where all the file resources for this assignment are stored.
    resourcesFolderUrl?: NullableOption<string>;
    // Status of the Assignment. You can't PATCH this value. Possible values are: draft, scheduled, published, assigned.
    status?: NullableOption<EducationAssignmentStatus>;
    // The deep link URL for the given assignment.
    webUrl?: NullableOption<string>;
    // When set, enables users to easily find assignments of a given type. Read-only. Nullable.
    categories?: NullableOption<EducationCategory[]>;
    // Learning objects that are associated with this assignment. Only teachers can modify this list. Nullable.
    resources?: NullableOption<EducationAssignmentResource[]>;
    // When set, the grading rubric attached to this assignment.
    rubric?: NullableOption<EducationRubric>;
    // Once published, there is a submission object for each student representing their work and grade. Read-only. Nullable.
    submissions?: NullableOption<EducationSubmission[]>;
}
export interface EducationCategory extends Entity {
    // Unique identifier for the category.
    displayName?: NullableOption<string>;
}
export interface EducationAssignmentResource extends Entity {
    // Indicates whether this resource should be copied to each student submission for modification and submission. Required
    distributeForStudentWork?: NullableOption<boolean>;
    // Resource object that has been associated with this assignment.
    resource?: NullableOption<EducationResource>;
}
export interface EducationRubric extends Entity {
    // The user who created this resource.
    createdBy?: NullableOption<IdentitySet>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: NullableOption<string>;
    // The description of this rubric.
    description?: NullableOption<EducationItemBody>;
    // The name of this rubric.
    displayName?: NullableOption<string>;
    /**
     * The grading type of this rubric -- null for a no-points rubric, or educationAssignmentPointsGradeType for a points
     * rubric.
     */
    grading?: NullableOption<EducationAssignmentGradeType>;
    // The last user to modify the resource.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * Moment in time when the resource was last modified. The Timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastModifiedDateTime?: NullableOption<string>;
    // The collection of levels making up this rubric.
    levels?: NullableOption<RubricLevel[]>;
    // The collection of qualities making up this rubric.
    qualities?: NullableOption<RubricQuality[]>;
}
export interface EducationSubmission extends Entity {
    // User who moved the status of this submission to reassigned.
    reassignedBy?: NullableOption<IdentitySet>;
    /**
     * Moment in time when the submission was reassigned. The Timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    reassignedDateTime?: NullableOption<string>;
    // Who this submission is assigned to.
    recipient?: NullableOption<EducationSubmissionRecipient>;
    // Folder where all file resources for this submission need to be stored.
    resourcesFolderUrl?: NullableOption<string>;
    // User who moved the status of this submission to returned.
    returnedBy?: NullableOption<IdentitySet>;
    /**
     * Moment in time when the submission was returned. The Timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    returnedDateTime?: NullableOption<string>;
    /**
     * Read-only. Possible values are: working, submitted, returned, and reassigned. Note that you must use the Prefer:
     * include-unknown-enum-members request header to get the following value(s) in this evolvable enum: reassigned.
     */
    status?: NullableOption<EducationSubmissionStatus>;
    // User who moved the resource into the submitted state.
    submittedBy?: NullableOption<IdentitySet>;
    /**
     * Moment in time when the submission was moved into the submitted state. The Timestamp type represents date and time
     * information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z
     */
    submittedDateTime?: NullableOption<string>;
    // User who moved the resource from submitted into the working state.
    unsubmittedBy?: NullableOption<IdentitySet>;
    /**
     * Moment in time when the submission was moved from submitted into the working state. The Timestamp type represents date
     * and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z
     */
    unsubmittedDateTime?: NullableOption<string>;
    outcomes?: NullableOption<EducationOutcome[]>;
    resources?: NullableOption<EducationSubmissionResource[]>;
    submittedResources?: NullableOption<EducationSubmissionResource[]>;
}
export interface EducationAssignmentDefaults extends Entity {
    /**
     * Class-level default behavior for handling students who are added after the assignment is published. Possible values
     * are: none, assignIfOpen.
     */
    addedStudentAction?: NullableOption<EducationAddedStudentAction>;
    /**
     * Optional field to control adding assignments to students' and teachers' calendars when the assignment is published. The
     * possible values are: none, studentsAndPublisher, studentsAndTeamOwners, unknownFutureValue, and studentsOnly. Note that
     * you must use the Prefer: include-unknown-enum-members request header to get the following value(s) in this evolvable
     * enum: studentsOnly. The default value is none.
     */
    addToCalendarAction?: NullableOption<EducationAddToCalendarOptions>;
    // Class-level default value for due time field. Default value is 23:59:00.
    dueTime?: NullableOption<string>;
    // Default Teams channel to which notifications will be sent. Default value is null.
    notificationChannelUrl?: NullableOption<string>;
}
export interface EducationAssignmentSettings extends Entity {
    /**
     * Indicates whether turn-in celebration animation is shown. A value of true indicates that the animation isn't shown.
     * Default value is false.
     */
    submissionAnimationDisabled?: NullableOption<boolean>;
}
export interface EducationClass extends Entity {
    // Class code used by the school to identify the class.
    classCode?: NullableOption<string>;
    course?: NullableOption<EducationCourse>;
    // Entity who created the class
    createdBy?: NullableOption<IdentitySet>;
    // Description of the class.
    description?: NullableOption<string>;
    // Name of the class.
    displayName?: string;
    // ID of the class from the syncing system.
    externalId?: NullableOption<string>;
    // Name of the class in the syncing system.
    externalName?: NullableOption<string>;
    // How this class was created. Possible values are: sis, manual.
    externalSource?: NullableOption<EducationExternalSource>;
    // The name of the external source this resources was generated from.
    externalSourceDetail?: NullableOption<string>;
    // Grade level of the class.
    grade?: NullableOption<string>;
    // Mail name for sending email to all members, if this is enabled.
    mailNickname?: string;
    // Term for this class.
    term?: NullableOption<EducationTerm>;
    // All categories associated with this class. Nullable.
    assignmentCategories?: NullableOption<EducationCategory[]>;
    // Specifies class-level defaults respected by new assignments created in the class.
    assignmentDefaults?: NullableOption<EducationAssignmentDefaults>;
    // All assignments associated with this class. Nullable.
    assignments?: NullableOption<EducationAssignment[]>;
    // Specifies class-level assignments settings.
    assignmentSettings?: NullableOption<EducationAssignmentSettings>;
    // The underlying Microsoft 365 group object.
    group?: NullableOption<Group>;
    // All users in the class. Nullable.
    members?: NullableOption<EducationUser[]>;
    // All schools that this class is associated with. Nullable.
    schools?: NullableOption<EducationSchool[]>;
    // All teachers in the class. Nullable.
    teachers?: NullableOption<EducationUser[]>;
}
export interface EducationUser extends Entity {
    // Related records associated with the user. Read-only.
    relatedContacts?: NullableOption<RelatedContact[]>;
    // True if the account is enabled; otherwise, false. This property is required when a user is created. Supports $filter.
    accountEnabled?: NullableOption<boolean>;
    // The licenses that are assigned to the user. Not nullable.
    assignedLicenses?: AssignedLicense[];
    // The plans that are assigned to the user. Read-only. Not nullable.
    assignedPlans?: AssignedPlan[];
    /**
     * The telephone numbers for the user. Note: Although this is a string collection, only one number can be set for this
     * property.
     */
    businessPhones?: string[];
    // The entity who created the user.
    createdBy?: NullableOption<IdentitySet>;
    // The name for the department in which the user works. Supports $filter.
    department?: NullableOption<string>;
    /**
     * The name displayed in the address book for the user. This is usually the combination of the user's first name, middle
     * initial, and last name. This property is required when a user is created and it cannot be cleared during updates.
     * Supports $filter and $orderby.
     */
    displayName?: NullableOption<string>;
    // Where this user was created from. Possible values are: sis, manual.
    externalSource?: NullableOption<EducationExternalSource>;
    // The name of the external source this resource was generated from.
    externalSourceDetail?: NullableOption<string>;
    // The given name (first name) of the user. Supports $filter.
    givenName?: NullableOption<string>;
    // The SMTP address for the user, for example, jeff@contoso.onmicrosoft.com. Read-Only. Supports $filter.
    mail?: NullableOption<string>;
    // The mail address of the user.
    mailingAddress?: NullableOption<PhysicalAddress>;
    // The mail alias for the user. This property must be specified when a user is created. Supports $filter.
    mailNickname?: NullableOption<string>;
    // The middle name of the user.
    middleName?: NullableOption<string>;
    // The primary cellular telephone number for the user.
    mobilePhone?: NullableOption<string>;
    officeLocation?: NullableOption<string>;
    // Additional information used to associate the Microsoft Entra user with its Active Directory counterpart.
    onPremisesInfo?: NullableOption<EducationOnPremisesInfo>;
    /**
     * Specifies password policies for the user. This value is an enumeration with one possible value being
     * DisableStrongPassword, which allows weaker passwords than the default policy to be specified. DisablePasswordExpiration
     * can also be specified. The two can be specified together; for example: DisablePasswordExpiration,
     * DisableStrongPassword.
     */
    passwordPolicies?: NullableOption<string>;
    /**
     * Specifies the password profile for the user. The profile contains the user's password. This property is required when a
     * user is created. The password in the profile must satisfy minimum requirements as specified by the passwordPolicies
     * property. By default, a strong password is required.
     */
    passwordProfile?: NullableOption<PasswordProfile>;
    // The preferred language for the user that should follow the ISO 639-1 code, for example, en-US.
    preferredLanguage?: NullableOption<string>;
    /**
     * Default role for a user. The user's role might be different in an individual class. Possible values are: student,
     * teacher, none, unknownFutureValue.
     */
    primaryRole?: EducationUserRole;
    // The plans that are provisioned for the user. Read-only. Not nullable.
    provisionedPlans?: ProvisionedPlan[];
    refreshTokensValidFromDateTime?: NullableOption<string>;
    // The address where the user lives.
    residenceAddress?: NullableOption<PhysicalAddress>;
    /**
     * True if the Outlook Global Address List should contain this user; otherwise, false. If not set, this will be treated as
     * true. For users invited through the invitation manager, this property will be set to false.
     */
    showInAddressList?: NullableOption<boolean>;
    // If the primary role is student, this block will contain student specific data.
    student?: NullableOption<EducationStudent>;
    // The user's surname (family name or last name). Supports $filter.
    surname?: NullableOption<string>;
    // If the primary role is teacher, this block will contain teacher specific data.
    teacher?: NullableOption<EducationTeacher>;
    /**
     * A two-letter country code (ISO standard 3166). Required for users who will be assigned licenses due to a legal
     * requirement to check for availability of services in countries or regions. Examples include: US, JP, and GB. Not
     * nullable. Supports $filter.
     */
    usageLocation?: NullableOption<string>;
    /**
     * The user principal name (UPN) of the user. The UPN is an internet-style login name for the user based on the internet
     * standard RFC 822. By convention, this should map to the user's email name. The general format is alias@domain, where
     * domain must be present in the tenant's collection of verified domains. This property is required when a user is
     * created. The verified domains for the tenant can be accessed from the verifiedDomains property of the organization.
     * Supports $filter and $orderby.
     */
    userPrincipalName?: NullableOption<string>;
    // A string value that can be used to classify user types in your directory, such as Member and Guest. Supports $filter.
    userType?: NullableOption<string>;
    // Assignments belonging to the user.
    assignments?: NullableOption<EducationAssignment[]>;
    // When set, the grading rubric attached to the assignment.
    rubrics?: NullableOption<EducationRubric[]>;
    // Classes to which the user belongs. Nullable.
    classes?: NullableOption<EducationClass[]>;
    // Schools to which the user belongs. Nullable.
    schools?: NullableOption<EducationSchool[]>;
    // Classes for which the user is a teacher.
    taughtClasses?: NullableOption<EducationClass[]>;
    // The directory user that corresponds to this user.
    user?: NullableOption<User>;
}
export interface EducationOrganization extends Entity {
    // Organization description.
    description?: NullableOption<string>;
    // Organization display name.
    displayName?: string;
    // Source where this organization was created from. Possible values are: sis, manual.
    externalSource?: NullableOption<EducationExternalSource>;
    // The name of the external source this resource was generated from.
    externalSourceDetail?: NullableOption<string>;
}
export interface EducationSchool extends EducationOrganization {
    // Address of the school.
    address?: NullableOption<PhysicalAddress>;
    // Entity who created the school.
    createdBy?: NullableOption<IdentitySet>;
    // ID of school in syncing system.
    externalId?: NullableOption<string>;
    // ID of principal in syncing system.
    externalPrincipalId?: NullableOption<string>;
    fax?: NullableOption<string>;
    // Highest grade taught.
    highestGrade?: NullableOption<string>;
    // Lowest grade taught.
    lowestGrade?: NullableOption<string>;
    // Phone number of school.
    phone?: NullableOption<string>;
    // Email address of the principal.
    principalEmail?: NullableOption<string>;
    // Name of the principal.
    principalName?: NullableOption<string>;
    // School Number.
    schoolNumber?: NullableOption<string>;
    // The underlying administrativeUnit for this school.
    administrativeUnit?: NullableOption<AdministrativeUnit>;
    // Classes taught at the school. Nullable.
    classes?: NullableOption<EducationClass[]>;
    // Users in the school. Nullable.
    users?: NullableOption<EducationUser[]>;
}
export interface EducationOutcome extends Entity {
    // The individual who updated the resource.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * The moment in time when the resource was last modified. The Timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2021 is 2021-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
}
export interface EducationFeedbackOutcome extends EducationOutcome {
    // Teacher's written feedback to the student.
    feedback?: NullableOption<EducationFeedback>;
    // A copy of the feedback property that is made when the grade is released to the student.
    publishedFeedback?: NullableOption<EducationFeedback>;
}
export interface EducationFeedbackResourceOutcome extends EducationOutcome {
    // The actual feedback resource.
    feedbackResource?: NullableOption<EducationResource>;
    /**
     * The status of the feedback resource. The possible values are: notPublished, pendingPublish, published, failedPublish,
     * unknownFutureValue.
     */
    resourceStatus?: NullableOption<EducationFeedbackResourceOutcomeStatus>;
}
export interface EducationPointsOutcome extends EducationOutcome {
    // The numeric grade the teacher has given the student for this assignment.
    points?: NullableOption<EducationAssignmentPointsGrade>;
    // A copy of the points property that is made when the grade is released to the student.
    publishedPoints?: NullableOption<EducationAssignmentPointsGrade>;
}
export interface EducationRoot {
    classes?: NullableOption<EducationClass[]>;
    me?: NullableOption<EducationUser>;
    schools?: NullableOption<EducationSchool[]>;
    users?: NullableOption<EducationUser[]>;
}
export interface EducationRubricOutcome extends EducationOutcome {
    // A copy of the rubricQualityFeedback property that is made when the grade is released to the student.
    publishedRubricQualityFeedback?: NullableOption<RubricQualityFeedbackModel[]>;
    // A copy of the rubricQualitySelectedLevels property that is made when the grade is released to the student.
    publishedRubricQualitySelectedLevels?: NullableOption<RubricQualitySelectedColumnModel[]>;
    // A collection of specific feedback for each quality of this rubric.
    rubricQualityFeedback?: NullableOption<RubricQualityFeedbackModel[]>;
    // The level that the teacher has selected for each quality while grading this assignment.
    rubricQualitySelectedLevels?: NullableOption<RubricQualitySelectedColumnModel[]>;
}
export interface EducationSubmissionResource extends Entity {
    // Pointer to the assignment from which the resource was copied, and if null, the student uploaded the resource.
    assignmentResourceUrl?: NullableOption<string>;
    // Resource object.
    resource?: NullableOption<EducationResource>;
}
export interface DriveItem extends BaseItem {
    // Audio metadata, if the item is an audio file. Read-only. Read-only. Only on OneDrive Personal.
    audio?: NullableOption<Audio>;
    // Bundle metadata, if the item is a bundle. Read-only.
    bundle?: NullableOption<Bundle>;
    // The content stream, if the item represents a file.
    content?: NullableOption<any>;
    /**
     * An eTag for the content of the item. This eTag isn't changed if only the metadata is changed. Note This property isn't
     * returned if the item is a folder. Read-only.
     */
    cTag?: NullableOption<string>;
    // Information about the deleted state of the item. Read-only.
    deleted?: NullableOption<Deleted>;
    // File metadata, if the item is a file. Read-only.
    file?: NullableOption<File>;
    // File system information on client. Read-write.
    fileSystemInfo?: NullableOption<FileSystemInfo>;
    // Folder metadata, if the item is a folder. Read-only.
    folder?: NullableOption<Folder>;
    // Image metadata, if the item is an image. Read-only.
    image?: NullableOption<Image>;
    // Location metadata, if the item has location data. Read-only.
    location?: NullableOption<GeoCoordinates>;
    // Malware metadata, if the item was detected to contain malware. Read-only.
    malware?: NullableOption<Malware>;
    /**
     * If present, indicates that this item is a package instead of a folder or file. Packages are treated like files in some
     * contexts and folders in others. Read-only.
     */
    package?: NullableOption<Package>;
    /**
     * If present, indicates that one or more operations that might affect the state of the driveItem are pending completion.
     * Read-only.
     */
    pendingOperations?: NullableOption<PendingOperations>;
    // Photo metadata, if the item is a photo. Read-only.
    photo?: NullableOption<Photo>;
    /**
     * Provides information about the published or checked-out state of an item, in locations that support such actions. This
     * property isn't returned by default. Read-only.
     */
    publication?: NullableOption<PublicationFacet>;
    // Remote item data, if the item is shared from a drive other than the one being accessed. Read-only.
    remoteItem?: NullableOption<RemoteItem>;
    // If this property is non-null, it indicates that the driveItem is the top-most driveItem in the drive.
    root?: NullableOption<Root>;
    // Search metadata, if the item is from a search result. Read-only.
    searchResult?: NullableOption<SearchResult>;
    // Indicates that the item was shared with others and provides information about the shared state of the item. Read-only.
    shared?: NullableOption<Shared>;
    // Returns identifiers useful for SharePoint REST compatibility. Read-only.
    sharepointIds?: NullableOption<SharepointIds>;
    // Size of the item in bytes. Read-only.
    size?: NullableOption<number>;
    // If the current item is also available as a special folder, this facet is returned. Read-only.
    specialFolder?: NullableOption<SpecialFolder>;
    // Video metadata, if the item is a video. Read-only.
    video?: NullableOption<Video>;
    // WebDAV compatible URL for the item.
    webDavUrl?: NullableOption<string>;
    // For files that are Excel spreadsheets, access to the workbook API to work with the spreadsheet's contents. Nullable.
    workbook?: NullableOption<Workbook>;
    // Analytics about the view activities that took place on this item.
    analytics?: NullableOption<ItemAnalytics>;
    /**
     * Collection containing Item objects for the immediate children of Item. Only items representing folders have children.
     * Read-only. Nullable.
     */
    children?: NullableOption<DriveItem[]>;
    // For drives in SharePoint, the associated document library list item. Read-only. Nullable.
    listItem?: NullableOption<ListItem>;
    // The set of permissions for the item. Read-only. Nullable.
    permissions?: NullableOption<Permission[]>;
    // Information about retention label and settings enforced on the driveItem. Read-write.
    retentionLabel?: NullableOption<ItemRetentionLabel>;
    // The set of subscriptions on the item. Only supported on the root of a drive.
    subscriptions?: NullableOption<Subscription[]>;
    /**
     * Collection of [thumbnailSet][] objects associated with the item. For more information, see [getting thumbnails][].
     * Read-only. Nullable.
     */
    thumbnails?: NullableOption<ThumbnailSet[]>;
    // The list of previous versions of the item. For more info, see [getting previous versions][]. Read-only. Nullable.
    versions?: NullableOption<DriveItemVersion[]>;
}
export interface Workbook extends Entity {
    application?: NullableOption<WorkbookApplication>;
    // Represents a collection of comments in a workbook.
    comments?: NullableOption<WorkbookComment[]>;
    functions?: NullableOption<WorkbookFunctions>;
    // Represents a collection of workbooks scoped named items (named ranges and constants). Read-only.
    names?: NullableOption<WorkbookNamedItem[]>;
    /**
     * The status of workbook operations. Getting an operation collection is not supported, but you can get the status of a
     * long-running operation if the Location header is returned in the response. Read-only.
     */
    operations?: NullableOption<WorkbookOperation[]>;
    // Represents a collection of tables associated with the workbook. Read-only.
    tables?: NullableOption<WorkbookTable[]>;
    // Represents a collection of worksheets associated with the workbook. Read-only.
    worksheets?: NullableOption<WorkbookWorksheet[]>;
}
export interface ListItem extends BaseItem {
    // The content type of this list item
    contentType?: NullableOption<ContentTypeInfo>;
    // Returns identifiers useful for SharePoint REST compatibility. Read-only.
    sharepointIds?: NullableOption<SharepointIds>;
    // Analytics about the view activities that took place on this item.
    analytics?: NullableOption<ItemAnalytics>;
    // Version information for a document set version created by a user.
    documentSetVersions?: NullableOption<DocumentSetVersion[]>;
    // For document libraries, the driveItem relationship exposes the listItem as a [driveItem][]
    driveItem?: NullableOption<DriveItem>;
    // The values of the columns set on this list item.
    fields?: NullableOption<FieldValueSet>;
    // The list of previous versions of the list item.
    versions?: NullableOption<ListItemVersion[]>;
}
// tslint:disable-next-line: interface-name
export interface ItemRetentionLabel extends Entity {
    /**
     * Specifies whether the label is applied explicitly on the item. True indicates that the label is applied explicitly;
     * otherwise, the label is inherited from its parent. Read-only.
     */
    isLabelAppliedExplicitly?: NullableOption<boolean>;
    // Identity of the user who applied the label. Read-only.
    labelAppliedBy?: NullableOption<IdentitySet>;
    /**
     * The date and time when the label was applied on the item. The timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    labelAppliedDateTime?: NullableOption<string>;
    // The retention label on the document. Read-write.
    name?: NullableOption<string>;
    // The retention settings enforced on the item. Read-write.
    retentionSettings?: NullableOption<RetentionLabelSettings>;
}
export interface Subscription extends Entity {
    // Optional. Identifier of the application used to create the subscription. Read-only.
    applicationId?: NullableOption<string>;
    /**
     * Required. Indicates the type of change in the subscribed resource that will raise a change notification. The supported
     * values are: created, updated, deleted. Multiple values can be combined using a comma-separated list. Note: Drive root
     * item and list change notifications support only the updated changeType. User and group change notifications support
     * updated and deleted changeType. Use updated to receive notifications when user or group is created, updated or soft
     * deleted. Use deleted to receive notifications when user or group is permanently deleted.
     */
    changeType?: string;
    /**
     * Optional. Specifies the value of the clientState property sent by the service in each change notification. The maximum
     * length is 128 characters. The client can check that the change notification came from the service by comparing the
     * value of the clientState property sent with the subscription with the value of the clientState property received with
     * each change notification.
     */
    clientState?: NullableOption<string>;
    /**
     * Optional. Identifier of the user or service principal that created the subscription. If the app used delegated
     * permissions to create the subscription, this field contains the id of the signed-in user the app called on behalf of.
     * If the app used application permissions, this field contains the id of the service principal corresponding to the app.
     * Read-only.
     */
    creatorId?: NullableOption<string>;
    /**
     * Optional. A base64-encoded representation of a certificate with a public key used to encrypt resource data in change
     * notifications. Optional but required when includeResourceData is true.
     */
    encryptionCertificate?: NullableOption<string>;
    // Optional. A custom app-provided identifier to help identify the certificate needed to decrypt resource data.
    encryptionCertificateId?: NullableOption<string>;
    /**
     * Required. Specifies the date and time when the webhook subscription expires. The time is in UTC, and can be an amount
     * of time from subscription creation that varies for the resource subscribed to. For the maximum supported subscription
     * length of time, see the table below.
     */
    expirationDateTime?: string;
    // Optional. When set to true, change notifications include resource data (such as content of a chat message).
    includeResourceData?: NullableOption<boolean>;
    /**
     * Optional. Specifies the latest version of Transport Layer Security (TLS) that the notification endpoint, specified by
     * notificationUrl, supports. The possible values are: v10, v11, v12, v13. For subscribers whose notification endpoint
     * supports a version lower than the currently recommended version (TLS 1.2), specifying this property by a set timeline
     * allows them to temporarily use their deprecated version of TLS before completing their upgrade to TLS 1.2. For these
     * subscribers, not setting this property per the timeline would result in subscription operations failing. For
     * subscribers whose notification endpoint already supports TLS 1.2, setting this property is optional. In such cases,
     * Microsoft Graph defaults the property to v1_2.
     */
    latestSupportedTlsVersion?: NullableOption<string>;
    /**
     * Required for Teams resources if the expirationDateTime value is more than 1 hour from now; optional otherwise. The URL
     * of the endpoint that receives lifecycle notifications, including subscriptionRemoved, reauthorizationRequired, and
     * missed notifications. This URL must make use of the HTTPS protocol. For more information, see Reduce missing
     * subscriptions and change notifications.
     */
    lifecycleNotificationUrl?: NullableOption<string>;
    /**
     * Optional. OData query options for specifying value for the targeting resource. Clients receive notifications when
     * resource reaches the state matching the query options provided here. With this new property in the subscription
     * creation payload along with all existing properties, Webhooks will deliver notifications whenever a resource reaches
     * the desired state mentioned in the notificationQueryOptions property. For example, when the print job is completed or
     * when a print job resource isFetchable property value becomes true etc. Supported only for Universal Print Service. For
     * more information, see Subscribe to change notifications from cloud printing APIs using Microsoft Graph.
     */
    notificationQueryOptions?: NullableOption<string>;
    /**
     * Required. The URL of the endpoint that will receive the change notifications. This URL must make use of the HTTPS
     * protocol. Any query string parameter included in the notificationUrl property will be included in the HTTP POST request
     * when Microsoft Graph sends the change notifications.
     */
    notificationUrl?: string;
    /**
     * Optional. The app ID that the subscription service can use to generate the validation token. This allows the client to
     * validate the authenticity of the notification received.
     */
    notificationUrlAppId?: NullableOption<string>;
    /**
     * Required. Specifies the resource that will be monitored for changes. Do not include the base URL
     * (https://graph.microsoft.com/v1.0/). See the possible resource path values for each supported resource.
     */
    resource?: string;
}
export interface ThumbnailSet extends Entity {
    // A 1920x1920 scaled thumbnail.
    large?: NullableOption<Thumbnail>;
    // A 176x176 scaled thumbnail.
    medium?: NullableOption<Thumbnail>;
    // A 48x48 cropped thumbnail.
    small?: NullableOption<Thumbnail>;
    // A custom thumbnail image or the original image used to generate other thumbnails.
    source?: NullableOption<Thumbnail>;
}
export interface BaseItemVersion extends Entity {
    // Identity of the user which last modified the version. Read-only.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // Date and time the version was last modified. Read-only.
    lastModifiedDateTime?: NullableOption<string>;
    // Indicates the publication status of this particular version. Read-only.
    publication?: NullableOption<PublicationFacet>;
}
export interface DriveItemVersion extends BaseItemVersion {
    // The content stream for this version of the item.
    content?: NullableOption<any>;
    // Indicates the size of the content stream for this version of the item.
    size?: NullableOption<number>;
}
export interface WorkbookApplication extends Entity {
    // Returns the calculation mode used in the workbook. Possible values are: Automatic, AutomaticExceptTables, Manual.
    calculationMode?: string;
}
export interface WorkbookComment extends Entity {
    // The content of comment.
    content?: NullableOption<string>;
    // Indicates the type for the comment.
    contentType?: string;
    replies?: NullableOption<WorkbookCommentReply[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface WorkbookFunctions extends Entity {}
export interface WorkbookNamedItem extends Entity {
    // Represents the comment associated with this name.
    comment?: NullableOption<string>;
    // The name of the object. Read-only.
    name?: NullableOption<string>;
    // Indicates whether the name is scoped to the workbook or to a specific worksheet. Read-only.
    scope?: string;
    /**
     * Indicates what type of reference is associated with the name. The possible values are: String, Integer, Double,
     * Boolean, Range. Read-only.
     */
    type?: NullableOption<string>;
    // Represents the formula that the name is defined to refer to. for example, =Sheet14!$B$2:$H$12, =4.75, etc. Read-only.
    value?: NullableOption<any>;
    // Specifies whether the object is visible or not.
    visible?: boolean;
    /**
     * Returns the worksheet on which the named item is scoped to. Available only if the item is scoped to the worksheet.
     * Read-only.
     */
    worksheet?: NullableOption<WorkbookWorksheet>;
}
export interface WorkbookOperation extends Entity {
    // The error returned by the operation.
    error?: NullableOption<WorkbookOperationError>;
    // The resource URI for the result.
    resourceLocation?: NullableOption<string>;
    // The current status of the operation. Possible values are: NotStarted, Running, Completed, Failed.
    status?: WorkbookOperationStatus;
}
export interface WorkbookTable extends Entity {
    // Indicates whether the first column contains special formatting.
    highlightFirstColumn?: boolean;
    // Indicates whether the last column contains special formatting.
    highlightLastColumn?: boolean;
    /**
     * Legacy ID used in older Excel clients. The value of the identifier remains the same even when the table is renamed.
     * This property should be interpreted as an opaque string value and shouldn't be parsed to any other type. Read-only.
     */
    legacyId?: NullableOption<string>;
    // Name of the table.
    name?: NullableOption<string>;
    /**
     * Indicates whether the columns show banded formatting in which odd columns are highlighted differently from even ones to
     * make reading the table easier.
     */
    showBandedColumns?: boolean;
    /**
     * Indicates whether the rows show banded formatting in which odd rows are highlighted differently from even ones to make
     * reading the table easier.
     */
    showBandedRows?: boolean;
    /**
     * Indicates whether the filter buttons are visible at the top of each column header. Setting this is only allowed if the
     * table contains a header row.
     */
    showFilterButton?: boolean;
    // Indicates whether the header row is visible or not. This value can be set to show or remove the header row.
    showHeaders?: boolean;
    // Indicates whether the total row is visible or not. This value can be set to show or remove the total row.
    showTotals?: boolean;
    /**
     * Constant value that represents the Table style. The possible values are: TableStyleLight1 through TableStyleLight21,
     * TableStyleMedium1 through TableStyleMedium28, TableStyleStyleDark1 through TableStyleStyleDark11. A custom user-defined
     * style present in the workbook can also be specified.
     */
    style?: NullableOption<string>;
    // Represents a collection of all the columns in the table. Read-only.
    columns?: NullableOption<WorkbookTableColumn[]>;
    // Represents a collection of all the rows in the table. Read-only.
    rows?: NullableOption<WorkbookTableRow[]>;
    // Represents the sorting for the table. Read-only.
    sort?: NullableOption<WorkbookTableSort>;
    // The worksheet containing the current table. Read-only.
    worksheet?: NullableOption<WorkbookWorksheet>;
}
export interface WorkbookWorksheet extends Entity {
    // The display name of the worksheet.
    name?: NullableOption<string>;
    // The zero-based position of the worksheet within the workbook.
    position?: number;
    // The Visibility of the worksheet. The possible values are: Visible, Hidden, VeryHidden.
    visibility?: string;
    // Returns collection of charts that are part of the worksheet. Read-only.
    charts?: NullableOption<WorkbookChart[]>;
    // Returns collection of names that are associated with the worksheet. Read-only.
    names?: NullableOption<WorkbookNamedItem[]>;
    // Collection of PivotTables that are part of the worksheet.
    pivotTables?: NullableOption<WorkbookPivotTable[]>;
    // Returns sheet protection object for a worksheet. Read-only.
    protection?: NullableOption<WorkbookWorksheetProtection>;
    // Collection of tables that are part of the worksheet. Read-only.
    tables?: NullableOption<WorkbookTable[]>;
}
export interface WorkbookChart extends Entity {
    // Represents the height, in points, of the chart object.
    height?: number;
    // The distance, in points, from the left side of the chart to the worksheet origin.
    left?: number;
    // Represents the name of a chart object.
    name?: NullableOption<string>;
    /**
     * Represents the distance, in points, from the top edge of the object to the top of row 1 (on a worksheet) or the top of
     * the chart area (on a chart).
     */
    top?: number;
    // Represents the width, in points, of the chart object.
    width?: number;
    // Represents chart axes. Read-only.
    axes?: NullableOption<WorkbookChartAxes>;
    // Represents the datalabels on the chart. Read-only.
    dataLabels?: NullableOption<WorkbookChartDataLabels>;
    // Encapsulates the format properties for the chart area. Read-only.
    format?: NullableOption<WorkbookChartAreaFormat>;
    // Represents the legend for the chart. Read-only.
    legend?: NullableOption<WorkbookChartLegend>;
    // Represents either a single series or collection of series in the chart. Read-only.
    series?: NullableOption<WorkbookChartSeries[]>;
    /**
     * Represents the title of the specified chart, including the text, visibility, position and formating of the title.
     * Read-only.
     */
    title?: NullableOption<WorkbookChartTitle>;
    // The worksheet containing the current chart. Read-only.
    worksheet?: NullableOption<WorkbookWorksheet>;
}
export interface WorkbookChartAxes extends Entity {
    // Represents the category axis in a chart. Read-only.
    categoryAxis?: NullableOption<WorkbookChartAxis>;
    // Represents the series axis of a 3-dimensional chart. Read-only.
    seriesAxis?: NullableOption<WorkbookChartAxis>;
    // Represents the value axis in an axis. Read-only.
    valueAxis?: NullableOption<WorkbookChartAxis>;
}
export interface WorkbookChartDataLabels extends Entity {
    /**
     * DataLabelPosition value that represents the position of the data label. The possible values are: None, Center,
     * InsideEnd, InsideBase, OutsideEnd, Left, Right, Top, Bottom, BestFit, Callout.
     */
    position?: NullableOption<string>;
    // String representing the separator used for the data labels on a chart.
    separator?: NullableOption<string>;
    // Boolean value representing if the data label bubble size is visible or not.
    showBubbleSize?: NullableOption<boolean>;
    // Boolean value representing if the data label category name is visible or not.
    showCategoryName?: NullableOption<boolean>;
    // Boolean value representing if the data label legend key is visible or not.
    showLegendKey?: NullableOption<boolean>;
    // Boolean value representing if the data label percentage is visible or not.
    showPercentage?: NullableOption<boolean>;
    // Boolean value representing if the data label series name is visible or not.
    showSeriesName?: NullableOption<boolean>;
    // Boolean value representing if the data label value is visible or not.
    showValue?: NullableOption<boolean>;
    // Represents the format of chart data labels, which includes fill and font formatting. Read-only.
    format?: NullableOption<WorkbookChartDataLabelFormat>;
}
export interface WorkbookChartAreaFormat extends Entity {
    // Represents the fill format of an object, which includes background formatting information. Read-only.
    fill?: NullableOption<WorkbookChartFill>;
    // Represents the font attributes (font name, font size, color, etc.) for the current object. Read-only.
    font?: NullableOption<WorkbookChartFont>;
}
export interface WorkbookChartLegend extends Entity {
    // Boolean value for whether the chart legend should overlap with the main body of the chart.
    overlay?: NullableOption<boolean>;
    // Represents the position of the legend on the chart. The possible values are: Top, Bottom, Left, Right, Corner, Custom.
    position?: NullableOption<string>;
    // A boolean value the represents the visibility of a ChartLegend object.
    visible?: boolean;
    // Represents the formatting of a chart legend, which includes fill and font formatting. Read-only.
    format?: NullableOption<WorkbookChartLegendFormat>;
}
export interface WorkbookChartSeries extends Entity {
    // Represents the name of a series in a chart.
    name?: NullableOption<string>;
    // Represents the formatting of a chart series, which includes fill and line formatting. Read-only.
    format?: NullableOption<WorkbookChartSeriesFormat>;
    // Represents a collection of all points in the series. Read-only.
    points?: NullableOption<WorkbookChartPoint[]>;
}
export interface WorkbookChartTitle extends Entity {
    // Boolean value representing if the chart title will overlay the chart or not.
    overlay?: NullableOption<boolean>;
    // Represents the title text of a chart.
    text?: NullableOption<string>;
    // A boolean value that represents the visibility of a chart title object.
    visible?: boolean;
    // Represents the formatting of a chart title, which includes fill and font formatting. Read-only.
    format?: NullableOption<WorkbookChartTitleFormat>;
}
// tslint:disable-next-line: no-empty-interface
export interface WorkbookChartFill extends Entity {}
export interface WorkbookChartFont extends Entity {
    // Represents the bold status of font.
    bold?: NullableOption<boolean>;
    // HTML color code representation of the text color. for example #FF0000 represents Red.
    color?: NullableOption<string>;
    // Represents the italic status of the font.
    italic?: NullableOption<boolean>;
    // Font name (for example 'Calibri')
    name?: NullableOption<string>;
    // Size of the font (for example 11)
    size?: NullableOption<number>;
    // Type of underline applied to the font. The possible values are: None, Single.
    underline?: NullableOption<string>;
}
export interface WorkbookChartAxis extends Entity {
    /**
     * Represents the interval between two major tick marks. Can be set to a numeric value or an empty string. The returned
     * value is always a number.
     */
    majorUnit?: NullableOption<any>;
    /**
     * Represents the maximum value on the value axis. Can be set to a numeric value or an empty string (for automatic axis
     * values). The returned value is always a number.
     */
    maximum?: NullableOption<any>;
    /**
     * Represents the minimum value on the value axis. Can be set to a numeric value or an empty string (for automatic axis
     * values). The returned value is always a number.
     */
    minimum?: NullableOption<any>;
    /**
     * Represents the interval between two minor tick marks. 'Can be set to a numeric value or an empty string (for automatic
     * axis values). The returned value is always a number.
     */
    minorUnit?: NullableOption<any>;
    // Represents the formatting of a chart object, which includes line and font formatting. Read-only.
    format?: NullableOption<WorkbookChartAxisFormat>;
    // Returns a gridlines object that represents the major gridlines for the specified axis. Read-only.
    majorGridlines?: NullableOption<WorkbookChartGridlines>;
    // Returns a Gridlines object that represents the minor gridlines for the specified axis. Read-only.
    minorGridlines?: NullableOption<WorkbookChartGridlines>;
    // Represents the axis title. Read-only.
    title?: NullableOption<WorkbookChartAxisTitle>;
}
export interface WorkbookChartAxisFormat extends Entity {
    // Represents the font attributes (font name, font size, color, etc.) for a chart axis element. Read-only.
    font?: NullableOption<WorkbookChartFont>;
    // Represents chart line formatting. Read-only.
    line?: NullableOption<WorkbookChartLineFormat>;
}
export interface WorkbookChartGridlines extends Entity {
    // Boolean value representing if the axis gridlines are visible or not.
    visible?: boolean;
    // Represents the formatting of chart gridlines. Read-only.
    format?: NullableOption<WorkbookChartGridlinesFormat>;
}
export interface WorkbookChartAxisTitle extends Entity {
    // Represents the axis title.
    text?: NullableOption<string>;
    // A boolean that specifies the visibility of an axis title.
    visible?: boolean;
    // Represents the formatting of chart axis title. Read-only.
    format?: NullableOption<WorkbookChartAxisTitleFormat>;
}
export interface WorkbookChartLineFormat extends Entity {
    // HTML color code representing the color of lines in the chart.
    color?: NullableOption<string>;
}
export interface WorkbookChartAxisTitleFormat extends Entity {
    // Represents the font attributes, such as font name, font size, color, etc. of chart axis title object. Read-only.
    font?: NullableOption<WorkbookChartFont>;
}
export interface WorkbookChartDataLabelFormat extends Entity {
    // Represents the fill format of the current chart data label. Read-only.
    fill?: NullableOption<WorkbookChartFill>;
    // Represents the font attributes (font name, font size, color, etc.) for a chart data label. Read-only.
    font?: NullableOption<WorkbookChartFont>;
}
export interface WorkbookChartGridlinesFormat extends Entity {
    // Represents chart line formatting. Read-only.
    line?: NullableOption<WorkbookChartLineFormat>;
}
export interface WorkbookChartLegendFormat extends Entity {
    // Represents the fill format of an object, which includes background formating information. Read-only.
    fill?: NullableOption<WorkbookChartFill>;
    // Represents the font attributes such as font name, font size, color, etc. of a chart legend. Read-only.
    font?: NullableOption<WorkbookChartFont>;
}
export interface WorkbookChartPoint extends Entity {
    // Returns the value of a chart point. Read-only.
    value?: NullableOption<any>;
    // Encapsulates the format properties chart point. Read-only.
    format?: NullableOption<WorkbookChartPointFormat>;
}
export interface WorkbookChartPointFormat extends Entity {
    // Represents the fill format of a chart, which includes background formatting information. Read-only.
    fill?: NullableOption<WorkbookChartFill>;
}
export interface WorkbookChartSeriesFormat extends Entity {
    // Represents the fill format of a chart series, which includes background formatting information. Read-only.
    fill?: NullableOption<WorkbookChartFill>;
    // Represents line formatting. Read-only.
    line?: NullableOption<WorkbookChartLineFormat>;
}
export interface WorkbookChartTitleFormat extends Entity {
    // Represents the fill format of an object, which includes background formatting information. Read-only.
    fill?: NullableOption<WorkbookChartFill>;
    // Represents the font attributes (font name, font size, color, etc.) for the current object. Read-only.
    font?: NullableOption<WorkbookChartFont>;
}
export interface WorkbookCommentReply extends Entity {
    // The content of a comment reply.
    content?: NullableOption<string>;
    // Indicates the type for the comment reply.
    contentType?: string;
}
export interface WorkbookFilter extends Entity {
    // The currently applied filter on the given column. Read-only.
    criteria?: NullableOption<WorkbookFilterCriteria>;
}
export interface WorkbookFormatProtection extends Entity {
    /**
     * Indicates if Excel hides the formula for the cells in the range. A null value indicates that the entire range doesn't
     * have uniform formula hidden setting.
     */
    formulaHidden?: NullableOption<boolean>;
    /**
     * Indicates if Excel locks the cells in the object. A null value indicates that the entire range doesn't have uniform
     * lock setting.
     */
    locked?: NullableOption<boolean>;
}
export interface WorkbookFunctionResult extends Entity {
    error?: NullableOption<string>;
    value?: NullableOption<any>;
}
export interface WorkbookPivotTable extends Entity {
    // Name of the PivotTable.
    name?: NullableOption<string>;
    // The worksheet containing the current PivotTable. Read-only.
    worksheet?: NullableOption<WorkbookWorksheet>;
}
export interface WorkbookRange extends Entity {
    /**
     * Represents the range reference in A1-style. Address value contains the Sheet reference (for example, Sheet1!A1:B4).
     * Read-only.
     */
    address?: NullableOption<string>;
    // Represents range reference for the specified range in the language of the user. Read-only.
    addressLocal?: NullableOption<string>;
    // Number of cells in the range. Read-only.
    cellCount?: number;
    // Represents the total number of columns in the range. Read-only.
    columnCount?: number;
    // Represents if all columns of the current range are hidden.
    columnHidden?: NullableOption<boolean>;
    // Represents the column number of the first cell in the range. Zero-indexed. Read-only.
    columnIndex?: number;
    // Represents the formula in A1-style notation.
    formulas?: NullableOption<any>;
    /**
     * Represents the formula in A1-style notation, in the user's language and number-formatting locale. For example, the
     * English '=SUM(A1, 1.5)' formula would become '=SUMME(A1; 1,5)' in German.
     */
    formulasLocal?: NullableOption<any>;
    // Represents the formula in R1C1-style notation.
    formulasR1C1?: NullableOption<any>;
    // Represents if all cells of the current range are hidden. Read-only.
    hidden?: NullableOption<boolean>;
    // Represents Excel's number format code for the given cell.
    numberFormat?: NullableOption<any>;
    // Returns the total number of rows in the range. Read-only.
    rowCount?: number;
    // Represents if all rows of the current range are hidden.
    rowHidden?: NullableOption<boolean>;
    // Returns the row number of the first cell in the range. Zero-indexed. Read-only.
    rowIndex?: number;
    /**
     * Text values of the specified range. The Text value doesn't depend on the cell width. The # sign substitution that
     * happens in Excel UI doesn't affect the text value returned by the API. Read-only.
     */
    text?: NullableOption<any>;
    /**
     * Represents the raw values of the specified range. The data returned could be of type string, number, or a boolean. Cell
     * that contains an error returns the error string.
     */
    values?: NullableOption<any>;
    /**
     * Represents the type of data of each cell. The possible values are: Unknown, Empty, String, Integer, Double, Boolean,
     * Error. Read-only.
     */
    valueTypes?: NullableOption<any>;
    // Returns a format object, encapsulating the range's font, fill, borders, alignment, and other properties. Read-only.
    format?: NullableOption<WorkbookRangeFormat>;
    // The worksheet containing the current range. Read-only.
    sort?: NullableOption<WorkbookRangeSort>;
    // The worksheet containing the current range. Read-only.
    worksheet?: NullableOption<WorkbookWorksheet>;
}
export interface WorkbookRangeFormat extends Entity {
    // Gets or sets the width of all columns within the range. If the column widths aren't uniform, null will be returned.
    columnWidth?: NullableOption<number>;
    /**
     * Represents the horizontal alignment for the specified object. The possible values are: General, Left, Center, Right,
     * Fill, Justify, CenterAcrossSelection, Distributed.
     */
    horizontalAlignment?: NullableOption<string>;
    // Gets or sets the height of all rows in the range. If the row heights aren't uniform null will be returned.
    rowHeight?: NullableOption<number>;
    /**
     * Represents the vertical alignment for the specified object. The possible values are: Top, Center, Bottom, Justify,
     * Distributed.
     */
    verticalAlignment?: NullableOption<string>;
    /**
     * Indicates if Excel wraps the text in the object. A null value indicates that the entire range doesn't have uniform wrap
     * setting
     */
    wrapText?: NullableOption<boolean>;
    // Collection of border objects that apply to the overall range selected Read-only.
    borders?: NullableOption<WorkbookRangeBorder[]>;
    // Returns the fill object defined on the overall range. Read-only.
    fill?: NullableOption<WorkbookRangeFill>;
    // Returns the font object defined on the overall range selected Read-only.
    font?: NullableOption<WorkbookRangeFont>;
    // Returns the format protection object for a range. Read-only.
    protection?: NullableOption<WorkbookFormatProtection>;
}
// tslint:disable-next-line: no-empty-interface
export interface WorkbookRangeSort extends Entity {}
export interface WorkbookRangeBorder extends Entity {
    /**
     * HTML color code representing the color of the border line, of the form #RRGGBB (for example 'FFA500') or as a named
     * HTML color (for example 'orange').
     */
    color?: NullableOption<string>;
    /**
     * Constant value that indicates the specific side of the border. The possible values are: EdgeTop, EdgeBottom, EdgeLeft,
     * EdgeRight, InsideVertical, InsideHorizontal, DiagonalDown, DiagonalUp. Read-only.
     */
    sideIndex?: NullableOption<string>;
    /**
     * One of the constants of line style specifying the line style for the border. The possible values are: None, Continuous,
     * Dash, DashDot, DashDotDot, Dot, Double, SlantDashDot.
     */
    style?: NullableOption<string>;
    // Specifies the weight of the border around a range. The possible values are: Hairline, Thin, Medium, Thick.
    weight?: NullableOption<string>;
}
export interface WorkbookRangeFill extends Entity {
    /**
     * HTML color code representing the color of the border line, of the form #RRGGBB (for example 'FFA500') or as a named
     * HTML color (for example 'orange')
     */
    color?: NullableOption<string>;
}
export interface WorkbookRangeFont extends Entity {
    // Represents the bold status of font.
    bold?: NullableOption<boolean>;
    // HTML color code representation of the text color. for example #FF0000 represents Red.
    color?: NullableOption<string>;
    // Represents the italic status of the font.
    italic?: NullableOption<boolean>;
    // Font name (for example 'Calibri')
    name?: NullableOption<string>;
    // Font size.
    size?: NullableOption<number>;
    /**
     * Type of underline applied to the font. The possible values are: None, Single, Double, SingleAccountant,
     * DoubleAccountant.
     */
    underline?: NullableOption<string>;
}
export interface WorkbookRangeView extends Entity {
    // Represents the cell addresses
    cellAddresses?: NullableOption<any>;
    // Returns the number of visible columns. Read-only.
    columnCount?: number;
    // Represents the formula in A1-style notation.
    formulas?: NullableOption<any>;
    /**
     * Represents the formula in A1-style notation, in the user's language and number-formatting locale. For example, the
     * English '=SUM(A1, 1.5)' formula would become '=SUMME(A1; 1,5)' in German.
     */
    formulasLocal?: NullableOption<any>;
    // Represents the formula in R1C1-style notation.
    formulasR1C1?: NullableOption<any>;
    // Index of the range.
    index?: number;
    // Represents Excel's number format code for the given cell. Read-only.
    numberFormat?: NullableOption<any>;
    // Returns the number of visible rows. Read-only.
    rowCount?: number;
    /**
     * Text values of the specified range. The Text value won't depend on the cell width. The # sign substitution that happens
     * in Excel UI won't affect the text value returned by the API. Read-only.
     */
    text?: NullableOption<any>;
    /**
     * Represents the raw values of the specified range view. The data returned could be of type string, number, or a boolean.
     * Cell that contains an error returns the error string.
     */
    values?: NullableOption<any>;
    /**
     * Represents the type of data of each cell. Read-only. The possible values are: Unknown, Empty, String, Integer, Double,
     * Boolean, Error.
     */
    valueTypes?: NullableOption<any>;
    // Represents a collection of range views associated with the range. Read-only. Read-only.
    rows?: NullableOption<WorkbookRangeView[]>;
}
export interface WorkbookTableColumn extends Entity {
    // Returns the index number of the column within the columns collection of the table. Zero-indexed. Read-only.
    index?: number;
    // Returns the name of the table column.
    name?: NullableOption<string>;
    /**
     * Represents the raw values of the specified range. The data returned could be of type string, number, or a boolean. Cell
     * that contain an error will return the error string.
     */
    values?: NullableOption<any>;
    // Retrieve the filter applied to the column. Read-only.
    filter?: NullableOption<WorkbookFilter>;
}
export interface WorkbookTableRow extends Entity {
    // Returns the index number of the row within the rows collection of the table. Zero-indexed. Read-only.
    index?: number;
    /**
     * Represents the raw values of the specified range. The data returned could be of type string, number, or a boolean. Cell
     * that contain an error will return the error string.
     */
    values?: NullableOption<any>;
}
export interface WorkbookTableSort extends Entity {
    // Represents the current conditions used to last sort the table. Read-only.
    fields?: NullableOption<WorkbookSortField[]>;
    // Represents whether the casing impacted the last sort of the table. Read-only.
    matchCase?: boolean;
    /**
     * Represents Chinese character ordering method last used to sort the table. The possible values are: PinYin, StrokeCount.
     * Read-only.
     */
    method?: string;
}
export interface WorkbookWorksheetProtection extends Entity {
    // Sheet protection options. Read-only.
    options?: NullableOption<WorkbookWorksheetProtectionOptions>;
    // Indicates if the worksheet is protected. Read-only.
    protected?: boolean;
}
export interface Place extends Entity {
    // The street address of the place.
    address?: NullableOption<PhysicalAddress>;
    // The name associated with the place.
    displayName?: string;
    // Specifies the place location in latitude, longitude and (optionally) altitude coordinates.
    geoCoordinates?: NullableOption<OutlookGeoCoordinates>;
    // The phone number of the place.
    phone?: NullableOption<string>;
}
export interface Room extends Place {
    // Specifies the name of the audio device in the room.
    audioDeviceName?: NullableOption<string>;
    // Type of room. Possible values are standard, and reserved.
    bookingType?: NullableOption<BookingType>;
    // Specifies the building name or building number that the room is in.
    building?: NullableOption<string>;
    // Specifies the capacity of the room.
    capacity?: NullableOption<number>;
    // Specifies the name of the display device in the room.
    displayDeviceName?: NullableOption<string>;
    // Email address of the room.
    emailAddress?: NullableOption<string>;
    // Specifies a descriptive label for the floor, for example, P.
    floorLabel?: NullableOption<string>;
    // Specifies the floor number that the room is on.
    floorNumber?: NullableOption<number>;
    // Specifies whether the room is wheelchair accessible.
    isWheelChairAccessible?: NullableOption<boolean>;
    // Specifies a descriptive label for the room, for example, a number or name.
    label?: NullableOption<string>;
    // Specifies a nickname for the room, for example, 'conf room'.
    nickname?: string;
    // Specifies additional features of the room, for example, details like the type of view or furniture type.
    tags?: NullableOption<string[]>;
    // Specifies the name of the video device in the room.
    videoDeviceName?: NullableOption<string>;
}
export interface RoomList extends Place {
    // The email address of the room list.
    emailAddress?: NullableOption<string>;
    rooms?: NullableOption<Room[]>;
}
export interface Attachment extends Entity {
    // The MIME type.
    contentType?: NullableOption<string>;
    // true if the attachment is an inline attachment; otherwise, false.
    isInline?: boolean;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastModifiedDateTime?: NullableOption<string>;
    // The attachment's file name.
    name?: NullableOption<string>;
    // The length of the attachment in bytes.
    size?: number;
}
export interface CalendarPermission extends Entity {
    /**
     * List of allowed sharing or delegating permission levels for the calendar. Possible values are: none, freeBusyRead,
     * limitedRead, read, write, delegateWithoutPrivateEventAccess, delegateWithPrivateEventAccess, custom.
     */
    allowedRoles?: NullableOption<CalendarRoleType[]>;
    /**
     * Represents a share recipient or delegate who has access to the calendar. For the 'My Organization' share recipient, the
     * address property is null. Read-only.
     */
    emailAddress?: NullableOption<EmailAddress>;
    // True if the user in context (recipient or delegate) is inside the same organization as the calendar owner.
    isInsideOrganization?: NullableOption<boolean>;
    /**
     * True if the user can be removed from the list of recipients or delegates for the specified calendar, false otherwise.
     * The 'My organization' user determines the permissions other people within your organization have to the given calendar.
     * You can't remove 'My organization' as a share recipient to a calendar.
     */
    isRemovable?: NullableOption<boolean>;
    // Current permission level of the calendar share recipient or delegate.
    role?: NullableOption<CalendarRoleType>;
}
export interface MultiValueLegacyExtendedProperty extends Entity {
    // A collection of property values.
    value?: NullableOption<string[]>;
}
export interface SingleValueLegacyExtendedProperty extends Entity {
    // A property value.
    value?: NullableOption<string>;
}
export interface CalendarSharingMessage extends Message {
    canAccept?: NullableOption<boolean>;
    sharingMessageAction?: NullableOption<CalendarSharingMessageAction>;
    sharingMessageActions?: NullableOption<CalendarSharingMessageAction[]>;
    suggestedCalendarName?: NullableOption<string>;
}
export interface Post extends OutlookItem {
    // The contents of the post. This is a default property. This property can be null.
    body?: NullableOption<ItemBody>;
    // Unique ID of the conversation. Read-only.
    conversationId?: NullableOption<string>;
    // Unique ID of the conversation thread. Read-only.
    conversationThreadId?: NullableOption<string>;
    /**
     * Used in delegate access scenarios. Indicates who posted the message on behalf of another user. This is a default
     * property.
     */
    from?: Recipient;
    // Indicates whether the post has at least one attachment. This is a default property.
    hasAttachments?: boolean;
    // Conversation participants that were added to the thread as part of this post.
    newParticipants?: Recipient[];
    /**
     * Specifies when the post was received. The DateTimeOffset type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    receivedDateTime?: string;
    /**
     * Contains the address of the sender. The value of Sender is assumed to be the address of the authenticated user in the
     * case when Sender is not specified. This is a default property.
     */
    sender?: NullableOption<Recipient>;
    // Read-only. Nullable. Supports $expand.
    attachments?: NullableOption<Attachment[]>;
    // The collection of open extensions defined for the post. Read-only. Nullable. Supports $expand.
    extensions?: NullableOption<Extension[]>;
    // Read-only. Supports $expand.
    inReplyTo?: NullableOption<Post>;
    // The collection of multi-value extended properties defined for the post. Read-only. Nullable.
    multiValueExtendedProperties?: NullableOption<MultiValueLegacyExtendedProperty[]>;
    // The collection of single-value extended properties defined for the post. Read-only. Nullable.
    singleValueExtendedProperties?: NullableOption<SingleValueLegacyExtendedProperty[]>;
}
export interface EventMessage extends Message {
    endDateTime?: NullableOption<DateTimeTimeZone>;
    isAllDay?: NullableOption<boolean>;
    isDelegated?: NullableOption<boolean>;
    isOutOfDate?: NullableOption<boolean>;
    location?: NullableOption<Location>;
    meetingMessageType?: NullableOption<MeetingMessageType>;
    recurrence?: NullableOption<PatternedRecurrence>;
    startDateTime?: NullableOption<DateTimeTimeZone>;
    type?: NullableOption<EventType>;
    /**
     * The event associated with the event message. The assumption for attendees or room resources is that the Calendar
     * Attendant is set to automatically update the calendar with an event when meeting request event messages arrive.
     * Navigation property. Read-only.
     */
    event?: NullableOption<Event>;
}
export interface EventMessageRequest extends EventMessage {
    /**
     * True if the meeting organizer allows invitees to propose a new time when responding, false otherwise. Optional. Default
     * is true.
     */
    allowNewTimeProposals?: NullableOption<boolean>;
    meetingRequestType?: NullableOption<MeetingRequestType>;
    // If the meeting update changes the meeting end time, this property specifies the previous meeting end time.
    previousEndDateTime?: NullableOption<DateTimeTimeZone>;
    // If the meeting update changes the meeting location, this property specifies the previous meeting location.
    previousLocation?: NullableOption<Location>;
    // If the meeting update changes the meeting start time, this property specifies the previous meeting start time.
    previousStartDateTime?: NullableOption<DateTimeTimeZone>;
    // Set to true if the sender would like the invitee to send a response to the requested meeting.
    responseRequested?: NullableOption<boolean>;
}
export interface EventMessageResponse extends EventMessage {
    proposedNewTime?: NullableOption<TimeSlot>;
    responseType?: NullableOption<ResponseType>;
}
export interface FileAttachment extends Attachment {
    // The base64-encoded contents of the file.
    contentBytes?: NullableOption<string>;
    // The ID of the attachment in the Exchange store.
    contentId?: NullableOption<string>;
    // Don't use this property as it isn't supported.
    contentLocation?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InferenceClassificationOverride extends Entity {
    /**
     * Specifies how incoming messages from a specific sender should always be classified as. The possible values are:
     * focused, other.
     */
    classifyAs?: NullableOption<InferenceClassificationType>;
    // The email address information of the sender for whom the override is created.
    senderEmailAddress?: NullableOption<EmailAddress>;
}
// tslint:disable-next-line: interface-name
export interface ItemAttachment extends Attachment {
    // The attached message or event. Navigation property.
    item?: NullableOption<OutlookItem>;
}
export interface MessageRule extends Entity {
    // Actions to be taken on a message when the corresponding conditions are fulfilled.
    actions?: NullableOption<MessageRuleActions>;
    // Conditions that when fulfilled, will trigger the corresponding actions for that rule.
    conditions?: NullableOption<MessageRulePredicates>;
    // The display name of the rule.
    displayName?: NullableOption<string>;
    // Exception conditions for the rule.
    exceptions?: NullableOption<MessageRulePredicates>;
    // Indicates whether the rule is in an error condition. Read-only.
    hasError?: NullableOption<boolean>;
    // Indicates whether the rule is enabled to be applied to messages.
    isEnabled?: NullableOption<boolean>;
    // Indicates if the rule is read-only and cannot be modified or deleted by the rules REST API.
    isReadOnly?: NullableOption<boolean>;
    // Indicates the order in which the rule is executed, among other rules.
    sequence?: NullableOption<number>;
}
export interface MailSearchFolder extends MailFolder {
    // The OData query to filter the messages.
    filterQuery?: NullableOption<string>;
    /**
     * Indicates how the mailbox folder hierarchy should be traversed in the search. true means that a deep search should be
     * done to include child folders in the hierarchy of each folder explicitly specified in sourceFolderIds. false means a
     * shallow search of only each of the folders explicitly specified in sourceFolderIds.
     */
    includeNestedFolders?: NullableOption<boolean>;
    // Indicates whether a search folder is editable using REST APIs.
    isSupported?: NullableOption<boolean>;
    // The mailbox folders that should be mined.
    sourceFolderIds?: NullableOption<string[]>;
}
export interface OpenTypeExtension extends Extension {
    // A unique text identifier for an open type data extension. Optional.
    extensionName?: string;
}
export interface OutlookCategory extends Entity {
    /**
     * A pre-set color constant that characterizes a category, and that is mapped to one of 25 predefined colors. For more
     * details, see the following note.
     */
    color?: NullableOption<CategoryColor>;
    /**
     * A unique name that identifies a category in the user's mailbox. After a category is created, the name cannot be
     * changed. Read-only.
     */
    displayName?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface ReferenceAttachment extends Attachment {}
export interface SharepointSettings extends Entity {
    // Collection of trusted domain GUIDs for the OneDrive sync app.
    allowedDomainGuidsForSyncApp?: NullableOption<string[]>;
    // Collection of managed paths available for site creation. Read-only.
    availableManagedPathsForSiteCreation?: string[];
    // The number of days for preserving a deleted user's OneDrive.
    deletedUserPersonalSiteRetentionPeriodInDays?: NullableOption<number>;
    // Collection of file extensions not uploaded by the OneDrive sync app.
    excludedFileExtensionsForSyncApp?: NullableOption<string[]>;
    // Specifies the idle session sign-out policies for the tenant.
    idleSessionSignOut?: NullableOption<IdleSessionSignOut>;
    // Specifies the image tagging option for the tenant. Possible values are: disabled, basic, enhanced.
    imageTaggingOption?: NullableOption<ImageTaggingChoice>;
    // Indicates whether comments are allowed on modern site pages in SharePoint.
    isCommentingOnSitePagesEnabled?: NullableOption<boolean>;
    // Indicates whether push notifications are enabled for OneDrive events.
    isFileActivityNotificationEnabled?: NullableOption<boolean>;
    // Indicates whether legacy authentication protocols are enabled for the tenant.
    isLegacyAuthProtocolsEnabled?: NullableOption<boolean>;
    // Indicates whether if Fluid Framework is allowed on SharePoint sites.
    isLoopEnabled?: NullableOption<boolean>;
    // Indicates whether files can be synced using the OneDrive sync app for Mac.
    isMacSyncAppEnabled?: NullableOption<boolean>;
    // Indicates whether guests must sign in using the same account to which sharing invitations are sent.
    isRequireAcceptingUserToMatchInvitedUserEnabled?: NullableOption<boolean>;
    // Indicates whether guests are allowed to reshare files, folders, and sites they don't own.
    isResharingByExternalUsersEnabled?: NullableOption<boolean>;
    // Indicates whether mobile push notifications are enabled for SharePoint.
    isSharePointMobileNotificationEnabled?: NullableOption<boolean>;
    // Indicates whether the newsfeed is allowed on the modern site pages in SharePoint.
    isSharePointNewsfeedEnabled?: NullableOption<boolean>;
    // Indicates whether users are allowed to create sites.
    isSiteCreationEnabled?: NullableOption<boolean>;
    // Indicates whether the UI commands for creating sites are shown.
    isSiteCreationUIEnabled?: NullableOption<boolean>;
    // Indicates whether creating new modern pages is allowed on SharePoint sites.
    isSitePagesCreationEnabled?: NullableOption<boolean>;
    // Indicates whether site storage space is automatically managed or if specific storage limits are set per site.
    isSitesStorageLimitAutomatic?: NullableOption<boolean>;
    // Indicates whether the sync button in OneDrive is hidden.
    isSyncButtonHiddenOnPersonalSite?: NullableOption<boolean>;
    // Indicates whether users are allowed to sync files only on PCs joined to specific domains.
    isUnmanagedSyncAppForTenantRestricted?: NullableOption<boolean>;
    /**
     * The default OneDrive storage limit for all new and existing users who are assigned a qualifying license. Measured in
     * megabytes (MB).
     */
    personalSiteDefaultStorageLimitInMB?: NullableOption<number>;
    // Collection of email domains that are allowed for sharing outside the organization.
    sharingAllowedDomainList?: NullableOption<string[]>;
    // Collection of email domains that are blocked for sharing outside the organization.
    sharingBlockedDomainList?: NullableOption<string[]>;
    /**
     * Sharing capability for the tenant. Possible values are: disabled, externalUserSharingOnly, externalUserAndGuestSharing,
     * existingExternalUserSharingOnly.
     */
    sharingCapability?: NullableOption<SharingCapabilities>;
    // Specifies the external sharing mode for domains. Possible values are: none, allowList, blockList.
    sharingDomainRestrictionMode?: NullableOption<SharingDomainRestrictionMode>;
    // The value of the team site managed path. This is the path under which new team sites will be created.
    siteCreationDefaultManagedPath?: string;
    // The default storage quota for a new site upon creation. Measured in megabytes (MB).
    siteCreationDefaultStorageLimitInMB?: NullableOption<number>;
    /**
     * The default timezone of a tenant for newly created sites. For a list of possible values, see
     * SPRegionalSettings.TimeZones property.
     */
    tenantDefaultTimezone?: NullableOption<string>;
}
export interface ColumnLink extends Entity {
    // The name of the column in this content type.
    name?: NullableOption<string>;
}
export interface ListItemVersion extends BaseItemVersion {
    // A collection of the fields and values for this version of the list item.
    fields?: NullableOption<FieldValueSet>;
}
export interface DocumentSetVersion extends ListItemVersion {
    // Comment about the captured version.
    comment?: NullableOption<string>;
    // User who captured the version.
    createdBy?: NullableOption<IdentitySet>;
    // Date and time when this version was created.
    createdDateTime?: NullableOption<string>;
    // Items within the document set that are captured as part of this version.
    items?: NullableOption<DocumentSetVersionItem[]>;
    /**
     * If true, minor versions of items are also captured; otherwise, only major versions will be captured. Default value is
     * false.
     */
    shouldCaptureMinorVersion?: NullableOption<boolean>;
}
// tslint:disable-next-line: no-empty-interface
export interface FieldValueSet extends Entity {}
// tslint:disable-next-line: interface-name
export interface ItemActivity extends Entity {
    // An item was accessed.
    access?: NullableOption<AccessAction>;
    // Details about when the activity took place. Read-only.
    activityDateTime?: NullableOption<string>;
    // Identity of who performed the action. Read-only.
    actor?: NullableOption<IdentitySet>;
    // Exposes the driveItem that was the target of this activity.
    driveItem?: NullableOption<DriveItem>;
}
// tslint:disable-next-line: interface-name
export interface ItemActivityStat extends Entity {
    // Statistics about the access actions in this interval. Read-only.
    access?: NullableOption<ItemActionStat>;
    // Statistics about the create actions in this interval. Read-only.
    create?: NullableOption<ItemActionStat>;
    // Statistics about the delete actions in this interval. Read-only.
    delete?: NullableOption<ItemActionStat>;
    // Statistics about the edit actions in this interval. Read-only.
    edit?: NullableOption<ItemActionStat>;
    // When the interval ends. Read-only.
    endDateTime?: NullableOption<string>;
    // Indicates that the statistics in this interval are based on incomplete data. Read-only.
    incompleteData?: NullableOption<IncompleteData>;
    // Indicates whether the item is 'trending.' Read-only.
    isTrending?: NullableOption<boolean>;
    // Statistics about the move actions in this interval. Read-only.
    move?: NullableOption<ItemActionStat>;
    // When the interval starts. Read-only.
    startDateTime?: NullableOption<string>;
    // Exposes the itemActivities represented in this itemActivityStat resource.
    activities?: NullableOption<ItemActivity[]>;
}
export interface SharedDriveItem extends BaseItem {
    // Information about the owner of the shared item being referenced.
    owner?: NullableOption<IdentitySet>;
    // Used to access the underlying driveItem
    driveItem?: NullableOption<DriveItem>;
    // All driveItems contained in the sharing root. This collection cannot be enumerated.
    items?: NullableOption<DriveItem[]>;
    // Used to access the underlying list
    list?: NullableOption<List>;
    // Used to access the underlying listItem
    listItem?: NullableOption<ListItem>;
    // Used to access the permission representing the underlying sharing link
    permission?: NullableOption<Permission>;
    // Used to access the underlying driveItem. Deprecated -- use driveItem instead.
    root?: NullableOption<DriveItem>;
    // Used to access the underlying site
    site?: NullableOption<Site>;
}
export interface CallRecording extends Entity {
    // The content of the recording. Read-only.
    content?: NullableOption<any>;
    /**
     * Date and time at which the recording was created. The timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    // The unique identifier of the onlineMeeting related to this recording. Read-only.
    meetingId?: NullableOption<string>;
    // The identity information of the organizer of the onlineMeeting related to this recording. Read-only.
    meetingOrganizer?: NullableOption<IdentitySet>;
    // The URL that can be used to access the content of the recording. Read-only.
    recordingContentUrl?: NullableOption<string>;
}
export interface CallTranscript extends Entity {
    // The content of the transcript. Read-only.
    content?: NullableOption<any>;
    /**
     * Date and time at which the transcript was created. The DateTimeOffset type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    // The unique identifier of the online meeting related to this transcript. Read-only.
    meetingId?: NullableOption<string>;
    // The identity information of the organizer of the onlineMeeting related to this transcript. Read-only.
    meetingOrganizer?: NullableOption<IdentitySet>;
    // The time-aligned metadata of the utterances in the transcript. Read-only.
    metadataContent?: NullableOption<any>;
    // The URL that can be used to access the content of the transcript. Read-only.
    transcriptContentUrl?: NullableOption<string>;
}
export interface SchemaExtension extends Entity {
    // Description for the schema extension. Supports $filter (eq).
    description?: NullableOption<string>;
    /**
     * The appId of the application that is the owner of the schema extension. The owner of the schema definition must be
     * explicitly specified during the Create and Update operations, or it will be implied and auto-assigned by Microsoft
     * Entra ID as follows: In delegated access: The signed-in user must be the owner of the app that calls Microsoft Graph to
     * create the schema extension definition. If the signed-in user isn't the owner of the calling app, they must explicitly
     * specify the owner property, and assign it the appId of an app that they own. In app-only access: The owner property
     * isn't required in the request body. Instead, the calling app is assigned ownership of the schema extension. So, for
     * example, if creating a new schema extension definition using Graph Explorer, you must supply the owner property. Once
     * set, this property is read-only and cannot be changed. Supports $filter (eq).
     */
    owner?: string;
    // The collection of property names and types that make up the schema extension definition.
    properties?: ExtensionSchemaProperty[];
    /**
     * The lifecycle state of the schema extension. Possible states are InDevelopment, Available, and Deprecated.
     * Automatically set to InDevelopment on creation. For more information about the possible state transitions and
     * behaviors, see Schema extensions lifecycle. Supports $filter (eq).
     */
    status?: string;
    /**
     * Set of Microsoft Graph types (that can support extensions) that the schema extension can be applied to. Select from
     * administrativeUnit, contact, device, event, group, message, organization, post, todoTask, todoTaskList, or user.
     */
    targetTypes?: string[];
}
export interface AttributeMappingFunctionSchema extends Entity {
    // Collection of function parameters.
    parameters?: NullableOption<AttributeMappingParameterSchema[]>;
}
export interface DirectoryDefinition extends Entity {
    /**
     * Read-only value indicating what type of discovery the app supports. The possible values are: None, AttributeNames,
     * AttributeDataTypes, AttributeReadOnly, ReferenceAttributes, UnknownFutureValue. This is a multi-valued object.
     */
    discoverabilities?: DirectoryDefinitionDiscoverabilities;
    /**
     * Represents the discovery date and time using ISO 8601 format and is always in UTC time. For example, midnight UTC on
     * Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    discoveryDateTime?: NullableOption<string>;
    // Name of the directory. Must be unique within the synchronization schema. Not nullable.
    name?: NullableOption<string>;
    // Collection of objects supported by the directory.
    objects?: NullableOption<ObjectDefinition[]>;
    // Whether this object is read-only.
    readOnly?: boolean;
    // Read only value that indicates version discovered. null if discovery hasn't yet occurred.
    version?: NullableOption<string>;
}
export interface FilterOperatorSchema extends Entity {
    // Arity of the operator. Possible values are: Binary, Unary. The default is Binary.
    arity?: ScopeOperatorType;
    /**
     * Possible values are: All, Any. Applies only to multivalued attributes. All means that all values must satisfy the
     * condition. Any means that at least one value has to satisfy the condition. The default is All.
     */
    multivaluedComparisonType?: ScopeOperatorMultiValuedComparisonType;
    // Attribute types supported by the operator. Possible values are: Boolean, Binary, Reference, Integer, String.
    supportedAttributeTypes?: AttributeType[];
}
export interface SynchronizationJob extends Entity {
    // Schedule used to run the job. Read-only.
    schedule?: NullableOption<SynchronizationSchedule>;
    // Status of the job, which includes when the job was last run, current job state, and errors.
    status?: NullableOption<SynchronizationStatus>;
    // Settings associated with the job. Some settings are inherited from the template.
    synchronizationJobSettings?: NullableOption<KeyValuePair[]>;
    // Identifier of the synchronization template this job is based on.
    templateId?: NullableOption<string>;
    // The synchronization schema configured for the job.
    schema?: NullableOption<SynchronizationSchema>;
}
export interface SynchronizationTemplate extends Entity {
    // Identifier of the application this template belongs to.
    applicationId?: string;
    // true if this template is recommended to be the default for the application.
    default?: boolean;
    // Description of the template.
    description?: NullableOption<string>;
    /**
     * true if this template should appear in the collection of templates available for the application instance (service
     * principal).
     */
    discoverable?: boolean;
    /**
     * One of the well-known factory tags supported by the synchronization engine. The factoryTag tells the synchronization
     * engine which implementation to use when processing jobs based on this template.
     */
    factoryTag?: NullableOption<string>;
    // Additional extension properties. Unless mentioned explicitly, metadata values should not be changed.
    metadata?: NullableOption<SynchronizationMetadataEntry[]>;
    // Default synchronization schema for the jobs based on this template.
    schema?: NullableOption<SynchronizationSchema>;
}
export interface SynchronizationSchema extends Entity {
    // A collection of synchronization rules configured for the synchronizationJob or synchronizationTemplate.
    synchronizationRules?: NullableOption<SynchronizationRule[]>;
    // The version of the schema, updated automatically with every schema change.
    version?: NullableOption<string>;
    // Contains the collection of directories and all of their objects.
    directories?: NullableOption<DirectoryDefinition[]>;
}
export interface CloudCommunications {
    callRecords?: NullableOption<CallRecords.CallRecord[]>;
    calls?: NullableOption<Call[]>;
    onlineMeetings?: NullableOption<OnlineMeeting[]>;
    presences?: NullableOption<Presence[]>;
}
export interface Call extends Entity {
    // The callback URL on which callbacks will be delivered. Must be https.
    callbackUri?: string;
    /**
     * A unique identifier for all the participant calls in a conference or a unique identifier for two participant calls in a
     * P2P call. This needs to be copied over from Microsoft.Graph.Call.CallChainId.
     */
    callChainId?: NullableOption<string>;
    // Contains the optional features for the call.
    callOptions?: NullableOption<CallOptions>;
    // The routing information on how the call was retargeted. Read-only.
    callRoutes?: NullableOption<CallRoute[]>;
    // The chat information. Required information for joining a meeting.
    chatInfo?: NullableOption<ChatInfo>;
    // The direction of the call. The possible values are incoming or outgoing. Read-only.
    direction?: NullableOption<CallDirection>;
    // Call context associated with an incoming call.
    incomingContext?: NullableOption<IncomingContext>;
    // The media configuration. Required.
    mediaConfig?: NullableOption<MediaConfig>;
    // Read-only. The call media state.
    mediaState?: NullableOption<CallMediaState>;
    // The meeting information. Required information for meeting scenarios.
    meetingInfo?: NullableOption<MeetingInfo>;
    myParticipantId?: NullableOption<string>;
    // The list of requested modalities. Possible values are: unknown, audio, video, videoBasedScreenSharing, data.
    requestedModalities?: NullableOption<Modality[]>;
    // The result information. For example, the result can hold termination reason. Read-only.
    resultInfo?: NullableOption<ResultInfo>;
    // The originator of the call.
    source?: NullableOption<ParticipantInfo>;
    /**
     * The call state. Possible values are: incoming, establishing, ringing, established, hold, transferring,
     * transferAccepted, redirecting, terminating, terminated. Read-only.
     */
    state?: NullableOption<CallState>;
    // The subject of the conversation.
    subject?: NullableOption<string>;
    // The targets of the call. Required information for creating peer to peer call.
    targets?: NullableOption<InvitationParticipantInfo[]>;
    tenantId?: NullableOption<string>;
    toneInfo?: NullableOption<ToneInfo>;
    // The transcription information for the call. Read-only.
    transcription?: NullableOption<CallTranscriptionInfo>;
    audioRoutingGroups?: NullableOption<AudioRoutingGroup[]>;
    contentSharingSessions?: NullableOption<ContentSharingSession[]>;
    operations?: NullableOption<CommsOperation[]>;
    participants?: NullableOption<Participant[]>;
}
export interface AccessReviewHistoryDefinition extends Entity {
    // User who created this review history definition.
    createdBy?: UserIdentity;
    // Timestamp when the access review definition was created.
    createdDateTime?: string;
    /**
     * Determines which review decisions will be included in the fetched review history data if specified. Optional on create.
     * All decisions are included by default if no decisions are provided on create. Possible values are: approve, deny,
     * dontKnow, notReviewed, and notNotified.
     */
    decisions?: NullableOption<AccessReviewHistoryDecisionFilter[]>;
    // Name for the access review history data collection. Required.
    displayName?: string;
    /**
     * A timestamp. Reviews ending on or before this date will be included in the fetched history data. Only required if
     * scheduleSettings isn't defined.
     */
    reviewHistoryPeriodEndDateTime?: string;
    /**
     * A timestamp. Reviews starting on or before this date will be included in the fetched history data. Only required if
     * scheduleSettings isn't defined.
     */
    reviewHistoryPeriodStartDateTime?: string;
    /**
     * The settings for a recurring access review history definition series. Only required if reviewHistoryPeriodStartDateTime
     * or reviewHistoryPeriodEndDateTime aren't defined. Not supported yet.
     */
    scheduleSettings?: NullableOption<AccessReviewHistoryScheduleSettings>;
    /**
     * Used to scope what reviews are included in the fetched history data. Fetches reviews whose scope matches with this
     * provided scope. Required.
     */
    scopes?: AccessReviewScope[];
    /**
     * Represents the status of the review history data collection. The possible values are: done, inProgress, error,
     * requested, unknownFutureValue.
     */
    status?: NullableOption<AccessReviewHistoryStatus>;
    /**
     * If the accessReviewHistoryDefinition is a recurring definition, instances represent each recurrence. A definition that
     * doesn't recur will have exactly one instance.
     */
    instances?: NullableOption<AccessReviewHistoryInstance[]>;
}
export interface AccessReviewHistoryInstance extends Entity {
    /**
     * Uri that can be used to retrieve review history data. This URI will be active for 24 hours after being generated.
     * Required.
     */
    downloadUri?: NullableOption<string>;
    // Timestamp when this instance and associated data expires and the history is deleted. Required.
    expirationDateTime?: string;
    /**
     * Timestamp when all of the available data for this instance was collected and is set after this instance's status is set
     * to done. Required.
     */
    fulfilledDateTime?: NullableOption<string>;
    // Timestamp reviews ending on or before this date will be included in the fetched history data.
    reviewHistoryPeriodEndDateTime?: NullableOption<string>;
    // Timestamp reviews starting on or after this date will be included in the fetched history data.
    reviewHistoryPeriodStartDateTime?: NullableOption<string>;
    // Timestamp when the instance's history data is scheduled to be generated.
    runDateTime?: string;
    /**
     * Represents the status of the review history data collection. The possible values are: done, inProgress, error,
     * requested, unknownFutureValue. Once the status has been marked as done, a link can be generated to retrieve the
     * instance's data by calling generateDownloadUri method.
     */
    status?: NullableOption<AccessReviewHistoryStatus>;
}
export interface AccessReviewInstance extends Entity {
    /**
     * DateTime when review instance is scheduled to end.The DatetimeOffset type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Supports
     * $select. Read-only.
     */
    endDateTime?: NullableOption<string>;
    /**
     * This collection of reviewer scopes is used to define the list of fallback reviewers. These fallback reviewers will be
     * notified to take action if no users are found from the list of reviewers specified. This could occur when either the
     * group owner is specified as the reviewer but the group owner does not exist, or manager is specified as reviewer but a
     * user's manager does not exist. Supports $select.
     */
    fallbackReviewers?: NullableOption<AccessReviewReviewerScope[]>;
    /**
     * This collection of access review scopes is used to define who the reviewers are. Supports $select. For examples of
     * options for assigning reviewers, see Assign reviewers to your access review definition using the Microsoft Graph API.
     */
    reviewers?: NullableOption<AccessReviewReviewerScope[]>;
    /**
     * Created based on scope and instanceEnumerationScope at the accessReviewScheduleDefinition level. Defines the scope of
     * users reviewed in a group. Supports $select and $filter (contains only). Read-only.
     */
    scope?: NullableOption<AccessReviewScope>;
    /**
     * DateTime when review instance is scheduled to start. May be in the future. The DateTimeOffset type represents date and
     * time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z. Supports $select. Read-only.
     */
    startDateTime?: NullableOption<string>;
    /**
     * Specifies the status of an accessReview. Possible values: Initializing, NotStarted, Starting, InProgress, Completing,
     * Completed, AutoReviewing, and AutoReviewed. Supports $select, $orderby, and $filter (eq only). Read-only.
     */
    status?: NullableOption<string>;
    /**
     * Returns the collection of reviewers who were contacted to complete this review. While the reviewers and
     * fallbackReviewers properties of the accessReviewScheduleDefinition might specify group owners or managers as reviewers,
     * contactedReviewers returns their individual identities. Supports $select. Read-only.
     */
    contactedReviewers?: NullableOption<AccessReviewReviewer[]>;
    /**
     * Each user reviewed in an accessReviewInstance has a decision item representing if they were approved, denied, or not
     * yet reviewed.
     */
    decisions?: NullableOption<AccessReviewInstanceDecisionItem[]>;
    /**
     * If the instance has multiple stages, this returns the collection of stages. A new stage will only be created when the
     * previous stage ends. The existence, number, and settings of stages on a review instance are created based on the
     * accessReviewStageSettings on the parent accessReviewScheduleDefinition.
     */
    stages?: NullableOption<AccessReviewStage[]>;
}
export interface AccessReviewReviewer extends Entity {
    // The date when the reviewer was added for the access review.
    createdDateTime?: NullableOption<string>;
    // Name of reviewer.
    displayName?: NullableOption<string>;
    // User principal name of the reviewer.
    userPrincipalName?: NullableOption<string>;
}
export interface AccessReviewInstanceDecisionItem extends Entity {
    // The identifier of the accessReviewInstance parent. Supports $select. Read-only.
    accessReviewId?: string;
    // The identifier of the user who applied the decision. Read-only.
    appliedBy?: NullableOption<UserIdentity>;
    /**
     * The timestamp when the approval decision was applied.00000000-0000-0000-0000-000000000000 if the assigned reviewer
     * hasn't applied the decision or it was automatically applied. The DatetimeOffset type represents date and time
     * information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z. Supports $select. Read-only.
     */
    appliedDateTime?: NullableOption<string>;
    /**
     * The result of applying the decision. Possible values: New, AppliedSuccessfully, AppliedWithUnknownFailure,
     * AppliedSuccessfullyButObjectNotFound and ApplyNotSupported. Supports $select, $orderby, and $filter (eq only).
     * Read-only.
     */
    applyResult?: NullableOption<string>;
    /**
     * Result of the review. Possible values: Approve, Deny, NotReviewed, or DontKnow. Supports $select, $orderby, and $filter
     * (eq only).
     */
    decision?: NullableOption<string>;
    // Justification left by the reviewer when they made the decision.
    justification?: NullableOption<string>;
    /**
     * Every decision item in an access review represents a principal's access to a resource. This property represents details
     * of the principal. For example, if a decision item represents access of User 'Bob' to Group 'Sales' - The principal is
     * 'Bob' and the resource is 'Sales'. Principals can be of two types - userIdentity and servicePrincipalIdentity. Supports
     * $select. Read-only.
     */
    principal?: NullableOption<Identity>;
    /**
     * A link to the principal object. For example,
     * https://graph.microsoft.com/v1.0/users/a6c7aecb-cbfd-4763-87ef-e91b4bd509d9. Read-only.
     */
    principalLink?: NullableOption<string>;
    /**
     * A system-generated recommendation for the approval decision based off last interactive sign-in to tenant. Recommend
     * approve if sign-in is within thirty days of start of review. Recommend deny if sign-in is greater than thirty days of
     * start of review. Recommendation not available otherwise. Possible values: Approve, Deny, or NoInfoAvailable. Supports
     * $select, $orderby, and $filter (eq only). Read-only.
     */
    recommendation?: NullableOption<string>;
    /**
     * Every decision item in an access review represents a principal's access to a resource. This property represents details
     * of the resource. For example, if a decision item represents access of User 'Bob' to Group 'Sales' - The principal is
     * Bob and the resource is 'Sales'. Resources can be of multiple types. See accessReviewInstanceDecisionItemResource.
     * Read-only.
     */
    resource?: NullableOption<AccessReviewInstanceDecisionItemResource>;
    /**
     * A link to the resource. For example,
     * https://graph.microsoft.com/v1.0/servicePrincipals/c86300f3-8695-4320-9f6e-32a2555f5ff8. Supports $select. Read-only.
     */
    resourceLink?: NullableOption<string>;
    /**
     * The identifier of the reviewer.00000000-0000-0000-0000-000000000000 if the assigned reviewer hasn't reviewed. Supports
     * $select. Read-only.
     */
    reviewedBy?: NullableOption<UserIdentity>;
    // The timestamp when the review decision occurred. Supports $select. Read-only.
    reviewedDateTime?: NullableOption<string>;
    /**
     * Insights are recommendations to reviewers on whether to approve or deny a decision. There can be multiple insights
     * associated with an accessReviewInstanceDecisionItem.
     */
    insights?: NullableOption<GovernanceInsight[]>;
}
export interface AccessReviewStage extends Entity {
    /**
     * The date and time in ISO 8601 format and UTC time when the review stage is scheduled to end. This property is the
     * cumulative total of the durationInDays for all stages. Read-only.
     */
    endDateTime?: NullableOption<string>;
    /**
     * This collection of reviewer scopes is used to define the list of fallback reviewers. These fallback reviewers are
     * notified to take action if no users are found from the list of reviewers specified. This could occur when either the
     * group owner is specified as the reviewer but the group owner doesn't exist, or manager is specified as reviewer but a
     * user's manager doesn't exist.
     */
    fallbackReviewers?: NullableOption<AccessReviewReviewerScope[]>;
    /**
     * This collection of access review scopes is used to define who the reviewers are. For examples of options for assigning
     * reviewers, see Assign reviewers to your access review definition using the Microsoft Graph API.
     */
    reviewers?: NullableOption<AccessReviewReviewerScope[]>;
    // The date and time in ISO 8601 format and UTC time when the review stage is scheduled to start. Read-only.
    startDateTime?: NullableOption<string>;
    /**
     * Specifies the status of an accessReviewStage. Possible values: Initializing, NotStarted, Starting, InProgress,
     * Completing, Completed, AutoReviewing, and AutoReviewed. Supports $orderby, and $filter (eq only). Read-only.
     */
    status?: NullableOption<string>;
    /**
     * Each user reviewed in an accessReviewStage has a decision item representing if they were approved, denied, or not yet
     * reviewed.
     */
    decisions?: NullableOption<AccessReviewInstanceDecisionItem[]>;
}
export interface AccessReviewScheduleDefinition extends Entity {
    // Defines the list of additional users or group members to be notified of the access review progress.
    additionalNotificationRecipients?: NullableOption<AccessReviewNotificationRecipientItem[]>;
    // User who created this review. Read-only.
    createdBy?: NullableOption<UserIdentity>;
    // Timestamp when the access review series was created. Supports $select. Read-only.
    createdDateTime?: NullableOption<string>;
    // Description provided by review creators to provide more context of the review to admins. Supports $select.
    descriptionForAdmins?: NullableOption<string>;
    /**
     * Description provided by review creators to provide more context of the review to reviewers. Reviewers see this
     * description in the email sent to them requesting their review. Email notifications support up to 256 characters.
     * Supports $select.
     */
    descriptionForReviewers?: NullableOption<string>;
    // Name of the access review series. Supports $select and $orderby. Required on create.
    displayName?: NullableOption<string>;
    /**
     * This collection of reviewer scopes is used to define the list of fallback reviewers. These fallback reviewers are
     * notified to take action if no users are found from the list of reviewers specified. This could occur when either the
     * group owner is specified as the reviewer but the group owner doesn't exist, or manager is specified as reviewer but a
     * user's manager doesn't exist. See accessReviewReviewerScope. Replaces backupReviewers. Supports $select. NOTE: The
     * value of this property will be ignored if fallback reviewers are assigned through the stageSettings property.
     */
    fallbackReviewers?: NullableOption<AccessReviewReviewerScope[]>;
    /**
     * This property is required when scoping a review to guest users' access across all Microsoft 365 groups and determines
     * which Microsoft 365 groups are reviewed. Each group becomes a unique accessReviewInstance of the access review series.
     * For supported scopes, see accessReviewScope. Supports $select. For examples of options for configuring
     * instanceEnumerationScope, see Configure the scope of your access review definition using the Microsoft Graph API.
     */
    instanceEnumerationScope?: NullableOption<AccessReviewScope>;
    // Timestamp when the access review series was last modified. Supports $select. Read-only.
    lastModifiedDateTime?: NullableOption<string>;
    /**
     * This collection of access review scopes is used to define who are the reviewers. The reviewers property is only
     * updatable if individual users are assigned as reviewers. Required on create. Supports $select. For examples of options
     * for assigning reviewers, see Assign reviewers to your access review definition using the Microsoft Graph API. NOTE: The
     * value of this property will be ignored if reviewers are assigned through the stageSettings property.
     */
    reviewers?: NullableOption<AccessReviewReviewerScope[]>;
    /**
     * Defines the entities whose access is reviewed. For supported scopes, see accessReviewScope. Required on create.
     * Supports $select and $filter (contains only). For examples of options for configuring scope, see Configure the scope of
     * your access review definition using the Microsoft Graph API.
     */
    scope?: NullableOption<AccessReviewScope>;
    // The settings for an access review series, see type definition below. Supports $select. Required on create.
    settings?: NullableOption<AccessReviewScheduleSettings>;
    /**
     * Required only for a multi-stage access review to define the stages and their settings. You can break down each review
     * instance into up to three sequential stages, where each stage can have a different set of reviewers, fallback
     * reviewers, and settings. Stages are created sequentially based on the dependsOn property. Optional. When this property
     * is defined, its settings are used instead of the corresponding settings in the accessReviewScheduleDefinition object
     * and its settings, reviewers, and fallbackReviewers properties.
     */
    stageSettings?: NullableOption<AccessReviewStageSettings[]>;
    /**
     * This read-only field specifies the status of an access review. The typical states include Initializing, NotStarted,
     * Starting, InProgress, Completing, Completed, AutoReviewing, and AutoReviewed. Supports $select, $orderby, and $filter
     * (eq only). Read-only.
     */
    status?: NullableOption<string>;
    /**
     * If the accessReviewScheduleDefinition is a recurring access review, instances represent each recurrence. A review that
     * doesn't recur will have exactly one instance. Instances also represent each unique resource under review in the
     * accessReviewScheduleDefinition. If a review has multiple resources and multiple instances, each resource has a unique
     * instance for each recurrence.
     */
    instances?: NullableOption<AccessReviewInstance[]>;
}
export interface AppConsentRequest extends Entity {
    // The display name of the app for which consent is requested. Required. Supports $filter (eq only) and $orderby.
    appDisplayName?: NullableOption<string>;
    // The identifier of the application. Required. Supports $filter (eq only) and $orderby.
    appId?: string;
    // A list of pending scopes waiting for approval. Required.
    pendingScopes?: NullableOption<AppConsentRequestScope[]>;
    // A list of pending user consent requests. Supports $filter (eq).
    userConsentRequests?: NullableOption<UserConsentRequest[]>;
}
export interface UserConsentRequest extends Request {
    // The user's justification for requiring access to the app. Supports $filter (eq only) and $orderby.
    reason?: NullableOption<string>;
    // Approval decisions associated with a request.
    approval?: NullableOption<Approval>;
}
export interface Approval extends Entity {
    // A collection of stages in the approval decision.
    stages?: NullableOption<ApprovalStage[]>;
}
export interface ApprovalStage extends Entity {
    // Indicates whether the stage is assigned to the calling user to review. Read-only.
    assignedToMe?: NullableOption<boolean>;
    // The label provided by the policy creator to identify an approval stage. Read-only.
    displayName?: NullableOption<string>;
    // The justification associated with the approval stage decision.
    justification?: NullableOption<string>;
    /**
     * The identifier of the reviewer. 00000000-0000-0000-0000-000000000000 if the assigned reviewer hasn't reviewed.
     * Read-only.
     */
    reviewedBy?: NullableOption<Identity>;
    /**
     * The date and time when a decision was recorded. The date and time information uses ISO 8601 format and is always in UTC
     * time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    reviewedDateTime?: NullableOption<string>;
    // The result of this approval record. Possible values include: NotReviewed, Approved, Denied.
    reviewResult?: NullableOption<string>;
    // The stage status. Possible values: InProgress, Initializing, Completed, Expired. Read-only.
    status?: NullableOption<string>;
}
export interface AccessPackage extends Entity {
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    // The description of the access package.
    description?: NullableOption<string>;
    // Required. The display name of the access package. Supports $filter (eq, contains).
    displayName?: NullableOption<string>;
    // Whether the access package is hidden from the requestor.
    isHidden?: NullableOption<boolean>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    modifiedDateTime?: NullableOption<string>;
    // The access packages that are incompatible with this package. Read-only.
    accessPackagesIncompatibleWith?: NullableOption<AccessPackage[]>;
    // Read-only. Nullable. Supports $expand.
    assignmentPolicies?: NullableOption<AccessPackageAssignmentPolicy[]>;
    // Required when creating the access package. Read-only. Nullable.
    catalog?: NullableOption<AccessPackageCatalog>;
    // The access packages whose assigned users are ineligible to be assigned this access package.
    incompatibleAccessPackages?: NullableOption<AccessPackage[]>;
    // The groups whose members are ineligible to be assigned this access package.
    incompatibleGroups?: NullableOption<Group[]>;
    // The resource roles and scopes in this access package.
    resourceRoleScopes?: NullableOption<AccessPackageResourceRoleScope[]>;
}
export interface AccessPackageAssignmentPolicy extends Entity {
    /**
     * Principals that can be assigned the access package through this policy. The possible values are: notSpecified,
     * specificDirectoryUsers, specificConnectedOrganizationUsers, specificDirectoryServicePrincipals, allMemberUsers,
     * allDirectoryUsers, allDirectoryServicePrincipals, allConfiguredConnectedOrganizationUsers, allExternalUsers,
     * unknownFutureValue.
     */
    allowedTargetScope?: NullableOption<AllowedTargetScope>;
    // This property is only present for an auto assignment policy; if absent, this is a request-based policy.
    automaticRequestSettings?: NullableOption<AccessPackageAutomaticRequestSettings>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // The description of the policy.
    description?: NullableOption<string>;
    // The display name of the policy.
    displayName?: NullableOption<string>;
    // The expiration date for assignments created in this policy.
    expiration?: NullableOption<ExpirationPattern>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    modifiedDateTime?: NullableOption<string>;
    /**
     * Specifies the settings for approval of requests for an access package assignment through this policy. For example, if
     * approval is required for new requests.
     */
    requestApprovalSettings?: NullableOption<AccessPackageAssignmentApprovalSettings>;
    /**
     * Provides additional settings to select who can create a request for an access package assignment through this policy,
     * and what they can include in their request.
     */
    requestorSettings?: NullableOption<AccessPackageAssignmentRequestorSettings>;
    // Settings for access reviews of assignments through this policy.
    reviewSettings?: NullableOption<AccessPackageAssignmentReviewSettings>;
    // The principals that can be assigned access from an access package through this policy.
    specificAllowedTargets?: NullableOption<SubjectSet[]>;
    // Access package containing this policy. Read-only. Supports $expand.
    accessPackage?: NullableOption<AccessPackage>;
    // Catalog of the access package containing this policy. Read-only.
    catalog?: NullableOption<AccessPackageCatalog>;
    // The collection of stages when to execute one or more custom access package workflow extensions. Supports $expand.
    customExtensionStageSettings?: NullableOption<CustomExtensionStageSetting[]>;
    // Questions that are posed to the requestor.
    questions?: NullableOption<AccessPackageQuestion[]>;
}
export interface AccessPackageAssignmentRequest extends Entity {
    // Answers provided by the requestor to accessPackageQuestions asked of them at the time of request.
    answers?: NullableOption<AccessPackageAnswer[]>;
    /**
     * The date of the end of processing, either successful or failure, of a request. The Timestamp type represents date and
     * time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z. Read-only.
     */
    completedDateTime?: NullableOption<string>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only. Supports $filter.
     */
    createdDateTime?: NullableOption<string>;
    // Information about all the custom extension calls that were made during the access package assignment workflow.
    customExtensionCalloutInstances?: NullableOption<CustomExtensionCalloutInstance[]>;
    /**
     * The type of the request. The possible values are: notSpecified, userAdd, UserExtend, userUpdate, userRemove, adminAdd,
     * adminUpdate, adminRemove, systemAdd, systemUpdate, systemRemove, onBehalfAdd (not supported), unknownFutureValue. A
     * request from the user themselves would have requestType of userAdd, userUpdate or userRemove. This property can't be
     * changed once set.
     */
    requestType?: NullableOption<AccessPackageRequestType>;
    // The range of dates that access is to be assigned to the requestor. This property can't be changed once set.
    schedule?: NullableOption<EntitlementManagementSchedule>;
    /**
     * The state of the request. The possible values are: submitted, pendingApproval, delivering, delivered, deliveryFailed,
     * denied, scheduled, canceled, partiallyDelivered, unknownFutureValue. Read-only. Supports $filter (eq).
     */
    state?: NullableOption<AccessPackageRequestState>;
    // More information on the request processing status. Read-only.
    status?: NullableOption<string>;
    /**
     * The access package associated with the accessPackageAssignmentRequest. An access package defines the collections of
     * resource roles and the policies for how one or more users can get access to those resources. Read-only. Nullable.
     * Supports $expand.
     */
    accessPackage?: NullableOption<AccessPackage>;
    /**
     * For a requestType of userAdd or adminAdd, this is an access package assignment requested to be created. For a
     * requestType of userRemove, adminRemove or systemRemove, this has the id property of an existing assignment to be
     * removed. Supports $expand.
     */
    assignment?: NullableOption<AccessPackageAssignment>;
    // The subject who requested or, if a direct assignment, was assigned. Read-only. Nullable. Supports $expand.
    requestor?: NullableOption<AccessPackageSubject>;
}
export interface AccessPackageAssignment extends Entity {
    // Information about all the custom extension calls that were made during the access package assignment workflow.
    customExtensionCalloutInstances?: NullableOption<CustomExtensionCalloutInstance[]>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    expiredDateTime?: NullableOption<string>;
    // When the access assignment is to be in place. Read-only.
    schedule?: NullableOption<EntitlementManagementSchedule>;
    /**
     * The state of the access package assignment. The possible values are: delivering, partiallyDelivered, delivered,
     * expired, deliveryFailed, unknownFutureValue. Read-only. Supports $filter (eq).
     */
    state?: NullableOption<AccessPackageAssignmentState>;
    /**
     * More information about the assignment lifecycle. Possible values include Delivering, Delivered,
     * NearExpiry1DayNotificationTriggered, or ExpiredNotificationTriggered. Read-only.
     */
    status?: NullableOption<string>;
    // Read-only. Nullable. Supports $filter (eq) on the id property and $expand query parameters.
    accessPackage?: NullableOption<AccessPackage>;
    // Read-only. Supports $filter (eq) on the id property and $expand query parameters.
    assignmentPolicy?: NullableOption<AccessPackageAssignmentPolicy>;
    // The subject of the access package assignment. Read-only. Nullable. Supports $expand. Supports $filter (eq) on objectId.
    target?: NullableOption<AccessPackageSubject>;
}
export interface AccessPackageCatalog extends Entity {
    /**
     * Whether the catalog is created by a user or entitlement management. The possible values are: userManaged,
     * serviceDefault, serviceManaged, unknownFutureValue.
     */
    catalogType?: NullableOption<AccessPackageCatalogType>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    // The description of the access package catalog.
    description?: NullableOption<string>;
    // The display name of the access package catalog.
    displayName?: NullableOption<string>;
    // Whether the access packages in this catalog can be requested by users outside of the tenant.
    isExternallyVisible?: NullableOption<boolean>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    modifiedDateTime?: NullableOption<string>;
    /**
     * Has the value published if the access packages are available for management. The possible values are: unpublished,
     * published, unknownFutureValue.
     */
    state?: NullableOption<AccessPackageCatalogState>;
    // The access packages in this catalog. Read-only. Nullable.
    accessPackages?: NullableOption<AccessPackage[]>;
    customWorkflowExtensions?: NullableOption<CustomCalloutExtension[]>;
    resourceRoles?: NullableOption<AccessPackageResourceRole[]>;
    // Access package resources in this catalog.
    resources?: NullableOption<AccessPackageResource[]>;
    resourceScopes?: NullableOption<AccessPackageResourceScope[]>;
}
export interface ConnectedOrganization extends Entity {
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    // The description of the connected organization.
    description?: NullableOption<string>;
    // The display name of the connected organization. Supports $filter (eq).
    displayName?: NullableOption<string>;
    /**
     * The identity sources in this connected organization, one of azureActiveDirectoryTenant, domainIdentitySource,
     * externalDomainFederation or crossCloudAzureActiveDirectoryTenant. Nullable.
     */
    identitySources?: NullableOption<IdentitySource[]>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    modifiedDateTime?: NullableOption<string>;
    /**
     * The state of a connected organization defines whether assignment policies with requestor scope type
     * AllConfiguredConnectedOrganizationSubjects are applicable or not. The possible values are: configured, proposed,
     * unknownFutureValue.
     */
    state?: NullableOption<ConnectedOrganizationState>;
    externalSponsors?: NullableOption<DirectoryObject[]>;
    internalSponsors?: NullableOption<DirectoryObject[]>;
}
export interface AccessPackageResourceEnvironment extends Entity {
    /**
     * The date and time that this object was created. The DateTimeOffset type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // The description of this object.
    description?: NullableOption<string>;
    // The display name of this object.
    displayName?: NullableOption<string>;
    /**
     * Determines whether this is default environment or not. It is set to true for all static origin systems, such as
     * Microsoft Entra groups and Microsoft Entra Applications.
     */
    isDefaultEnvironment?: NullableOption<boolean>;
    /**
     * The date and time that this object was last modified. The DateTimeOffset type represents date and time information
     * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    modifiedDateTime?: NullableOption<string>;
    // The unique identifier of this environment in the origin system.
    originId?: NullableOption<string>;
    // The type of the resource in the origin system, that is, SharePointOnline. Requires $filter (eq).
    originSystem?: NullableOption<string>;
    // Read-only. Required.
    resources?: NullableOption<AccessPackageResource[]>;
}
export interface AccessPackageResourceRequest extends Entity {
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    /**
     * The type of the request. Use adminAdd to add a resource, if the caller is an administrator or resource owner,
     * adminUpdate to update a resource, or adminRemove to remove a resource.
     */
    requestType?: NullableOption<AccessPackageRequestType>;
    /**
     * The outcome of whether the service was able to add the resource to the catalog. The value is delivered if the resource
     * was added or removed, and deliveryFailed if it could not be added or removed. Read-only.
     */
    state?: NullableOption<AccessPackageRequestState>;
    catalog?: NullableOption<AccessPackageCatalog>;
    resource?: NullableOption<AccessPackageResource>;
}
export interface AccessPackageResourceRoleScope extends Entity {
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: NullableOption<string>;
    role?: NullableOption<AccessPackageResourceRole>;
    scope?: NullableOption<AccessPackageResourceScope>;
}
export interface AccessPackageResource extends Entity {
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
    // A description for the resource.
    description?: NullableOption<string>;
    // The display name of the resource, such as the application name, group name or site name.
    displayName?: NullableOption<string>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    modifiedDateTime?: NullableOption<string>;
    /**
     * The unique identifier of the resource in the origin system. In the case of a Microsoft Entra group, this is the
     * identifier of the group.
     */
    originId?: NullableOption<string>;
    // The type of the resource in the origin system, such as SharePointOnline, AadApplication or AadGroup.
    originSystem?: NullableOption<string>;
    /**
     * Contains the environment information for the resource. This can be set using either the @odata.bind annotation or the
     * environment's originId.Supports $expand.
     */
    environment?: NullableOption<AccessPackageResourceEnvironment>;
    // Read-only. Nullable. Supports $expand.
    roles?: NullableOption<AccessPackageResourceRole[]>;
    // Read-only. Nullable. Supports $expand.
    scopes?: NullableOption<AccessPackageResourceScope[]>;
}
export interface EntitlementManagementSettings extends Entity {
    /**
     * If externalUserLifecycleAction is blockSignInAndDelete, the duration, typically many days, after an external user is
     * blocked from sign in before their account is deleted.
     */
    durationUntilExternalUserDeletedAfterBlocked?: NullableOption<string>;
    /**
     * Automatic action that the service should take when an external user's last access package assignment is removed. The
     * possible values are: none, blockSignIn, blockSignInAndDelete, unknownFutureValue.
     */
    externalUserLifecycleAction?: NullableOption<AccessPackageExternalUserLifecycleAction>;
}
export interface PrivilegedAccessGroup extends Entity {
    assignmentApprovals?: NullableOption<Approval[]>;
    // The instances of assignment schedules to activate a just-in-time access.
    assignmentScheduleInstances?: NullableOption<PrivilegedAccessGroupAssignmentScheduleInstance[]>;
    // The schedule requests for operations to create, update, delete, extend, and renew an assignment.
    assignmentScheduleRequests?: NullableOption<PrivilegedAccessGroupAssignmentScheduleRequest[]>;
    // The assignment schedules to activate a just-in-time access.
    assignmentSchedules?: NullableOption<PrivilegedAccessGroupAssignmentSchedule[]>;
    // The instances of eligibility schedules to activate a just-in-time access.
    eligibilityScheduleInstances?: NullableOption<PrivilegedAccessGroupEligibilityScheduleInstance[]>;
    // The schedule requests for operations to create, update, delete, extend, and renew an eligibility.
    eligibilityScheduleRequests?: NullableOption<PrivilegedAccessGroupEligibilityScheduleRequest[]>;
    // The eligibility schedules to activate a just-in-time access.
    eligibilitySchedules?: NullableOption<PrivilegedAccessGroupEligibilitySchedule[]>;
}
export interface PrivilegedAccessScheduleInstance extends Entity {
    // When the schedule instance ends. Required.
    endDateTime?: NullableOption<string>;
    // When this instance starts. Required.
    startDateTime?: NullableOption<string>;
}
export interface PrivilegedAccessGroupAssignmentScheduleInstance extends PrivilegedAccessScheduleInstance {
    /**
     * The identifier of the membership or ownership assignment relationship to the group. Required. The possible values are:
     * owner, member, unknownFutureValue. Supports $filter (eq).
     */
    accessId?: NullableOption<PrivilegedAccessGroupRelationships>;
    /**
     * The identifier of the privilegedAccessGroupAssignmentSchedule from which this instance was created. Required. Supports
     * $filter (eq, ne).
     */
    assignmentScheduleId?: NullableOption<string>;
    /**
     * Indicates whether the membership or ownership assignment is granted through activation of an eligibility or through
     * direct assignment. Required. The possible values are: assigned, activated, unknownFutureValue. Supports $filter (eq).
     */
    assignmentType?: NullableOption<PrivilegedAccessGroupAssignmentType>;
    /**
     * The identifier of the group representing the scope of the membership or ownership assignment through PIM for groups.
     * Optional. Supports $filter (eq).
     */
    groupId?: NullableOption<string>;
    /**
     * Indicates whether the assignment is derived from a group assignment. It can further imply whether the caller can manage
     * the assignment schedule. Required. The possible values are: direct, group, unknownFutureValue. Supports $filter (eq).
     */
    memberType?: NullableOption<PrivilegedAccessGroupMemberType>;
    /**
     * The identifier of the principal whose membership or ownership assignment to the group is managed through PIM for
     * groups. Required. Supports $filter (eq).
     */
    principalId?: NullableOption<string>;
    /**
     * When the request activates a membership or ownership in PIM for groups, this object represents the eligibility request
     * for the group. Otherwise, it is null.
     */
    activatedUsing?: NullableOption<PrivilegedAccessGroupEligibilityScheduleInstance>;
    /**
     * References the group that is the scope of the membership or ownership assignment through PIM for groups. Supports
     * $expand.
     */
    group?: NullableOption<Group>;
    /**
     * References the principal that's in the scope of the membership or ownership assignment request through the group that's
     * governed by PIM. Supports $expand.
     */
    principal?: NullableOption<DirectoryObject>;
}
export interface PrivilegedAccessScheduleRequest extends Request {
    /**
     * Represents the type of operation on the group membership or ownership assignment request. The possible values are:
     * adminAssign, adminUpdate, adminRemove, selfActivate, selfDeactivate, adminExtend, adminRenew. adminAssign: For
     * administrators to assign group membership or ownership to principals.adminRemove: For administrators to remove
     * principals from group membership or ownership. adminUpdate: For administrators to change existing group membership or
     * ownership assignments.adminExtend: For administrators to extend expiring assignments.adminRenew: For administrators to
     * renew expired assignments.selfActivate: For principals to activate their assignments.selfDeactivate: For principals to
     * deactivate their active assignments.
     */
    action?: NullableOption<ScheduleRequestActions>;
    /**
     * Determines whether the call is a validation or an actual call. Only set this property if you want to check whether an
     * activation is subject to additional rules like MFA before actually submitting the request.
     */
    isValidationOnly?: NullableOption<boolean>;
    /**
     * A message provided by users and administrators when create they create the
     * privilegedAccessGroupAssignmentScheduleRequest object.
     */
    justification?: NullableOption<string>;
    // The period of the group membership or ownership assignment. Recurring schedules are currently unsupported.
    scheduleInfo?: NullableOption<RequestSchedule>;
    /**
     * Ticket details linked to the group membership or ownership assignment request including details of the ticket number
     * and ticket system.
     */
    ticketInfo?: NullableOption<TicketInfo>;
}
export interface PrivilegedAccessGroupAssignmentScheduleRequest extends PrivilegedAccessScheduleRequest {
    /**
     * The identifier of a membership or ownership assignment relationship to the group. Required. The possible values are:
     * owner, member, unknownFutureValue.
     */
    accessId?: NullableOption<PrivilegedAccessGroupRelationships>;
    /**
     * The identifier of the group representing the scope of the membership or ownership assignment through PIM for groups.
     * Required.
     */
    groupId?: NullableOption<string>;
    /**
     * The identifier of the principal whose membership or ownership assignment to the group is managed through PIM for
     * groups. Supports $filter (eq, ne).
     */
    principalId?: NullableOption<string>;
    /**
     * The identifier of the schedule that's created from the membership or ownership assignment request. Supports $filter
     * (eq, ne).
     */
    targetScheduleId?: NullableOption<string>;
    /**
     * When the request activates a membership or ownership assignment in PIM for groups, this object represents the
     * eligibility policy for the group. Otherwise, it is null. Supports $expand.
     */
    activatedUsing?: NullableOption<PrivilegedAccessGroupEligibilitySchedule>;
    /**
     * References the group that is the scope of the membership or ownership assignment request through PIM for groups.
     * Supports $expand.
     */
    group?: NullableOption<Group>;
    /**
     * References the principal that's in the scope of this membership or ownership assignment request through the group
     * that's governed by PIM. Supports $expand.
     */
    principal?: NullableOption<DirectoryObject>;
    // Schedule created by this request. Supports $expand.
    targetSchedule?: NullableOption<PrivilegedAccessGroupEligibilitySchedule>;
}
export interface PrivilegedAccessSchedule extends Entity {
    // When the schedule was created. Optional.
    createdDateTime?: NullableOption<string>;
    // The identifier of the access assignment or eligibility request that created this schedule. Optional.
    createdUsing?: NullableOption<string>;
    // When the schedule was last modified. Optional.
    modifiedDateTime?: NullableOption<string>;
    /**
     * Represents the period of the access assignment or eligibility. The scheduleInfo can represent a single occurrence or
     * multiple recurring instances. Required.
     */
    scheduleInfo?: NullableOption<RequestSchedule>;
    /**
     * The status of the access assignment or eligibility request. The possible values are: Canceled, Denied, Failed, Granted,
     * PendingAdminDecision, PendingApproval, PendingProvisioning, PendingScheduleCreation, Provisioned, Revoked, and
     * ScheduleCreated. Not nullable. Optional.
     */
    status?: NullableOption<string>;
}
export interface PrivilegedAccessGroupAssignmentSchedule extends PrivilegedAccessSchedule {
    /**
     * The identifier of the membership or ownership assignment to the group that is governed by PIM. Required. The possible
     * values are: owner, member, unknownFutureValue. Supports $filter (eq).
     */
    accessId?: NullableOption<PrivilegedAccessGroupRelationships>;
    /**
     * Indicates whether the membership or ownership assignment for the principal is granted through activation or direct
     * assignment. Required. The possible values are: assigned, activated, unknownFutureValue. Supports $filter (eq).
     */
    assignmentType?: NullableOption<PrivilegedAccessGroupAssignmentType>;
    /**
     * The identifier of the group representing the scope of the membership or ownership assignment through PIM for groups.
     * Required. Supports $filter (eq).
     */
    groupId?: NullableOption<string>;
    /**
     * Indicates whether the assignment is derived from a direct group assignment or through a transitive assignment. The
     * possible values are: direct, group, unknownFutureValue. Supports $filter (eq).
     */
    memberType?: NullableOption<PrivilegedAccessGroupMemberType>;
    /**
     * The identifier of the principal whose membership or ownership assignment is granted through PIM for groups. Required.
     * Supports $filter (eq).
     */
    principalId?: NullableOption<string>;
    /**
     * When the request activates an ownership or membership assignment in PIM for groups, this object represents the
     * eligibility relationship. Otherwise, it is null. Supports $expand.
     */
    activatedUsing?: NullableOption<PrivilegedAccessGroupEligibilitySchedule>;
    /**
     * References the group that is the scope of the membership or ownership assignment through PIM for groups. Supports
     * $expand.
     */
    group?: NullableOption<Group>;
    /**
     * References the principal that's in the scope of this membership or ownership assignment request to the group that's
     * governed by PIM. Supports $expand.
     */
    principal?: NullableOption<DirectoryObject>;
}
export interface PrivilegedAccessGroupEligibilityScheduleInstance extends PrivilegedAccessScheduleInstance {
    /**
     * The identifier of the membership or ownership eligibility relationship to the group. Required. The possible values are:
     * owner, member. Supports $filter (eq).
     */
    accessId?: NullableOption<PrivilegedAccessGroupRelationships>;
    /**
     * The identifier of the privilegedAccessGroupEligibilitySchedule from which this instance was created. Required. Supports
     * $filter (eq, ne).
     */
    eligibilityScheduleId?: NullableOption<string>;
    /**
     * The identifier of the group representing the scope of the membership or ownership eligibility through PIM for groups.
     * Required. Supports $filter (eq).
     */
    groupId?: NullableOption<string>;
    /**
     * Indicates whether the assignment is derived from a group assignment. It can further imply whether the calling principal
     * can manage the assignment schedule. Required. The possible values are: direct, group, unknownFutureValue. Supports
     * $filter (eq).
     */
    memberType?: NullableOption<PrivilegedAccessGroupMemberType>;
    /**
     * The identifier of the principal whose membership or ownership eligibility to the group is managed through PIM for
     * groups. Required. Supports $filter (eq).
     */
    principalId?: NullableOption<string>;
    /**
     * References the group that is the scope of the membership or ownership eligibility through PIM for groups. Supports
     * $expand.
     */
    group?: NullableOption<Group>;
    /**
     * References the principal that's in the scope of the membership or ownership eligibility request through the group
     * that's governed by PIM. Supports $expand.
     */
    principal?: NullableOption<DirectoryObject>;
}
export interface PrivilegedAccessGroupEligibilityScheduleRequest extends PrivilegedAccessScheduleRequest {
    /**
     * The identifier of membership or ownership eligibility relationship to the group. Required. The possible values are:
     * owner, member, unknownFutureValue.
     */
    accessId?: NullableOption<PrivilegedAccessGroupRelationships>;
    /**
     * The identifier of the group representing the scope of the membership and ownership eligibility through PIM for groups.
     * Required.
     */
    groupId?: NullableOption<string>;
    /**
     * The identifier of the principal whose membership or ownership eligibility to the group is managed through PIM for
     * groups. Required.
     */
    principalId?: NullableOption<string>;
    // The identifier of the schedule that's created from the eligibility request. Optional.
    targetScheduleId?: NullableOption<string>;
    /**
     * References the group that is the scope of the membership or ownership eligibility request through PIM for groups.
     * Supports $expand.
     */
    group?: NullableOption<Group>;
    /**
     * References the principal that's in the scope of the membership or ownership eligibility request through the group
     * that's governed by PIM. Supports $expand.
     */
    principal?: NullableOption<DirectoryObject>;
    // Schedule created by this request.
    targetSchedule?: NullableOption<PrivilegedAccessGroupEligibilitySchedule>;
}
export interface PrivilegedAccessGroupEligibilitySchedule extends PrivilegedAccessSchedule {
    /**
     * The identifier of the membership or ownership eligibility to the group that is governed by PIM. Required. The possible
     * values are: owner, member. Supports $filter (eq).
     */
    accessId?: NullableOption<PrivilegedAccessGroupRelationships>;
    /**
     * The identifier of the group representing the scope of the membership or ownership eligibility through PIM for groups.
     * Required. Supports $filter (eq).
     */
    groupId?: NullableOption<string>;
    /**
     * Indicates whether the assignment is derived from a group assignment. It can further imply whether the caller can manage
     * the schedule. Required. The possible values are: direct, group, unknownFutureValue. Supports $filter (eq).
     */
    memberType?: NullableOption<PrivilegedAccessGroupMemberType>;
    /**
     * The identifier of the principal whose membership or ownership eligibility is granted through PIM for groups. Required.
     * Supports $filter (eq).
     */
    principalId?: NullableOption<string>;
    /**
     * References the group that is the scope of the membership or ownership eligibility through PIM for groups. Supports
     * $expand.
     */
    group?: NullableOption<Group>;
    /**
     * References the principal that's in the scope of this membership or ownership eligibility request to the group that's
     * governed by PIM. Supports $expand.
     */
    principal?: NullableOption<DirectoryObject>;
}
export interface UserSignInInsight extends GovernanceInsight {
    // Indicates when the user last signed in.
    lastSignInDateTime?: NullableOption<string>;
}
export interface Agreement extends Entity {
    /**
     * Display name of the agreement. The display name is used for internal tracking of the agreement but is not shown to end
     * users who view the agreement. Supports $filter (eq).
     */
    displayName?: NullableOption<string>;
    /**
     * Indicates whether end users are required to accept this agreement on every device that they access it from. The end
     * user is required to register their device in Microsoft Entra ID, if they haven't already done so. Supports $filter
     * (eq).
     */
    isPerDeviceAcceptanceRequired?: NullableOption<boolean>;
    // Indicates whether the user has to expand the agreement before accepting. Supports $filter (eq).
    isViewingBeforeAcceptanceRequired?: NullableOption<boolean>;
    // Expiration schedule and frequency of agreement for all users. Supports $filter (eq).
    termsExpiration?: NullableOption<TermsExpiration>;
    /**
     * The duration after which the user must re-accept the terms of use. The value is represented in ISO 8601 format for
     * durations. Supports $filter (eq).
     */
    userReacceptRequiredFrequency?: NullableOption<string>;
    // Read-only. Information about acceptances of this agreement.
    acceptances?: NullableOption<AgreementAcceptance[]>;
    // Default PDF linked to this agreement.
    file?: NullableOption<AgreementFile>;
    /**
     * PDFs linked to this agreement. This property is in the process of being deprecated. Use the file property instead.
     * Supports $expand.
     */
    files?: NullableOption<AgreementFileLocalization[]>;
}
export interface AgreementFileProperties extends Entity {
    /**
     * The date time representing when the file was created. The Timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    /**
     * Localized display name of the policy file of an agreement. The localized display name is shown to end users who view
     * the agreement.
     */
    displayName?: NullableOption<string>;
    // Data that represents the terms of use PDF document. Read-only.
    fileData?: NullableOption<AgreementFileData>;
    // Name of the agreement file (for example, TOU.pdf). Read-only.
    fileName?: NullableOption<string>;
    /**
     * If none of the languages matches the client preference, indicates whether this is the default agreement file. If none
     * of the files are marked as default, the first one is treated as the default. Read-only.
     */
    isDefault?: NullableOption<boolean>;
    /**
     * Indicates whether the agreement file is a major version update. Major version updates invalidate the agreement's
     * acceptances on the corresponding language.
     */
    isMajorVersion?: NullableOption<boolean>;
    /**
     * The language of the agreement file in the format 'languagecode2-country/regioncode2'. 'languagecode2' is a lowercase
     * two-letter code derived from ISO 639-1, while 'country/regioncode2' is derived from ISO 3166 and usually consists of
     * two uppercase letters, or a BCP-47 language tag. For example, U.S. English is en-US. Read-only.
     */
    language?: NullableOption<string>;
}
export interface AgreementFile extends AgreementFileProperties {
    // The localized version of the terms of use agreement files attached to the agreement.
    localizations?: NullableOption<AgreementFileLocalization[]>;
}
export interface AgreementFileLocalization extends AgreementFileProperties {
    // Read-only. Customized versions of the terms of use agreement in the Microsoft Entra tenant.
    versions?: NullableOption<AgreementFileVersion[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface AgreementFileVersion extends AgreementFileProperties {}
export interface CountryNamedLocation extends NamedLocation {
    // List of countries and/or regions in two-letter format specified by ISO 3166-2. Required.
    countriesAndRegions?: string[];
    /**
     * Determines what method is used to decide which country the user is located in. Possible values are
     * clientIpAddress(default) and authenticatorAppGps. Note: authenticatorAppGps is not yet supported in the Microsoft Cloud
     * for US Government.
     */
    countryLookupMethod?: NullableOption<CountryLookupMethodType>;
    /**
     * true if IP addresses that don't map to a country or region should be included in the named location. Optional. Default
     * value is false.
     */
    includeUnknownCountriesAndRegions?: boolean;
}
// tslint:disable-next-line: interface-name
export interface IdentityProtectionRoot {
    // Risk detection in Microsoft Entra ID Protection and the associated information about the detection.
    riskDetections?: NullableOption<RiskDetection[]>;
    // Microsoft Entra service principals that are at risk.
    riskyServicePrincipals?: NullableOption<RiskyServicePrincipal[]>;
    // Users that are flagged as at-risk by Microsoft Entra ID Protection.
    riskyUsers?: NullableOption<RiskyUser[]>;
    // Represents information about detected at-risk service principals in a Microsoft Entra tenant.
    servicePrincipalRiskDetections?: NullableOption<ServicePrincipalRiskDetection[]>;
}
export interface RiskDetection extends Entity {
    // Indicates the activity type the detected risk is linked to. Possible values are: signin, user, unknownFutureValue.
    activity?: NullableOption<ActivityType>;
    /**
     * Date and time that the risky activity occurred. The DateTimeOffset type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is look like this: 2014-01-01T00:00:00Z
     */
    activityDateTime?: NullableOption<string>;
    /**
     * Additional information associated with the risk detection in JSON format. For example,
     * '[{/'Key/':/'userAgent/',/'Value/':/'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
     * Chrome/68.0.3440.106 Safari/537.36/'}]'. Possible keys in the additionalInfo JSON string are: userAgent, alertUrl,
     * relatedEventTimeInUtc, relatedUserAgent, deviceInformation, relatedLocation, requestId, correlationId,
     * lastActivityTimeInUtc, malwareName, clientLocation, clientIp, riskReasons. For more information about riskReasons and
     * possible values, see riskReasons values.
     */
    additionalInfo?: NullableOption<string>;
    /**
     * Correlation ID of the sign-in associated with the risk detection. This property is null if the risk detection is not
     * associated with a sign-in.
     */
    correlationId?: NullableOption<string>;
    /**
     * Date and time that the risk was detected. The DateTimeOffset type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 looks like this: 2014-01-01T00:00:00Z
     */
    detectedDateTime?: NullableOption<string>;
    /**
     * Timing of the detected risk (real-time/offline). Possible values are: notDefined, realtime, nearRealtime, offline,
     * unknownFutureValue.
     */
    detectionTimingType?: NullableOption<RiskDetectionTimingType>;
    // Provides the IP address of the client from where the risk occurred.
    ipAddress?: NullableOption<string>;
    /**
     * Date and time that the risk detection was last updated. The DateTimeOffset type represents date and time information
     * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is look like this:
     * 2014-01-01T00:00:00Z
     */
    lastUpdatedDateTime?: NullableOption<string>;
    // Location of the sign-in.
    location?: NullableOption<SignInLocation>;
    /**
     * Request ID of the sign-in associated with the risk detection. This property is null if the risk detection is not
     * associated with a sign-in.
     */
    requestId?: NullableOption<string>;
    /**
     * Details of the detected risk. The possible values are: none, adminGeneratedTemporaryPassword,
     * userPerformedSecuredPasswordChange, userPerformedSecuredPasswordReset, adminConfirmedSigninSafe, aiConfirmedSigninSafe,
     * userPassedMFADrivenByRiskBasedPolicy, adminDismissedAllRiskForUser, adminConfirmedSigninCompromised, hidden,
     * adminConfirmedUserCompromised, unknownFutureValue, m365DAdminDismissedDetection. Note that you must use the Prefer:
     * include - unknown -enum-members request header to get the following value(s) in this evolvable enum:
     * m365DAdminDismissedDetection.
     */
    riskDetail?: NullableOption<RiskDetail>;
    /**
     * The type of risk event detected. The possible values are unlikelyTravel, anonymizedIPAddress, maliciousIPAddress,
     * unfamiliarFeatures, malwareInfectedIPAddress, suspiciousIPAddress, leakedCredentials, investigationsThreatIntelligence,
     * generic,adminConfirmedUserCompromised, passwordSpray, impossibleTravel, newCountry, anomalousToken,
     * tokenIssuerAnomaly,suspiciousBrowser, riskyIPAddress, mcasSuspiciousInboxManipulationRules, suspiciousInboxForwarding,
     * and anomalousUserActivity. If the risk detection is a premium detection, will show generic. For more information about
     * each value, see riskEventType values.
     */
    riskEventType?: NullableOption<string>;
    // Level of the detected risk. Possible values are: low, medium, high, hidden, none, unknownFutureValue.
    riskLevel?: NullableOption<RiskLevel>;
    /**
     * The state of a detected risky user or sign-in. Possible values are: none, confirmedSafe, remediated, dismissed, atRisk,
     * confirmedCompromised, unknownFutureValue.
     */
    riskState?: NullableOption<RiskState>;
    // Source of the risk detection. For example, activeDirectory.
    source?: NullableOption<string>;
    /**
     * Indicates the type of token issuer for the detected sign-in risk. Possible values are: AzureAD, ADFederationServices,
     * UnknownFutureValue.
     */
    tokenIssuerType?: NullableOption<TokenIssuerType>;
    // The user principal name (UPN) of the user.
    userDisplayName?: NullableOption<string>;
    // Unique ID of the user.
    userId?: NullableOption<string>;
    // The user principal name (UPN) of the user.
    userPrincipalName?: NullableOption<string>;
}
export interface RiskyServicePrincipal extends Entity {
    // The globally unique identifier for the associated application (its appId property), if any.
    appId?: NullableOption<string>;
    // The display name for the service principal.
    displayName?: NullableOption<string>;
    // true if the service principal account is enabled; otherwise, false.
    isEnabled?: NullableOption<boolean>;
    // Indicates whether Microsoft Entra ID is currently processing the service principal's risky state.
    isProcessing?: NullableOption<boolean>;
    /**
     * Details of the detected risk. Note: Details for this property are only available for Workload Identities Premium
     * customers. Events in tenants without this license will be returned hidden. The possible values are: none, hidden,
     * unknownFutureValue, adminConfirmedServicePrincipalCompromised, adminDismissedAllRiskForServicePrincipal. Note that you
     * must use the Prefer: include-unknown-enum-members request header to get the following value(s) in this evolvable enum:
     * adminConfirmedServicePrincipalCompromised , adminDismissedAllRiskForServicePrincipal.
     */
    riskDetail?: NullableOption<RiskDetail>;
    /**
     * The date and time that the risk state was last updated. The DateTimeOffset type represents date and time information
     * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2021 is 2021-01-01T00:00:00Z.
     * Supports $filter (eq).
     */
    riskLastUpdatedDateTime?: NullableOption<string>;
    /**
     * Level of the detected risky workload identity. The possible values are: low, medium, high, hidden, none,
     * unknownFutureValue. Supports $filter (eq).
     */
    riskLevel?: NullableOption<RiskLevel>;
    /**
     * State of the service principal's risk. The possible values are: none, confirmedSafe, remediated, dismissed, atRisk,
     * confirmedCompromised, unknownFutureValue.
     */
    riskState?: NullableOption<RiskState>;
    /**
     * Identifies whether the service principal represents an Application, a ManagedIdentity, or a legacy application
     * (socialIdp). This is set by Microsoft Entra ID internally and is inherited from servicePrincipal.
     */
    servicePrincipalType?: NullableOption<string>;
    // Represents the risk history of Microsoft Entra service principals.
    history?: NullableOption<RiskyServicePrincipalHistoryItem[]>;
}
export interface RiskyUser extends Entity {
    // Indicates whether the user is deleted. Possible values are: true, false.
    isDeleted?: NullableOption<boolean>;
    // Indicates whether a user's risky state is being processed by the backend.
    isProcessing?: NullableOption<boolean>;
    /**
     * Details of the detected risk. Possible values are: none, adminGeneratedTemporaryPassword,
     * userPerformedSecuredPasswordChange, userPerformedSecuredPasswordReset, adminConfirmedSigninSafe, aiConfirmedSigninSafe,
     * userPassedMFADrivenByRiskBasedPolicy, adminDismissedAllRiskForUser, adminConfirmedSigninCompromised, hidden,
     * adminConfirmedUserCompromised, unknownFutureValue.
     */
    riskDetail?: NullableOption<RiskDetail>;
    /**
     * The date and time that the risky user was last updated. The DateTimeOffset type represents date and time information
     * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    riskLastUpdatedDateTime?: NullableOption<string>;
    // Level of the detected risky user. Possible values are: low, medium, high, hidden, none, unknownFutureValue.
    riskLevel?: NullableOption<RiskLevel>;
    /**
     * State of the user's risk. Possible values are: none, confirmedSafe, remediated, dismissed, atRisk,
     * confirmedCompromised, unknownFutureValue.
     */
    riskState?: NullableOption<RiskState>;
    // Risky user display name.
    userDisplayName?: NullableOption<string>;
    // Risky user principal name.
    userPrincipalName?: NullableOption<string>;
    // The activity related to user risk level change
    history?: NullableOption<RiskyUserHistoryItem[]>;
}
export interface ServicePrincipalRiskDetection extends Entity {
    /**
     * Indicates the activity type the detected risk is linked to. The possible values are: signin, servicePrincipal. Note
     * that you must use the Prefer: include-unknown-enum-members request header to get the following value(s) in this
     * evolvable enum: servicePrincipal.
     */
    activity?: NullableOption<ActivityType>;
    /**
     * Date and time when the risky activity occurred. The DateTimeOffset type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    activityDateTime?: NullableOption<string>;
    /**
     * Additional information associated with the risk detection. This string value is represented as a JSON object with the
     * quotations escaped.
     */
    additionalInfo?: NullableOption<string>;
    // The unique identifier for the associated application.
    appId?: NullableOption<string>;
    /**
     * Correlation ID of the sign-in activity associated with the risk detection. This property is null if the risk detection
     * is not associated with a sign-in activity.
     */
    correlationId?: NullableOption<string>;
    /**
     * Date and time when the risk was detected. The DateTimeOffset type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    detectedDateTime?: NullableOption<string>;
    /**
     * Timing of the detected risk , whether real-time or offline. The possible values are: notDefined, realtime,
     * nearRealtime, offline, unknownFutureValue.
     */
    detectionTimingType?: NullableOption<RiskDetectionTimingType>;
    // Provides the IP address of the client from where the risk occurred.
    ipAddress?: NullableOption<string>;
    // The unique identifier for the key credential associated with the risk detection.
    keyIds?: NullableOption<string[]>;
    // Date and time when the risk detection was last updated.
    lastUpdatedDateTime?: NullableOption<string>;
    // Location from where the sign-in was initiated.
    location?: NullableOption<SignInLocation>;
    /**
     * Request identifier of the sign-in activity associated with the risk detection. This property is null if the risk
     * detection is not associated with a sign-in activity. Supports $filter (eq).
     */
    requestId?: NullableOption<string>;
    /**
     * Details of the detected risk. Note: Details for this property are only available for Workload Identities Premium
     * customers. Events in tenants without this license will be returned hidden. The possible values are: none, hidden,
     * adminConfirmedServicePrincipalCompromised, adminDismissedAllRiskForServicePrincipal. Note that you must use the Prefer:
     * include-unknown-enum-members request header to get the following value(s) in this evolvable enum:
     * adminConfirmedServicePrincipalCompromised , adminDismissedAllRiskForServicePrincipal.
     */
    riskDetail?: NullableOption<RiskDetail>;
    /**
     * The type of risk event detected. The possible values are: investigationsThreatIntelligence, generic,
     * adminConfirmedServicePrincipalCompromised, suspiciousSignins, leakedCredentials, anomalousServicePrincipalActivity,
     * maliciousApplication, suspiciousApplication.
     */
    riskEventType?: NullableOption<string>;
    /**
     * Level of the detected risk. Note: Details for this property are only available for Workload Identities Premium
     * customers. Events in tenants without this license will be returned hidden. The possible values are: low, medium, high,
     * hidden, none.
     */
    riskLevel?: NullableOption<RiskLevel>;
    /**
     * The state of a detected risky service principal or sign-in activity. The possible values are: none, dismissed, atRisk,
     * confirmedCompromised.
     */
    riskState?: NullableOption<RiskState>;
    // The display name for the service principal.
    servicePrincipalDisplayName?: NullableOption<string>;
    // The unique identifier for the service principal. Supports $filter (eq).
    servicePrincipalId?: NullableOption<string>;
    // Source of the risk detection. For example, identityProtection.
    source?: NullableOption<string>;
    // Indicates the type of token issuer for the detected sign-in risk. The possible values are: AzureAD.
    tokenIssuerType?: NullableOption<TokenIssuerType>;
}
// tslint:disable-next-line: interface-name
export interface IpNamedLocation extends NamedLocation {
    /**
     * List of IP address ranges in IPv4 CIDR format (for example, 1.2.3.4/32) or any allowable IPv6 format from IETF RFC5969.
     * Required.
     */
    ipRanges?: IpRange[];
    // true if this location is explicitly trusted. Optional. Default value is false.
    isTrusted?: boolean;
}
export interface RiskyServicePrincipalHistoryItem extends RiskyServicePrincipal {
    // The activity related to service principal risk level change.
    activity?: NullableOption<RiskServicePrincipalActivity>;
    // The identifier of the actor of the operation.
    initiatedBy?: NullableOption<string>;
}
export interface RiskyUserHistoryItem extends RiskyUser {
    // The activity related to user risk level change.
    activity?: NullableOption<RiskUserActivity>;
    // The ID of actor that does the operation.
    initiatedBy?: NullableOption<string>;
    // The ID of the user.
    userId?: NullableOption<string>;
}
export interface AccessPackageQuestion extends Entity {
    /**
     * Specifies whether the requestor is allowed to edit answers to questions for an assignment by posting an update to
     * accessPackageAssignmentRequest.
     */
    isAnswerEditable?: NullableOption<boolean>;
    // Whether the requestor is required to supply an answer or not.
    isRequired?: NullableOption<boolean>;
    // The text of the question represented in a format for a specific locale.
    localizations?: NullableOption<AccessPackageLocalizedText[]>;
    // Relative position of this question when displaying a list of questions to the requestor.
    sequence?: NullableOption<number>;
    // The text of the question to show to the requestor.
    text?: NullableOption<string>;
}
export interface AccessPackageSubject extends Entity {
    // The display name of the subject.
    displayName?: NullableOption<string>;
    // The email address of the subject.
    email?: NullableOption<string>;
    // The object identifier of the subject. null if the subject isn't yet a user in the tenant.
    objectId?: NullableOption<string>;
    /**
     * A string representation of the principal's security identifier, if known, or null if the subject doesn't have a
     * security identifier.
     */
    onPremisesSecurityIdentifier?: NullableOption<string>;
    // The principal name, if known, of the subject.
    principalName?: NullableOption<string>;
    // The resource type of the subject. The possible values are: notSpecified, user, servicePrincipal, unknownFutureValue.
    subjectType?: NullableOption<AccessPackageSubjectType>;
    // The connected organization of the subject. Read-only. Nullable.
    connectedOrganization?: NullableOption<ConnectedOrganization>;
}
export interface CustomExtensionStageSetting extends Entity {
    /**
     * Indicates the stage of the access package assignment request workflow when the access package custom extension runs.
     * The possible values are: assignmentRequestCreated, assignmentRequestApproved, assignmentRequestGranted,
     * assignmentRequestRemoved, assignmentFourteenDaysBeforeExpiration, assignmentOneDayBeforeExpiration, unknownFutureValue.
     */
    stage?: AccessPackageCustomExtensionStage;
    // Indicates the custom workflow extension that will be executed at this stage. Nullable. Supports $expand.
    customExtension?: NullableOption<CustomCalloutExtension>;
}
export interface AccessPackageAssignmentRequestWorkflowExtension extends CustomCalloutExtension {
    // The callback configuration for a custom extension.
    callbackConfiguration?: NullableOption<CustomExtensionCallbackConfiguration>;
    // The userPrincipalName of the user or identity of the subject that created this resource. Read-only.
    createdBy?: NullableOption<string>;
    // When the object was created.
    createdDateTime?: NullableOption<string>;
    // The userPrincipalName of the identity that last modified the object.
    lastModifiedBy?: NullableOption<string>;
    // When the object was last modified.
    lastModifiedDateTime?: NullableOption<string>;
}
export interface AccessPackageAssignmentWorkflowExtension extends CustomCalloutExtension {
    // The callback configuration for a custom extension.
    callbackConfiguration?: NullableOption<CustomExtensionCallbackConfiguration>;
    // The userPrincipalName of the user or identity of the subject that created this resource. Read-only.
    createdBy?: NullableOption<string>;
    // When the entity was created.
    createdDateTime?: NullableOption<string>;
    // The userPrincipalName of the identity that last modified the entity.
    lastModifiedBy?: NullableOption<string>;
    // When the entity was last modified.
    lastModifiedDateTime?: NullableOption<string>;
}
export interface AccessPackageResourceRole extends Entity {
    // A description for the resource role.
    description?: NullableOption<string>;
    // The display name of the resource role such as the role defined by the application.
    displayName?: NullableOption<string>;
    /**
     * The unique identifier of the resource role in the origin system. For a SharePoint Online site, the originId will be the
     * sequence number of the role in the site.
     */
    originId?: NullableOption<string>;
    // The type of the resource in the origin system, such as SharePointOnline, AadApplication or AadGroup.
    originSystem?: NullableOption<string>;
    resource?: NullableOption<AccessPackageResource>;
}
export interface AccessPackageResourceScope extends Entity {
    // The description of the scope.
    description?: NullableOption<string>;
    // The display name of the scope.
    displayName?: NullableOption<string>;
    // True if the scopes are arranged in a hierarchy and this is the top or root scope of the resource.
    isRootScope?: NullableOption<boolean>;
    // The unique identifier for the scope in the resource as defined in the origin system.
    originId?: NullableOption<string>;
    // The origin system for the scope.
    originSystem?: NullableOption<string>;
    resource?: NullableOption<AccessPackageResource>;
}
export interface AccessPackageMultipleChoiceQuestion extends AccessPackageQuestion {
    // List of answer choices.
    choices?: NullableOption<AccessPackageAnswerChoice[]>;
    // Indicates whether requestor can select multiple choices as their answer.
    isMultipleSelectionAllowed?: NullableOption<boolean>;
}
export interface AccessPackageTextInputQuestion extends AccessPackageQuestion {
    // Indicates whether the answer is in single or multiple line format.
    isSingleLineQuestion?: NullableOption<boolean>;
    // The regular expression pattern that any answer to this question must match.
    regexPattern?: NullableOption<string>;
}
export interface MobileApp extends Entity {
    // The date and time the app was created.
    createdDateTime?: string;
    // The description of the app.
    description?: NullableOption<string>;
    // The developer of the app.
    developer?: NullableOption<string>;
    // The admin provided or imported title of the app.
    displayName?: NullableOption<string>;
    // The more information Url.
    informationUrl?: NullableOption<string>;
    // The value indicating whether the app is marked as featured by the admin.
    isFeatured?: boolean;
    // The large icon, to be displayed in the app details and used for upload of the icon.
    largeIcon?: NullableOption<MimeContent>;
    // The date and time the app was last modified.
    lastModifiedDateTime?: string;
    // Notes for the app.
    notes?: NullableOption<string>;
    // The owner of the app.
    owner?: NullableOption<string>;
    // The privacy statement Url.
    privacyInformationUrl?: NullableOption<string>;
    // The publisher of the app.
    publisher?: NullableOption<string>;
    /**
     * The publishing state for the app. The app cannot be assigned unless the app is published. Possible values are:
     * notPublished, processing, published.
     */
    publishingState?: MobileAppPublishingState;
    // The list of group assignments for this mobile app.
    assignments?: NullableOption<MobileAppAssignment[]>;
    // The list of categories for this app.
    categories?: NullableOption<MobileAppCategory[]>;
}
export interface MobileLobApp extends MobileApp {
    // The internal committed content version.
    committedContentVersion?: NullableOption<string>;
    // The name of the main Lob application file.
    fileName?: NullableOption<string>;
    // The total size, including all uploaded files.
    size?: number;
    // The list of content versions for this app.
    contentVersions?: NullableOption<MobileAppContent[]>;
}
export interface AndroidLobApp extends MobileLobApp {
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<AndroidMinimumOperatingSystem>;
    // The package identifier.
    packageId?: NullableOption<string>;
    // The version code of Android Line of Business (LoB) app.
    versionCode?: NullableOption<string>;
    // The version name of Android Line of Business (LoB) app.
    versionName?: NullableOption<string>;
}
export interface AndroidStoreApp extends MobileApp {
    // The Android app store URL.
    appStoreUrl?: NullableOption<string>;
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<AndroidMinimumOperatingSystem>;
    // The package identifier.
    packageId?: NullableOption<string>;
}
export interface DeviceAppManagement extends Entity {
    // Whether the account is enabled for syncing applications from the Microsoft Store for Business.
    isEnabledForMicrosoftStoreForBusiness?: boolean;
    /**
     * The locale information used to sync applications from the Microsoft Store for Business. Cultures that are specific to a
     * country/region. The names of these cultures follow RFC 4646 (Windows Vista and later). The format is
     * -&amp;lt;country/regioncode2&amp;gt;, where is a lowercase two-letter code derived from ISO 639-1 and
     * &amp;lt;country/regioncode2&amp;gt; is an uppercase two-letter code derived from ISO 3166. For example, en-US for
     * English (United States) is a specific culture.
     */
    microsoftStoreForBusinessLanguage?: NullableOption<string>;
    // The last time an application sync from the Microsoft Store for Business was completed.
    microsoftStoreForBusinessLastCompletedApplicationSyncTime?: string;
    // The last time the apps from the Microsoft Store for Business were synced successfully for the account.
    microsoftStoreForBusinessLastSuccessfulSyncDateTime?: string;
    // The Managed eBook.
    managedEBooks?: NullableOption<ManagedEBook[]>;
    // The mobile app categories.
    mobileAppCategories?: NullableOption<MobileAppCategory[]>;
    // The Managed Device Mobile Application Configurations.
    mobileAppConfigurations?: NullableOption<ManagedDeviceMobileAppConfiguration[]>;
    // The mobile apps.
    mobileApps?: NullableOption<MobileApp[]>;
    // List of Vpp tokens for this organization.
    vppTokens?: NullableOption<VppToken[]>;
    // Android managed app policies.
    androidManagedAppProtections?: NullableOption<AndroidManagedAppProtection[]>;
    // Default managed app policies.
    defaultManagedAppProtections?: NullableOption<DefaultManagedAppProtection[]>;
    // iOS managed app policies.
    iosManagedAppProtections?: NullableOption<IosManagedAppProtection[]>;
    // Managed app policies.
    managedAppPolicies?: NullableOption<ManagedAppPolicy[]>;
    // The managed app registrations.
    managedAppRegistrations?: NullableOption<ManagedAppRegistration[]>;
    // The managed app statuses.
    managedAppStatuses?: NullableOption<ManagedAppStatus[]>;
    // Windows information protection for apps running on devices which are MDM enrolled.
    mdmWindowsInformationProtectionPolicies?: NullableOption<MdmWindowsInformationProtectionPolicy[]>;
    // Targeted managed app configurations.
    targetedManagedAppConfigurations?: NullableOption<TargetedManagedAppConfiguration[]>;
    // Windows information protection for apps running on devices which are not MDM enrolled.
    windowsInformationProtectionPolicies?: NullableOption<WindowsInformationProtectionPolicy[]>;
}
export interface ManagedEBook extends Entity {
    // The date and time when the eBook file was created.
    createdDateTime?: string;
    // Description.
    description?: NullableOption<string>;
    // Name of the eBook.
    displayName?: string;
    // The more information Url.
    informationUrl?: NullableOption<string>;
    // Book cover.
    largeCover?: NullableOption<MimeContent>;
    // The date and time when the eBook was last modified.
    lastModifiedDateTime?: string;
    // The privacy statement Url.
    privacyInformationUrl?: NullableOption<string>;
    // The date and time when the eBook was published.
    publishedDateTime?: string;
    // Publisher.
    publisher?: NullableOption<string>;
    // The list of assignments for this eBook.
    assignments?: NullableOption<ManagedEBookAssignment[]>;
    // The list of installation states for this eBook.
    deviceStates?: NullableOption<DeviceInstallState[]>;
    // Mobile App Install Summary.
    installSummary?: NullableOption<EBookInstallSummary>;
    // The list of installation states for this eBook.
    userStateSummary?: NullableOption<UserInstallStateSummary[]>;
}
export interface MobileAppCategory extends Entity {
    // The name of the app category.
    displayName?: NullableOption<string>;
    // The date and time the mobileAppCategory was last modified.
    lastModifiedDateTime?: string;
}
export interface ManagedDeviceMobileAppConfiguration extends Entity {
    // DateTime the object was created.
    createdDateTime?: string;
    // Admin provided description of the Device Configuration.
    description?: NullableOption<string>;
    // Admin provided name of the device configuration.
    displayName?: string;
    // DateTime the object was last modified.
    lastModifiedDateTime?: string;
    // the associated app.
    targetedMobileApps?: NullableOption<string[]>;
    // Version of the device configuration.
    version?: number;
    // The list of group assignemenets for app configration.
    assignments?: NullableOption<ManagedDeviceMobileAppConfigurationAssignment[]>;
    // List of ManagedDeviceMobileAppConfigurationDeviceStatus.
    deviceStatuses?: NullableOption<ManagedDeviceMobileAppConfigurationDeviceStatus[]>;
    // App configuration device status summary.
    deviceStatusSummary?: NullableOption<ManagedDeviceMobileAppConfigurationDeviceSummary>;
    // List of ManagedDeviceMobileAppConfigurationUserStatus.
    userStatuses?: NullableOption<ManagedDeviceMobileAppConfigurationUserStatus[]>;
    // App configuration user status summary.
    userStatusSummary?: NullableOption<ManagedDeviceMobileAppConfigurationUserSummary>;
}
export interface VppToken extends Entity {
    // The apple Id associated with the given Apple Volume Purchase Program Token.
    appleId?: NullableOption<string>;
    // Whether or not apps for the VPP token will be automatically updated.
    automaticallyUpdateApps?: boolean;
    // Whether or not apps for the VPP token will be automatically updated.
    countryOrRegion?: NullableOption<string>;
    // The expiration date time of the Apple Volume Purchase Program Token.
    expirationDateTime?: string;
    // Last modification date time associated with the Apple Volume Purchase Program Token.
    lastModifiedDateTime?: string;
    /**
     * The last time when an application sync was done with the Apple volume purchase program service using the the Apple
     * Volume Purchase Program Token.
     */
    lastSyncDateTime?: string;
    /**
     * Current sync status of the last application sync which was triggered using the Apple Volume Purchase Program Token.
     * Possible values are: none, inProgress, completed, failed. Possible values are: none, inProgress, completed, failed.
     */
    lastSyncStatus?: VppTokenSyncStatus;
    // The organization associated with the Apple Volume Purchase Program Token
    organizationName?: NullableOption<string>;
    /**
     * Current state of the Apple Volume Purchase Program Token. Possible values are: unknown, valid, expired, invalid,
     * assignedToExternalMDM. Possible values are: unknown, valid, expired, invalid, assignedToExternalMDM.
     */
    state?: VppTokenState;
    // The Apple Volume Purchase Program Token string downloaded from the Apple Volume Purchase Program.
    token?: NullableOption<string>;
    /**
     * The type of volume purchase program which the given Apple Volume Purchase Program Token is associated with. Possible
     * values are: business, education. Possible values are: business, education.
     */
    vppTokenAccountType?: VppTokenAccountType;
}
export interface ManagedAppPolicy extends Entity {
    // The date and time the policy was created.
    createdDateTime?: string;
    // The policy's description.
    description?: NullableOption<string>;
    // Policy display name.
    displayName?: string;
    // Last time the policy was modified.
    lastModifiedDateTime?: string;
    // Version of the entity.
    version?: NullableOption<string>;
}
export interface ManagedAppProtection extends ManagedAppPolicy {
    // Data storage locations where a user may store managed data.
    allowedDataStorageLocations?: ManagedAppDataStorageLocation[];
    // Sources from which data is allowed to be transferred. Possible values are: allApps, managedApps, none.
    allowedInboundDataTransferSources?: ManagedAppDataTransferLevel;
    /**
     * The level to which the clipboard may be shared between apps on the managed device. Possible values are: allApps,
     * managedAppsWithPasteIn, managedApps, blocked.
     */
    allowedOutboundClipboardSharingLevel?: ManagedAppClipboardSharingLevel;
    // Destinations to which data is allowed to be transferred. Possible values are: allApps, managedApps, none.
    allowedOutboundDataTransferDestinations?: ManagedAppDataTransferLevel;
    // Indicates whether contacts can be synced to the user's device.
    contactSyncBlocked?: boolean;
    // Indicates whether the backup of a managed app's data is blocked.
    dataBackupBlocked?: boolean;
    // Indicates whether device compliance is required.
    deviceComplianceRequired?: boolean;
    // Indicates whether use of the app pin is required if the device pin is set.
    disableAppPinIfDevicePinIsSet?: boolean;
    // Indicates whether use of the fingerprint reader is allowed in place of a pin if PinRequired is set to True.
    fingerprintBlocked?: boolean;
    /**
     * Indicates in which managed browser(s) that internet links should be opened. When this property is configured,
     * ManagedBrowserToOpenLinksRequired should be true. Possible values are: notConfigured, microsoftEdge.
     */
    managedBrowser?: ManagedBrowserType;
    /**
     * Indicates whether internet links should be opened in the managed browser app, or any custom browser specified by
     * CustomBrowserProtocol (for iOS) or CustomBrowserPackageId/CustomBrowserDisplayName (for Android)
     */
    managedBrowserToOpenLinksRequired?: boolean;
    // Maximum number of incorrect pin retry attempts before the managed app is either blocked or wiped.
    maximumPinRetries?: number;
    // Minimum pin length required for an app-level pin if PinRequired is set to True
    minimumPinLength?: number;
    // Versions less than the specified version will block the managed app from accessing company data.
    minimumRequiredAppVersion?: NullableOption<string>;
    // Versions less than the specified version will block the managed app from accessing company data.
    minimumRequiredOsVersion?: NullableOption<string>;
    // Versions less than the specified version will result in warning message on the managed app.
    minimumWarningAppVersion?: NullableOption<string>;
    // Versions less than the specified version will result in warning message on the managed app from accessing company data.
    minimumWarningOsVersion?: NullableOption<string>;
    // Indicates whether organizational credentials are required for app use.
    organizationalCredentialsRequired?: boolean;
    // TimePeriod before the all-level pin must be reset if PinRequired is set to True.
    periodBeforePinReset?: string;
    // The period after which access is checked when the device is not connected to the internet.
    periodOfflineBeforeAccessCheck?: string;
    // The amount of time an app is allowed to remain disconnected from the internet before all managed data it is wiped.
    periodOfflineBeforeWipeIsEnforced?: string;
    // The period after which access is checked when the device is connected to the internet.
    periodOnlineBeforeAccessCheck?: string;
    /**
     * Character set which may be used for an app-level pin if PinRequired is set to True. Possible values are: numeric,
     * alphanumericAndSymbol.
     */
    pinCharacterSet?: ManagedAppPinCharacterSet;
    // Indicates whether an app-level pin is required.
    pinRequired?: boolean;
    // Indicates whether printing is allowed from managed apps.
    printBlocked?: boolean;
    // Indicates whether users may use the 'Save As' menu item to save a copy of protected files.
    saveAsBlocked?: boolean;
    // Indicates whether simplePin is blocked.
    simplePinBlocked?: boolean;
}
export interface TargetedManagedAppProtection extends ManagedAppProtection {
    // Indicates if the policy is deployed to any inclusion groups or not.
    isAssigned?: boolean;
    // Navigation property to list of inclusion and exclusion groups to which the policy is deployed.
    assignments?: NullableOption<TargetedManagedAppPolicyAssignment[]>;
}
export interface AndroidManagedAppProtection extends TargetedManagedAppProtection {
    /**
     * Friendly name of the preferred custom browser to open weblink on Android. When this property is configured,
     * ManagedBrowserToOpenLinksRequired should be true.
     */
    customBrowserDisplayName?: NullableOption<string>;
    /**
     * Unique identifier of the preferred custom browser to open weblink on Android. When this property is configured,
     * ManagedBrowserToOpenLinksRequired should be true.
     */
    customBrowserPackageId?: NullableOption<string>;
    // Count of apps to which the current policy is deployed.
    deployedAppCount?: number;
    // When this setting is enabled, app level encryption is disabled if device level encryption is enabled
    disableAppEncryptionIfDeviceEncryptionIsEnabled?: boolean;
    // Indicates whether application data for managed apps should be encrypted
    encryptAppData?: boolean;
    // Define the oldest required Android security patch level a user can have to gain secure access to the app.
    minimumRequiredPatchVersion?: NullableOption<string>;
    // Define the oldest recommended Android security patch level a user can have for secure access to the app.
    minimumWarningPatchVersion?: NullableOption<string>;
    // Indicates whether a managed user can take screen captures of managed apps
    screenCaptureBlocked?: boolean;
    // List of apps to which the policy is deployed.
    apps?: NullableOption<ManagedMobileApp[]>;
    // Navigation property to deployment summary of the configuration.
    deploymentSummary?: NullableOption<ManagedAppPolicyDeploymentSummary>;
}
export interface DefaultManagedAppProtection extends ManagedAppProtection {
    /**
     * Type of encryption which should be used for data in a managed app. (iOS Only). Possible values are: useDeviceSettings,
     * afterDeviceRestart, whenDeviceLockedExceptOpenFiles, whenDeviceLocked.
     */
    appDataEncryptionType?: ManagedAppDataEncryptionType;
    // A set of string key and string value pairs to be sent to the affected users, unalterned by this service
    customSettings?: KeyValuePair[];
    // Count of apps to which the current policy is deployed.
    deployedAppCount?: number;
    // When this setting is enabled, app level encryption is disabled if device level encryption is enabled. (Android only)
    disableAppEncryptionIfDeviceEncryptionIsEnabled?: boolean;
    // Indicates whether managed-app data should be encrypted. (Android only)
    encryptAppData?: boolean;
    // Indicates whether use of the FaceID is allowed in place of a pin if PinRequired is set to True. (iOS Only)
    faceIdBlocked?: boolean;
    /**
     * Define the oldest required Android security patch level a user can have to gain secure access to the app. (Android
     * only)
     */
    minimumRequiredPatchVersion?: NullableOption<string>;
    // Versions less than the specified version will block the managed app from accessing company data. (iOS Only)
    minimumRequiredSdkVersion?: NullableOption<string>;
    // Define the oldest recommended Android security patch level a user can have for secure access to the app. (Android only)
    minimumWarningPatchVersion?: NullableOption<string>;
    // Indicates whether screen capture is blocked. (Android only)
    screenCaptureBlocked?: boolean;
    // List of apps to which the policy is deployed.
    apps?: NullableOption<ManagedMobileApp[]>;
    // Navigation property to deployment summary of the configuration.
    deploymentSummary?: NullableOption<ManagedAppPolicyDeploymentSummary>;
}
// tslint:disable-next-line: interface-name
export interface IosManagedAppProtection extends TargetedManagedAppProtection {
    /**
     * Type of encryption which should be used for data in a managed app. Possible values are: useDeviceSettings,
     * afterDeviceRestart, whenDeviceLockedExceptOpenFiles, whenDeviceLocked.
     */
    appDataEncryptionType?: ManagedAppDataEncryptionType;
    /**
     * A custom browser protocol to open weblink on iOS. When this property is configured, ManagedBrowserToOpenLinksRequired
     * should be true.
     */
    customBrowserProtocol?: NullableOption<string>;
    // Count of apps to which the current policy is deployed.
    deployedAppCount?: number;
    // Indicates whether use of the FaceID is allowed in place of a pin if PinRequired is set to True.
    faceIdBlocked?: boolean;
    // Versions less than the specified version will block the managed app from accessing company data.
    minimumRequiredSdkVersion?: NullableOption<string>;
    // List of apps to which the policy is deployed.
    apps?: NullableOption<ManagedMobileApp[]>;
    // Navigation property to deployment summary of the configuration.
    deploymentSummary?: NullableOption<ManagedAppPolicyDeploymentSummary>;
}
export interface ManagedAppStatus extends Entity {
    // Friendly name of the status report.
    displayName?: NullableOption<string>;
    // Version of the entity.
    version?: NullableOption<string>;
}
export interface WindowsInformationProtection extends ManagedAppPolicy {
    // Specifies whether to allow Azure RMS encryption for WIP
    azureRightsManagementServicesAllowed?: boolean;
    /**
     * Specifies a recovery certificate that can be used for data recovery of encrypted files. This is the same as the data
     * recovery agent(DRA) certificate for encrypting file system(EFS)
     */
    dataRecoveryCertificate?: NullableOption<WindowsInformationProtectionDataRecoveryCertificate>;
    /**
     * WIP enforcement level.See the Enum definition for supported values. Possible values are: noProtection,
     * encryptAndAuditOnly, encryptAuditAndPrompt, encryptAuditAndBlock.
     */
    enforcementLevel?: WindowsInformationProtectionEnforcementLevel;
    // Primary enterprise domain
    enterpriseDomain?: NullableOption<string>;
    /**
     * This is the comma-separated list of internal proxy servers. For example, '157.54.14.28, 157.54.11.118, 10.202.14.167,
     * 157.53.14.163, 157.69.210.59'. These proxies have been configured by the admin to connect to specific resources on the
     * Internet. They are considered to be enterprise network locations. The proxies are only leveraged in configuring the
     * EnterpriseProxiedDomains policy to force traffic to the matched domains through these proxies
     */
    enterpriseInternalProxyServers?: NullableOption<WindowsInformationProtectionResourceCollection[]>;
    /**
     * Sets the enterprise IP ranges that define the computers in the enterprise network. Data that comes from those computers
     * will be considered part of the enterprise and protected. These locations will be considered a safe destination for
     * enterprise data to be shared to
     */
    enterpriseIPRanges?: NullableOption<WindowsInformationProtectionIPRangeCollection[]>;
    /**
     * Boolean value that tells the client to accept the configured list and not to use heuristics to attempt to find other
     * subnets. Default is false
     */
    enterpriseIPRangesAreAuthoritative?: boolean;
    /**
     * This is the list of domains that comprise the boundaries of the enterprise. Data from one of these domains that is sent
     * to a device will be considered enterprise data and protected These locations will be considered a safe destination for
     * enterprise data to be shared to
     */
    enterpriseNetworkDomainNames?: NullableOption<WindowsInformationProtectionResourceCollection[]>;
    // List of enterprise domains to be protected
    enterpriseProtectedDomainNames?: NullableOption<WindowsInformationProtectionResourceCollection[]>;
    /**
     * Contains a list of Enterprise resource domains hosted in the cloud that need to be protected. Connections to these
     * resources are considered enterprise data. If a proxy is paired with a cloud resource, traffic to the cloud resource
     * will be routed through the enterprise network via the denoted proxy server (on Port 80). A proxy server used for this
     * purpose must also be configured using the EnterpriseInternalProxyServers policy
     */
    enterpriseProxiedDomains?: NullableOption<WindowsInformationProtectionProxiedDomainCollection[]>;
    // This is a list of proxy servers. Any server not on this list is considered non-enterprise
    enterpriseProxyServers?: NullableOption<WindowsInformationProtectionResourceCollection[]>;
    /**
     * Boolean value that tells the client to accept the configured list of proxies and not try to detect other work proxies.
     * Default is false
     */
    enterpriseProxyServersAreAuthoritative?: boolean;
    /**
     * Exempt applications can also access enterprise data, but the data handled by those applications are not protected. This
     * is because some critical enterprise applications may have compatibility problems with encrypted data.
     */
    exemptApps?: NullableOption<WindowsInformationProtectionApp[]>;
    /**
     * Determines whether overlays are added to icons for WIP protected files in Explorer and enterprise only app tiles in the
     * Start menu. Starting in Windows 10, version 1703 this setting also configures the visibility of the WIP icon in the
     * title bar of a WIP-protected app
     */
    iconsVisible?: boolean;
    // This switch is for the Windows Search Indexer, to allow or disallow indexing of items
    indexingEncryptedStoresOrItemsBlocked?: boolean;
    // Indicates if the policy is deployed to any inclusion groups or not.
    isAssigned?: boolean;
    // List of domain names that can used for work or personal resource
    neutralDomainResources?: NullableOption<WindowsInformationProtectionResourceCollection[]>;
    /**
     * Protected applications can access enterprise data and the data handled by those applications are protected with
     * encryption
     */
    protectedApps?: NullableOption<WindowsInformationProtectionApp[]>;
    // Specifies whether the protection under lock feature (also known as encrypt under pin) should be configured
    protectionUnderLockConfigRequired?: boolean;
    /**
     * This policy controls whether to revoke the WIP keys when a device unenrolls from the management service. If set to 1
     * (Don't revoke keys), the keys will not be revoked and the user will continue to have access to protected files after
     * unenrollment. If the keys are not revoked, there will be no revoked file cleanup subsequently.
     */
    revokeOnUnenrollDisabled?: boolean;
    /**
     * TemplateID GUID to use for RMS encryption. The RMS template allows the IT admin to configure the details about who has
     * access to RMS-protected file and how long they have access
     */
    rightsManagementServicesTemplateId?: NullableOption<string>;
    /**
     * Specifies a list of file extensions, so that files with these extensions are encrypted when copying from an SMB share
     * within the corporate boundary
     */
    smbAutoEncryptedFileExtensions?: NullableOption<WindowsInformationProtectionResourceCollection[]>;
    // Navigation property to list of security groups targeted for policy.
    assignments?: NullableOption<TargetedManagedAppPolicyAssignment[]>;
    // Another way to input exempt apps through xml files
    exemptAppLockerFiles?: NullableOption<WindowsInformationProtectionAppLockerFile[]>;
    // Another way to input protected apps through xml files
    protectedAppLockerFiles?: NullableOption<WindowsInformationProtectionAppLockerFile[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface MdmWindowsInformationProtectionPolicy extends WindowsInformationProtection {}
export interface ManagedAppConfiguration extends ManagedAppPolicy {
    /**
     * A set of string key and string value pairs to be sent to apps for users to whom the configuration is scoped, unalterned
     * by this service
     */
    customSettings?: KeyValuePair[];
}
export interface TargetedManagedAppConfiguration extends ManagedAppConfiguration {
    // Count of apps to which the current policy is deployed.
    deployedAppCount?: number;
    // Indicates if the policy is deployed to any inclusion groups or not.
    isAssigned?: boolean;
    // List of apps to which the policy is deployed.
    apps?: NullableOption<ManagedMobileApp[]>;
    // Navigation property to list of inclusion and exclusion groups to which the policy is deployed.
    assignments?: NullableOption<TargetedManagedAppPolicyAssignment[]>;
    // Navigation property to deployment summary of the configuration.
    deploymentSummary?: NullableOption<ManagedAppPolicyDeploymentSummary>;
}
export interface WindowsInformationProtectionPolicy extends WindowsInformationProtection {
    // Offline interval before app data is wiped (days)
    daysWithoutContactBeforeUnenroll?: number;
    // Enrollment url for the MDM
    mdmEnrollmentUrl?: NullableOption<string>;
    /**
     * Specifies the maximum amount of time (in minutes) allowed after the device is idle that will cause the device to become
     * PIN or password locked. Range is an integer X where 0 &amp;lt;= X &amp;lt;= 999.
     */
    minutesOfInactivityBeforeDeviceLock?: number;
    /**
     * Integer value that specifies the number of past PINs that can be associated to a user account that can't be reused. The
     * largest number you can configure for this policy setting is 50. The lowest number you can configure for this policy
     * setting is 0. If this policy is set to 0, then storage of previous PINs is not required. This node was added in Windows
     * 10, version 1511. Default is 0.
     */
    numberOfPastPinsRemembered?: number;
    /**
     * The number of authentication failures allowed before the device will be wiped. A value of 0 disables device wipe
     * functionality. Range is an integer X where 4 &amp;lt;= X &amp;lt;= 16 for desktop and 0 &amp;lt;= X &amp;lt;= 999 for
     * mobile devices.
     */
    passwordMaximumAttemptCount?: number;
    /**
     * Integer value specifies the period of time (in days) that a PIN can be used before the system requires the user to
     * change it. The largest number you can configure for this policy setting is 730. The lowest number you can configure for
     * this policy setting is 0. If this policy is set to 0, then the user's PIN will never expire. This node was added in
     * Windows 10, version 1511. Default is 0.
     */
    pinExpirationDays?: number;
    /**
     * Integer value that configures the use of lowercase letters in the Windows Hello for Business PIN. Default is NotAllow.
     * Possible values are: notAllow, requireAtLeastOne, allow.
     */
    pinLowercaseLetters?: WindowsInformationProtectionPinCharacterRequirements;
    /**
     * Integer value that sets the minimum number of characters required for the PIN. Default value is 4. The lowest number
     * you can configure for this policy setting is 4. The largest number you can configure must be less than the number
     * configured in the Maximum PIN length policy setting or the number 127, whichever is the lowest.
     */
    pinMinimumLength?: number;
    /**
     * Integer value that configures the use of special characters in the Windows Hello for Business PIN. Valid special
     * characters for Windows Hello for Business PIN gestures include: ! ' # $ % &amp; ' ( ) + , - . / : ; &amp;lt; = &amp;gt;
     * ? @ [ / ] ^ ` {
     */
    pinSpecialCharacters?: WindowsInformationProtectionPinCharacterRequirements;
    /**
     * Integer value that configures the use of uppercase letters in the Windows Hello for Business PIN. Default is NotAllow.
     * Possible values are: notAllow, requireAtLeastOne, allow.
     */
    pinUppercaseLetters?: WindowsInformationProtectionPinCharacterRequirements;
    // New property in RS2, pending documentation
    revokeOnMdmHandoffDisabled?: boolean;
    // Boolean value that sets Windows Hello for Business as a method for signing into Windows.
    windowsHelloForBusinessBlocked?: boolean;
}
export interface EnterpriseCodeSigningCertificate extends Entity {
    /**
     * The Windows Enterprise Code-Signing Certificate in the raw data format. Set to null once certificate has been uploaded
     * and other properties have been populated.
     */
    content?: NullableOption<string>;
    /**
     * The cert expiration date and time (using ISO 8601 format, in UTC time). Uploading a valid cert file through the Intune
     * admin console will automatically populate this value in the HTTP response. Supports: $filter, $select, $top, $OrderBy,
     * $skip. $Search is not supported.
     */
    expirationDateTime?: string;
    /**
     * The issuer value for the cert. This might contain information such as country (C), state or province (S), locality (L),
     * common name of the cert (CN), organization (O), and organizational unit (OU). Uploading a valid cert file through the
     * Intune admin console will automatically populate this value in the HTTP response. Supports: $filter, $select, $top,
     * $OrderBy, $skip. $Search is not supported.
     */
    issuer?: NullableOption<string>;
    /**
     * The issuer name for the cert. This might contain information such as country (C), state or province (S), locality (L),
     * common name of the cert (CN), organization (O), and organizational unit (OU). Uploading a valid cert file through the
     * Intune admin console will automatically populate this value in the HTTP response. Supports: $filter, $select, $top,
     * $OrderBy, $skip. $Search is not supported.
     */
    issuerName?: NullableOption<string>;
    /**
     * Whether the Certificate Status Provisioned or not Provisioned. Possible values are: notProvisioned, provisioned.
     * Default is notProvisioned. Uploading a valid cert file through the Intune admin console will automatically populate
     * this value in the HTTP response. Supports: $filter, $select, $top, $OrderBy, $skip. $Search is not supported. Possible
     * values are: notProvisioned, provisioned.
     */
    status?: CertificateStatus;
    /**
     * The subject value for the cert. This might contain information such as country (C), state or province (S), locality
     * (L), common name of the cert (CN), organization (O), and organizational unit (OU). Uploading a valid cert file through
     * the Intune admin console will automatically populate this value in the HTTP response. Supports: $filter, $select, $top,
     * $OrderBy, $skip. $Search is not supported.
     */
    subject?: NullableOption<string>;
    /**
     * The subject name for the cert. This might contain information such as country (C), state or province (S), locality (L),
     * common name of the cert (CN), organization (O), and organizational unit (OU). Uploading a valid cert file through the
     * Intune admin console will automatically populate this value in the HTTP response. Supports: $filter, $select, $top,
     * $OrderBy, $skip. $Search is not supported.
     */
    subjectName?: NullableOption<string>;
    /**
     * The date time of CodeSigning Cert when it is uploaded (using ISO 8601 format, in UTC time). Uploading a valid cert file
     * through the Intune admin console will automatically populate this value in the HTTP response. Supports: $filter,
     * $select, $top, $OrderBy, $skip. $Search is not supported.
     */
    uploadDateTime?: string;
}
// tslint:disable-next-line: interface-name
export interface IosiPadOSWebClip extends MobileApp {
    // Indicates iOS/iPadOS web clip app URL. Example: 'https://www.contoso.com'
    appUrl?: NullableOption<string>;
    /**
     * Whether or not to use managed browser. When TRUE, the app will be required to be opened in Microsoft Edge. When FALSE,
     * the app will not be required to be opened in Microsoft Edge. By default, this property is set to FALSE.
     */
    useManagedBrowser?: boolean;
}
// tslint:disable-next-line: interface-name
export interface IosLobApp extends MobileLobApp {
    // The iOS architecture for which this app can run on.
    applicableDeviceType?: IosDeviceType;
    // The build number of iOS Line of Business (LoB) app.
    buildNumber?: NullableOption<string>;
    // The Identity Name.
    bundleId?: NullableOption<string>;
    // The expiration time.
    expirationDateTime?: NullableOption<string>;
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<IosMinimumOperatingSystem>;
    // The version number of iOS Line of Business (LoB) app.
    versionNumber?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosLobAppProvisioningConfigurationAssignment extends Entity {
    // The target group assignment defined by the admin.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
// tslint:disable-next-line: interface-name
export interface IosMobileAppConfiguration extends ManagedDeviceMobileAppConfiguration {
    // mdm app configuration Base64 binary.
    encodedSettingXml?: NullableOption<string>;
    // app configuration setting items.
    settings?: NullableOption<AppConfigurationSettingItem[]>;
}
// tslint:disable-next-line: interface-name
export interface IosStoreApp extends MobileApp {
    // The iOS architecture for which this app can run on.
    applicableDeviceType?: IosDeviceType;
    // The Apple App Store URL
    appStoreUrl?: NullableOption<string>;
    // The Identity Name.
    bundleId?: NullableOption<string>;
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<IosMinimumOperatingSystem>;
}
// tslint:disable-next-line: interface-name
export interface IosVppApp extends MobileApp {
    // The applicable iOS Device Type.
    applicableDeviceType?: NullableOption<IosDeviceType>;
    // The store URL.
    appStoreUrl?: NullableOption<string>;
    // The Identity Name.
    bundleId?: NullableOption<string>;
    // The supported License Type.
    licensingType?: NullableOption<VppLicensingType>;
    // The VPP application release date and time.
    releaseDateTime?: NullableOption<string>;
    // The total number of VPP licenses.
    totalLicenseCount?: number;
    // The number of VPP licenses in use.
    usedLicenseCount?: number;
    /**
     * The type of volume purchase program which the given Apple Volume Purchase Program Token is associated with. Possible
     * values are: business, education. Possible values are: business, education.
     */
    vppTokenAccountType?: VppTokenAccountType;
    // The Apple Id associated with the given Apple Volume Purchase Program Token.
    vppTokenAppleId?: NullableOption<string>;
    // The organization associated with the Apple Volume Purchase Program Token
    vppTokenOrganizationName?: NullableOption<string>;
}
export interface MacOSDmgApp extends MobileLobApp {
    /**
     * When TRUE, indicates that the app's version will NOT be used to detect if the app is installed on a device. When FALSE,
     * indicates that the app's version will be used to detect if the app is installed on a device. Set this to true for apps
     * that use a self update feature. The default value is FALSE.
     */
    ignoreVersionDetection?: boolean;
    // The list of .apps expected to be installed by the DMG (Apple Disk Image)
    includedApps?: MacOSIncludedApp[];
    // ComplexType macOSMinimumOperatingSystem that indicates the minimum operating system applicable for the application.
    minimumSupportedOperatingSystem?: NullableOption<MacOSMinimumOperatingSystem>;
    /**
     * The bundleId of the primary .app in the DMG (Apple Disk Image). This maps to the CFBundleIdentifier in the app's bundle
     * configuration.
     */
    primaryBundleId?: string;
    /**
     * The version of the primary .app in the DMG (Apple Disk Image). This maps to the CFBundleShortVersion in the app's
     * bundle configuration.
     */
    primaryBundleVersion?: string;
}
export interface MacOSLobApp extends MobileLobApp {
    // The build number of the package. This should match the package CFBundleShortVersionString of the .pkg file.
    buildNumber?: NullableOption<string>;
    // The primary bundleId of the package.
    bundleId?: NullableOption<string>;
    // List of ComplexType macOSLobChildApp objects. Represents the apps expected to be installed by the package.
    childApps?: NullableOption<MacOSLobChildApp[]>;
    /**
     * When TRUE, indicates that the app's version will NOT be used to detect if the app is installed on a device. When FALSE,
     * indicates that the app's version will be used to detect if the app is installed on a device. Set this to true for apps
     * that use a self update feature.
     */
    ignoreVersionDetection?: boolean;
    /**
     * When TRUE, indicates that the app will be installed as managed (requires macOS 11.0 and other managed package
     * restrictions). When FALSE, indicates that the app will be installed as unmanaged.
     */
    installAsManaged?: boolean;
    /**
     * The MD5 hash codes. This is empty if the package was uploaded directly. If the Intune App Wrapping Tool is used to
     * create a .intunemac, this value can be found inside the Detection.xml file.
     */
    md5Hash?: NullableOption<string[]>;
    /**
     * The chunk size for MD5 hash. This is '0' or empty if the package was uploaded directly. If the Intune App Wrapping Tool
     * is used to create a .intunemac, this value can be found inside the Detection.xml file.
     */
    md5HashChunkSize?: number;
    // ComplexType macOSMinimumOperatingSystem that indicates the minimum operating system applicable for the application.
    minimumSupportedOperatingSystem?: NullableOption<MacOSMinimumOperatingSystem>;
    // The version number of the package. This should match the package CFBundleVersion in the packageinfo file.
    versionNumber?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface MacOSMicrosoftDefenderApp extends MobileApp {}
export interface MacOSMicrosoftEdgeApp extends MobileApp {
    // The channel to install on target devices. Possible values are: dev, beta, stable, unknownFutureValue.
    channel?: MicrosoftEdgeChannel;
}
// tslint:disable-next-line: no-empty-interface
export interface MacOSOfficeSuiteApp extends MobileApp {}
export interface ManagedApp extends MobileApp {
    // The Application's availability. Possible values are: global, lineOfBusiness.
    appAvailability?: ManagedAppAvailability;
    // The Application's version.
    version?: NullableOption<string>;
}
export interface ManagedMobileLobApp extends ManagedApp {
    // The internal committed content version.
    committedContentVersion?: NullableOption<string>;
    // The name of the main Lob application file.
    fileName?: NullableOption<string>;
    // The total size, including all uploaded files.
    size?: number;
    // The list of content versions for this app.
    contentVersions?: NullableOption<MobileAppContent[]>;
}
export interface ManagedAndroidLobApp extends ManagedMobileLobApp {
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<AndroidMinimumOperatingSystem>;
    // The package identifier.
    packageId?: NullableOption<string>;
    // The version code of managed Android Line of Business (LoB) app.
    versionCode?: NullableOption<string>;
    // The version name of managed Android Line of Business (LoB) app.
    versionName?: NullableOption<string>;
}
export interface ManagedAndroidStoreApp extends ManagedApp {
    // The Android AppStoreUrl.
    appStoreUrl?: string;
    // The value for the minimum supported operating system.
    minimumSupportedOperatingSystem?: AndroidMinimumOperatingSystem;
    // The app's package ID.
    packageId?: NullableOption<string>;
}
export interface ManagedDeviceMobileAppConfigurationAssignment extends Entity {
    // Assignment target that the T&amp;C policy is assigned to.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface ManagedDeviceMobileAppConfigurationDeviceStatus extends Entity {
    // The DateTime when device compliance grace period expires
    complianceGracePeriodExpirationDateTime?: string;
    // Device name of the DevicePolicyStatus.
    deviceDisplayName?: NullableOption<string>;
    // The device model that is being reported
    deviceModel?: NullableOption<string>;
    // Last modified date time of the policy report.
    lastReportedDateTime?: string;
    /**
     * Compliance status of the policy report. Possible values are: unknown, notApplicable, compliant, remediated,
     * nonCompliant, error, conflict, notAssigned.
     */
    status?: ComplianceStatus;
    // The User Name that is being reported
    userName?: NullableOption<string>;
    // UserPrincipalName.
    userPrincipalName?: NullableOption<string>;
}
export interface ManagedDeviceMobileAppConfigurationDeviceSummary extends Entity {
    // Version of the policy for that overview
    configurationVersion?: number;
    // Number of error devices
    errorCount?: number;
    // Number of failed devices
    failedCount?: number;
    // Last update time
    lastUpdateDateTime?: string;
    // Number of not applicable devices
    notApplicableCount?: number;
    // Number of pending devices
    pendingCount?: number;
    // Number of succeeded devices
    successCount?: number;
}
export interface ManagedDeviceMobileAppConfigurationUserStatus extends Entity {
    // Devices count for that user.
    devicesCount?: number;
    // Last modified date time of the policy report.
    lastReportedDateTime?: string;
    /**
     * Compliance status of the policy report. Possible values are: unknown, notApplicable, compliant, remediated,
     * nonCompliant, error, conflict, notAssigned.
     */
    status?: ComplianceStatus;
    // User name of the DevicePolicyStatus.
    userDisplayName?: NullableOption<string>;
    // UserPrincipalName.
    userPrincipalName?: NullableOption<string>;
}
export interface ManagedDeviceMobileAppConfigurationUserSummary extends Entity {
    // Version of the policy for that overview
    configurationVersion?: number;
    // Number of error Users
    errorCount?: number;
    // Number of failed Users
    failedCount?: number;
    // Last update time
    lastUpdateDateTime?: string;
    // Number of not applicable users
    notApplicableCount?: number;
    // Number of pending Users
    pendingCount?: number;
    // Number of succeeded Users
    successCount?: number;
}
export interface ManagedIOSLobApp extends ManagedMobileLobApp {
    // The iOS architecture for which this app can run on.
    applicableDeviceType?: IosDeviceType;
    // The build number of managed iOS Line of Business (LoB) app.
    buildNumber?: NullableOption<string>;
    // The Identity Name.
    bundleId?: NullableOption<string>;
    // The expiration time.
    expirationDateTime?: NullableOption<string>;
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<IosMinimumOperatingSystem>;
    // The version number of managed iOS Line of Business (LoB) app.
    versionNumber?: NullableOption<string>;
}
export interface ManagedIOSStoreApp extends ManagedApp {
    // The iOS architecture for which this app can run on.
    applicableDeviceType?: IosDeviceType;
    // The Apple AppStoreUrl.
    appStoreUrl?: string;
    // The app's Bundle ID.
    bundleId?: NullableOption<string>;
    // The value for the minimum supported operating system.
    minimumSupportedOperatingSystem?: IosMinimumOperatingSystem;
}
export interface MobileAppContent extends Entity {
    // The collection of contained apps in a MobileLobApp acting as a package.
    containedApps?: NullableOption<MobileContainedApp[]>;
    // The list of files for this app content version.
    files?: NullableOption<MobileAppContentFile[]>;
}
export interface MicrosoftStoreForBusinessApp extends MobileApp {
    // The app license type. Possible values are: offline, online.
    licenseType?: MicrosoftStoreForBusinessLicenseType;
    // The app package identifier
    packageIdentityName?: NullableOption<string>;
    // The app product key
    productKey?: NullableOption<string>;
    // The total number of Microsoft Store for Business licenses.
    totalLicenseCount?: number;
    // The number of Microsoft Store for Business licenses in use.
    usedLicenseCount?: number;
}
export interface MobileAppAssignment extends Entity {
    /**
     * The install intent defined by the admin. Possible values are: available, required, uninstall,
     * availableWithoutEnrollment.
     */
    intent?: InstallIntent;
    // The settings for target assignment defined by the admin.
    settings?: NullableOption<MobileAppAssignmentSettings>;
    // The target group assignment defined by the admin.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
// tslint:disable-next-line: no-empty-interface
export interface MobileContainedApp extends Entity {}
export interface MobileAppContentFile extends Entity {
    // The Azure Storage URI.
    azureStorageUri?: NullableOption<string>;
    // The time the Azure storage Uri expires.
    azureStorageUriExpirationDateTime?: NullableOption<string>;
    // The time the file was created.
    createdDateTime?: string;
    // A value indicating whether the file is committed.
    isCommitted?: boolean;
    // The manifest information.
    manifest?: NullableOption<string>;
    // the file name.
    name?: NullableOption<string>;
    // The size of the file prior to encryption.
    size?: number;
    // The size of the file after encryption.
    sizeEncrypted?: number;
    /**
     * The state of the current upload request. Possible values are: success, transientError, error, unknown,
     * azureStorageUriRequestSuccess, azureStorageUriRequestPending, azureStorageUriRequestFailed,
     * azureStorageUriRequestTimedOut, azureStorageUriRenewalSuccess, azureStorageUriRenewalPending,
     * azureStorageUriRenewalFailed, azureStorageUriRenewalTimedOut, commitFileSuccess, commitFilePending, commitFileFailed,
     * commitFileTimedOut.
     */
    uploadState?: MobileAppContentFileUploadState;
}
export interface WebApp extends MobileApp {
    // The web app URL. This property cannot be PATCHed.
    appUrl?: NullableOption<string>;
    // Whether or not to use managed browser. This property is only applicable for Android and IOS.
    useManagedBrowser?: boolean;
}
export interface Win32LobApp extends MobileLobApp {
    // The Windows architecture(s) for which this app can run on. Possible values are: none, x86, x64, arm, neutral.
    applicableArchitectures?: WindowsArchitecture;
    // The command line to install this app
    installCommandLine?: NullableOption<string>;
    // The install experience for this app.
    installExperience?: NullableOption<Win32LobAppInstallExperience>;
    // The value for the minimum CPU speed which is required to install this app.
    minimumCpuSpeedInMHz?: NullableOption<number>;
    // The value for the minimum free disk space which is required to install this app.
    minimumFreeDiskSpaceInMB?: NullableOption<number>;
    // The value for the minimum physical memory which is required to install this app.
    minimumMemoryInMB?: NullableOption<number>;
    // The value for the minimum number of processors which is required to install this app.
    minimumNumberOfProcessors?: NullableOption<number>;
    // The value for the minimum supported windows release.
    minimumSupportedWindowsRelease?: NullableOption<string>;
    // The MSI details if this Win32 app is an MSI app.
    msiInformation?: NullableOption<Win32LobAppMsiInformation>;
    // The return codes for post installation behavior.
    returnCodes?: NullableOption<Win32LobAppReturnCode[]>;
    // The detection and requirement rules for this app.
    rules?: NullableOption<Win32LobAppRule[]>;
    // The relative path of the setup file in the encrypted Win32LobApp package.
    setupFilePath?: NullableOption<string>;
    // The command line to uninstall this app
    uninstallCommandLine?: NullableOption<string>;
}
export interface WindowsAppX extends MobileLobApp {
    /**
     * The Windows architecture(s) on which this app can run. Possible values are: none, x86, x64, arm, neutral; default value
     * is none. Possible values are: none, x86, x64, arm, neutral.
     */
    applicableArchitectures?: WindowsArchitecture;
    // The identity name of the uploaded app package. For example: 'Contoso.DemoApp'.
    identityName?: NullableOption<string>;
    /**
     * The identity publisher hash of the uploaded app package. This is the hash of the publisher from the manifest. For
     * example: 'AB82CD0XYZ'.
     */
    identityPublisherHash?: string;
    // The identity resource identifier of the uploaded app package. For example: 'TestResourceId'.
    identityResourceIdentifier?: NullableOption<string>;
    // The identity version of the uploaded app package. For example: '1.0.0.0'.
    identityVersion?: NullableOption<string>;
    /**
     * When TRUE, indicates that the app is a bundle. When FALSE, indicates that the app is not a bundle. By default, property
     * is set to FALSE.
     */
    isBundle?: boolean;
    /**
     * The value for the minimum applicable operating system. Valid values for a WindowsAppX app include v80, v81 and v100. If
     * the app is a bundle, the minimum supported OS has to be at least v81.
     */
    minimumSupportedOperatingSystem?: WindowsMinimumOperatingSystem;
}
export interface WindowsMicrosoftEdgeApp extends MobileApp {
    /**
     * The channel to install on target devices. The possible values are dev, beta, and stable. By default, this property is
     * set to dev. Possible values are: dev, beta, stable, unknownFutureValue.
     */
    channel?: MicrosoftEdgeChannel;
    // The language locale to use when the Edge app displays text to the user.
    displayLanguageLocale?: NullableOption<string>;
}
export interface WindowsMobileMSI extends MobileLobApp {
    // The command line.
    commandLine?: NullableOption<string>;
    /**
     * A boolean to control whether the app's version will be used to detect the app after it is installed on a device. Set
     * this to true for Windows Mobile MSI Line of Business (LoB) apps that use a self update feature.
     */
    ignoreVersionDetection?: boolean;
    // The product code.
    productCode?: NullableOption<string>;
    // The product version of Windows Mobile MSI Line of Business (LoB) app.
    productVersion?: NullableOption<string>;
}
export interface WindowsUniversalAppX extends MobileLobApp {
    // The Windows architecture(s) for which this app can run on. Possible values are: none, x86, x64, arm, neutral.
    applicableArchitectures?: WindowsArchitecture;
    /**
     * The Windows device type(s) for which this app can run on. Possible values are: none, desktop, mobile, holographic,
     * team.
     */
    applicableDeviceTypes?: WindowsDeviceType;
    // The Identity Name.
    identityName?: NullableOption<string>;
    // The Identity Publisher Hash.
    identityPublisherHash?: string;
    // The Identity Resource Identifier.
    identityResourceIdentifier?: NullableOption<string>;
    // The identity version.
    identityVersion?: NullableOption<string>;
    // Whether or not the app is a bundle.
    isBundle?: boolean;
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: WindowsMinimumOperatingSystem;
    // The collection of contained apps in the committed mobileAppContent of a windowsUniversalAppX app.
    committedContainedApps?: NullableOption<MobileContainedApp[]>;
}
export interface WindowsUniversalAppXContainedApp extends MobileContainedApp {
    // The app user model ID of the contained app of a WindowsUniversalAppX app.
    appUserModelId?: NullableOption<string>;
}
export interface WindowsWebApp extends MobileApp {
    // Indicates the Windows web app URL. Example: 'https://www.contoso.com'
    appUrl?: NullableOption<string>;
}
export interface AuditEvent extends Entity {
    // Friendly name of the activity.
    activity?: NullableOption<string>;
    // The date time in UTC when the activity was performed.
    activityDateTime?: string;
    // The HTTP operation type of the activity.
    activityOperationType?: NullableOption<string>;
    // The result of the activity.
    activityResult?: NullableOption<string>;
    // The type of activity that was being performed.
    activityType?: NullableOption<string>;
    // AAD user and application that are associated with the audit event.
    actor?: NullableOption<AuditActor>;
    // Audit category.
    category?: NullableOption<string>;
    // Component name.
    componentName?: NullableOption<string>;
    // The client request Id that is used to correlate activity within the system.
    correlationId?: string;
    // Event display name.
    displayName?: NullableOption<string>;
    // Resources being modified.
    resources?: NullableOption<AuditResource[]>;
}
export interface DeviceManagement extends Entity {
    // Intune Account Id for given tenant
    intuneAccountId?: string;
    // Account level settings.
    settings?: NullableOption<DeviceManagementSettings>;
    /**
     * intuneBrand contains data which is used in customizing the appearance of the Company Portal applications as well as the
     * end user web portal.
     */
    intuneBrand?: NullableOption<IntuneBrand>;
    // Device protection overview.
    deviceProtectionOverview?: NullableOption<DeviceProtectionOverview>;
    /**
     * Tenant mobile device management subscription state. Possible values are: pending, active, warning, disabled, deleted,
     * blocked, lockedOut.
     */
    subscriptionState?: DeviceManagementSubscriptionState;
    // User experience analytics device settings
    userExperienceAnalyticsSettings?: NullableOption<UserExperienceAnalyticsSettings>;
    // Malware overview for windows devices.
    windowsMalwareOverview?: NullableOption<WindowsMalwareOverview>;
    // The terms and conditions associated with device management of the company.
    termsAndConditions?: NullableOption<TermsAndConditions[]>;
    // The Audit Events
    auditEvents?: NullableOption<AuditEvent[]>;
    // The device compliance policies.
    deviceCompliancePolicies?: NullableOption<DeviceCompliancePolicy[]>;
    // The device compliance state summary for this account.
    deviceCompliancePolicyDeviceStateSummary?: NullableOption<DeviceCompliancePolicyDeviceStateSummary>;
    // The summary states of compliance policy settings for this account.
    deviceCompliancePolicySettingStateSummaries?: NullableOption<DeviceCompliancePolicySettingStateSummary[]>;
    // The device configuration device state summary for this account.
    deviceConfigurationDeviceStateSummaries?: NullableOption<DeviceConfigurationDeviceStateSummary>;
    // The device configurations.
    deviceConfigurations?: NullableOption<DeviceConfiguration[]>;
    // The IOS software update installation statuses for this account.
    iosUpdateStatuses?: NullableOption<IosUpdateDeviceStatus[]>;
    // The software update status summary.
    softwareUpdateStatusSummary?: NullableOption<SoftwareUpdateStatusSummary>;
    // The list of Compliance Management Partners configured by the tenant.
    complianceManagementPartners?: NullableOption<ComplianceManagementPartner[]>;
    /**
     * The Exchange on premises conditional access settings. On premises conditional access will require devices to be both
     * enrolled and compliant for mail access
     */
    conditionalAccessSettings?: NullableOption<OnPremisesConditionalAccessSettings>;
    // The list of device categories with the tenant.
    deviceCategories?: NullableOption<DeviceCategory[]>;
    // The list of device enrollment configurations
    deviceEnrollmentConfigurations?: NullableOption<DeviceEnrollmentConfiguration[]>;
    // The list of Device Management Partners configured by the tenant.
    deviceManagementPartners?: NullableOption<DeviceManagementPartner[]>;
    // The list of Exchange Connectors configured by the tenant.
    exchangeConnectors?: NullableOption<DeviceManagementExchangeConnector[]>;
    // The list of Mobile threat Defense connectors configured by the tenant.
    mobileThreatDefenseConnectors?: NullableOption<MobileThreatDefenseConnector[]>;
    // Apple push notification certificate.
    applePushNotificationCertificate?: NullableOption<ApplePushNotificationCertificate>;
    // The list of detected apps associated with a device.
    detectedApps?: NullableOption<DetectedApp[]>;
    // Device overview
    managedDeviceOverview?: NullableOption<ManagedDeviceOverview>;
    // The list of managed devices.
    managedDevices?: NullableOption<ManagedDevice[]>;
    // The collection property of MobileAppTroubleshootingEvent.
    mobileAppTroubleshootingEvents?: NullableOption<MobileAppTroubleshootingEvent[]>;
    // User experience analytics appHealth Application Performance
    userExperienceAnalyticsAppHealthApplicationPerformance?: NullableOption<UserExperienceAnalyticsAppHealthApplicationPerformance[]>;
    // User experience analytics appHealth Application Performance by App Version details
    userExperienceAnalyticsAppHealthApplicationPerformanceByAppVersionDetails?: NullableOption<UserExperienceAnalyticsAppHealthAppPerformanceByAppVersionDetails[]>;
    // User experience analytics appHealth Application Performance by App Version Device Id
    userExperienceAnalyticsAppHealthApplicationPerformanceByAppVersionDeviceId?: NullableOption<UserExperienceAnalyticsAppHealthAppPerformanceByAppVersionDeviceId[]>;
    // User experience analytics appHealth Application Performance by OS Version
    userExperienceAnalyticsAppHealthApplicationPerformanceByOSVersion?: NullableOption<UserExperienceAnalyticsAppHealthAppPerformanceByOSVersion[]>;
    // User experience analytics appHealth Model Performance
    userExperienceAnalyticsAppHealthDeviceModelPerformance?: NullableOption<UserExperienceAnalyticsAppHealthDeviceModelPerformance[]>;
    // User experience analytics appHealth Device Performance
    userExperienceAnalyticsAppHealthDevicePerformance?: NullableOption<UserExperienceAnalyticsAppHealthDevicePerformance[]>;
    // User experience analytics device performance details
    userExperienceAnalyticsAppHealthDevicePerformanceDetails?: NullableOption<UserExperienceAnalyticsAppHealthDevicePerformanceDetails[]>;
    // User experience analytics appHealth OS version Performance
    userExperienceAnalyticsAppHealthOSVersionPerformance?: NullableOption<UserExperienceAnalyticsAppHealthOSVersionPerformance[]>;
    // User experience analytics appHealth overview
    userExperienceAnalyticsAppHealthOverview?: NullableOption<UserExperienceAnalyticsCategory>;
    // User experience analytics baselines
    userExperienceAnalyticsBaselines?: NullableOption<UserExperienceAnalyticsBaseline[]>;
    // User experience analytics categories
    userExperienceAnalyticsCategories?: NullableOption<UserExperienceAnalyticsCategory[]>;
    // User experience analytics device performance
    userExperienceAnalyticsDevicePerformance?: NullableOption<UserExperienceAnalyticsDevicePerformance[]>;
    // User experience analytics device scores
    userExperienceAnalyticsDeviceScores?: NullableOption<UserExperienceAnalyticsDeviceScores[]>;
    // User experience analytics device Startup History
    userExperienceAnalyticsDeviceStartupHistory?: NullableOption<UserExperienceAnalyticsDeviceStartupHistory[]>;
    // User experience analytics device Startup Processes
    userExperienceAnalyticsDeviceStartupProcesses?: NullableOption<UserExperienceAnalyticsDeviceStartupProcess[]>;
    // User experience analytics device Startup Process Performance
    userExperienceAnalyticsDeviceStartupProcessPerformance?: NullableOption<UserExperienceAnalyticsDeviceStartupProcessPerformance[]>;
    // User experience analytics metric history
    userExperienceAnalyticsMetricHistory?: NullableOption<UserExperienceAnalyticsMetricHistory[]>;
    // User experience analytics model scores
    userExperienceAnalyticsModelScores?: NullableOption<UserExperienceAnalyticsModelScores[]>;
    // User experience analytics overview
    userExperienceAnalyticsOverview?: NullableOption<UserExperienceAnalyticsOverview>;
    // User experience analytics device Startup Score History
    userExperienceAnalyticsScoreHistory?: NullableOption<UserExperienceAnalyticsScoreHistory[]>;
    // User experience analytics work from anywhere hardware readiness metrics.
    userExperienceAnalyticsWorkFromAnywhereHardwareReadinessMetric?: NullableOption<UserExperienceAnalyticsWorkFromAnywhereHardwareReadinessMetric>;
    // User experience analytics work from anywhere metrics.
    userExperienceAnalyticsWorkFromAnywhereMetrics?: NullableOption<UserExperienceAnalyticsWorkFromAnywhereMetric[]>;
    // The user experience analytics work from anywhere model performance
    userExperienceAnalyticsWorkFromAnywhereModelPerformance?: NullableOption<UserExperienceAnalyticsWorkFromAnywhereModelPerformance[]>;
    // The list of affected malware in the tenant.
    windowsMalwareInformation?: NullableOption<WindowsMalwareInformation[]>;
    // Collection of imported Windows autopilot devices.
    importedWindowsAutopilotDeviceIdentities?: NullableOption<ImportedWindowsAutopilotDeviceIdentity[]>;
    // The Windows autopilot device identities contained collection.
    windowsAutopilotDeviceIdentities?: NullableOption<WindowsAutopilotDeviceIdentity[]>;
    // The Notification Message Templates.
    notificationMessageTemplates?: NullableOption<NotificationMessageTemplate[]>;
    // The Resource Operations.
    resourceOperations?: NullableOption<ResourceOperation[]>;
    // The Role Assignments.
    roleAssignments?: NullableOption<DeviceAndAppManagementRoleAssignment[]>;
    // The Role Definitions.
    roleDefinitions?: NullableOption<RoleDefinition[]>;
    // The remote assist partners.
    remoteAssistancePartners?: NullableOption<RemoteAssistancePartner[]>;
    // Reports singleton
    reports?: NullableOption<DeviceManagementReports>;
    // The telecom expense management partners.
    telecomExpenseManagementPartners?: NullableOption<TelecomExpenseManagementPartner[]>;
    // The list of troubleshooting events for the tenant.
    troubleshootingEvents?: NullableOption<DeviceManagementTroubleshootingEvent[]>;
    // The windows information protection app learning summaries.
    windowsInformationProtectionAppLearningSummaries?: NullableOption<WindowsInformationProtectionAppLearningSummary[]>;
    // The windows information protection network learning summaries.
    windowsInformationProtectionNetworkLearningSummaries?: NullableOption<WindowsInformationProtectionNetworkLearningSummary[]>;
}
export interface TermsAndConditions extends Entity {
    /**
     * Administrator-supplied explanation of the terms and conditions, typically describing what it means to accept the terms
     * and conditions set out in the T&amp;C policy. This is shown to the user on prompts to accept the T&amp;C policy.
     */
    acceptanceStatement?: NullableOption<string>;
    /**
     * Administrator-supplied body text of the terms and conditions, typically the terms themselves. This is shown to the user
     * on prompts to accept the T&amp;C policy.
     */
    bodyText?: NullableOption<string>;
    // DateTime the object was created.
    createdDateTime?: string;
    // Administrator-supplied description of the T&amp;C policy.
    description?: NullableOption<string>;
    // Administrator-supplied name for the T&amp;C policy.
    displayName?: string;
    // DateTime the object was last modified.
    lastModifiedDateTime?: string;
    /**
     * Administrator-supplied title of the terms and conditions. This is shown to the user on prompts to accept the T&amp;C
     * policy.
     */
    title?: NullableOption<string>;
    /**
     * Integer indicating the current version of the terms. Incremented when an administrator makes a change to the terms and
     * wishes to require users to re-accept the modified T&amp;C policy.
     */
    version?: number;
    // The list of acceptance statuses for this T&amp;C policy.
    acceptanceStatuses?: NullableOption<TermsAndConditionsAcceptanceStatus[]>;
    // The list of assignments for this T&amp;C policy.
    assignments?: NullableOption<TermsAndConditionsAssignment[]>;
}
export interface DeviceCompliancePolicy extends Entity {
    // DateTime the object was created.
    createdDateTime?: string;
    // Admin provided description of the Device Configuration.
    description?: NullableOption<string>;
    // Admin provided name of the device configuration.
    displayName?: string;
    // DateTime the object was last modified.
    lastModifiedDateTime?: string;
    // Version of the device configuration.
    version?: number;
    // The collection of assignments for this compliance policy.
    assignments?: NullableOption<DeviceCompliancePolicyAssignment[]>;
    // Compliance Setting State Device Summary
    deviceSettingStateSummaries?: NullableOption<SettingStateDeviceSummary[]>;
    // List of DeviceComplianceDeviceStatus.
    deviceStatuses?: NullableOption<DeviceComplianceDeviceStatus[]>;
    // Device compliance devices status overview
    deviceStatusOverview?: NullableOption<DeviceComplianceDeviceOverview>;
    /**
     * The list of scheduled action per rule for this compliance policy. This is a required property when creating any
     * individual per-platform compliance policies.
     */
    scheduledActionsForRule?: NullableOption<DeviceComplianceScheduledActionForRule[]>;
    // List of DeviceComplianceUserStatus.
    userStatuses?: NullableOption<DeviceComplianceUserStatus[]>;
    // Device compliance users status overview
    userStatusOverview?: NullableOption<DeviceComplianceUserOverview>;
}
export interface DeviceCompliancePolicyDeviceStateSummary extends Entity {
    // Number of compliant devices
    compliantDeviceCount?: number;
    // Number of devices that have compliance managed by System Center Configuration Manager
    configManagerCount?: number;
    // Number of conflict devices
    conflictDeviceCount?: number;
    // Number of error devices
    errorDeviceCount?: number;
    // Number of devices that are in grace period
    inGracePeriodCount?: number;
    // Number of NonCompliant devices
    nonCompliantDeviceCount?: number;
    // Number of not applicable devices
    notApplicableDeviceCount?: number;
    // Number of remediated devices
    remediatedDeviceCount?: number;
    // Number of unknown devices
    unknownDeviceCount?: number;
}
export interface DeviceCompliancePolicySettingStateSummary extends Entity {
    // Number of compliant devices
    compliantDeviceCount?: number;
    // Number of conflict devices
    conflictDeviceCount?: number;
    // Number of error devices
    errorDeviceCount?: number;
    // Number of NonCompliant devices
    nonCompliantDeviceCount?: number;
    // Number of not applicable devices
    notApplicableDeviceCount?: number;
    /**
     * Setting platform. Possible values are: android, iOS, macOS, windowsPhone81, windows81AndLater, windows10AndLater,
     * androidWorkProfile, all.
     */
    platformType?: PolicyPlatformType;
    // Number of remediated devices
    remediatedDeviceCount?: number;
    // The setting class name and property name.
    setting?: NullableOption<string>;
    // Name of the setting.
    settingName?: NullableOption<string>;
    // Number of unknown devices
    unknownDeviceCount?: number;
    // Not yet documented
    deviceComplianceSettingStates?: NullableOption<DeviceComplianceSettingState[]>;
}
export interface DeviceConfigurationDeviceStateSummary extends Entity {
    // Number of compliant devices
    compliantDeviceCount?: number;
    // Number of conflict devices
    conflictDeviceCount?: number;
    // Number of error devices
    errorDeviceCount?: number;
    // Number of NonCompliant devices
    nonCompliantDeviceCount?: number;
    // Number of not applicable devices
    notApplicableDeviceCount?: number;
    // Number of remediated devices
    remediatedDeviceCount?: number;
    // Number of unknown devices
    unknownDeviceCount?: number;
}
export interface DeviceConfiguration extends Entity {
    // DateTime the object was created.
    createdDateTime?: string;
    // Admin provided description of the Device Configuration.
    description?: NullableOption<string>;
    // Admin provided name of the device configuration.
    displayName?: string;
    // DateTime the object was last modified.
    lastModifiedDateTime?: string;
    // Version of the device configuration.
    version?: number;
    // The list of assignments for the device configuration profile.
    assignments?: NullableOption<DeviceConfigurationAssignment[]>;
    // Device Configuration Setting State Device Summary
    deviceSettingStateSummaries?: NullableOption<SettingStateDeviceSummary[]>;
    // Device configuration installation status by device.
    deviceStatuses?: NullableOption<DeviceConfigurationDeviceStatus[]>;
    // Device Configuration devices status overview
    deviceStatusOverview?: NullableOption<DeviceConfigurationDeviceOverview>;
    // Device configuration installation status by user.
    userStatuses?: NullableOption<DeviceConfigurationUserStatus[]>;
    // Device Configuration users status overview
    userStatusOverview?: NullableOption<DeviceConfigurationUserOverview>;
}
// tslint:disable-next-line: interface-name
export interface IosUpdateDeviceStatus extends Entity {
    // The DateTime when device compliance grace period expires
    complianceGracePeriodExpirationDateTime?: string;
    // Device name of the DevicePolicyStatus.
    deviceDisplayName?: NullableOption<string>;
    // The device id that is being reported.
    deviceId?: NullableOption<string>;
    // The device model that is being reported
    deviceModel?: NullableOption<string>;
    /**
     * The installation status of the policy report. Possible values are: success, available, idle, unknown, downloading,
     * downloadFailed, downloadRequiresComputer, downloadInsufficientSpace, downloadInsufficientPower,
     * downloadInsufficientNetwork, installing, installInsufficientSpace, installInsufficientPower,
     * installPhoneCallInProgress, installFailed, notSupportedOperation, sharedDeviceUserLoggedInError,
     * deviceOsHigherThanDesiredOsVersion.
     */
    installStatus?: IosUpdatesInstallStatus;
    // Last modified date time of the policy report.
    lastReportedDateTime?: string;
    // The device version that is being reported.
    osVersion?: NullableOption<string>;
    /**
     * Compliance status of the policy report. Possible values are: unknown, notApplicable, compliant, remediated,
     * nonCompliant, error, conflict, notAssigned.
     */
    status?: ComplianceStatus;
    // The User id that is being reported.
    userId?: NullableOption<string>;
    // The User Name that is being reported
    userName?: NullableOption<string>;
    // UserPrincipalName.
    userPrincipalName?: NullableOption<string>;
}
export interface SoftwareUpdateStatusSummary extends Entity {
    // Number of compliant devices.
    compliantDeviceCount?: number;
    // Number of compliant users.
    compliantUserCount?: number;
    // Number of conflict devices.
    conflictDeviceCount?: number;
    // Number of conflict users.
    conflictUserCount?: number;
    // The name of the policy.
    displayName?: NullableOption<string>;
    // Number of devices had error.
    errorDeviceCount?: number;
    // Number of users had error.
    errorUserCount?: number;
    // Number of non compliant devices.
    nonCompliantDeviceCount?: number;
    // Number of non compliant users.
    nonCompliantUserCount?: number;
    // Number of not applicable devices.
    notApplicableDeviceCount?: number;
    // Number of not applicable users.
    notApplicableUserCount?: number;
    // Number of remediated devices.
    remediatedDeviceCount?: number;
    // Number of remediated users.
    remediatedUserCount?: number;
    // Number of unknown devices.
    unknownDeviceCount?: number;
    // Number of unknown users.
    unknownUserCount?: number;
}
export interface ComplianceManagementPartner extends Entity {
    // User groups which enroll Android devices through partner.
    androidEnrollmentAssignments?: NullableOption<ComplianceManagementPartnerAssignment[]>;
    // Partner onboarded for Android devices.
    androidOnboarded?: boolean;
    // Partner display name
    displayName?: NullableOption<string>;
    // User groups which enroll ios devices through partner.
    iosEnrollmentAssignments?: NullableOption<ComplianceManagementPartnerAssignment[]>;
    // Partner onboarded for ios devices.
    iosOnboarded?: boolean;
    // Timestamp of last heartbeat after admin onboarded to the compliance management partner
    lastHeartbeatDateTime?: string;
    // User groups which enroll Mac devices through partner.
    macOsEnrollmentAssignments?: NullableOption<ComplianceManagementPartnerAssignment[]>;
    // Partner onboarded for Mac devices.
    macOsOnboarded?: boolean;
    // Partner state of this tenant. Possible values are: unknown, unavailable, enabled, terminated, rejected, unresponsive.
    partnerState?: DeviceManagementPartnerTenantState;
}
export interface OnPremisesConditionalAccessSettings extends Entity {
    // Indicates if on premises conditional access is enabled for this organization
    enabled?: boolean;
    /**
     * User groups that will be exempt by on premises conditional access. All users in these groups will be exempt from the
     * conditional access policy.
     */
    excludedGroups?: string[];
    /**
     * User groups that will be targeted by on premises conditional access. All users in these groups will be required to have
     * mobile device managed and compliant for mail access.
     */
    includedGroups?: string[];
    // Override the default access rule when allowing a device to ensure access is granted.
    overrideDefaultRule?: boolean;
}
export interface DeviceCategory extends Entity {
    // Optional description for the device category.
    description?: NullableOption<string>;
    // Display name for the device category.
    displayName?: NullableOption<string>;
}
export interface DeviceEnrollmentConfiguration extends Entity {
    // Created date time in UTC of the device enrollment configuration
    createdDateTime?: string;
    // The description of the device enrollment configuration
    description?: NullableOption<string>;
    // The display name of the device enrollment configuration
    displayName?: NullableOption<string>;
    // Last modified date time in UTC of the device enrollment configuration
    lastModifiedDateTime?: string;
    /**
     * Priority is used when a user exists in multiple groups that are assigned enrollment configuration. Users are subject
     * only to the configuration with the lowest priority value.
     */
    priority?: number;
    // The version of the device enrollment configuration
    version?: number;
    // The list of group assignments for the device configuration profile
    assignments?: NullableOption<EnrollmentConfigurationAssignment[]>;
}
export interface DeviceManagementPartner extends Entity {
    // Partner display name
    displayName?: NullableOption<string>;
    // User groups that specifies whether enrollment is through partner.
    groupsRequiringPartnerEnrollment?: NullableOption<DeviceManagementPartnerAssignment[]>;
    // Whether device management partner is configured or not
    isConfigured?: boolean;
    // Timestamp of last heartbeat after admin enabled option Connect to Device management Partner
    lastHeartbeatDateTime?: string;
    // Partner App type. Possible values are: unknown, singleTenantApp, multiTenantApp.
    partnerAppType?: DeviceManagementPartnerAppType;
    // Partner state of this tenant. Possible values are: unknown, unavailable, enabled, terminated, rejected, unresponsive.
    partnerState?: DeviceManagementPartnerTenantState;
    // Partner Single tenant App id
    singleTenantAppId?: NullableOption<string>;
    // DateTime in UTC when PartnerDevices will be marked as NonCompliant
    whenPartnerDevicesWillBeMarkedAsNonCompliantDateTime?: NullableOption<string>;
    // DateTime in UTC when PartnerDevices will be removed
    whenPartnerDevicesWillBeRemovedDateTime?: NullableOption<string>;
}
export interface DeviceManagementExchangeConnector extends Entity {
    // The name of the server hosting the Exchange Connector.
    connectorServerName?: NullableOption<string>;
    // An alias assigned to the Exchange server
    exchangeAlias?: NullableOption<string>;
    /**
     * The type of Exchange Connector Configured. Possible values are: onPremises, hosted, serviceToService, dedicated,
     * unknownFutureValue.
     */
    exchangeConnectorType?: DeviceManagementExchangeConnectorType;
    // Exchange Organization to the Exchange server
    exchangeOrganization?: NullableOption<string>;
    // Last sync time for the Exchange Connector
    lastSyncDateTime?: string;
    // Email address used to configure the Service To Service Exchange Connector.
    primarySmtpAddress?: NullableOption<string>;
    // The name of the Exchange server.
    serverName?: NullableOption<string>;
    // Exchange Connector Status. Possible values are: none, connectionPending, connected, disconnected, unknownFutureValue.
    status?: DeviceManagementExchangeConnectorStatus;
    // The version of the ExchangeConnectorAgent
    version?: NullableOption<string>;
}
export interface MobileThreatDefenseConnector extends Entity {
    /**
     * When TRUE, indicates the Mobile Threat Defense partner may collect metadata about installed applications from Intune
     * for IOS devices. When FALSE, indicates the Mobile Threat Defense partner may not collect metadata about installed
     * applications from Intune for IOS devices. Default value is FALSE.
     */
    allowPartnerToCollectIOSApplicationMetadata?: boolean;
    /**
     * When TRUE, indicates the Mobile Threat Defense partner may collect metadata about personally installed applications
     * from Intune for IOS devices. When FALSE, indicates the Mobile Threat Defense partner may not collect metadata about
     * personally installed applications from Intune for IOS devices. Default value is FALSE.
     */
    allowPartnerToCollectIOSPersonalApplicationMetadata?: boolean;
    /**
     * For Android, set whether Intune must receive data from the Mobile Threat Defense partner prior to marking a device
     * compliant
     */
    androidDeviceBlockedOnMissingPartnerData?: boolean;
    // For Android, set whether data from the Mobile Threat Defense partner should be used during compliance evaluations
    androidEnabled?: boolean;
    /**
     * When TRUE, inidicates that data from the Mobile Threat Defense partner can be used during Mobile Application Management
     * (MAM) evaluations for Android devices. When FALSE, inidicates that data from the Mobile Threat Defense partner should
     * not be used during Mobile Application Management (MAM) evaluations for Android devices. Only one partner per platform
     * may be enabled for Mobile Application Management (MAM) evaluation. Default value is FALSE.
     */
    androidMobileApplicationManagementEnabled?: boolean;
    /**
     * For IOS, set whether Intune must receive data from the Mobile Threat Defense partner prior to marking a device
     * compliant
     */
    iosDeviceBlockedOnMissingPartnerData?: boolean;
    // For IOS, get or set whether data from the Mobile Threat Defense partner should be used during compliance evaluations
    iosEnabled?: boolean;
    /**
     * When TRUE, inidicates that data from the Mobile Threat Defense partner can be used during Mobile Application Management
     * (MAM) evaluations for IOS devices. When FALSE, inidicates that data from the Mobile Threat Defense partner should not
     * be used during Mobile Application Management (MAM) evaluations for IOS devices. Only one partner per platform may be
     * enabled for Mobile Application Management (MAM) evaluation. Default value is FALSE.
     */
    iosMobileApplicationManagementEnabled?: boolean;
    // DateTime of last Heartbeat recieved from the Mobile Threat Defense partner
    lastHeartbeatDateTime?: string;
    /**
     * When TRUE, inidicates that configuration profile management via Microsoft Defender for Endpoint is enabled. When FALSE,
     * inidicates that configuration profile management via Microsoft Defender for Endpoint is disabled. Default value is
     * FALSE.
     */
    microsoftDefenderForEndpointAttachEnabled?: boolean;
    /**
     * Mobile Threat Defense partner state for this account. Possible values are: unavailable, available, enabled,
     * unresponsive.
     */
    partnerState?: MobileThreatPartnerTenantState;
    // Get or Set days the per tenant tolerance to unresponsiveness for this partner integration
    partnerUnresponsivenessThresholdInDays?: number;
    /**
     * Get or set whether to block devices on the enabled platforms that do not meet the minimum version requirements of the
     * Mobile Threat Defense partner
     */
    partnerUnsupportedOsVersionBlocked?: boolean;
    /**
     * When TRUE, inidicates that Intune must receive data from the Mobile Threat Defense partner prior to marking a device
     * compliant for Windows. When FALSE, inidicates that Intune may make a device compliant without receiving data from the
     * Mobile Threat Defense partner for Windows. Default value is FALSE.
     */
    windowsDeviceBlockedOnMissingPartnerData?: boolean;
    /**
     * When TRUE, inidicates that data from the Mobile Threat Defense partner can be used during compliance evaluations for
     * Windows. When FALSE, inidicates that data from the Mobile Threat Defense partner should not be used during compliance
     * evaluations for Windows. Default value is FALSE.
     */
    windowsEnabled?: boolean;
}
export interface ApplePushNotificationCertificate extends Entity {
    // Apple Id of the account used to create the MDM push certificate.
    appleIdentifier?: NullableOption<string>;
    // Not yet documented
    certificate?: NullableOption<string>;
    // Certificate serial number. This property is read-only.
    certificateSerialNumber?: NullableOption<string>;
    // The reason the certificate upload failed.
    certificateUploadFailureReason?: NullableOption<string>;
    // The certificate upload status.
    certificateUploadStatus?: NullableOption<string>;
    // The expiration date and time for Apple push notification certificate.
    expirationDateTime?: string;
    // Last modified date and time for Apple push notification certificate.
    lastModifiedDateTime?: string;
    // Topic Id.
    topicIdentifier?: NullableOption<string>;
}
export interface DetectedApp extends Entity {
    // The number of devices that have installed this application
    deviceCount?: number;
    // Name of the discovered application. Read-only
    displayName?: NullableOption<string>;
    /**
     * Indicates the operating system / platform of the discovered application. Some possible values are Windows, iOS, macOS.
     * The default value is unknown (0). Possible values are: unknown, windows, windowsMobile, windowsHolographic, ios, macOS,
     * chromeOS, androidOSP, androidDeviceAdministrator, androidWorkProfile, androidDedicatedAndFullyManaged,
     * unknownFutureValue.
     */
    platform?: DetectedAppPlatformType;
    // Indicates the publisher of the discovered application. For example: 'Microsoft'. The default value is an empty string.
    publisher?: NullableOption<string>;
    // Discovered application size in bytes. Read-only
    sizeInByte?: number;
    // Version of the discovered application. Read-only
    version?: NullableOption<string>;
    // The devices that have the discovered application installed
    managedDevices?: NullableOption<ManagedDevice[]>;
}
export interface ManagedDeviceOverview extends Entity {
    // Distribution of Exchange Access State in Intune
    deviceExchangeAccessStateSummary?: NullableOption<DeviceExchangeAccessStateSummary>;
    // Device operating system summary.
    deviceOperatingSystemSummary?: NullableOption<DeviceOperatingSystemSummary>;
    // The number of devices enrolled in both MDM and EAS
    dualEnrolledDeviceCount?: number;
    // Total enrolled device count. Does not include PC devices managed via Intune PC Agent
    enrolledDeviceCount?: number;
    // The number of devices enrolled in MDM
    mdmEnrolledCount?: number;
}
export interface MobileAppTroubleshootingEvent extends Entity {
    // Indicates collection of App Log Upload Request.
    appLogCollectionRequests?: NullableOption<AppLogCollectionRequest[]>;
}
export interface UserExperienceAnalyticsAppHealthApplicationPerformance extends Entity {
    /**
     * The health score of the application. Valid values 0 to 100. Supports: $filter, $select, $OrderBy. Read-only. Valid
     * values -2147483648 to 2147483647
     */
    activeDeviceCount?: number;
    /**
     * The number of crashes for the application. Valid values 0 to 2147483647. Supports: $select, $OrderBy. Read-only. Valid
     * values -2147483648 to 2147483647
     */
    appCrashCount?: number;
    // The friendly name of the application. Possible values are: Outlook, Excel. Supports: $select, $OrderBy. Read-only.
    appDisplayName?: NullableOption<string>;
    // The number of hangs for the application. Supports: $select, $OrderBy. Read-only. Valid values -2147483648 to 2147483647
    appHangCount?: number;
    /**
     * The health score of the application. Valid values 0 to 100. Supports: $filter, $select, $OrderBy. Read-only. Valid
     * values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    appHealthScore?: number;
    // The name of the application. Possible values are: outlook.exe, excel.exe. Supports: $select, $OrderBy. Read-only.
    appName?: NullableOption<string>;
    // The publisher of the application. Supports: $select, $OrderBy. Read-only.
    appPublisher?: NullableOption<string>;
    /**
     * The total usage time of the application in minutes. Valid values 0 to 2147483647. Supports: $select, $OrderBy.
     * Read-only. Valid values -2147483648 to 2147483647
     */
    appUsageDuration?: number;
    /**
     * The mean time to failure for the application in minutes. Valid values 0 to 2147483647. Supports: $select, $OrderBy.
     * Read-only. Valid values -2147483648 to 2147483647
     */
    meanTimeToFailureInMinutes?: number;
}
export interface UserExperienceAnalyticsAppHealthAppPerformanceByAppVersionDetails extends Entity {
    // The number of crashes for the app. Valid values -2147483648 to 2147483647
    appCrashCount?: number;
    // The friendly name of the application.
    appDisplayName?: NullableOption<string>;
    // The name of the application.
    appName?: NullableOption<string>;
    // The publisher of the application.
    appPublisher?: NullableOption<string>;
    // The version of the application.
    appVersion?: NullableOption<string>;
    /**
     * The total number of devices that have reported one or more application crashes for this application and version. Valid
     * values 0 to 2147483647. Supports: $select, $OrderBy. Read-only. Valid values -2147483648 to 2147483647
     */
    deviceCountWithCrashes?: number;
    /**
     * When TRUE, indicates the version of application is the latest version for that application that is in use. When FALSE,
     * indicates the version is not the latest version. FALSE by default. Supports: $select, $OrderBy.
     */
    isLatestUsedVersion?: boolean;
    /**
     * When TRUE, indicates the version of application is the most used version for that application. When FALSE, indicates
     * the version is not the most used version. FALSE by default. Supports: $select, $OrderBy. Read-only.
     */
    isMostUsedVersion?: boolean;
}
export interface UserExperienceAnalyticsAppHealthAppPerformanceByAppVersionDeviceId extends Entity {
    // The number of crashes for the app. Valid values -2147483648 to 2147483647
    appCrashCount?: number;
    // The friendly name of the application.
    appDisplayName?: NullableOption<string>;
    // The name of the application.
    appName?: NullableOption<string>;
    // The publisher of the application.
    appPublisher?: NullableOption<string>;
    // The version of the application.
    appVersion?: NullableOption<string>;
    // The name of the device. Supports: $select, $OrderBy. Read-only.
    deviceDisplayName?: NullableOption<string>;
    // The Intune device id of the device. Supports: $select, $OrderBy. Read-only.
    deviceId?: NullableOption<string>;
    /**
     * The date and time when the statistics were last computed. The value cannot be modified and is automatically populated
     * when the statistics are computed. The Timestamp type represents date and time information using ISO 8601 format and is
     * always in UTC time. For example, midnight UTC on Jan 1, 2022 would look like this: '2022-01-01T00:00:00Z'. Returned by
     * default. Read-only.
     */
    processedDateTime?: string;
}
export interface UserExperienceAnalyticsAppHealthAppPerformanceByOSVersion extends Entity {
    /**
     * The number of devices where the application has been active. Valid values 0 to 2147483647. Supports: $select, $OrderBy.
     * Read-only. Valid values -2147483648 to 2147483647
     */
    activeDeviceCount?: number;
    /**
     * The number of crashes for the application. Valid values 0 to 2147483647. Supports: $select, $OrderBy. Read-only. Valid
     * values -2147483648 to 2147483647
     */
    appCrashCount?: number;
    // The friendly name of the application. Possible values are: Outlook, Excel. Supports: $select, $OrderBy. Read-only.
    appDisplayName?: NullableOption<string>;
    // The name of the application. Possible values are: outlook.exe, excel.exe. Supports: $select, $OrderBy. Read-only.
    appName?: NullableOption<string>;
    // The publisher of the application. Supports: $select, $OrderBy. Read-only.
    appPublisher?: NullableOption<string>;
    /**
     * The total usage time of the application in minutes. Valid values 0 to 2147483647. Supports: $select, $OrderBy.
     * Read-only. Valid values -2147483648 to 2147483647
     */
    appUsageDuration?: number;
    /**
     * The mean time to failure for the application in minutes. Valid values 0 to 2147483647. Supports: $select, $OrderBy.
     * Read-only. Valid values -2147483648 to 2147483647
     */
    meanTimeToFailureInMinutes?: number;
    // The OS build number of the application. Supports: $select, $OrderBy. Read-only.
    osBuildNumber?: NullableOption<string>;
    // The OS version of the application. Supports: $select, $OrderBy. Read-only.
    osVersion?: NullableOption<string>;
}
export interface UserExperienceAnalyticsAppHealthDeviceModelPerformance extends Entity {
    /**
     * The number of active devices for the model. Valid values 0 to 2147483647. Supports: $filter, $select, $OrderBy.
     * Read-only. Valid values -2147483648 to 2147483647
     */
    activeDeviceCount?: number;
    // The manufacturer name of the device. Supports: $select, $OrderBy. Read-only.
    deviceManufacturer?: NullableOption<string>;
    // The model name of the device. Supports: $select, $OrderBy. Read-only.
    deviceModel?: NullableOption<string>;
    /**
     * The health state of the user experience analytics model. Possible values are: unknown, insufficientData,
     * needsAttention, meetingGoals. Unknown by default. Supports: $filter, $select, $OrderBy. Read-only. Possible values are:
     * unknown, insufficientData, needsAttention, meetingGoals, unknownFutureValue.
     */
    healthStatus?: UserExperienceAnalyticsHealthState;
    /**
     * The mean time to failure for the application in minutes. Valid values 0 to 2147483647. Supports: $filter, $select,
     * $OrderBy. Read-only. Valid values -2147483648 to 2147483647
     */
    meanTimeToFailureInMinutes?: number;
    /**
     * The application health score of the device model. Valid values 0 to 100. Supports: $filter, $select, $OrderBy.
     * Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    modelAppHealthScore?: number;
}
export interface UserExperienceAnalyticsAppHealthDevicePerformance extends Entity {
    /**
     * The number of application crashes for the device. Valid values 0 to 2147483647. Supports: $filter, $select, $OrderBy.
     * Read-only. Valid values -2147483648 to 2147483647
     */
    appCrashCount?: number;
    /**
     * The number of application hangs for the device. Valid values 0 to 2147483647. Supports: $select, $OrderBy. Read-only.
     * Valid values -2147483648 to 2147483647
     */
    appHangCount?: number;
    /**
     * The number of distinct application crashes for the device. Valid values 0 to 2147483647. Supports: $select, $OrderBy.
     * Read-only. Valid values -2147483648 to 2147483647
     */
    crashedAppCount?: number;
    /**
     * The application health score of the device. Valid values 0 to 100. Supports: $filter, $select, $OrderBy. Read-only.
     * Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    deviceAppHealthScore?: number;
    // The name of the device. Supports: $select, $OrderBy. Read-only.
    deviceDisplayName?: NullableOption<string>;
    // The Intune device id of the device. Supports: $select, $OrderBy. Read-only.
    deviceId?: NullableOption<string>;
    // The manufacturer name of the device. Supports: $select, $OrderBy. Read-only.
    deviceManufacturer?: NullableOption<string>;
    // The model name of the device. Supports: $select, $OrderBy. Read-only.
    deviceModel?: NullableOption<string>;
    /**
     * The health state of the user experience analytics device. Possible values are: unknown, insufficientData,
     * needsAttention, meetingGoals. Unknown by default. Supports: $filter, $select, $OrderBy. Read-only. Possible values are:
     * unknown, insufficientData, needsAttention, meetingGoals, unknownFutureValue.
     */
    healthStatus?: UserExperienceAnalyticsHealthState;
    /**
     * The mean time to failure for the application in minutes. Valid values 0 to 2147483647. Supports: $filter, $select,
     * $OrderBy. Read-only. Valid values -2147483648 to 2147483647
     */
    meanTimeToFailureInMinutes?: number;
    /**
     * The date and time when the statistics were last computed. The value cannot be modified and is automatically populated
     * when the statistics are computed. The Timestamp type represents date and time information using ISO 8601 format and is
     * always in UTC time. For example, midnight UTC on Jan 1, 2022 would look like this: '2022-01-01T00:00:00Z'. Returned by
     * default. Read-only.
     */
    processedDateTime?: string;
}
export interface UserExperienceAnalyticsAppHealthDevicePerformanceDetails extends Entity {
    /**
     * The friendly name of the application for which the event occurred. Possible values are: outlook.exe, excel.exe.
     * Supports: $select, $OrderBy. Read-only.
     */
    appDisplayName?: NullableOption<string>;
    // The publisher of the application. Supports: $select, $OrderBy. Read-only.
    appPublisher?: NullableOption<string>;
    // The version of the application. Possible values are: 1.0.0.1, 75.65.23.9. Supports: $select, $OrderBy. Read-only.
    appVersion?: NullableOption<string>;
    // The name of the device. Supports: $select, $OrderBy. Read-only.
    deviceDisplayName?: NullableOption<string>;
    // The Intune device id of the device. Supports: $select, $OrderBy. Read-only.
    deviceId?: NullableOption<string>;
    /**
     * The time the event occurred. The value cannot be modified and is automatically populated when the statistics are
     * computed. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For
     * example, midnight UTC on Jan 1, 2022 would look like this: '2022-01-01T00:00:00Z'. Returned by default. Read-only.
     */
    eventDateTime?: string;
    // The type of the event. Supports: $select, $OrderBy. Read-only.
    eventType?: NullableOption<string>;
}
export interface UserExperienceAnalyticsAppHealthOSVersionPerformance extends Entity {
    /**
     * The number of active devices for the OS version. Valid values 0 to 2147483647. Supports: $filter, $select, $OrderBy.
     * Read-only. Valid values -2147483648 to 2147483647
     */
    activeDeviceCount?: number;
    /**
     * The mean time to failure for the application in minutes. Valid values 0 to 2147483647. Supports: $filter, $select,
     * $OrderBy. Read-only. Valid values -2147483648 to 2147483647
     */
    meanTimeToFailureInMinutes?: number;
    // The OS build number installed on the device. Supports: $select, $OrderBy. Read-only.
    osBuildNumber?: NullableOption<string>;
    // The OS version installed on the device. Supports: $select, $OrderBy. Read-only.
    osVersion?: NullableOption<string>;
    /**
     * The application health score of the OS version. Valid values 0 to 100. Supports: $filter, $select, $OrderBy. Read-only.
     * Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    osVersionAppHealthScore?: number;
}
export interface UserExperienceAnalyticsCategory extends Entity {
    // The insights for the category. Read-only.
    insights?: NullableOption<UserExperienceAnalyticsInsight[]>;
    // The metric values for the user experience analytics category. Read-only.
    metricValues?: NullableOption<UserExperienceAnalyticsMetric[]>;
}
export interface UserExperienceAnalyticsBaseline extends Entity {
    /**
     * The date the custom baseline was created. The value cannot be modified and is automatically populated when the baseline
     * is created. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
     * For example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Returned by default.
     */
    createdDateTime?: string;
    // The name of the baseline.
    displayName?: NullableOption<string>;
    /**
     * When TRUE, indicates the current baseline is the commercial median baseline. When FALSE, indicates it is a custom
     * baseline. FALSE by default.
     */
    isBuiltIn?: boolean;
    // The scores and insights for the application health metrics.
    appHealthMetrics?: NullableOption<UserExperienceAnalyticsCategory>;
    // The scores and insights for the battery health metrics.
    batteryHealthMetrics?: NullableOption<UserExperienceAnalyticsCategory>;
    // The scores and insights for the best practices metrics.
    bestPracticesMetrics?: NullableOption<UserExperienceAnalyticsCategory>;
    // The scores and insights for the device boot performance metrics.
    deviceBootPerformanceMetrics?: NullableOption<UserExperienceAnalyticsCategory>;
    // The scores and insights for the reboot analytics metrics.
    rebootAnalyticsMetrics?: NullableOption<UserExperienceAnalyticsCategory>;
    // The scores and insights for the resource performance metrics.
    resourcePerformanceMetrics?: NullableOption<UserExperienceAnalyticsCategory>;
    // The scores and insights for the work from anywhere metrics.
    workFromAnywhereMetrics?: NullableOption<UserExperienceAnalyticsCategory>;
}
export interface UserExperienceAnalyticsDevicePerformance extends Entity {
    // Average (mean) number of Blue Screens per device in the last 30 days. Valid values 0 to 9999999
    averageBlueScreens?: number;
    // Average (mean) number of Restarts per device in the last 30 days. Valid values 0 to 9999999
    averageRestarts?: number;
    // Number of Blue Screens in the last 30 days. Valid values 0 to 9999999
    blueScreenCount?: number;
    // The user experience analytics device boot score.
    bootScore?: number;
    // The user experience analytics device core boot time in milliseconds.
    coreBootTimeInMs?: number;
    // The user experience analytics device core login time in milliseconds.
    coreLoginTimeInMs?: number;
    // User experience analytics summarized device count.
    deviceCount?: number;
    // The user experience analytics device name.
    deviceName?: NullableOption<string>;
    // The user experience analytics device disk type. Possible values are: unknown, hdd, ssd, unknownFutureValue.
    diskType?: DiskType;
    // The user experience analytics device group policy boot time in milliseconds.
    groupPolicyBootTimeInMs?: number;
    // The user experience analytics device group policy login time in milliseconds.
    groupPolicyLoginTimeInMs?: number;
    /**
     * The health state of the user experience analytics device. Possible values are: unknown, insufficientData,
     * needsAttention, meetingGoals, unknownFutureValue.
     */
    healthStatus?: UserExperienceAnalyticsHealthState;
    // The user experience analytics device login score.
    loginScore?: number;
    // The user experience analytics device manufacturer.
    manufacturer?: NullableOption<string>;
    // The user experience analytics device model.
    model?: NullableOption<string>;
    /**
     * The user experience analytics model level startup performance score. Valid values -1.79769313486232E+308 to
     * 1.79769313486232E+308
     */
    modelStartupPerformanceScore?: number;
    // The user experience analytics device Operating System version.
    operatingSystemVersion?: NullableOption<string>;
    // The user experience analytics responsive desktop time in milliseconds.
    responsiveDesktopTimeInMs?: number;
    // Number of Restarts in the last 30 days. Valid values 0 to 9999999
    restartCount?: number;
    /**
     * The user experience analytics device startup performance score. Valid values -1.79769313486232E+308 to
     * 1.79769313486232E+308
     */
    startupPerformanceScore?: number;
}
export interface UserExperienceAnalyticsDeviceScores extends Entity {
    /**
     * Indicates a score calculated from application health data to indicate when a device is having problems running one or
     * more applications. Valid values range from 0-100. Value -1 means associated score is unavailable. A higher score
     * indicates a healthier device. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    appReliabilityScore?: number;
    /**
     * Indicates a calulated score indicating the health of the device's battery. Valid values range from 0-100. Value -1
     * means associated score is unavailable. A higher score indicates a healthier device. Read-only. Valid values
     * -1.79769313486232E+308 to 1.79769313486232E+308
     */
    batteryHealthScore?: number;
    // The name of the device. Supports: $select, $OrderBy. Read-only.
    deviceName?: NullableOption<string>;
    /**
     * Indicates a weighted average of the various scores. Valid values range from 0-100. Value -1 means associated score is
     * unavailable. A higher score indicates a healthier device. Read-only. Valid values -1.79769313486232E+308 to
     * 1.79769313486232E+308
     */
    endpointAnalyticsScore?: number;
    /**
     * The health status of the device. Possible values are: unknown, insufficientData, needsAttention, meetingGoals. Unknown
     * by default. Supports: $filter, $select, $OrderBy. Read-only. Possible values are: unknown, insufficientData,
     * needsAttention, meetingGoals, unknownFutureValue.
     */
    healthStatus?: UserExperienceAnalyticsHealthState;
    /**
     * The manufacturer name of the device. Examples: Microsoft Corporation, HP, Lenovo. Supports: $select, $OrderBy.
     * Read-only.
     */
    manufacturer?: NullableOption<string>;
    // The model name of the device. Supports: $select, $OrderBy. Read-only.
    model?: NullableOption<string>;
    /**
     * Indicates a weighted average of boot score and logon score used for measuring startup performance. Valid values range
     * from 0-100. Value -1 means associated score is unavailable. A higher score indicates a healthier device. Read-only.
     * Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    startupPerformanceScore?: number;
    /**
     * Indicates a weighted score of the work from anywhere on a device level. Valid values range from 0-100. Value -1 means
     * associated score is unavailable. A higher score indicates a healthier device. Read-only. Valid values
     * -1.79769313486232E+308 to 1.79769313486232E+308
     */
    workFromAnywhereScore?: number;
}
export interface UserExperienceAnalyticsDeviceStartupHistory extends Entity {
    // The device core boot time in milliseconds. Supports: $select, $OrderBy. Read-only.
    coreBootTimeInMs?: number;
    // The device core login time in milliseconds. Supports: $select, $OrderBy. Read-only.
    coreLoginTimeInMs?: number;
    // The Intune device id of the device. Supports: $select, $OrderBy. Read-only.
    deviceId?: NullableOption<string>;
    // The impact of device feature updates on boot time in milliseconds. Supports: $select, $OrderBy. Read-only.
    featureUpdateBootTimeInMs?: number;
    // The impact of device group policy client on boot time in milliseconds. Supports: $select, $OrderBy. Read-only.
    groupPolicyBootTimeInMs?: number;
    // The impact of device group policy client on login time in milliseconds. Supports: $select, $OrderBy. Read-only.
    groupPolicyLoginTimeInMs?: number;
    /**
     * When TRUE, indicates the device boot record is associated with feature updates. When FALSE, indicates the device boot
     * record is not associated with feature updates. Supports: $select, $OrderBy. Read-only.
     */
    isFeatureUpdate?: boolean;
    /**
     * When TRUE, indicates the device login is the first login after a reboot. When FALSE, indicates the device login is not
     * the first login after a reboot. Supports: $select, $OrderBy. Read-only.
     */
    isFirstLogin?: boolean;
    // The user experience analytics device boot record's operating system version. Supports: $select, $OrderBy. Read-only.
    operatingSystemVersion?: NullableOption<string>;
    // The time for desktop to become responsive during login process in milliseconds. Supports: $select, $OrderBy. Read-only.
    responsiveDesktopTimeInMs?: number;
    /**
     * OS restart category. Possible values are: unknown, restartWithUpdate, restartWithoutUpdate, blueScreen,
     * shutdownWithUpdate, shutdownWithoutUpdate, longPowerButtonPress, bootError, update. Unknown by default. Supports:
     * $select, $OrderBy. Read-only. Possible values are: unknown, restartWithUpdate, restartWithoutUpdate, blueScreen,
     * shutdownWithUpdate, shutdownWithoutUpdate, longPowerButtonPress, bootError, update, unknownFutureValue.
     */
    restartCategory?: UserExperienceAnalyticsOperatingSystemRestartCategory;
    /**
     * OS restart fault bucket. The fault bucket is used to find additional information about a system crash. Supports:
     * $select, $OrderBy. Read-only.
     */
    restartFaultBucket?: NullableOption<string>;
    /**
     * OS restart stop code. This shows the bug check code which can be used to look up the blue screen reason. Supports:
     * $select, $OrderBy. Read-only.
     */
    restartStopCode?: NullableOption<string>;
    /**
     * The device boot start time. The value cannot be modified and is automatically populated when the device performs a
     * reboot. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For
     * example, midnight UTC on Jan 1, 2022 would look like this: '2022-01-01T00:00:00Z'. Returned by default. Read-only.
     */
    startTime?: string;
    // The device total boot time in milliseconds. Supports: $select, $OrderBy. Read-only.
    totalBootTimeInMs?: number;
    // The device total login time in milliseconds. Supports: $select, $OrderBy. Read-only.
    totalLoginTimeInMs?: number;
}
export interface UserExperienceAnalyticsDeviceStartupProcess extends Entity {
    // The Intune device id of the device. Supports: $select, $OrderBy. Read-only.
    managedDeviceId?: NullableOption<string>;
    // The name of the process. Examples: outlook, excel. Supports: $select, $OrderBy. Read-only.
    processName?: NullableOption<string>;
    // The product name of the process. Examples: Microsoft Outlook, Microsoft Excel. Supports: $select, $OrderBy. Read-only.
    productName?: NullableOption<string>;
    // The publisher of the process. Examples: Microsoft Corporation, Contoso Corp. Supports: $select, $OrderBy. Read-only.
    publisher?: NullableOption<string>;
    // The impact of startup process on device boot time in milliseconds. Supports: $select, $OrderBy. Read-only.
    startupImpactInMs?: number;
}
export interface UserExperienceAnalyticsDeviceStartupProcessPerformance extends Entity {
    // The count of devices which initiated this process on startup. Supports: $filter, $select, $OrderBy. Read-only.
    deviceCount?: number;
    /**
     * The median impact of startup process on device boot time in milliseconds. Supports: $filter, $select, $OrderBy.
     * Read-only.
     */
    medianImpactInMs?: number;
    // The name of the startup process. Examples: outlook, excel. Supports: $select, $OrderBy. Read-only.
    processName?: NullableOption<string>;
    /**
     * The product name of the startup process. Examples: Microsoft Outlook, Microsoft Excel. Supports: $select, $OrderBy.
     * Read-only.
     */
    productName?: NullableOption<string>;
    /**
     * The publisher of the startup process. Examples: Microsoft Corporation, Contoso Corp. Supports: $select, $OrderBy.
     * Read-only.
     */
    publisher?: NullableOption<string>;
    /**
     * The total impact of startup process on device boot time in milliseconds. Supports: $filter, $select, $OrderBy.
     * Read-only.
     */
    totalImpactInMs?: number;
}
export interface UserExperienceAnalyticsMetricHistory extends Entity {
    // The Intune device id of the device.
    deviceId?: NullableOption<string>;
    /**
     * The metric date time. The value cannot be modified and is automatically populated when the metric is created. The
     * Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Returned by default.
     */
    metricDateTime?: string;
    // The user experience analytics metric type.
    metricType?: NullableOption<string>;
}
export interface UserExperienceAnalyticsModelScores extends Entity {
    /**
     * Indicates a score calculated from application health data to indicate when a device is having problems running one or
     * more applications. Valid values range from 0-100. Value -1 means associated score is unavailable. A higher score
     * indicates a healthier device. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    appReliabilityScore?: number;
    /**
     * Indicates a calulated score indicating the health of the device's battery. Valid values range from 0-100. Value -1
     * means associated score is unavailable. A higher score indicates a healthier device. Read-only. Valid values
     * -1.79769313486232E+308 to 1.79769313486232E+308
     */
    batteryHealthScore?: number;
    /**
     * Indicates a weighted average of the various scores. Valid values range from 0-100. Value -1 means associated score is
     * unavailable. A higher score indicates a healthier device. Read-only. Valid values -1.79769313486232E+308 to
     * 1.79769313486232E+308
     */
    endpointAnalyticsScore?: number;
    /**
     * The health status of the device. Possible values are: unknown, insufficientData, needsAttention, meetingGoals. Unknown
     * by default. Supports: $filter, $select, $OrderBy. Read-only. Possible values are: unknown, insufficientData,
     * needsAttention, meetingGoals, unknownFutureValue.
     */
    healthStatus?: UserExperienceAnalyticsHealthState;
    /**
     * The manufacturer name of the device. Examples: Microsoft Corporation, HP, Lenovo. Supports: $select, $OrderBy.
     * Read-only.
     */
    manufacturer?: NullableOption<string>;
    // The model name of the device. Supports: $select, $OrderBy. Read-only.
    model?: NullableOption<string>;
    /**
     * Indicates unique devices count of given model in a consolidated report. Supports: $select, $OrderBy. Read-only. Valid
     * values -9.22337203685478E+18 to 9.22337203685478E+18
     */
    modelDeviceCount?: number;
    /**
     * Indicates a weighted average of boot score and logon score used for measuring startup performance. Valid values range
     * from 0-100. Value -1 means associated score is unavailable. A higher score indicates a healthier device. Read-only.
     * Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    startupPerformanceScore?: number;
    /**
     * Indicates a weighted score of the work from anywhere on a device level. Valid values range from 0-100. Value -1 means
     * associated score is unavailable. A higher score indicates a healthier device. Read-only. Valid values
     * -1.79769313486232E+308 to 1.79769313486232E+308
     */
    workFromAnywhereScore?: number;
}
export interface UserExperienceAnalyticsOverview extends Entity {
    // The user experience analytics insights. Read-only.
    insights?: NullableOption<UserExperienceAnalyticsInsight[]>;
}
export interface UserExperienceAnalyticsScoreHistory extends Entity {
    /**
     * The device startup date time. The value cannot be modified and is automatically populated. The Timestamp type
     * represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan
     * 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Returned by default.
     */
    startupDateTime?: string;
}
export interface UserExperienceAnalyticsWorkFromAnywhereHardwareReadinessMetric extends Entity {
    /**
     * The percentage of devices for which OS check has failed. Valid values 0 to 100. Supports: $select, $OrderBy. Read-only.
     * Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    osCheckFailedPercentage?: number;
    /**
     * The percentage of devices for which processor hardware 64-bit architecture check has failed. Valid values 0 to 100.
     * Supports: $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    processor64BitCheckFailedPercentage?: number;
    /**
     * The percentage of devices for which processor hardware core count check has failed. Valid values 0 to 100. Supports:
     * $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    processorCoreCountCheckFailedPercentage?: number;
    /**
     * The percentage of devices for which processor hardware family check has failed. Valid values 0 to 100. Supports:
     * $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    processorFamilyCheckFailedPercentage?: number;
    /**
     * The percentage of devices for which processor hardware speed check has failed. Valid values 0 to 100. Supports:
     * $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    processorSpeedCheckFailedPercentage?: number;
    /**
     * The percentage of devices for which RAM hardware check has failed. Valid values 0 to 100. Supports: $select, $OrderBy.
     * Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    ramCheckFailedPercentage?: number;
    /**
     * The percentage of devices for which secure boot hardware check has failed. Valid values 0 to 100. Supports: $select,
     * $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    secureBootCheckFailedPercentage?: number;
    /**
     * The percentage of devices for which storage hardware check has failed. Valid values 0 to 100. Supports: $select,
     * $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    storageCheckFailedPercentage?: number;
    /**
     * The count of total devices in an organization. Valid values 0 to 2147483647. Supports: $select, $OrderBy. Read-only.
     * Valid values -2147483648 to 2147483647
     */
    totalDeviceCount?: number;
    /**
     * The percentage of devices for which Trusted Platform Module (TPM) hardware check has failed. Valid values 0 to 100.
     * Supports: $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    tpmCheckFailedPercentage?: number;
    /**
     * The count of devices in an organization eligible for windows upgrade. Valid values 0 to 2147483647. Supports: $select,
     * $OrderBy. Read-only. Valid values -2147483648 to 2147483647
     */
    upgradeEligibleDeviceCount?: number;
}
export interface UserExperienceAnalyticsWorkFromAnywhereMetric extends Entity {
    // The work from anywhere metric devices. Read-only.
    metricDevices?: NullableOption<UserExperienceAnalyticsWorkFromAnywhereDevice[]>;
}
export interface UserExperienceAnalyticsWorkFromAnywhereModelPerformance extends Entity {
    /**
     * The cloud identity score of the device model. Valid values 0 to 100. Value -1 means associated score is unavailable.
     * Supports: $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    cloudIdentityScore?: number;
    /**
     * The cloud management score of the device model. Valid values 0 to 100. Value -1 means associated score is unavailable.
     * Supports: $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    cloudManagementScore?: number;
    /**
     * The cloud provisioning score of the device model. Valid values 0 to 100. Value -1 means associated score is
     * unavailable. Supports: $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    cloudProvisioningScore?: number;
    /**
     * The health state of the user experience analytics work from anywhere device model. Possible values are: unknown,
     * insufficientData, needsAttention, meetingGoals. Unknown by default. Supports: $select, $OrderBy. Read-only. Possible
     * values are: unknown, insufficientData, needsAttention, meetingGoals, unknownFutureValue.
     */
    healthStatus?: UserExperienceAnalyticsHealthState;
    // The manufacturer name of the device. Supports: $select, $OrderBy. Read-only.
    manufacturer?: NullableOption<string>;
    // The model name of the device. Supports: $select, $OrderBy. Read-only.
    model?: NullableOption<string>;
    // The devices count for the model. Supports: $select, $OrderBy. Read-only. Valid values -2147483648 to 2147483647
    modelDeviceCount?: number;
    /**
     * The window score of the device model. Valid values 0 to 100. Value -1 means associated score is unavailable. Supports:
     * $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    windowsScore?: number;
    /**
     * The work from anywhere score of the device model. Valid values 0 to 100. Value -1 means associated score is
     * unavailable. Supports: $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    workFromAnywhereScore?: number;
}
export interface WindowsMalwareInformation extends Entity {
    // Indicates an informational URL to learn more about the malware
    additionalInformationUrl?: NullableOption<string>;
    /**
     * Category of the malware. Possible values are: invalid, adware, spyware, passwordStealer, trojanDownloader, worm,
     * backdoor, remoteAccessTrojan, trojan, emailFlooder, keylogger, dialer, monitoringSoftware, browserModifier, cookie,
     * browserPlugin, aolExploit, nuker, securityDisabler, jokeProgram, hostileActiveXControl, softwareBundler,
     * stealthNotifier, settingsModifier, toolBar, remoteControlSoftware, trojanFtp, potentialUnwantedSoftware, icqExploit,
     * trojanTelnet, exploit, filesharingProgram, malwareCreationTool, remoteControlSoftware, tool, trojanDenialOfService,
     * trojanDropper, trojanMassMailer, trojanMonitoringSoftware, trojanProxyServer, virus, known, unknown, spp, behavior,
     * vulnerability, policy, enterpriseUnwantedSoftware, ransom, hipsRule. default value is invalid. Possible values are:
     * invalid, adware, spyware, passwordStealer, trojanDownloader, worm, backdoor, remoteAccessTrojan, trojan, emailFlooder,
     * keylogger, dialer, monitoringSoftware, browserModifier, cookie, browserPlugin, aolExploit, nuker, securityDisabler,
     * jokeProgram, hostileActiveXControl, softwareBundler, stealthNotifier, settingsModifier, toolBar, remoteControlSoftware,
     * trojanFtp, potentialUnwantedSoftware, icqExploit, trojanTelnet, exploit, filesharingProgram, malwareCreationTool,
     * remoteControlSoftware, tool, trojanDenialOfService, trojanDropper, trojanMassMailer, trojanMonitoringSoftware,
     * trojanProxyServer, virus, known, unknown, spp, behavior, vulnerability, policy, enterpriseUnwantedSoftware, ransom,
     * hipsRule.
     */
    category?: NullableOption<WindowsMalwareCategory>;
    // Indicates the name of the malware
    displayName?: NullableOption<string>;
    // Indicates the last time the malware was detected in UTC
    lastDetectionDateTime?: NullableOption<string>;
    /**
     * Severity of the malware. Possible values are: unknown, low, moderate, high, severe. default is unknown. Possible values
     * are: unknown, low, moderate, high, severe.
     */
    severity?: NullableOption<WindowsMalwareSeverity>;
    // List of devices affected by current malware with the malware state on each device
    deviceMalwareStates?: NullableOption<MalwareStateForWindowsDevice[]>;
}
// tslint:disable-next-line: interface-name
export interface ImportedWindowsAutopilotDeviceIdentity extends Entity {
    // UPN of the user the device will be assigned
    assignedUserPrincipalName?: NullableOption<string>;
    // Group Tag of the Windows autopilot device.
    groupTag?: NullableOption<string>;
    // Hardware Blob of the Windows autopilot device.
    hardwareIdentifier?: NullableOption<string>;
    // The Import Id of the Windows autopilot device.
    importId?: NullableOption<string>;
    // Product Key of the Windows autopilot device.
    productKey?: NullableOption<string>;
    // Serial number of the Windows autopilot device.
    serialNumber?: NullableOption<string>;
    // Current state of the imported device.
    state?: NullableOption<ImportedWindowsAutopilotDeviceIdentityState>;
}
export interface WindowsAutopilotDeviceIdentity extends Entity {
    // Addressable user name.
    addressableUserName?: NullableOption<string>;
    // AAD Device ID - to be deprecated
    azureActiveDirectoryDeviceId?: NullableOption<string>;
    // Display Name
    displayName?: NullableOption<string>;
    /**
     * Intune enrollment state of the Windows autopilot device. Possible values are: unknown, enrolled, pendingReset, failed,
     * notContacted.
     */
    enrollmentState?: EnrollmentState;
    // Group Tag of the Windows autopilot device.
    groupTag?: NullableOption<string>;
    // Intune Last Contacted Date Time of the Windows autopilot device.
    lastContactedDateTime?: string;
    // Managed Device ID
    managedDeviceId?: NullableOption<string>;
    // Oem manufacturer of the Windows autopilot device.
    manufacturer?: NullableOption<string>;
    // Model name of the Windows autopilot device.
    model?: NullableOption<string>;
    // Product Key of the Windows autopilot device.
    productKey?: NullableOption<string>;
    // Purchase Order Identifier of the Windows autopilot device.
    purchaseOrderIdentifier?: NullableOption<string>;
    // Resource Name.
    resourceName?: NullableOption<string>;
    // Serial number of the Windows autopilot device.
    serialNumber?: NullableOption<string>;
    // SKU Number
    skuNumber?: NullableOption<string>;
    // System Family
    systemFamily?: NullableOption<string>;
    // User Principal Name.
    userPrincipalName?: NullableOption<string>;
}
export interface NotificationMessageTemplate extends Entity {
    /**
     * The Message Template Branding Options. Branding is defined in the Intune Admin Console. Possible values are: none,
     * includeCompanyLogo, includeCompanyName, includeContactInformation, includeCompanyPortalLink, includeDeviceDetails,
     * unknownFutureValue.
     */
    brandingOptions?: NotificationTemplateBrandingOptions;
    // The default locale to fallback onto when the requested locale is not available.
    defaultLocale?: NullableOption<string>;
    // Display name for the Notification Message Template.
    displayName?: string;
    // DateTime the object was last modified.
    lastModifiedDateTime?: string;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // The list of localized messages for this Notification Message Template.
    localizedNotificationMessages?: NullableOption<LocalizedNotificationMessage[]>;
}
export interface ResourceOperation extends Entity {
    /**
     * Type of action this operation is going to perform. The actionName should be concise and limited to as few words as
     * possible.
     */
    actionName?: NullableOption<string>;
    /**
     * Description of the resource operation. The description is used in mouse-over text for the operation when shown in the
     * Azure Portal.
     */
    description?: NullableOption<string>;
    // Name of the Resource this operation is performed on.
    resourceName?: NullableOption<string>;
}
export interface RoleAssignment extends Entity {
    // Description of the Role Assignment.
    description?: NullableOption<string>;
    // The display or friendly name of the role Assignment.
    displayName?: NullableOption<string>;
    // List of ids of role scope member security groups. These are IDs from Azure Active Directory.
    resourceScopes?: NullableOption<string[]>;
    // Role definition this assignment is part of.
    roleDefinition?: NullableOption<RoleDefinition>;
}
export interface DeviceAndAppManagementRoleAssignment extends RoleAssignment {
    // The list of ids of role member security groups. These are IDs from Azure Active Directory.
    members?: NullableOption<string[]>;
}
export interface RoleDefinition extends Entity {
    // Description of the Role definition.
    description?: NullableOption<string>;
    // Display Name of the Role definition.
    displayName?: NullableOption<string>;
    // Type of Role. Set to True if it is built-in, or set to False if it is a custom role definition.
    isBuiltIn?: boolean;
    /**
     * List of Role Permissions this role is allowed to perform. These must match the actionName that is defined as part of
     * the rolePermission.
     */
    rolePermissions?: NullableOption<RolePermission[]>;
    // List of Role assignments for this role definition.
    roleAssignments?: NullableOption<RoleAssignment[]>;
}
export interface RemoteAssistancePartner extends Entity {
    // Display name of the partner.
    displayName?: NullableOption<string>;
    // Timestamp of the last request sent to Intune by the TEM partner.
    lastConnectionDateTime?: string;
    /**
     * A friendly description of the current TeamViewer connector status. Possible values are: notOnboarded, onboarding,
     * onboarded.
     */
    onboardingStatus?: RemoteAssistanceOnboardingStatus;
    // URL of the partner's onboarding portal, where an administrator can configure their Remote Assistance service.
    onboardingUrl?: NullableOption<string>;
}
export interface DeviceManagementReports extends Entity {
    // Entity representing a job to export a report
    exportJobs?: NullableOption<DeviceManagementExportJob[]>;
}
export interface TelecomExpenseManagementPartner extends Entity {
    // Whether the partner's AAD app has been authorized to access Intune.
    appAuthorized?: boolean;
    // Display name of the TEM partner.
    displayName?: NullableOption<string>;
    // Whether Intune's connection to the TEM service is currently enabled or disabled.
    enabled?: boolean;
    // Timestamp of the last request sent to Intune by the TEM partner.
    lastConnectionDateTime?: string;
    // URL of the TEM partner's administrative control panel, where an administrator can configure their TEM service.
    url?: NullableOption<string>;
}
export interface WindowsInformationProtectionAppLearningSummary extends Entity {
    // Application Name
    applicationName?: NullableOption<string>;
    // Application Type. Possible values are: universal, desktop.
    applicationType?: ApplicationType;
    // Device Count
    deviceCount?: number;
}
export interface WindowsInformationProtectionNetworkLearningSummary extends Entity {
    // Device Count
    deviceCount?: number;
    // Website url
    url?: NullableOption<string>;
}
export interface DeviceInstallState extends Entity {
    // Device Id.
    deviceId?: NullableOption<string>;
    // Device name.
    deviceName?: NullableOption<string>;
    // The error code for install failures.
    errorCode?: NullableOption<string>;
    /**
     * The install state of the eBook. Possible values are: notApplicable, installed, failed, notInstalled, uninstallFailed,
     * unknown.
     */
    installState?: InstallState;
    // Last sync date and time.
    lastSyncDateTime?: string;
    // OS Description.
    osDescription?: NullableOption<string>;
    // OS Version.
    osVersion?: NullableOption<string>;
    // Device User Name.
    userName?: NullableOption<string>;
}
export interface EBookInstallSummary extends Entity {
    // Number of Devices that have failed to install this book.
    failedDeviceCount?: number;
    // Number of Users that have 1 or more device that failed to install this book.
    failedUserCount?: number;
    // Number of Devices that have successfully installed this book.
    installedDeviceCount?: number;
    // Number of Users whose devices have all succeeded to install this book.
    installedUserCount?: number;
    // Number of Devices that does not have this book installed.
    notInstalledDeviceCount?: number;
    // Number of Users that did not install this book.
    notInstalledUserCount?: number;
}
// tslint:disable-next-line: interface-name
export interface IosVppEBook extends ManagedEBook {
    // The Apple ID associated with Vpp token.
    appleId?: NullableOption<string>;
    // Genres.
    genres?: NullableOption<string[]>;
    // Language.
    language?: NullableOption<string>;
    // Seller.
    seller?: NullableOption<string>;
    // Total license count.
    totalLicenseCount?: number;
    // Used license count.
    usedLicenseCount?: number;
    // The Vpp token's organization name.
    vppOrganizationName?: NullableOption<string>;
    // The Vpp token ID.
    vppTokenId?: string;
}
export interface ManagedEBookAssignment extends Entity {
    // The install intent for eBook. Possible values are: available, required, uninstall, availableWithoutEnrollment.
    installIntent?: InstallIntent;
    // The assignment target for eBook.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IosVppEBookAssignment extends ManagedEBookAssignment {}
export interface UserInstallStateSummary extends Entity {
    // Failed Device Count.
    failedDeviceCount?: number;
    // Installed Device Count.
    installedDeviceCount?: number;
    // Not installed device count.
    notInstalledDeviceCount?: number;
    // User name.
    userName?: NullableOption<string>;
    // The install state of the eBook.
    deviceStates?: NullableOption<DeviceInstallState[]>;
}
export interface TermsAndConditionsAcceptanceStatus extends Entity {
    // DateTime when the terms were last accepted by the user.
    acceptedDateTime?: string;
    // Most recent version number of the T&amp;C accepted by the user.
    acceptedVersion?: number;
    // Display name of the user whose acceptance the entity represents.
    userDisplayName?: NullableOption<string>;
    // The userPrincipalName of the User that accepted the term.
    userPrincipalName?: NullableOption<string>;
    // Navigation link to the terms and conditions that are assigned.
    termsAndConditions?: NullableOption<TermsAndConditions>;
}
export interface TermsAndConditionsAssignment extends Entity {
    // Assignment target that the T&amp;C policy is assigned to.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface AndroidCompliancePolicy extends DeviceCompliancePolicy {
    // Require that devices have enabled device threat protection.
    deviceThreatProtectionEnabled?: boolean;
    /**
     * Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable, secured,
     * low, medium, high, notSet.
     */
    deviceThreatProtectionRequiredSecurityLevel?: DeviceThreatProtectionLevel;
    // Minimum Android security patch level.
    minAndroidSecurityPatchLevel?: NullableOption<string>;
    // Maximum Android version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum Android version.
    osMinimumVersion?: NullableOption<string>;
    // Number of days before the password expires. Valid values 1 to 365
    passwordExpirationDays?: NullableOption<number>;
    // Minimum password length. Valid values 4 to 16
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before a password is required.
    passwordMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // Number of previous passwords to block. Valid values 1 to 24
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Require a password to unlock device.
    passwordRequired?: boolean;
    /**
     * Type of characters in password. Possible values are: deviceDefault, alphabetic, alphanumeric, alphanumericWithSymbols,
     * lowSecurityBiometric, numeric, numericComplex, any.
     */
    passwordRequiredType?: AndroidRequiredPasswordType;
    // Devices must not be jailbroken or rooted.
    securityBlockJailbrokenDevices?: boolean;
    // Disable USB debugging on Android devices.
    securityDisableUsbDebugging?: boolean;
    // Require that devices disallow installation of apps from unknown sources.
    securityPreventInstallAppsFromUnknownSources?: boolean;
    // Require the device to pass the Company Portal client app runtime integrity check.
    securityRequireCompanyPortalAppIntegrity?: boolean;
    // Require Google Play Services to be installed and enabled on the device.
    securityRequireGooglePlayServices?: boolean;
    // Require the device to pass the SafetyNet basic integrity check.
    securityRequireSafetyNetAttestationBasicIntegrity?: boolean;
    // Require the device to pass the SafetyNet certified device check.
    securityRequireSafetyNetAttestationCertifiedDevice?: boolean;
    /**
     * Require the device to have up to date security providers. The device will require Google Play Services to be enabled
     * and up to date.
     */
    securityRequireUpToDateSecurityProviders?: boolean;
    // Require the Android Verify apps feature is turned on.
    securityRequireVerifyApps?: boolean;
    // Require encryption on Android devices.
    storageRequireEncryption?: boolean;
}
export interface AndroidCustomConfiguration extends DeviceConfiguration {
    // OMA settings. This collection can contain a maximum of 1000 elements.
    omaSettings?: NullableOption<OmaSetting[]>;
}
export interface AndroidGeneralDeviceConfiguration extends DeviceConfiguration {
    // Indicates whether or not to block clipboard sharing to copy and paste between applications.
    appsBlockClipboardSharing?: boolean;
    // Indicates whether or not to block copy and paste within applications.
    appsBlockCopyPaste?: boolean;
    // Indicates whether or not to block the YouTube app.
    appsBlockYouTube?: boolean;
    // List of apps to be hidden on the KNOX device. This collection can contain a maximum of 500 elements.
    appsHideList?: NullableOption<AppListItem[]>;
    // List of apps which can be installed on the KNOX device. This collection can contain a maximum of 500 elements.
    appsInstallAllowList?: NullableOption<AppListItem[]>;
    /**
     * List of apps which are blocked from being launched on the KNOX device. This collection can contain a maximum of 500
     * elements.
     */
    appsLaunchBlockList?: NullableOption<AppListItem[]>;
    // Indicates whether or not to block Bluetooth.
    bluetoothBlocked?: boolean;
    // Indicates whether or not to block the use of the camera.
    cameraBlocked?: boolean;
    // Indicates whether or not to block data roaming.
    cellularBlockDataRoaming?: boolean;
    // Indicates whether or not to block SMS/MMS messaging.
    cellularBlockMessaging?: boolean;
    // Indicates whether or not to block voice roaming.
    cellularBlockVoiceRoaming?: boolean;
    // Indicates whether or not to block syncing Wi-Fi tethering.
    cellularBlockWiFiTethering?: boolean;
    // Type of list that is in the CompliantAppsList. Possible values are: none, appsInListCompliant, appsNotInListCompliant.
    compliantAppListType?: AppListType;
    /**
     * List of apps in the compliance (either allow list or block list, controlled by CompliantAppListType). This collection
     * can contain a maximum of 10000 elements.
     */
    compliantAppsList?: NullableOption<AppListItem[]>;
    // Indicates whether or not to allow device sharing mode.
    deviceSharingAllowed?: boolean;
    // Indicates whether or not to block diagnostic data submission.
    diagnosticDataBlockSubmission?: boolean;
    // Indicates whether or not to block user performing a factory reset.
    factoryResetBlocked?: boolean;
    // Indicates whether or not to block Google account auto sync.
    googleAccountBlockAutoSync?: boolean;
    // Indicates whether or not to block the Google Play store.
    googlePlayStoreBlocked?: boolean;
    /**
     * A list of apps that will be allowed to run when the device is in Kiosk Mode. This collection can contain a maximum of
     * 500 elements.
     */
    kioskModeApps?: NullableOption<AppListItem[]>;
    // Indicates whether or not to block the screen sleep button while in Kiosk Mode.
    kioskModeBlockSleepButton?: boolean;
    // Indicates whether or not to block the volume buttons while in Kiosk Mode.
    kioskModeBlockVolumeButtons?: boolean;
    // Indicates whether or not to block location services.
    locationServicesBlocked?: boolean;
    // Indicates whether or not to block Near-Field Communication.
    nfcBlocked?: boolean;
    // Indicates whether or not to block fingerprint unlock.
    passwordBlockFingerprintUnlock?: boolean;
    // Indicates whether or not to block Smart Lock and other trust agents.
    passwordBlockTrustAgents?: boolean;
    // Number of days before the password expires. Valid values 1 to 365
    passwordExpirationDays?: NullableOption<number>;
    // Minimum length of passwords. Valid values 4 to 16
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before the screen times out.
    passwordMinutesOfInactivityBeforeScreenTimeout?: NullableOption<number>;
    // Number of previous passwords to block. Valid values 0 to 24
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Indicates whether or not to require a password.
    passwordRequired?: boolean;
    /**
     * Type of password that is required. Possible values are: deviceDefault, alphabetic, alphanumeric,
     * alphanumericWithSymbols, lowSecurityBiometric, numeric, numericComplex, any.
     */
    passwordRequiredType?: AndroidRequiredPasswordType;
    // Number of sign in failures allowed before factory reset. Valid values 1 to 16
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    // Indicates whether or not to block powering off the device.
    powerOffBlocked?: boolean;
    // Indicates whether or not to block screenshots.
    screenCaptureBlocked?: boolean;
    // Require the Android Verify apps feature is turned on.
    securityRequireVerifyApps?: boolean;
    // Indicates whether or not to block Google Backup.
    storageBlockGoogleBackup?: boolean;
    // Indicates whether or not to block removable storage usage.
    storageBlockRemovableStorage?: boolean;
    // Indicates whether or not to require device encryption.
    storageRequireDeviceEncryption?: boolean;
    // Indicates whether or not to require removable storage encryption.
    storageRequireRemovableStorageEncryption?: boolean;
    // Indicates whether or not to block the use of the Voice Assistant.
    voiceAssistantBlocked?: boolean;
    // Indicates whether or not to block voice dialing.
    voiceDialingBlocked?: boolean;
    // Indicates whether or not to block the web browser's auto fill feature.
    webBrowserBlockAutofill?: boolean;
    // Indicates whether or not to block the web browser.
    webBrowserBlocked?: boolean;
    // Indicates whether or not to block JavaScript within the web browser.
    webBrowserBlockJavaScript?: boolean;
    // Indicates whether or not to block popups within the web browser.
    webBrowserBlockPopups?: boolean;
    /**
     * Cookie settings within the web browser. Possible values are: browserDefault, blockAlways, allowCurrentWebSite,
     * allowFromWebsitesVisited, allowAlways.
     */
    webBrowserCookieSettings?: WebBrowserCookieSettings;
    // Indicates whether or not to block syncing Wi-Fi.
    wiFiBlocked?: boolean;
}
export interface AndroidWorkProfileCompliancePolicy extends DeviceCompliancePolicy {
    // Require that devices have enabled device threat protection.
    deviceThreatProtectionEnabled?: boolean;
    /**
     * Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable, secured,
     * low, medium, high, notSet.
     */
    deviceThreatProtectionRequiredSecurityLevel?: DeviceThreatProtectionLevel;
    // Minimum Android security patch level.
    minAndroidSecurityPatchLevel?: NullableOption<string>;
    // Maximum Android version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum Android version.
    osMinimumVersion?: NullableOption<string>;
    // Number of days before the password expires. Valid values 1 to 365
    passwordExpirationDays?: NullableOption<number>;
    // Minimum password length. Valid values 4 to 16
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before a password is required.
    passwordMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // Number of previous passwords to block. Valid values 1 to 24
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Require a password to unlock device.
    passwordRequired?: boolean;
    /**
     * Type of characters in password. Possible values are: deviceDefault, alphabetic, alphanumeric, alphanumericWithSymbols,
     * lowSecurityBiometric, numeric, numericComplex, any.
     */
    passwordRequiredType?: AndroidRequiredPasswordType;
    // Devices must not be jailbroken or rooted.
    securityBlockJailbrokenDevices?: boolean;
    // Disable USB debugging on Android devices.
    securityDisableUsbDebugging?: boolean;
    // Require that devices disallow installation of apps from unknown sources.
    securityPreventInstallAppsFromUnknownSources?: boolean;
    // Require the device to pass the Company Portal client app runtime integrity check.
    securityRequireCompanyPortalAppIntegrity?: boolean;
    // Require Google Play Services to be installed and enabled on the device.
    securityRequireGooglePlayServices?: boolean;
    // Require the device to pass the SafetyNet basic integrity check.
    securityRequireSafetyNetAttestationBasicIntegrity?: boolean;
    // Require the device to pass the SafetyNet certified device check.
    securityRequireSafetyNetAttestationCertifiedDevice?: boolean;
    /**
     * Require the device to have up to date security providers. The device will require Google Play Services to be enabled
     * and up to date.
     */
    securityRequireUpToDateSecurityProviders?: boolean;
    // Require the Android Verify apps feature is turned on.
    securityRequireVerifyApps?: boolean;
    // Require encryption on Android devices.
    storageRequireEncryption?: boolean;
}
export interface AndroidWorkProfileCustomConfiguration extends DeviceConfiguration {
    // OMA settings. This collection can contain a maximum of 500 elements.
    omaSettings?: NullableOption<OmaSetting[]>;
}
export interface AndroidWorkProfileGeneralDeviceConfiguration extends DeviceConfiguration {
    // Indicates whether or not to block fingerprint unlock.
    passwordBlockFingerprintUnlock?: boolean;
    // Indicates whether or not to block Smart Lock and other trust agents.
    passwordBlockTrustAgents?: boolean;
    // Number of days before the password expires. Valid values 1 to 365
    passwordExpirationDays?: NullableOption<number>;
    // Minimum length of passwords. Valid values 4 to 16
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before the screen times out.
    passwordMinutesOfInactivityBeforeScreenTimeout?: NullableOption<number>;
    // Number of previous passwords to block. Valid values 0 to 24
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    /**
     * Type of password that is required. Possible values are: deviceDefault, lowSecurityBiometric, required, atLeastNumeric,
     * numericComplex, atLeastAlphabetic, atLeastAlphanumeric, alphanumericWithSymbols.
     */
    passwordRequiredType?: AndroidWorkProfileRequiredPasswordType;
    // Number of sign in failures allowed before factory reset. Valid values 1 to 16
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    // Require the Android Verify apps feature is turned on.
    securityRequireVerifyApps?: boolean;
    // Block users from adding/removing accounts in work profile.
    workProfileBlockAddingAccounts?: boolean;
    // Block work profile camera.
    workProfileBlockCamera?: boolean;
    // Block display work profile caller ID in personal profile.
    workProfileBlockCrossProfileCallerId?: boolean;
    // Block work profile contacts availability in personal profile.
    workProfileBlockCrossProfileContactsSearch?: boolean;
    // Boolean that indicates if the setting disallow cross profile copy/paste is enabled.
    workProfileBlockCrossProfileCopyPaste?: boolean;
    // Indicates whether or not to block notifications while device locked.
    workProfileBlockNotificationsWhileDeviceLocked?: boolean;
    // Block screen capture in work profile.
    workProfileBlockScreenCapture?: boolean;
    // Allow bluetooth devices to access enterprise contacts.
    workProfileBluetoothEnableContactSharing?: boolean;
    /**
     * Type of data sharing that is allowed. Possible values are: deviceDefault, preventAny, allowPersonalToWork,
     * noRestrictions.
     */
    workProfileDataSharingType?: AndroidWorkProfileCrossProfileDataSharingType;
    // Type of password that is required. Possible values are: deviceDefault, prompt, autoGrant, autoDeny.
    workProfileDefaultAppPermissionPolicy?: AndroidWorkProfileDefaultAppPermissionPolicyType;
    // Indicates whether or not to block fingerprint unlock for work profile.
    workProfilePasswordBlockFingerprintUnlock?: boolean;
    // Indicates whether or not to block Smart Lock and other trust agents for work profile.
    workProfilePasswordBlockTrustAgents?: boolean;
    // Number of days before the work profile password expires. Valid values 1 to 365
    workProfilePasswordExpirationDays?: NullableOption<number>;
    // Minimum length of work profile password. Valid values 4 to 16
    workProfilePasswordMinimumLength?: NullableOption<number>;
    // Minimum # of letter characters required in work profile password. Valid values 1 to 10
    workProfilePasswordMinLetterCharacters?: NullableOption<number>;
    // Minimum # of lower-case characters required in work profile password. Valid values 1 to 10
    workProfilePasswordMinLowerCaseCharacters?: NullableOption<number>;
    // Minimum # of non-letter characters required in work profile password. Valid values 1 to 10
    workProfilePasswordMinNonLetterCharacters?: NullableOption<number>;
    // Minimum # of numeric characters required in work profile password. Valid values 1 to 10
    workProfilePasswordMinNumericCharacters?: NullableOption<number>;
    // Minimum # of symbols required in work profile password. Valid values 1 to 10
    workProfilePasswordMinSymbolCharacters?: NullableOption<number>;
    // Minimum # of upper-case characters required in work profile password. Valid values 1 to 10
    workProfilePasswordMinUpperCaseCharacters?: NullableOption<number>;
    // Minutes of inactivity before the screen times out.
    workProfilePasswordMinutesOfInactivityBeforeScreenTimeout?: NullableOption<number>;
    // Number of previous work profile passwords to block. Valid values 0 to 24
    workProfilePasswordPreviousPasswordBlockCount?: NullableOption<number>;
    /**
     * Type of work profile password that is required. Possible values are: deviceDefault, lowSecurityBiometric, required,
     * atLeastNumeric, numericComplex, atLeastAlphabetic, atLeastAlphanumeric, alphanumericWithSymbols.
     */
    workProfilePasswordRequiredType?: AndroidWorkProfileRequiredPasswordType;
    // Number of sign in failures allowed before work profile is removed and all corporate data deleted. Valid values 1 to 16
    workProfilePasswordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    // Password is required or not for work profile
    workProfileRequirePassword?: boolean;
}
// tslint:disable-next-line: no-empty-interface
export interface AppleDeviceFeaturesConfigurationBase extends DeviceConfiguration {}
export interface DeviceComplianceActionItem extends Entity {
    /**
     * What action to take. Possible values are: noAction, notification, block, retire, wipe, removeResourceAccessProfiles,
     * pushNotification.
     */
    actionType?: DeviceComplianceActionType;
    // Number of hours to wait till the action will be enforced. Valid values 0 to 8760
    gracePeriodHours?: number;
    // A list of group IDs to speicify who to CC this notification message to.
    notificationMessageCCList?: NullableOption<string[]>;
    // What notification Message template to use
    notificationTemplateId?: NullableOption<string>;
}
export interface DeviceComplianceDeviceOverview extends Entity {
    // Version of the policy for that overview
    configurationVersion?: number;
    // Number of error devices
    errorCount?: number;
    // Number of failed devices
    failedCount?: number;
    // Last update time
    lastUpdateDateTime?: string;
    // Number of not applicable devices
    notApplicableCount?: number;
    // Number of pending devices
    pendingCount?: number;
    // Number of succeeded devices
    successCount?: number;
}
export interface DeviceComplianceDeviceStatus extends Entity {
    // The DateTime when device compliance grace period expires
    complianceGracePeriodExpirationDateTime?: string;
    // Device name of the DevicePolicyStatus.
    deviceDisplayName?: NullableOption<string>;
    // The device model that is being reported
    deviceModel?: NullableOption<string>;
    // Last modified date time of the policy report.
    lastReportedDateTime?: string;
    /**
     * Compliance status of the policy report. Possible values are: unknown, notApplicable, compliant, remediated,
     * nonCompliant, error, conflict, notAssigned.
     */
    status?: ComplianceStatus;
    // The User Name that is being reported
    userName?: NullableOption<string>;
    // UserPrincipalName.
    userPrincipalName?: NullableOption<string>;
}
export interface DeviceCompliancePolicyAssignment extends Entity {
    // Target for the compliance policy assignment.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface SettingStateDeviceSummary extends Entity {
    // Device Compliant count for the setting
    compliantDeviceCount?: number;
    // Device conflict error count for the setting
    conflictDeviceCount?: number;
    // Device error count for the setting
    errorDeviceCount?: number;
    // Name of the InstancePath for the setting
    instancePath?: NullableOption<string>;
    // Device NonCompliant count for the setting
    nonCompliantDeviceCount?: number;
    // Device Not Applicable count for the setting
    notApplicableDeviceCount?: number;
    // Device Compliant count for the setting
    remediatedDeviceCount?: number;
    // Name of the setting
    settingName?: NullableOption<string>;
    // Device Unkown count for the setting
    unknownDeviceCount?: number;
}
export interface DeviceComplianceScheduledActionForRule extends Entity {
    /**
     * Name of the rule which this scheduled action applies to. Currently scheduled actions are created per policy instead of
     * per rule, thus RuleName is always set to default value PasswordRequired.
     */
    ruleName?: NullableOption<string>;
    /**
     * The list of scheduled action configurations for this compliance policy. Compliance policy must have one and only one
     * block scheduled action.
     */
    scheduledActionConfigurations?: NullableOption<DeviceComplianceActionItem[]>;
}
export interface DeviceComplianceUserStatus extends Entity {
    // Devices count for that user.
    devicesCount?: number;
    // Last modified date time of the policy report.
    lastReportedDateTime?: string;
    /**
     * Compliance status of the policy report. Possible values are: unknown, notApplicable, compliant, remediated,
     * nonCompliant, error, conflict, notAssigned.
     */
    status?: ComplianceStatus;
    // User name of the DevicePolicyStatus.
    userDisplayName?: NullableOption<string>;
    // UserPrincipalName.
    userPrincipalName?: NullableOption<string>;
}
export interface DeviceComplianceUserOverview extends Entity {
    // Version of the policy for that overview
    configurationVersion?: number;
    // Number of error Users
    errorCount?: number;
    // Number of failed Users
    failedCount?: number;
    // Last update time
    lastUpdateDateTime?: string;
    // Number of not applicable users
    notApplicableCount?: number;
    // Number of pending Users
    pendingCount?: number;
    // Number of succeeded Users
    successCount?: number;
}
export interface DeviceComplianceSettingState extends Entity {
    // The DateTime when device compliance grace period expires
    complianceGracePeriodExpirationDateTime?: string;
    // The Device Id that is being reported
    deviceId?: NullableOption<string>;
    // The device model that is being reported
    deviceModel?: NullableOption<string>;
    // The Device Name that is being reported
    deviceName?: NullableOption<string>;
    // The setting class name and property name.
    setting?: NullableOption<string>;
    // The Setting Name that is being reported
    settingName?: NullableOption<string>;
    /**
     * The compliance state of the setting. Possible values are: unknown, notApplicable, compliant, remediated, nonCompliant,
     * error, conflict, notAssigned.
     */
    state?: ComplianceStatus;
    // The User email address that is being reported
    userEmail?: NullableOption<string>;
    // The user Id that is being reported
    userId?: NullableOption<string>;
    // The User Name that is being reported
    userName?: NullableOption<string>;
    // The User PrincipalName that is being reported
    userPrincipalName?: NullableOption<string>;
}
export interface DeviceCompliancePolicyState extends Entity {
    // The name of the policy for this policyBase
    displayName?: NullableOption<string>;
    // Platform type that the policy applies to
    platformType?: PolicyPlatformType;
    // Count of how many setting a policy holds
    settingCount?: number;
    settingStates?: NullableOption<DeviceCompliancePolicySettingState[]>;
    // The compliance state of the policy
    state?: ComplianceStatus;
    // The version of the policy
    version?: number;
}
export interface DeviceConfigurationAssignment extends Entity {
    // The assignment target for the device configuration.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface DeviceConfigurationDeviceStatus extends Entity {
    // The DateTime when device compliance grace period expires
    complianceGracePeriodExpirationDateTime?: string;
    // Device name of the DevicePolicyStatus.
    deviceDisplayName?: NullableOption<string>;
    // The device model that is being reported
    deviceModel?: NullableOption<string>;
    // Last modified date time of the policy report.
    lastReportedDateTime?: string;
    /**
     * Compliance status of the policy report. Possible values are: unknown, notApplicable, compliant, remediated,
     * nonCompliant, error, conflict, notAssigned.
     */
    status?: ComplianceStatus;
    // The User Name that is being reported
    userName?: NullableOption<string>;
    // UserPrincipalName.
    userPrincipalName?: NullableOption<string>;
}
export interface DeviceConfigurationDeviceOverview extends Entity {
    // Version of the policy for that overview
    configurationVersion?: number;
    // Number of error devices
    errorCount?: number;
    // Number of failed devices
    failedCount?: number;
    // Last update time
    lastUpdateDateTime?: string;
    // Number of not applicable devices
    notApplicableCount?: number;
    // Number of pending devices
    pendingCount?: number;
    // Number of succeeded devices
    successCount?: number;
}
export interface DeviceConfigurationUserStatus extends Entity {
    // Devices count for that user.
    devicesCount?: number;
    // Last modified date time of the policy report.
    lastReportedDateTime?: string;
    /**
     * Compliance status of the policy report. Possible values are: unknown, notApplicable, compliant, remediated,
     * nonCompliant, error, conflict, notAssigned.
     */
    status?: ComplianceStatus;
    // User name of the DevicePolicyStatus.
    userDisplayName?: NullableOption<string>;
    // UserPrincipalName.
    userPrincipalName?: NullableOption<string>;
}
export interface DeviceConfigurationUserOverview extends Entity {
    // Version of the policy for that overview
    configurationVersion?: number;
    // Number of error Users
    errorCount?: number;
    // Number of failed Users
    failedCount?: number;
    // Last update time
    lastUpdateDateTime?: string;
    // Number of not applicable users
    notApplicableCount?: number;
    // Number of pending Users
    pendingCount?: number;
    // Number of succeeded Users
    successCount?: number;
}
export interface DeviceConfigurationState extends Entity {
    // The name of the policy for this policyBase
    displayName?: NullableOption<string>;
    // Platform type that the policy applies to
    platformType?: PolicyPlatformType;
    // Count of how many setting a policy holds
    settingCount?: number;
    settingStates?: NullableOption<DeviceConfigurationSettingState[]>;
    // The compliance state of the policy
    state?: ComplianceStatus;
    // The version of the policy
    version?: number;
}
export interface EditionUpgradeConfiguration extends DeviceConfiguration {
    // Edition Upgrade License File Content.
    license?: NullableOption<string>;
    // Edition Upgrade License Type. Possible values are: productKey, licenseFile.
    licenseType?: EditionUpgradeLicenseType;
    // Edition Upgrade Product Key.
    productKey?: NullableOption<string>;
    /**
     * Edition Upgrade Target Edition. Possible values are: windows10Enterprise, windows10EnterpriseN, windows10Education,
     * windows10EducationN, windows10MobileEnterprise, windows10HolographicEnterprise, windows10Professional,
     * windows10ProfessionalN, windows10ProfessionalEducation, windows10ProfessionalEducationN,
     * windows10ProfessionalWorkstation, windows10ProfessionalWorkstationN.
     */
    targetEdition?: Windows10EditionType;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IosCertificateProfile extends DeviceConfiguration {}
// tslint:disable-next-line: interface-name
export interface IosCompliancePolicy extends DeviceCompliancePolicy {
    // Require that devices have enabled device threat protection .
    deviceThreatProtectionEnabled?: boolean;
    /**
     * Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable, secured,
     * low, medium, high, notSet.
     */
    deviceThreatProtectionRequiredSecurityLevel?: DeviceThreatProtectionLevel;
    // Indicates whether or not to require a managed email profile.
    managedEmailProfileRequired?: boolean;
    // Maximum IOS version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum IOS version.
    osMinimumVersion?: NullableOption<string>;
    // Indicates whether or not to block simple passcodes.
    passcodeBlockSimple?: boolean;
    // Number of days before the passcode expires. Valid values 1 to 65535
    passcodeExpirationDays?: NullableOption<number>;
    // The number of character sets required in the password.
    passcodeMinimumCharacterSetCount?: NullableOption<number>;
    // Minimum length of passcode. Valid values 4 to 14
    passcodeMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before a passcode is required.
    passcodeMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // Number of previous passcodes to block. Valid values 1 to 24
    passcodePreviousPasscodeBlockCount?: NullableOption<number>;
    // Indicates whether or not to require a passcode.
    passcodeRequired?: boolean;
    // The required passcode type. Possible values are: deviceDefault, alphanumeric, numeric.
    passcodeRequiredType?: RequiredPasswordType;
    // Devices must not be jailbroken or rooted.
    securityBlockJailbrokenDevices?: boolean;
}
// tslint:disable-next-line: interface-name
export interface IosCustomConfiguration extends DeviceConfiguration {
    // Payload. (UTF8 encoded byte array)
    payload?: string;
    // Payload file name (.mobileconfig
    payloadFileName?: NullableOption<string>;
    // Name that is displayed to the user.
    payloadName?: string;
}
// tslint:disable-next-line: interface-name
export interface IosDeviceFeaturesConfiguration extends AppleDeviceFeaturesConfigurationBase {
    // Asset tag information for the device, displayed on the login window and lock screen.
    assetTagTemplate?: NullableOption<string>;
    // A list of app and folders to appear on the Home Screen Dock. This collection can contain a maximum of 500 elements.
    homeScreenDockIcons?: NullableOption<IosHomeScreenItem[]>;
    // A list of pages on the Home Screen. This collection can contain a maximum of 500 elements.
    homeScreenPages?: NullableOption<IosHomeScreenPage[]>;
    // A footnote displayed on the login window and lock screen. Available in iOS 9.3.1 and later.
    lockScreenFootnote?: NullableOption<string>;
    /**
     * Notification settings for each bundle id. Applicable to devices in supervised mode only (iOS 9.3 and later). This
     * collection can contain a maximum of 500 elements.
     */
    notificationSettings?: NullableOption<IosNotificationSettings[]>;
}
// tslint:disable-next-line: interface-name
export interface IosGeneralDeviceConfiguration extends DeviceConfiguration {
    // Indicates whether or not to allow account modification when the device is in supervised mode.
    accountBlockModification?: boolean;
    // Indicates whether or not to allow activation lock when the device is in the supervised mode.
    activationLockAllowWhenSupervised?: boolean;
    // Indicates whether or not to allow AirDrop when the device is in supervised mode.
    airDropBlocked?: boolean;
    // Indicates whether or not to cause AirDrop to be considered an unmanaged drop target (iOS 9.0 and later).
    airDropForceUnmanagedDropTarget?: boolean;
    // Indicates whether or not to enforce all devices receiving AirPlay requests from this device to use a pairing password.
    airPlayForcePairingPasswordForOutgoingRequests?: boolean;
    // Indicates whether or not to block the user from using News when the device is in supervised mode (iOS 9.0 and later).
    appleNewsBlocked?: boolean;
    // Indicates whether or not to allow Apple Watch pairing when the device is in supervised mode (iOS 9.0 and later).
    appleWatchBlockPairing?: boolean;
    // Indicates whether or not to force a paired Apple Watch to use Wrist Detection (iOS 8.2 and later).
    appleWatchForceWristDetection?: boolean;
    /**
     * Gets or sets the list of iOS apps allowed to autonomously enter Single App Mode. Supervised only. iOS 7.0 and later.
     * This collection can contain a maximum of 500 elements.
     */
    appsSingleAppModeList?: NullableOption<AppListItem[]>;
    /**
     * Indicates whether or not to block the automatic downloading of apps purchased on other devices when the device is in
     * supervised mode (iOS 9.0 and later).
     */
    appStoreBlockAutomaticDownloads?: boolean;
    // Indicates whether or not to block the user from using the App Store. Requires a supervised device for iOS 13 and later.
    appStoreBlocked?: boolean;
    // Indicates whether or not to block the user from making in app purchases.
    appStoreBlockInAppPurchases?: boolean;
    /**
     * Indicates whether or not to block the App Store app, not restricting installation through Host apps. Applies to
     * supervised mode only (iOS 9.0 and later).
     */
    appStoreBlockUIAppInstallation?: boolean;
    // Indicates whether or not to require a password when using the app store.
    appStoreRequirePassword?: boolean;
    /**
     * List of apps in the visibility list (either visible/launchable apps list or hidden/unlaunchable apps list, controlled
     * by AppsVisibilityListType) (iOS 9.3 and later). This collection can contain a maximum of 10000 elements.
     */
    appsVisibilityList?: NullableOption<AppListItem[]>;
    // Type of list that is in the AppsVisibilityList. Possible values are: none, appsInListCompliant, appsNotInListCompliant.
    appsVisibilityListType?: AppListType;
    /**
     * Indicates whether or not to allow modification of Bluetooth settings when the device is in supervised mode (iOS 10.0
     * and later).
     */
    bluetoothBlockModification?: boolean;
    /**
     * Indicates whether or not to block the user from accessing the camera of the device. Requires a supervised device for
     * iOS 13 and later.
     */
    cameraBlocked?: boolean;
    // Indicates whether or not to block data roaming.
    cellularBlockDataRoaming?: boolean;
    // Indicates whether or not to block global background fetch while roaming.
    cellularBlockGlobalBackgroundFetchWhileRoaming?: boolean;
    // Indicates whether or not to allow changes to cellular app data usage settings when the device is in supervised mode.
    cellularBlockPerAppDataModification?: boolean;
    // Indicates whether or not to block Personal Hotspot.
    cellularBlockPersonalHotspot?: boolean;
    // Indicates whether or not to block voice roaming.
    cellularBlockVoiceRoaming?: boolean;
    // Indicates whether or not to block untrusted TLS certificates.
    certificatesBlockUntrustedTlsCertificates?: boolean;
    /**
     * Indicates whether or not to allow remote screen observation by Classroom app when the device is in supervised mode (iOS
     * 9.3 and later).
     */
    classroomAppBlockRemoteScreenObservation?: boolean;
    /**
     * Indicates whether or not to automatically give permission to the teacher of a managed course on the Classroom app to
     * view a student's screen without prompting when the device is in supervised mode.
     */
    classroomAppForceUnpromptedScreenObservation?: boolean;
    // List that is in the AppComplianceList. Possible values are: none, appsInListCompliant, appsNotInListCompliant.
    compliantAppListType?: AppListType;
    /**
     * List of apps in the compliance (either allow list or block list, controlled by CompliantAppListType). This collection
     * can contain a maximum of 10000 elements.
     */
    compliantAppsList?: NullableOption<AppListItem[]>;
    /**
     * Indicates whether or not to block the user from installing configuration profiles and certificates interactively when
     * the device is in supervised mode.
     */
    configurationProfileBlockChanges?: boolean;
    // Indicates whether or not to block definition lookup when the device is in supervised mode (iOS 8.1.3 and later ).
    definitionLookupBlocked?: boolean;
    /**
     * Indicates whether or not to allow the user to enables restrictions in the device settings when the device is in
     * supervised mode.
     */
    deviceBlockEnableRestrictions?: boolean;
    /**
     * Indicates whether or not to allow the use of the 'Erase all content and settings' option on the device when the device
     * is in supervised mode.
     */
    deviceBlockEraseContentAndSettings?: boolean;
    // Indicates whether or not to allow device name modification when the device is in supervised mode (iOS 9.0 and later).
    deviceBlockNameModification?: boolean;
    // Indicates whether or not to block diagnostic data submission.
    diagnosticDataBlockSubmission?: boolean;
    /**
     * Indicates whether or not to allow diagnostics submission settings modification when the device is in supervised mode
     * (iOS 9.3.2 and later).
     */
    diagnosticDataBlockSubmissionModification?: boolean;
    // Indicates whether or not to block the user from viewing managed documents in unmanaged apps.
    documentsBlockManagedDocumentsInUnmanagedApps?: boolean;
    // Indicates whether or not to block the user from viewing unmanaged documents in managed apps.
    documentsBlockUnmanagedDocumentsInManagedApps?: boolean;
    // An email address lacking a suffix that matches any of these strings will be considered out-of-domain.
    emailInDomainSuffixes?: NullableOption<string[]>;
    // Indicates whether or not to block the user from trusting an enterprise app.
    enterpriseAppBlockTrust?: boolean;
    // [Deprecated] Configuring this setting and setting the value to 'true' has no effect on the device.
    enterpriseAppBlockTrustModification?: boolean;
    // Indicates whether or not to block the user from using FaceTime. Requires a supervised device for iOS 13 and later.
    faceTimeBlocked?: boolean;
    // Indicates whether or not to block changes to Find My Friends when the device is in supervised mode.
    findMyFriendsBlocked?: boolean;
    // Indicates whether or not to block the user from using Game Center when the device is in supervised mode.
    gameCenterBlocked?: boolean;
    /**
     * Indicates whether or not to block the user from having friends in Game Center. Requires a supervised device for iOS 13
     * and later.
     */
    gamingBlockGameCenterFriends?: boolean;
    /**
     * Indicates whether or not to block the user from using multiplayer gaming. Requires a supervised device for iOS 13 and
     * later.
     */
    gamingBlockMultiplayer?: boolean;
    /**
     * indicates whether or not to allow host pairing to control the devices an iOS device can pair with when the iOS device
     * is in supervised mode.
     */
    hostPairingBlocked?: boolean;
    // Indicates whether or not to block the user from using the iBooks Store when the device is in supervised mode.
    iBooksStoreBlocked?: boolean;
    // Indicates whether or not to block the user from downloading media from the iBookstore that has been tagged as erotica.
    iBooksStoreBlockErotica?: boolean;
    /**
     * Indicates whether or not to block the user from continuing work they started on iOS device to another iOS or macOS
     * device.
     */
    iCloudBlockActivityContinuation?: boolean;
    // Indicates whether or not to block iCloud backup. Requires a supervised device for iOS 13 and later.
    iCloudBlockBackup?: boolean;
    // Indicates whether or not to block iCloud document sync. Requires a supervised device for iOS 13 and later.
    iCloudBlockDocumentSync?: boolean;
    // Indicates whether or not to block Managed Apps Cloud Sync.
    iCloudBlockManagedAppsSync?: boolean;
    // Indicates whether or not to block iCloud Photo Library.
    iCloudBlockPhotoLibrary?: boolean;
    // Indicates whether or not to block iCloud Photo Stream Sync.
    iCloudBlockPhotoStreamSync?: boolean;
    // Indicates whether or not to block Shared Photo Stream.
    iCloudBlockSharedPhotoStream?: boolean;
    // Indicates whether or not to require backups to iCloud be encrypted.
    iCloudRequireEncryptedBackup?: boolean;
    /**
     * Indicates whether or not to block the user from accessing explicit content in iTunes and the App Store. Requires a
     * supervised device for iOS 13 and later.
     */
    iTunesBlockExplicitContent?: boolean;
    /**
     * Indicates whether or not to block Music service and revert Music app to classic mode when the device is in supervised
     * mode (iOS 9.3 and later and macOS 10.12 and later).
     */
    iTunesBlockMusicService?: boolean;
    /**
     * Indicates whether or not to block the user from using iTunes Radio when the device is in supervised mode (iOS 9.3 and
     * later).
     */
    iTunesBlockRadio?: boolean;
    // Indicates whether or not to block keyboard auto-correction when the device is in supervised mode (iOS 8.1.3 and later).
    keyboardBlockAutoCorrect?: boolean;
    // Indicates whether or not to block the user from using dictation input when the device is in supervised mode.
    keyboardBlockDictation?: boolean;
    // Indicates whether or not to block predictive keyboards when device is in supervised mode (iOS 8.1.3 and later).
    keyboardBlockPredictive?: boolean;
    // Indicates whether or not to block keyboard shortcuts when the device is in supervised mode (iOS 9.0 and later).
    keyboardBlockShortcuts?: boolean;
    // Indicates whether or not to block keyboard spell-checking when the device is in supervised mode (iOS 8.1.3 and later).
    keyboardBlockSpellCheck?: boolean;
    // Indicates whether or not to allow assistive speak while in kiosk mode.
    kioskModeAllowAssistiveSpeak?: boolean;
    // Indicates whether or not to allow access to the Assistive Touch Settings while in kiosk mode.
    kioskModeAllowAssistiveTouchSettings?: boolean;
    /**
     * Indicates whether or not to allow device auto lock while in kiosk mode. This property's functionality is redundant with
     * the OS default and is deprecated. Use KioskModeBlockAutoLock instead.
     */
    kioskModeAllowAutoLock?: boolean;
    // Indicates whether or not to allow access to the Color Inversion Settings while in kiosk mode.
    kioskModeAllowColorInversionSettings?: boolean;
    /**
     * Indicates whether or not to allow use of the ringer switch while in kiosk mode. This property's functionality is
     * redundant with the OS default and is deprecated. Use KioskModeBlockRingerSwitch instead.
     */
    kioskModeAllowRingerSwitch?: boolean;
    /**
     * Indicates whether or not to allow screen rotation while in kiosk mode. This property's functionality is redundant with
     * the OS default and is deprecated. Use KioskModeBlockScreenRotation instead.
     */
    kioskModeAllowScreenRotation?: boolean;
    /**
     * Indicates whether or not to allow use of the sleep button while in kiosk mode. This property's functionality is
     * redundant with the OS default and is deprecated. Use KioskModeBlockSleepButton instead.
     */
    kioskModeAllowSleepButton?: boolean;
    /**
     * Indicates whether or not to allow use of the touchscreen while in kiosk mode. This property's functionality is
     * redundant with the OS default and is deprecated. Use KioskModeBlockTouchscreen instead.
     */
    kioskModeAllowTouchscreen?: boolean;
    // Indicates whether or not to allow access to the voice over settings while in kiosk mode.
    kioskModeAllowVoiceOverSettings?: boolean;
    /**
     * Indicates whether or not to allow use of the volume buttons while in kiosk mode. This property's functionality is
     * redundant with the OS default and is deprecated. Use KioskModeBlockVolumeButtons instead.
     */
    kioskModeAllowVolumeButtons?: boolean;
    // Indicates whether or not to allow access to the zoom settings while in kiosk mode.
    kioskModeAllowZoomSettings?: boolean;
    // URL in the app store to the app to use for kiosk mode. Use if KioskModeManagedAppId is not known.
    kioskModeAppStoreUrl?: NullableOption<string>;
    // ID for built-in apps to use for kiosk mode. Used when KioskModeManagedAppId and KioskModeAppStoreUrl are not set.
    kioskModeBuiltInAppId?: NullableOption<string>;
    /**
     * Managed app id of the app to use for kiosk mode. If KioskModeManagedAppId is specified then KioskModeAppStoreUrl will
     * be ignored.
     */
    kioskModeManagedAppId?: NullableOption<string>;
    // Indicates whether or not to require assistive touch while in kiosk mode.
    kioskModeRequireAssistiveTouch?: boolean;
    // Indicates whether or not to require color inversion while in kiosk mode.
    kioskModeRequireColorInversion?: boolean;
    // Indicates whether or not to require mono audio while in kiosk mode.
    kioskModeRequireMonoAudio?: boolean;
    // Indicates whether or not to require voice over while in kiosk mode.
    kioskModeRequireVoiceOver?: boolean;
    // Indicates whether or not to require zoom while in kiosk mode.
    kioskModeRequireZoom?: boolean;
    // Indicates whether or not to block the user from using control center on the lock screen.
    lockScreenBlockControlCenter?: boolean;
    // Indicates whether or not to block the user from using the notification view on the lock screen.
    lockScreenBlockNotificationView?: boolean;
    // Indicates whether or not to block the user from using passbook when the device is locked.
    lockScreenBlockPassbook?: boolean;
    // Indicates whether or not to block the user from using the Today View on the lock screen.
    lockScreenBlockTodayView?: boolean;
    /**
     * Media content rating settings for Apps. Possible values are: allAllowed, allBlocked, agesAbove4, agesAbove9,
     * agesAbove12, agesAbove17.
     */
    mediaContentRatingApps?: RatingAppsType;
    // Media content rating settings for Australia
    mediaContentRatingAustralia?: NullableOption<MediaContentRatingAustralia>;
    // Media content rating settings for Canada
    mediaContentRatingCanada?: NullableOption<MediaContentRatingCanada>;
    // Media content rating settings for France
    mediaContentRatingFrance?: NullableOption<MediaContentRatingFrance>;
    // Media content rating settings for Germany
    mediaContentRatingGermany?: NullableOption<MediaContentRatingGermany>;
    // Media content rating settings for Ireland
    mediaContentRatingIreland?: NullableOption<MediaContentRatingIreland>;
    // Media content rating settings for Japan
    mediaContentRatingJapan?: NullableOption<MediaContentRatingJapan>;
    // Media content rating settings for New Zealand
    mediaContentRatingNewZealand?: NullableOption<MediaContentRatingNewZealand>;
    // Media content rating settings for United Kingdom
    mediaContentRatingUnitedKingdom?: NullableOption<MediaContentRatingUnitedKingdom>;
    // Media content rating settings for United States
    mediaContentRatingUnitedStates?: NullableOption<MediaContentRatingUnitedStates>;
    // Indicates whether or not to block the user from using the Messages app on the supervised device.
    messagesBlocked?: boolean;
    /**
     * List of managed apps and the network rules that applies to them. This collection can contain a maximum of 1000
     * elements.
     */
    networkUsageRules?: NullableOption<IosNetworkUsageRule[]>;
    // Indicates whether or not to allow notifications settings modification (iOS 9.3 and later).
    notificationsBlockSettingsModification?: boolean;
    // Block modification of registered Touch ID fingerprints when in supervised mode.
    passcodeBlockFingerprintModification?: boolean;
    // Indicates whether or not to block fingerprint unlock.
    passcodeBlockFingerprintUnlock?: boolean;
    // Indicates whether or not to allow passcode modification on the supervised device (iOS 9.0 and later).
    passcodeBlockModification?: boolean;
    // Indicates whether or not to block simple passcodes.
    passcodeBlockSimple?: boolean;
    // Number of days before the passcode expires. Valid values 1 to 65535
    passcodeExpirationDays?: NullableOption<number>;
    // Number of character sets a passcode must contain. Valid values 0 to 4
    passcodeMinimumCharacterSetCount?: NullableOption<number>;
    // Minimum length of passcode. Valid values 4 to 14
    passcodeMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before a passcode is required.
    passcodeMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // Minutes of inactivity before the screen times out.
    passcodeMinutesOfInactivityBeforeScreenTimeout?: NullableOption<number>;
    // Number of previous passcodes to block. Valid values 1 to 24
    passcodePreviousPasscodeBlockCount?: NullableOption<number>;
    // Indicates whether or not to require a passcode.
    passcodeRequired?: boolean;
    // Type of passcode that is required. Possible values are: deviceDefault, alphanumeric, numeric.
    passcodeRequiredType?: RequiredPasswordType;
    // Number of sign in failures allowed before wiping the device. Valid values 2 to 11
    passcodeSignInFailureCountBeforeWipe?: NullableOption<number>;
    // Indicates whether or not to block the user from using podcasts on the supervised device (iOS 8.0 and later).
    podcastsBlocked?: boolean;
    /**
     * Indicates whether or not to block the user from using Auto fill in Safari. Requires a supervised device for iOS 13 and
     * later.
     */
    safariBlockAutofill?: boolean;
    // Indicates whether or not to block the user from using Safari. Requires a supervised device for iOS 13 and later.
    safariBlocked?: boolean;
    // Indicates whether or not to block JavaScript in Safari.
    safariBlockJavaScript?: boolean;
    // Indicates whether or not to block popups in Safari.
    safariBlockPopups?: boolean;
    /**
     * Cookie settings for Safari. Possible values are: browserDefault, blockAlways, allowCurrentWebSite,
     * allowFromWebsitesVisited, allowAlways.
     */
    safariCookieSettings?: WebBrowserCookieSettings;
    // URLs matching the patterns listed here will be considered managed.
    safariManagedDomains?: NullableOption<string[]>;
    /**
     * Users can save passwords in Safari only from URLs matching the patterns listed here. Applies to devices in supervised
     * mode (iOS 9.3 and later).
     */
    safariPasswordAutoFillDomains?: NullableOption<string[]>;
    // Indicates whether or not to require fraud warning in Safari.
    safariRequireFraudWarning?: boolean;
    // Indicates whether or not to block the user from taking Screenshots.
    screenCaptureBlocked?: boolean;
    // Indicates whether or not to block the user from using Siri.
    siriBlocked?: boolean;
    // Indicates whether or not to block the user from using Siri when locked.
    siriBlockedWhenLocked?: boolean;
    // Indicates whether or not to block Siri from querying user-generated content when used on a supervised device.
    siriBlockUserGeneratedContent?: boolean;
    // Indicates whether or not to prevent Siri from dictating, or speaking profane language on supervised device.
    siriRequireProfanityFilter?: boolean;
    // Indicates whether or not to block Spotlight search from returning internet results on supervised device.
    spotlightBlockInternetResults?: boolean;
    // Indicates whether or not to block voice dialing.
    voiceDialingBlocked?: boolean;
    // Indicates whether or not to allow wallpaper modification on supervised device (iOS 9.0 and later) .
    wallpaperBlockModification?: boolean;
    /**
     * Indicates whether or not to force the device to use only Wi-Fi networks from configuration profiles when the device is
     * in supervised mode. Available for devices running iOS and iPadOS versions 14.4 and earlier. Devices running 14.5+
     * should use the setting, 'WiFiConnectToAllowedNetworksOnlyForced.
     */
    wiFiConnectOnlyToConfiguredNetworks?: boolean;
}
// tslint:disable-next-line: interface-name
export interface IosUpdateConfiguration extends DeviceConfiguration {
    // Active Hours End (active hours mean the time window when updates install should not happen)
    activeHoursEnd?: string;
    // Active Hours Start (active hours mean the time window when updates install should not happen)
    activeHoursStart?: string;
    // Days in week for which active hours are configured. This collection can contain a maximum of 7 elements.
    scheduledInstallDays?: DayOfWeek[];
    // UTC Time Offset indicated in minutes
    utcTimeOffsetInMinutes?: NullableOption<number>;
}
export interface MacOSCompliancePolicy extends DeviceCompliancePolicy {
    // Require that devices have enabled device threat protection.
    deviceThreatProtectionEnabled?: boolean;
    /**
     * Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable, secured,
     * low, medium, high, notSet.
     */
    deviceThreatProtectionRequiredSecurityLevel?: DeviceThreatProtectionLevel;
    // Corresponds to the 'Block all incoming connections' option.
    firewallBlockAllIncoming?: boolean;
    // Whether the firewall should be enabled or not.
    firewallEnabled?: boolean;
    // Corresponds to 'Enable stealth mode.'
    firewallEnableStealthMode?: boolean;
    // Maximum MacOS version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum MacOS version.
    osMinimumVersion?: NullableOption<string>;
    // Indicates whether or not to block simple passwords.
    passwordBlockSimple?: boolean;
    // Number of days before the password expires. Valid values 1 to 65535
    passwordExpirationDays?: NullableOption<number>;
    // The number of character sets required in the password.
    passwordMinimumCharacterSetCount?: NullableOption<number>;
    // Minimum length of password. Valid values 4 to 14
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before a password is required.
    passwordMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // Number of previous passwords to block. Valid values 1 to 24
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Whether or not to require a password.
    passwordRequired?: boolean;
    // The required password type. Possible values are: deviceDefault, alphanumeric, numeric.
    passwordRequiredType?: RequiredPasswordType;
    // Require encryption on Mac OS devices.
    storageRequireEncryption?: boolean;
    // Require that devices have enabled system integrity protection.
    systemIntegrityProtectionEnabled?: boolean;
}
export interface MacOSCustomConfiguration extends DeviceConfiguration {
    // Payload. (UTF8 encoded byte array)
    payload?: string;
    // Payload file name (.mobileconfig
    payloadFileName?: NullableOption<string>;
    // Name that is displayed to the user.
    payloadName?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface MacOSDeviceFeaturesConfiguration extends AppleDeviceFeaturesConfigurationBase {}
export interface MacOSGeneralDeviceConfiguration extends DeviceConfiguration {
    // List that is in the CompliantAppsList. Possible values are: none, appsInListCompliant, appsNotInListCompliant.
    compliantAppListType?: AppListType;
    /**
     * List of apps in the compliance (either allow list or block list, controlled by CompliantAppListType). This collection
     * can contain a maximum of 10000 elements.
     */
    compliantAppsList?: NullableOption<AppListItem[]>;
    // An email address lacking a suffix that matches any of these strings will be considered out-of-domain.
    emailInDomainSuffixes?: NullableOption<string[]>;
    // Block simple passwords.
    passwordBlockSimple?: boolean;
    // Number of days before the password expires.
    passwordExpirationDays?: NullableOption<number>;
    // Number of character sets a password must contain. Valid values 0 to 4
    passwordMinimumCharacterSetCount?: NullableOption<number>;
    // Minimum length of passwords.
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity required before a password is required.
    passwordMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // Minutes of inactivity required before the screen times out.
    passwordMinutesOfInactivityBeforeScreenTimeout?: NullableOption<number>;
    // Number of previous passwords to block.
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Whether or not to require a password.
    passwordRequired?: boolean;
    // Type of password that is required. Possible values are: deviceDefault, alphanumeric, numeric.
    passwordRequiredType?: RequiredPasswordType;
}
export interface DeviceLogCollectionResponse extends Entity {
    // The User Principal Name (UPN) of the user that enrolled the device.
    enrolledByUser?: NullableOption<string>;
    // The DateTime of the expiration of the logs.
    expirationDateTimeUTC?: NullableOption<string>;
    // The UPN for who initiated the request.
    initiatedByUserPrincipalName?: NullableOption<string>;
    // Indicates Intune device unique identifier.
    managedDeviceId?: string;
    // The DateTime the request was received.
    receivedDateTimeUTC?: NullableOption<string>;
    // The DateTime of the request.
    requestedDateTimeUTC?: NullableOption<string>;
    // The size of the logs in KB. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
    sizeInKB?: number;
    /**
     * Indicates the status for the app log collection request if it is pending, completed or failed, Default is pending.
     * Possible values are: pending, completed, failed, unknownFutureValue.
     */
    status?: AppLogUploadState;
}
export interface WindowsProtectionState extends Entity {
    // Current anti malware version
    antiMalwareVersion?: NullableOption<string>;
    /**
     * Indicates device's health state. Possible values are: clean, fullScanPending, rebootPending, manualStepsPending,
     * offlineScanPending, critical. Possible values are: clean, fullScanPending, rebootPending, manualStepsPending,
     * offlineScanPending, critical.
     */
    deviceState?: NullableOption<WindowsDeviceHealthState>;
    // Current endpoint protection engine's version
    engineVersion?: NullableOption<string>;
    /**
     * When TRUE indicates full scan is overdue, when FALSE indicates full scan is not overdue. Defaults to setting on client
     * device.
     */
    fullScanOverdue?: NullableOption<boolean>;
    /**
     * When TRUE indicates full scan is required, when FALSE indicates full scan is not required. Defaults to setting on
     * client device.
     */
    fullScanRequired?: NullableOption<boolean>;
    /**
     * When TRUE indicates the device is a virtual machine, when FALSE indicates the device is not a virtual machine. Defaults
     * to setting on client device.
     */
    isVirtualMachine?: NullableOption<boolean>;
    // Last quick scan datetime
    lastFullScanDateTime?: NullableOption<string>;
    // Last full scan signature version
    lastFullScanSignatureVersion?: NullableOption<string>;
    // Last quick scan datetime
    lastQuickScanDateTime?: NullableOption<string>;
    // Last quick scan signature version
    lastQuickScanSignatureVersion?: NullableOption<string>;
    // Last device health status reported time
    lastReportedDateTime?: NullableOption<string>;
    // When TRUE indicates anti malware is enabled when FALSE indicates anti malware is not enabled.
    malwareProtectionEnabled?: NullableOption<boolean>;
    /**
     * When TRUE indicates network inspection system enabled, when FALSE indicates network inspection system is not enabled.
     * Defaults to setting on client device.
     */
    networkInspectionSystemEnabled?: NullableOption<boolean>;
    /**
     * Product Status of Windows Defender Antivirus. Possible values are: noStatus, serviceNotRunning,
     * serviceStartedWithoutMalwareProtection, pendingFullScanDueToThreatAction, pendingRebootDueToThreatAction,
     * pendingManualStepsDueToThreatAction, avSignaturesOutOfDate, asSignaturesOutOfDate,
     * noQuickScanHappenedForSpecifiedPeriod, noFullScanHappenedForSpecifiedPeriod, systemInitiatedScanInProgress,
     * systemInitiatedCleanInProgress, samplesPendingSubmission, productRunningInEvaluationMode,
     * productRunningInNonGenuineMode, productExpired, offlineScanRequired, serviceShutdownAsPartOfSystemShutdown,
     * threatRemediationFailedCritically, threatRemediationFailedNonCritically, noStatusFlagsSet, platformOutOfDate,
     * platformUpdateInProgress, platformAboutToBeOutdated, signatureOrPlatformEndOfLifeIsPastOrIsImpending,
     * windowsSModeSignaturesInUseOnNonWin10SInstall. Possible values are: noStatus, serviceNotRunning,
     * serviceStartedWithoutMalwareProtection, pendingFullScanDueToThreatAction, pendingRebootDueToThreatAction,
     * pendingManualStepsDueToThreatAction, avSignaturesOutOfDate, asSignaturesOutOfDate,
     * noQuickScanHappenedForSpecifiedPeriod, noFullScanHappenedForSpecifiedPeriod, systemInitiatedScanInProgress,
     * systemInitiatedCleanInProgress, samplesPendingSubmission, productRunningInEvaluationMode,
     * productRunningInNonGenuineMode, productExpired, offlineScanRequired, serviceShutdownAsPartOfSystemShutdown,
     * threatRemediationFailedCritically, threatRemediationFailedNonCritically, noStatusFlagsSet, platformOutOfDate,
     * platformUpdateInProgress, platformAboutToBeOutdated, signatureOrPlatformEndOfLifeIsPastOrIsImpending,
     * windowsSModeSignaturesInUseOnNonWin10SInstall.
     */
    productStatus?: NullableOption<WindowsDefenderProductStatus>;
    /**
     * When TRUE indicates quick scan is overdue, when FALSE indicates quick scan is not overdue. Defaults to setting on
     * client device.
     */
    quickScanOverdue?: NullableOption<boolean>;
    /**
     * When TRUE indicates real time protection is enabled, when FALSE indicates real time protection is not enabled. Defaults
     * to setting on client device.
     */
    realTimeProtectionEnabled?: NullableOption<boolean>;
    /**
     * When TRUE indicates reboot is required, when FALSE indicates when TRUE indicates reboot is not required. Defaults to
     * setting on client device.
     */
    rebootRequired?: NullableOption<boolean>;
    /**
     * When TRUE indicates signature is out of date, when FALSE indicates signature is not out of date. Defaults to setting on
     * client device.
     */
    signatureUpdateOverdue?: NullableOption<boolean>;
    // Current malware definitions version
    signatureVersion?: NullableOption<string>;
    /**
     * When TRUE indicates the Windows Defender tamper protection feature is enabled, when FALSE indicates the Windows
     * Defender tamper protection feature is not enabled. Defaults to setting on client device.
     */
    tamperProtectionEnabled?: NullableOption<boolean>;
    // Device malware list
    detectedMalwareState?: NullableOption<WindowsDeviceMalwareState[]>;
}
export interface SharedPCConfiguration extends DeviceConfiguration {
    // Specifies how accounts are managed on a shared PC. Only applies when disableAccountManager is false.
    accountManagerPolicy?: NullableOption<SharedPCAccountManagerPolicy>;
    // Indicates which type of accounts are allowed to use on a shared PC. Possible values are: guest, domain.
    allowedAccounts?: SharedPCAllowedAccountType;
    // Specifies whether local storage is allowed on a shared PC.
    allowLocalStorage?: boolean;
    // Disables the account manager for shared PC mode.
    disableAccountManager?: boolean;
    /**
     * Specifies whether the default shared PC education environment policies should be disabled. For Windows 10 RS2 and
     * later, this policy will be applied without setting Enabled to true.
     */
    disableEduPolicies?: boolean;
    // Specifies whether the default shared PC power policies should be disabled.
    disablePowerPolicies?: boolean;
    // Disables the requirement to sign in whenever the device wakes up from sleep mode.
    disableSignInOnResume?: boolean;
    // Enables shared PC mode and applies the shared pc policies.
    enabled?: boolean;
    /**
     * Specifies the time in seconds that a device must sit idle before the PC goes to sleep. Setting this value to 0 prevents
     * the sleep timeout from occurring.
     */
    idleTimeBeforeSleepInSeconds?: NullableOption<number>;
    /**
     * Specifies the display text for the account shown on the sign-in screen which launches the app specified by
     * SetKioskAppUserModelId. Only applies when KioskAppUserModelId is set.
     */
    kioskAppDisplayName?: NullableOption<string>;
    // Specifies the application user model ID of the app to use with assigned access.
    kioskAppUserModelId?: NullableOption<string>;
    // Specifies the daily start time of maintenance hour.
    maintenanceStartTime?: NullableOption<string>;
}
export interface Windows10CompliancePolicy extends DeviceCompliancePolicy {
    // Require devices to be reported healthy by Windows Device Health Attestation - bit locker is enabled
    bitLockerEnabled?: boolean;
    // Require devices to be reported as healthy by Windows Device Health Attestation.
    codeIntegrityEnabled?: boolean;
    /**
     * Require devices to be reported as healthy by Windows Device Health Attestation - early launch antimalware driver is
     * enabled.
     */
    earlyLaunchAntiMalwareDriverEnabled?: boolean;
    // Maximum Windows Phone version.
    mobileOsMaximumVersion?: NullableOption<string>;
    // Minimum Windows Phone version.
    mobileOsMinimumVersion?: NullableOption<string>;
    // Maximum Windows 10 version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum Windows 10 version.
    osMinimumVersion?: NullableOption<string>;
    // Indicates whether or not to block simple password.
    passwordBlockSimple?: boolean;
    // The password expiration in days.
    passwordExpirationDays?: NullableOption<number>;
    // The number of character sets required in the password.
    passwordMinimumCharacterSetCount?: NullableOption<number>;
    // The minimum password length.
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before a password is required.
    passwordMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // The number of previous passwords to prevent re-use of.
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Require a password to unlock Windows device.
    passwordRequired?: boolean;
    // Require a password to unlock an idle device.
    passwordRequiredToUnlockFromIdle?: boolean;
    // The required password type. Possible values are: deviceDefault, alphanumeric, numeric.
    passwordRequiredType?: RequiredPasswordType;
    // Require devices to be reported as healthy by Windows Device Health Attestation.
    requireHealthyDeviceReport?: boolean;
    // Require devices to be reported as healthy by Windows Device Health Attestation - secure boot is enabled.
    secureBootEnabled?: boolean;
    // Require encryption on windows devices.
    storageRequireEncryption?: boolean;
}
export interface Windows10CustomConfiguration extends DeviceConfiguration {
    // OMA settings. This collection can contain a maximum of 1000 elements.
    omaSettings?: NullableOption<OmaSetting[]>;
}
export interface Windows10EndpointProtectionConfiguration extends DeviceConfiguration {
    // Allow persisting user generated data inside the App Guard Containter (favorites, cookies, web passwords, etc.)
    applicationGuardAllowPersistence?: boolean;
    // Allow printing to Local Printers from Container
    applicationGuardAllowPrintToLocalPrinters?: boolean;
    // Allow printing to Network Printers from Container
    applicationGuardAllowPrintToNetworkPrinters?: boolean;
    // Allow printing to PDF from Container
    applicationGuardAllowPrintToPDF?: boolean;
    // Allow printing to XPS from Container
    applicationGuardAllowPrintToXPS?: boolean;
    /**
     * Block clipboard to share data from Host to Container, or from Container to Host, or both ways, or neither ways.
     * Possible values are: notConfigured, blockBoth, blockHostToContainer, blockContainerToHost, blockNone.
     */
    applicationGuardBlockClipboardSharing?: ApplicationGuardBlockClipboardSharingType;
    /**
     * Block clipboard to transfer image file, text file or neither of them. Possible values are: notConfigured,
     * blockImageAndTextFile, blockImageFile, blockNone, blockTextFile.
     */
    applicationGuardBlockFileTransfer?: ApplicationGuardBlockFileTransferType;
    // Block enterprise sites to load non-enterprise content, such as third party plug-ins
    applicationGuardBlockNonEnterpriseContent?: boolean;
    // Enable Windows Defender Application Guard
    applicationGuardEnabled?: boolean;
    /**
     * Force auditing will persist Windows logs and events to meet security/compliance criteria (sample events are user
     * login-logoff, use of privilege rights, software installation, system changes, etc.)
     */
    applicationGuardForceAuditing?: boolean;
    /**
     * Enables the Admin to choose what types of app to allow on devices. Possible values are: notConfigured,
     * enforceComponentsAndStoreApps, auditComponentsAndStoreApps, enforceComponentsStoreAppsAndSmartlocker,
     * auditComponentsStoreAppsAndSmartlocker.
     */
    appLockerApplicationControl?: AppLockerApplicationControlType;
    // Allows the Admin to disable the warning prompt for other disk encryption on the user machines.
    bitLockerDisableWarningForOtherDiskEncryption?: boolean;
    // Allows the admin to require encryption to be turned on using BitLocker. This policy is valid only for a mobile SKU.
    bitLockerEnableStorageCardEncryptionOnMobile?: boolean;
    // Allows the admin to require encryption to be turned on using BitLocker.
    bitLockerEncryptDevice?: boolean;
    // BitLocker Removable Drive Policy.
    bitLockerRemovableDrivePolicy?: NullableOption<BitLockerRemovableDrivePolicy>;
    // List of folder paths to be added to the list of protected folders
    defenderAdditionalGuardedFolders?: NullableOption<string[]>;
    // List of exe files and folders to be excluded from attack surface reduction rules
    defenderAttackSurfaceReductionExcludedPaths?: NullableOption<string[]>;
    // Xml content containing information regarding exploit protection details.
    defenderExploitProtectionXml?: NullableOption<string>;
    // Name of the file from which DefenderExploitProtectionXml was obtained.
    defenderExploitProtectionXmlFileName?: NullableOption<string>;
    // List of paths to exe that are allowed to access protected folders
    defenderGuardedFoldersAllowedAppPaths?: NullableOption<string[]>;
    // Indicates whether or not to block user from overriding Exploit Protection settings.
    defenderSecurityCenterBlockExploitProtectionOverride?: boolean;
    // Blocks stateful FTP connections to the device
    firewallBlockStatefulFTP?: NullableOption<boolean>;
    /**
     * Specify how the certificate revocation list is to be enforced. Possible values are: deviceDefault, none, attempt,
     * require.
     */
    firewallCertificateRevocationListCheckMethod?: FirewallCertificateRevocationListCheckMethodType;
    /**
     * Configures the idle timeout for security associations, in seconds, from 300 to 3600 inclusive. This is the period after
     * which security associations will expire and be deleted. Valid values 300 to 3600
     */
    firewallIdleTimeoutForSecurityAssociationInSeconds?: NullableOption<number>;
    // Configures IPSec exemptions to allow both IPv4 and IPv6 DHCP traffic
    firewallIPSecExemptionsAllowDHCP?: boolean;
    // Configures IPSec exemptions to allow ICMP
    firewallIPSecExemptionsAllowICMP?: boolean;
    // Configures IPSec exemptions to allow neighbor discovery IPv6 ICMP type-codes
    firewallIPSecExemptionsAllowNeighborDiscovery?: boolean;
    // Configures IPSec exemptions to allow router discovery IPv6 ICMP type-codes
    firewallIPSecExemptionsAllowRouterDiscovery?: boolean;
    /**
     * If an authentication set is not fully supported by a keying module, direct the module to ignore only unsupported
     * authentication suites rather than the entire set
     */
    firewallMergeKeyingModuleSettings?: NullableOption<boolean>;
    /**
     * Configures how packet queueing should be applied in the tunnel gateway scenario. Possible values are: deviceDefault,
     * disabled, queueInbound, queueOutbound, queueBoth.
     */
    firewallPacketQueueingMethod?: FirewallPacketQueueingMethodType;
    // Select the preshared key encoding to be used. Possible values are: deviceDefault, none, utF8.
    firewallPreSharedKeyEncodingMethod?: FirewallPreSharedKeyEncodingMethodType;
    // Configures the firewall profile settings for domain networks
    firewallProfileDomain?: NullableOption<WindowsFirewallNetworkProfile>;
    // Configures the firewall profile settings for private networks
    firewallProfilePrivate?: NullableOption<WindowsFirewallNetworkProfile>;
    // Configures the firewall profile settings for public networks
    firewallProfilePublic?: NullableOption<WindowsFirewallNetworkProfile>;
    // Allows IT Admins to control whether users can can ignore SmartScreen warnings and run malicious files.
    smartScreenBlockOverrideForFiles?: boolean;
    // Allows IT Admins to configure SmartScreen for Windows.
    smartScreenEnableInShell?: boolean;
}
export interface Windows10EnterpriseModernAppManagementConfiguration extends DeviceConfiguration {
    // Indicates whether or not to uninstall a fixed list of built-in Windows apps.
    uninstallBuiltInApps?: boolean;
}
export interface Windows10GeneralConfiguration extends DeviceConfiguration {
    /**
     * Indicates whether or not to Block the user from adding email accounts to the device that are not associated with a
     * Microsoft account.
     */
    accountsBlockAddingNonMicrosoftAccountEmail?: boolean;
    // Indicates whether or not to block the user from selecting an AntiTheft mode preference (Windows 10 Mobile only).
    antiTheftModeBlocked?: boolean;
    /**
     * Indicates whether apps from AppX packages signed with a trusted certificate can be side loaded. Possible values are:
     * notConfigured, blocked, allowed.
     */
    appsAllowTrustedAppsSideloading?: StateManagementSetting;
    /**
     * Indicates whether or not to disable the launch of all apps from Windows Store that came pre-installed or were
     * downloaded.
     */
    appsBlockWindowsStoreOriginatedApps?: boolean;
    // Specify a list of allowed Bluetooth services and profiles in hex formatted strings.
    bluetoothAllowedServices?: NullableOption<string[]>;
    // Whether or not to Block the user from using bluetooth advertising.
    bluetoothBlockAdvertising?: boolean;
    // Whether or not to Block the user from using bluetooth discoverable mode.
    bluetoothBlockDiscoverableMode?: boolean;
    // Whether or not to Block the user from using bluetooth.
    bluetoothBlocked?: boolean;
    // Whether or not to block specific bundled Bluetooth peripherals to automatically pair with the host device.
    bluetoothBlockPrePairing?: boolean;
    // Whether or not to Block the user from accessing the camera of the device.
    cameraBlocked?: boolean;
    // Whether or not to Block the user from using data over cellular while roaming.
    cellularBlockDataWhenRoaming?: boolean;
    // Whether or not to Block the user from using VPN over cellular.
    cellularBlockVpn?: boolean;
    // Whether or not to Block the user from using VPN when roaming over cellular.
    cellularBlockVpnWhenRoaming?: boolean;
    // Whether or not to Block the user from doing manual root certificate installation.
    certificatesBlockManualRootCertificateInstallation?: boolean;
    /**
     * Whether or not to block Connected Devices Service which enables discovery and connection to other devices, remote
     * messaging, remote app sessions and other cross-device experiences.
     */
    connectedDevicesServiceBlocked?: boolean;
    // Whether or not to Block the user from using copy paste.
    copyPasteBlocked?: boolean;
    // Whether or not to Block the user from using Cortana.
    cortanaBlocked?: boolean;
    // Whether or not to block end user access to Defender.
    defenderBlockEndUserAccess?: boolean;
    // Specifies the level of cloud-delivered protection. Possible values are: notConfigured, high, highPlus, zeroTolerance.
    defenderCloudBlockLevel?: DefenderCloudBlockLevelType;
    // Number of days before deleting quarantined malware. Valid values 0 to 90
    defenderDaysBeforeDeletingQuarantinedMalware?: NullableOption<number>;
    // Gets or sets Defender’s actions to take on detected Malware per threat level.
    defenderDetectedMalwareActions?: NullableOption<DefenderDetectedMalwareActions>;
    // File extensions to exclude from scans and real time protection.
    defenderFileExtensionsToExclude?: NullableOption<string[]>;
    // Files and folder to exclude from scans and real time protection.
    defenderFilesAndFoldersToExclude?: NullableOption<string[]>;
    /**
     * Value for monitoring file activity. Possible values are: userDefined, disable, monitorAllFiles,
     * monitorIncomingFilesOnly, monitorOutgoingFilesOnly.
     */
    defenderMonitorFileActivity?: DefenderMonitorFileActivity;
    // Processes to exclude from scans and real time protection.
    defenderProcessesToExclude?: NullableOption<string[]>;
    /**
     * The configuration for how to prompt user for sample submission. Possible values are: userDefined, alwaysPrompt,
     * promptBeforeSendingPersonalData, neverSendData, sendAllDataWithoutPrompting.
     */
    defenderPromptForSampleSubmission?: DefenderPromptForSampleSubmission;
    // Indicates whether or not to require behavior monitoring.
    defenderRequireBehaviorMonitoring?: boolean;
    // Indicates whether or not to require cloud protection.
    defenderRequireCloudProtection?: boolean;
    // Indicates whether or not to require network inspection system.
    defenderRequireNetworkInspectionSystem?: boolean;
    // Indicates whether or not to require real time monitoring.
    defenderRequireRealTimeMonitoring?: boolean;
    // Indicates whether or not to scan archive files.
    defenderScanArchiveFiles?: boolean;
    // Indicates whether or not to scan downloads.
    defenderScanDownloads?: boolean;
    // Indicates whether or not to scan incoming mail messages.
    defenderScanIncomingMail?: boolean;
    // Indicates whether or not to scan mapped network drives during full scan.
    defenderScanMappedNetworkDrivesDuringFullScan?: boolean;
    // Max CPU usage percentage during scan. Valid values 0 to 100
    defenderScanMaxCpu?: NullableOption<number>;
    // Indicates whether or not to scan files opened from a network folder.
    defenderScanNetworkFiles?: boolean;
    // Indicates whether or not to scan removable drives during full scan.
    defenderScanRemovableDrivesDuringFullScan?: boolean;
    // Indicates whether or not to scan scripts loaded in Internet Explorer browser.
    defenderScanScriptsLoadedInInternetExplorer?: boolean;
    // The defender system scan type. Possible values are: userDefined, disabled, quick, full.
    defenderScanType?: DefenderScanType;
    // The time to perform a daily quick scan.
    defenderScheduledQuickScanTime?: NullableOption<string>;
    // The defender time for the system scan.
    defenderScheduledScanTime?: NullableOption<string>;
    // The signature update interval in hours. Specify 0 not to check. Valid values 0 to 24
    defenderSignatureUpdateIntervalInHours?: NullableOption<number>;
    /**
     * Defender day of the week for the system scan. Possible values are: userDefined, everyday, sunday, monday, tuesday,
     * wednesday, thursday, friday, saturday.
     */
    defenderSystemScanSchedule?: WeeklySchedule;
    // Indicates whether or not to allow developer unlock. Possible values are: notConfigured, blocked, allowed.
    developerUnlockSetting?: StateManagementSetting;
    // Indicates whether or not to Block the user from resetting their phone.
    deviceManagementBlockFactoryResetOnMobile?: boolean;
    // Indicates whether or not to Block the user from doing manual un-enrollment from device management.
    deviceManagementBlockManualUnenroll?: boolean;
    /**
     * Gets or sets a value allowing the device to send diagnostic and usage telemetry data, such as Watson. Possible values
     * are: userDefined, none, basic, enhanced, full.
     */
    diagnosticsDataSubmissionMode?: DiagnosticDataSubmissionMode;
    /**
     * Allow users to change Start pages on Edge. Use the EdgeHomepageUrls to specify the Start pages that the user would see
     * by default when they open Edge.
     */
    edgeAllowStartPagesModification?: boolean;
    // Indicates whether or not to prevent access to about flags on Edge browser.
    edgeBlockAccessToAboutFlags?: boolean;
    /**
     * Block the address bar dropdown functionality in Microsoft Edge. Disable this settings to minimize network connections
     * from Microsoft Edge to Microsoft services.
     */
    edgeBlockAddressBarDropdown?: boolean;
    // Indicates whether or not to block auto fill.
    edgeBlockAutofill?: boolean;
    /**
     * Block Microsoft compatibility list in Microsoft Edge. This list from Microsoft helps Edge properly display sites with
     * known compatibility issues.
     */
    edgeBlockCompatibilityList?: boolean;
    // Indicates whether or not to block developer tools in the Edge browser.
    edgeBlockDeveloperTools?: boolean;
    // Indicates whether or not to Block the user from using the Edge browser.
    edgeBlocked?: boolean;
    // Indicates whether or not to block extensions in the Edge browser.
    edgeBlockExtensions?: boolean;
    // Indicates whether or not to block InPrivate browsing on corporate networks, in the Edge browser.
    edgeBlockInPrivateBrowsing?: boolean;
    // Indicates whether or not to Block the user from using JavaScript.
    edgeBlockJavaScript?: boolean;
    /**
     * Block the collection of information by Microsoft for live tile creation when users pin a site to Start from Microsoft
     * Edge.
     */
    edgeBlockLiveTileDataCollection?: boolean;
    // Indicates whether or not to Block password manager.
    edgeBlockPasswordManager?: boolean;
    // Indicates whether or not to block popups.
    edgeBlockPopups?: boolean;
    // Indicates whether or not to block the user from using the search suggestions in the address bar.
    edgeBlockSearchSuggestions?: boolean;
    // Indicates whether or not to Block the user from sending the do not track header.
    edgeBlockSendingDoNotTrackHeader?: boolean;
    /**
     * Indicates whether or not to switch the intranet traffic from Edge to Internet Explorer. Note: the name of this property
     * is misleading; the property is obsolete, use EdgeSendIntranetTrafficToInternetExplorer instead.
     */
    edgeBlockSendingIntranetTrafficToInternetExplorer?: boolean;
    // Clear browsing data on exiting Microsoft Edge.
    edgeClearBrowsingDataOnExit?: boolean;
    /**
     * Indicates which cookies to block in the Edge browser. Possible values are: userDefined, allow, blockThirdParty,
     * blockAll.
     */
    edgeCookiePolicy?: EdgeCookiePolicy;
    /**
     * Block the Microsoft web page that opens on the first use of Microsoft Edge. This policy allows enterprises, like those
     * enrolled in zero emissions configurations, to block this page.
     */
    edgeDisableFirstRunPage?: boolean;
    // Indicates the enterprise mode site list location. Could be a local file, local network or http location.
    edgeEnterpriseModeSiteListLocation?: NullableOption<string>;
    // The first run URL for when Edge browser is opened for the first time.
    edgeFirstRunUrl?: NullableOption<string>;
    // The list of URLs for homepages shodwn on MDM-enrolled devices on Edge browser.
    edgeHomepageUrls?: NullableOption<string[]>;
    // Indicates whether or not to Require the user to use the smart screen filter.
    edgeRequireSmartScreen?: boolean;
    /**
     * Allows IT admins to set a default search engine for MDM-Controlled devices. Users can override this and change their
     * default search engine provided the AllowSearchEngineCustomization policy is not set.
     */
    edgeSearchEngine?: NullableOption<EdgeSearchEngineBase>;
    // Indicates whether or not to switch the intranet traffic from Edge to Internet Explorer.
    edgeSendIntranetTrafficToInternetExplorer?: boolean;
    /**
     * Enable favorites sync between Internet Explorer and Microsoft Edge. Additions, deletions, modifications and order
     * changes to favorites are shared between browsers.
     */
    edgeSyncFavoritesWithInternetExplorer?: boolean;
    // Endpoint for discovering cloud printers.
    enterpriseCloudPrintDiscoveryEndPoint?: NullableOption<string>;
    /**
     * Maximum number of printers that should be queried from a discovery endpoint. This is a mobile only setting. Valid
     * values 1 to 65535
     */
    enterpriseCloudPrintDiscoveryMaxLimit?: NullableOption<number>;
    // OAuth resource URI for printer discovery service as configured in Azure portal.
    enterpriseCloudPrintMopriaDiscoveryResourceIdentifier?: NullableOption<string>;
    // Authentication endpoint for acquiring OAuth tokens.
    enterpriseCloudPrintOAuthAuthority?: NullableOption<string>;
    // GUID of a client application authorized to retrieve OAuth tokens from the OAuth Authority.
    enterpriseCloudPrintOAuthClientIdentifier?: NullableOption<string>;
    // OAuth resource URI for print service as configured in the Azure portal.
    enterpriseCloudPrintResourceIdentifier?: NullableOption<string>;
    // Indicates whether or not to enable device discovery UX.
    experienceBlockDeviceDiscovery?: boolean;
    // Indicates whether or not to allow the error dialog from displaying if no SIM card is detected.
    experienceBlockErrorDialogWhenNoSIM?: boolean;
    // Indicates whether or not to enable task switching on the device.
    experienceBlockTaskSwitcher?: boolean;
    // Indicates whether or not to block DVR and broadcasting.
    gameDvrBlocked?: boolean;
    // Indicates whether or not to Block the user from using internet sharing.
    internetSharingBlocked?: boolean;
    // Indicates whether or not to Block the user from location services.
    locationServicesBlocked?: boolean;
    /**
     * Specify whether to show a user-configurable setting to control the screen timeout while on the lock screen of Windows
     * 10 Mobile devices. If this policy is set to Allow, the value set by lockScreenTimeoutInSeconds is ignored.
     */
    lockScreenAllowTimeoutConfiguration?: boolean;
    // Indicates whether or not to block action center notifications over lock screen.
    lockScreenBlockActionCenterNotifications?: boolean;
    // Indicates whether or not the user can interact with Cortana using speech while the system is locked.
    lockScreenBlockCortana?: boolean;
    // Indicates whether to allow toast notifications above the device lock screen.
    lockScreenBlockToastNotifications?: boolean;
    /**
     * Set the duration (in seconds) from the screen locking to the screen turning off for Windows 10 Mobile devices.
     * Supported values are 11-1800. Valid values 11 to 1800
     */
    lockScreenTimeoutInSeconds?: NullableOption<number>;
    // Disables the ability to quickly switch between users that are logged on simultaneously without logging off.
    logonBlockFastUserSwitching?: boolean;
    // Indicates whether or not to Block a Microsoft account.
    microsoftAccountBlocked?: boolean;
    // Indicates whether or not to Block Microsoft account settings sync.
    microsoftAccountBlockSettingsSync?: boolean;
    /**
     * If set, proxy settings will be applied to all processes and accounts in the device. Otherwise, it will be applied to
     * the user account that’s enrolled into MDM.
     */
    networkProxyApplySettingsDeviceWide?: boolean;
    // Address to the proxy auto-config (PAC) script you want to use.
    networkProxyAutomaticConfigurationUrl?: NullableOption<string>;
    /**
     * Disable automatic detection of settings. If enabled, the system will try to find the path to a proxy auto-config (PAC)
     * script.
     */
    networkProxyDisableAutoDetect?: boolean;
    // Specifies manual proxy server settings.
    networkProxyServer?: NullableOption<Windows10NetworkProxyServer>;
    // Indicates whether or not to Block the user from using near field communication.
    nfcBlocked?: boolean;
    // Gets or sets a value allowing IT admins to prevent apps and features from working with files on OneDrive.
    oneDriveDisableFileSync?: boolean;
    /**
     * Specify whether PINs or passwords such as '1111' or '1234' are allowed. For Windows 10 desktops, it also controls the
     * use of picture passwords.
     */
    passwordBlockSimple?: boolean;
    // The password expiration in days. Valid values 0 to 730
    passwordExpirationDays?: NullableOption<number>;
    // The number of character sets required in the password.
    passwordMinimumCharacterSetCount?: NullableOption<number>;
    // The minimum password length. Valid values 4 to 16
    passwordMinimumLength?: NullableOption<number>;
    // The minutes of inactivity before the screen times out.
    passwordMinutesOfInactivityBeforeScreenTimeout?: NullableOption<number>;
    // The number of previous passwords to prevent reuse of. Valid values 0 to 50
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Indicates whether or not to require the user to have a password.
    passwordRequired?: boolean;
    // The required password type. Possible values are: deviceDefault, alphanumeric, numeric.
    passwordRequiredType?: RequiredPasswordType;
    // Indicates whether or not to require a password upon resuming from an idle state.
    passwordRequireWhenResumeFromIdleState?: boolean;
    // The number of sign in failures before factory reset. Valid values 0 to 999
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    /**
     * A http or https Url to a jpg, jpeg or png image that needs to be downloaded and used as the Desktop Image or a file Url
     * to a local image on the file system that needs to used as the Desktop Image.
     */
    personalizationDesktopImageUrl?: NullableOption<string>;
    /**
     * A http or https Url to a jpg, jpeg or png image that neeeds to be downloaded and used as the Lock Screen Image or a
     * file Url to a local image on the file system that needs to be used as the Lock Screen Image.
     */
    personalizationLockScreenImageUrl?: NullableOption<string>;
    /**
     * Enables or disables the use of advertising ID. Added in Windows 10, version 1607. Possible values are: notConfigured,
     * blocked, allowed.
     */
    privacyAdvertisingId?: StateManagementSetting;
    /**
     * Indicates whether or not to allow the automatic acceptance of the pairing and privacy user consent dialog when
     * launching apps.
     */
    privacyAutoAcceptPairingAndConsentPrompts?: boolean;
    /**
     * Indicates whether or not to block the usage of cloud based speech services for Cortana, Dictation, or Store
     * applications.
     */
    privacyBlockInputPersonalization?: boolean;
    // Indicates whether or not to Block the user from reset protection mode.
    resetProtectionModeBlocked?: boolean;
    // Specifies what filter level of safe search is required. Possible values are: userDefined, strict, moderate.
    safeSearchFilter?: SafeSearchFilterType;
    // Indicates whether or not to Block the user from taking Screenshots.
    screenCaptureBlocked?: boolean;
    // Specifies if search can use diacritics.
    searchBlockDiacritics?: boolean;
    // Specifies whether to use automatic language detection when indexing content and properties.
    searchDisableAutoLanguageDetection?: boolean;
    // Indicates whether or not to disable the search indexer backoff feature.
    searchDisableIndexerBackoff?: boolean;
    /**
     * Indicates whether or not to block indexing of WIP-protected items to prevent them from appearing in search results for
     * Cortana or Explorer.
     */
    searchDisableIndexingEncryptedItems?: boolean;
    // Indicates whether or not to allow users to add locations on removable drives to libraries and to be indexed.
    searchDisableIndexingRemovableDrive?: boolean;
    // Specifies minimum amount of hard drive space on the same drive as the index location before indexing stops.
    searchEnableAutomaticIndexSizeManangement?: boolean;
    // Indicates whether or not to block remote queries of this computer’s index.
    searchEnableRemoteQueries?: boolean;
    // Indicates whether or not to block access to Accounts in Settings app.
    settingsBlockAccountsPage?: boolean;
    // Indicates whether or not to block the user from installing provisioning packages.
    settingsBlockAddProvisioningPackage?: boolean;
    // Indicates whether or not to block access to Apps in Settings app.
    settingsBlockAppsPage?: boolean;
    // Indicates whether or not to block the user from changing the language settings.
    settingsBlockChangeLanguage?: boolean;
    // Indicates whether or not to block the user from changing power and sleep settings.
    settingsBlockChangePowerSleep?: boolean;
    // Indicates whether or not to block the user from changing the region settings.
    settingsBlockChangeRegion?: boolean;
    // Indicates whether or not to block the user from changing date and time settings.
    settingsBlockChangeSystemTime?: boolean;
    // Indicates whether or not to block access to Devices in Settings app.
    settingsBlockDevicesPage?: boolean;
    // Indicates whether or not to block access to Ease of Access in Settings app.
    settingsBlockEaseOfAccessPage?: boolean;
    // Indicates whether or not to block the user from editing the device name.
    settingsBlockEditDeviceName?: boolean;
    // Indicates whether or not to block access to Gaming in Settings app.
    settingsBlockGamingPage?: boolean;
    // Indicates whether or not to block access to Network &amp; Internet in Settings app.
    settingsBlockNetworkInternetPage?: boolean;
    // Indicates whether or not to block access to Personalization in Settings app.
    settingsBlockPersonalizationPage?: boolean;
    // Indicates whether or not to block access to Privacy in Settings app.
    settingsBlockPrivacyPage?: boolean;
    // Indicates whether or not to block the runtime configuration agent from removing provisioning packages.
    settingsBlockRemoveProvisioningPackage?: boolean;
    // Indicates whether or not to block access to Settings app.
    settingsBlockSettingsApp?: boolean;
    // Indicates whether or not to block access to System in Settings app.
    settingsBlockSystemPage?: boolean;
    // Indicates whether or not to block access to Time &amp; Language in Settings app.
    settingsBlockTimeLanguagePage?: boolean;
    // Indicates whether or not to block access to Update &amp; Security in Settings app.
    settingsBlockUpdateSecurityPage?: boolean;
    // Indicates whether or not to block multiple users of the same app to share data.
    sharedUserAppDataAllowed?: boolean;
    // Indicates whether or not users can override SmartScreen Filter warnings about potentially malicious websites.
    smartScreenBlockPromptOverride?: boolean;
    // Indicates whether or not users can override the SmartScreen Filter warnings about downloading unverified files
    smartScreenBlockPromptOverrideForFiles?: boolean;
    /**
     * This property will be deprecated in July 2019 and will be replaced by property SmartScreenAppInstallControl. Allows IT
     * Admins to control whether users are allowed to install apps from places other than the Store.
     */
    smartScreenEnableAppInstallControl?: boolean;
    // Indicates whether or not to block the user from unpinning apps from taskbar.
    startBlockUnpinningAppsFromTaskbar?: boolean;
    /**
     * Setting the value of this collapses the app list, removes the app list entirely, or disables the corresponding toggle
     * in the Settings app. Possible values are: userDefined, collapse, remove, disableSettingsApp.
     */
    startMenuAppListVisibility?: WindowsStartMenuAppListVisibilityType;
    // Enabling this policy hides the change account setting from appearing in the user tile in the start menu.
    startMenuHideChangeAccountSettings?: boolean;
    /**
     * Enabling this policy hides the most used apps from appearing on the start menu and disables the corresponding toggle in
     * the Settings app.
     */
    startMenuHideFrequentlyUsedApps?: boolean;
    // Enabling this policy hides hibernate from appearing in the power button in the start menu.
    startMenuHideHibernate?: boolean;
    // Enabling this policy hides lock from appearing in the user tile in the start menu.
    startMenuHideLock?: boolean;
    // Enabling this policy hides the power button from appearing in the start menu.
    startMenuHidePowerButton?: boolean;
    /**
     * Enabling this policy hides recent jump lists from appearing on the start menu/taskbar and disables the corresponding
     * toggle in the Settings app.
     */
    startMenuHideRecentJumpLists?: boolean;
    /**
     * Enabling this policy hides recently added apps from appearing on the start menu and disables the corresponding toggle
     * in the Settings app.
     */
    startMenuHideRecentlyAddedApps?: boolean;
    // Enabling this policy hides 'Restart/Update and Restart' from appearing in the power button in the start menu.
    startMenuHideRestartOptions?: boolean;
    // Enabling this policy hides shut down/update and shut down from appearing in the power button in the start menu.
    startMenuHideShutDown?: boolean;
    // Enabling this policy hides sign out from appearing in the user tile in the start menu.
    startMenuHideSignOut?: boolean;
    // Enabling this policy hides sleep from appearing in the power button in the start menu.
    startMenuHideSleep?: boolean;
    // Enabling this policy hides switch account from appearing in the user tile in the start menu.
    startMenuHideSwitchAccount?: boolean;
    // Enabling this policy hides the user tile from appearing in the start menu.
    startMenuHideUserTile?: boolean;
    /**
     * This policy setting allows you to import Edge assets to be used with startMenuLayoutXml policy. Start layout can
     * contain secondary tile from Edge app which looks for Edge local asset file. Edge local asset would not exist and cause
     * Edge secondary tile to appear empty in this case. This policy only gets applied when startMenuLayoutXml policy is
     * modified. The value should be a UTF-8 Base64 encoded byte array.
     */
    startMenuLayoutEdgeAssetsXml?: NullableOption<string>;
    /**
     * Allows admins to override the default Start menu layout and prevents the user from changing it. The layout is modified
     * by specifying an XML file based on a layout modification schema. XML needs to be in a UTF8 encoded byte array format.
     */
    startMenuLayoutXml?: NullableOption<string>;
    // Allows admins to decide how the Start menu is displayed. Possible values are: userDefined, fullScreen, nonFullScreen.
    startMenuMode?: WindowsStartMenuModeType;
    /**
     * Enforces the visibility (Show/Hide) of the Documents folder shortcut on the Start menu. Possible values are:
     * notConfigured, hide, show.
     */
    startMenuPinnedFolderDocuments?: VisibilitySetting;
    /**
     * Enforces the visibility (Show/Hide) of the Downloads folder shortcut on the Start menu. Possible values are:
     * notConfigured, hide, show.
     */
    startMenuPinnedFolderDownloads?: VisibilitySetting;
    /**
     * Enforces the visibility (Show/Hide) of the FileExplorer shortcut on the Start menu. Possible values are: notConfigured,
     * hide, show.
     */
    startMenuPinnedFolderFileExplorer?: VisibilitySetting;
    /**
     * Enforces the visibility (Show/Hide) of the HomeGroup folder shortcut on the Start menu. Possible values are:
     * notConfigured, hide, show.
     */
    startMenuPinnedFolderHomeGroup?: VisibilitySetting;
    /**
     * Enforces the visibility (Show/Hide) of the Music folder shortcut on the Start menu. Possible values are: notConfigured,
     * hide, show.
     */
    startMenuPinnedFolderMusic?: VisibilitySetting;
    /**
     * Enforces the visibility (Show/Hide) of the Network folder shortcut on the Start menu. Possible values are:
     * notConfigured, hide, show.
     */
    startMenuPinnedFolderNetwork?: VisibilitySetting;
    /**
     * Enforces the visibility (Show/Hide) of the PersonalFolder shortcut on the Start menu. Possible values are:
     * notConfigured, hide, show.
     */
    startMenuPinnedFolderPersonalFolder?: VisibilitySetting;
    /**
     * Enforces the visibility (Show/Hide) of the Pictures folder shortcut on the Start menu. Possible values are:
     * notConfigured, hide, show.
     */
    startMenuPinnedFolderPictures?: VisibilitySetting;
    /**
     * Enforces the visibility (Show/Hide) of the Settings folder shortcut on the Start menu. Possible values are:
     * notConfigured, hide, show.
     */
    startMenuPinnedFolderSettings?: VisibilitySetting;
    /**
     * Enforces the visibility (Show/Hide) of the Videos folder shortcut on the Start menu. Possible values are:
     * notConfigured, hide, show.
     */
    startMenuPinnedFolderVideos?: VisibilitySetting;
    // Indicates whether or not to Block the user from using removable storage.
    storageBlockRemovableStorage?: boolean;
    // Indicating whether or not to require encryption on a mobile device.
    storageRequireMobileDeviceEncryption?: boolean;
    // Indicates whether application data is restricted to the system drive.
    storageRestrictAppDataToSystemVolume?: boolean;
    // Indicates whether the installation of applications is restricted to the system drive.
    storageRestrictAppInstallToSystemVolume?: boolean;
    // Whether the device is required to connect to the network.
    tenantLockdownRequireNetworkDuringOutOfBoxExperience?: boolean;
    // Indicates whether or not to Block the user from USB connection.
    usbBlocked?: boolean;
    // Indicates whether or not to Block the user from voice recording.
    voiceRecordingBlocked?: boolean;
    // Indicates whether or not user's localhost IP address is displayed while making phone calls using the WebRTC
    webRtcBlockLocalhostIpAddress?: boolean;
    // Indicating whether or not to block automatically connecting to Wi-Fi hotspots. Has no impact if Wi-Fi is blocked.
    wiFiBlockAutomaticConnectHotspots?: boolean;
    // Indicates whether or not to Block the user from using Wi-Fi.
    wiFiBlocked?: boolean;
    // Indicates whether or not to Block the user from using Wi-Fi manual configuration.
    wiFiBlockManualConfiguration?: boolean;
    /**
     * Specify how often devices scan for Wi-Fi networks. Supported values are 1-500, where 100 = default, and 500 = low
     * frequency. Valid values 1 to 500
     */
    wiFiScanInterval?: NullableOption<number>;
    /**
     * Allows IT admins to block experiences that are typically for consumers only, such as Start suggestions, Membership
     * notifications, Post-OOBE app install and redirect tiles.
     */
    windowsSpotlightBlockConsumerSpecificFeatures?: boolean;
    // Allows IT admins to turn off all Windows Spotlight features
    windowsSpotlightBlocked?: boolean;
    /**
     * Block suggestions from Microsoft that show after each OS clean install, upgrade or in an on-going basis to introduce
     * users to what is new or changed
     */
    windowsSpotlightBlockOnActionCenter?: boolean;
    // Block personalized content in Windows spotlight based on user’s device usage.
    windowsSpotlightBlockTailoredExperiences?: boolean;
    // Block third party content delivered via Windows Spotlight
    windowsSpotlightBlockThirdPartyNotifications?: boolean;
    // Block Windows Spotlight Windows welcome experience
    windowsSpotlightBlockWelcomeExperience?: boolean;
    // Allows IT admins to turn off the popup of Windows Tips.
    windowsSpotlightBlockWindowsTips?: boolean;
    // Specifies the type of Spotlight. Possible values are: notConfigured, disabled, enabled.
    windowsSpotlightConfigureOnLockScreen?: WindowsSpotlightEnablementSettings;
    // Indicates whether or not to block automatic update of apps from Windows Store.
    windowsStoreBlockAutoUpdate?: boolean;
    // Indicates whether or not to Block the user from using the Windows store.
    windowsStoreBlocked?: boolean;
    // Indicates whether or not to enable Private Store Only.
    windowsStoreEnablePrivateStoreOnly?: boolean;
    // Indicates whether or not to allow other devices from discovering this PC for projection.
    wirelessDisplayBlockProjectionToThisDevice?: boolean;
    // Indicates whether or not to allow user input from wireless display receiver.
    wirelessDisplayBlockUserInputFromReceiver?: boolean;
    // Indicates whether or not to require a PIN for new devices to initiate pairing.
    wirelessDisplayRequirePinForPairing?: boolean;
}
export interface Windows10MobileCompliancePolicy extends DeviceCompliancePolicy {
    // Require devices to be reported healthy by Windows Device Health Attestation - bit locker is enabled
    bitLockerEnabled?: boolean;
    // Require devices to be reported as healthy by Windows Device Health Attestation.
    codeIntegrityEnabled?: boolean;
    /**
     * Require devices to be reported as healthy by Windows Device Health Attestation - early launch antimalware driver is
     * enabled.
     */
    earlyLaunchAntiMalwareDriverEnabled?: boolean;
    // Maximum Windows Phone version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum Windows Phone version.
    osMinimumVersion?: NullableOption<string>;
    // Whether or not to block syncing the calendar.
    passwordBlockSimple?: boolean;
    // Number of days before password expiration. Valid values 1 to 255
    passwordExpirationDays?: NullableOption<number>;
    // The number of character sets required in the password.
    passwordMinimumCharacterSetCount?: NullableOption<number>;
    // Minimum password length. Valid values 4 to 16
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before a password is required.
    passwordMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // The number of previous passwords to prevent re-use of.
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Require a password to unlock Windows Phone device.
    passwordRequired?: boolean;
    // The required password type. Possible values are: deviceDefault, alphanumeric, numeric.
    passwordRequiredType?: RequiredPasswordType;
    // Require a password to unlock an idle device.
    passwordRequireToUnlockFromIdle?: boolean;
    // Require devices to be reported as healthy by Windows Device Health Attestation - secure boot is enabled.
    secureBootEnabled?: boolean;
    // Require encryption on windows devices.
    storageRequireEncryption?: boolean;
}
export interface Windows10SecureAssessmentConfiguration extends DeviceConfiguration {
    // Indicates whether or not to allow the app from printing during the test.
    allowPrinting?: boolean;
    // Indicates whether or not to allow screen capture capability during a test.
    allowScreenCapture?: boolean;
    // Indicates whether or not to allow text suggestions during the test.
    allowTextSuggestion?: boolean;
    /**
     * The account used to configure the Windows device for taking the test. The user can be a domain account (domain/user),
     * an AAD account (username@tenant.com) or a local account (username).
     */
    configurationAccount?: NullableOption<string>;
    /**
     * Url link to an assessment that's automatically loaded when the secure assessment browser is launched. It has to be a
     * valid Url (http[s]://msdn.microsoft.com/).
     */
    launchUri?: NullableOption<string>;
}
export interface Windows10TeamGeneralConfiguration extends DeviceConfiguration {
    // Indicates whether or not to Block Azure Operational Insights.
    azureOperationalInsightsBlockTelemetry?: boolean;
    // The Azure Operational Insights workspace id.
    azureOperationalInsightsWorkspaceId?: NullableOption<string>;
    // The Azure Operational Insights Workspace key.
    azureOperationalInsightsWorkspaceKey?: NullableOption<string>;
    // Specifies whether to automatically launch the Connect app whenever a projection is initiated.
    connectAppBlockAutoLaunch?: boolean;
    // Indicates whether or not to Block setting a maintenance window for device updates.
    maintenanceWindowBlocked?: boolean;
    // Maintenance window duration for device updates. Valid values 0 to 5
    maintenanceWindowDurationInHours?: NullableOption<number>;
    // Maintenance window start time for device updates.
    maintenanceWindowStartTime?: NullableOption<string>;
    // Indicates whether or not to Block wireless projection.
    miracastBlocked?: boolean;
    /**
     * The channel. Possible values are: userDefined, one, two, three, four, five, six, seven, eight, nine, ten, eleven,
     * thirtySix, forty, fortyFour, fortyEight, oneHundredFortyNine, oneHundredFiftyThree, oneHundredFiftySeven,
     * oneHundredSixtyOne, oneHundredSixtyFive.
     */
    miracastChannel?: MiracastChannel;
    // Indicates whether or not to require a pin for wireless projection.
    miracastRequirePin?: boolean;
    /**
     * Specifies whether to disable the 'My meetings and files' feature in the Start menu, which shows the signed-in user's
     * meetings and files from Office 365.
     */
    settingsBlockMyMeetingsAndFiles?: boolean;
    // Specifies whether to allow the ability to resume a session when the session times out.
    settingsBlockSessionResume?: boolean;
    // Specifies whether to disable auto-populating of the sign-in dialog with invitees from scheduled meetings.
    settingsBlockSigninSuggestions?: boolean;
    /**
     * Specifies the default volume value for a new session. Permitted values are 0-100. The default is 45. Valid values 0 to
     * 100
     */
    settingsDefaultVolume?: NullableOption<number>;
    // Specifies the number of minutes until the Hub screen turns off.
    settingsScreenTimeoutInMinutes?: NullableOption<number>;
    // Specifies the number of minutes until the session times out.
    settingsSessionTimeoutInMinutes?: NullableOption<number>;
    // Specifies the number of minutes until the Hub enters sleep mode.
    settingsSleepTimeoutInMinutes?: NullableOption<number>;
    // The welcome screen background image URL. The URL must use the HTTPS protocol and return a PNG image.
    welcomeScreenBackgroundImageUrl?: NullableOption<string>;
    // Indicates whether or not to Block the welcome screen from waking up automatically when someone enters the room.
    welcomeScreenBlockAutomaticWakeUp?: boolean;
    /**
     * The welcome screen meeting information shown. Possible values are: userDefined, showOrganizerAndTimeOnly,
     * showOrganizerAndTimeAndSubject.
     */
    welcomeScreenMeetingInformation?: WelcomeScreenMeetingInformation;
}
export interface Windows81CompliancePolicy extends DeviceCompliancePolicy {
    // Maximum Windows 8.1 version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum Windows 8.1 version.
    osMinimumVersion?: NullableOption<string>;
    // Indicates whether or not to block simple password.
    passwordBlockSimple?: boolean;
    // Password expiration in days.
    passwordExpirationDays?: NullableOption<number>;
    // The number of character sets required in the password.
    passwordMinimumCharacterSetCount?: NullableOption<number>;
    // The minimum password length.
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before a password is required.
    passwordMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // The number of previous passwords to prevent re-use of. Valid values 0 to 24
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Require a password to unlock Windows device.
    passwordRequired?: boolean;
    // The required password type. Possible values are: deviceDefault, alphanumeric, numeric.
    passwordRequiredType?: RequiredPasswordType;
    // Indicates whether or not to require encryption on a windows 8.1 device.
    storageRequireEncryption?: boolean;
}
export interface Windows81GeneralConfiguration extends DeviceConfiguration {
    /**
     * Indicates whether or not to Block the user from adding email accounts to the device that are not associated with a
     * Microsoft account.
     */
    accountsBlockAddingNonMicrosoftAccountEmail?: boolean;
    // Value indicating whether this policy only applies to Windows 8.1. This property is read-only.
    applyOnlyToWindows81?: boolean;
    // Indicates whether or not to block auto fill.
    browserBlockAutofill?: boolean;
    // Indicates whether or not to block automatic detection of Intranet sites.
    browserBlockAutomaticDetectionOfIntranetSites?: boolean;
    // Indicates whether or not to block enterprise mode access.
    browserBlockEnterpriseModeAccess?: boolean;
    // Indicates whether or not to Block the user from using JavaScript.
    browserBlockJavaScript?: boolean;
    // Indicates whether or not to block plug-ins.
    browserBlockPlugins?: boolean;
    // Indicates whether or not to block popups.
    browserBlockPopups?: boolean;
    // Indicates whether or not to Block the user from sending the do not track header.
    browserBlockSendingDoNotTrackHeader?: boolean;
    // Indicates whether or not to block a single word entry on Intranet sites.
    browserBlockSingleWordEntryOnIntranetSites?: boolean;
    // The enterprise mode site list location. Could be a local file, local network or http location.
    browserEnterpriseModeSiteListLocation?: NullableOption<string>;
    // The internet security level. Possible values are: userDefined, medium, mediumHigh, high.
    browserInternetSecurityLevel?: InternetSiteSecurityLevel;
    // The Intranet security level. Possible values are: userDefined, low, mediumLow, medium, mediumHigh, high.
    browserIntranetSecurityLevel?: SiteSecurityLevel;
    // The logging report location.
    browserLoggingReportLocation?: NullableOption<string>;
    // Indicates whether or not to require a firewall.
    browserRequireFirewall?: boolean;
    // Indicates whether or not to require fraud warning.
    browserRequireFraudWarning?: boolean;
    // Indicates whether or not to require high security for restricted sites.
    browserRequireHighSecurityForRestrictedSites?: boolean;
    // Indicates whether or not to require the user to use the smart screen filter.
    browserRequireSmartScreen?: boolean;
    // The trusted sites security level. Possible values are: userDefined, low, mediumLow, medium, mediumHigh, high.
    browserTrustedSitesSecurityLevel?: SiteSecurityLevel;
    // Indicates whether or not to block data roaming.
    cellularBlockDataRoaming?: boolean;
    // Indicates whether or not to block diagnostic data submission.
    diagnosticsBlockDataSubmission?: boolean;
    // Indicates whether or not to Block the user from using a pictures password and pin.
    passwordBlockPicturePasswordAndPin?: boolean;
    // Password expiration in days.
    passwordExpirationDays?: NullableOption<number>;
    // The number of character sets required in the password.
    passwordMinimumCharacterSetCount?: NullableOption<number>;
    // The minimum password length.
    passwordMinimumLength?: NullableOption<number>;
    // The minutes of inactivity before the screen times out.
    passwordMinutesOfInactivityBeforeScreenTimeout?: NullableOption<number>;
    // The number of previous passwords to prevent re-use of. Valid values 0 to 24
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // The required password type. Possible values are: deviceDefault, alphanumeric, numeric.
    passwordRequiredType?: RequiredPasswordType;
    // The number of sign in failures before factory reset.
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    // Indicates whether or not to require encryption on a mobile device.
    storageRequireDeviceEncryption?: boolean;
    // Indicates whether or not to require automatic updates.
    updatesRequireAutomaticUpdates?: boolean;
    /**
     * The user account control settings. Possible values are: userDefined, alwaysNotify, notifyOnAppChanges,
     * notifyOnAppChangesWithoutDimming, neverNotify.
     */
    userAccountControlSettings?: WindowsUserAccountControlSettings;
    // The work folders url.
    workFoldersUrl?: NullableOption<string>;
}
export interface WindowsDefenderAdvancedThreatProtectionConfiguration extends DeviceConfiguration {
    // Windows Defender AdvancedThreatProtection 'Allow Sample Sharing' Rule
    allowSampleSharing?: boolean;
    // Expedite Windows Defender Advanced Threat Protection telemetry reporting frequency.
    enableExpeditedTelemetryReporting?: boolean;
}
export interface WindowsPhone81CompliancePolicy extends DeviceCompliancePolicy {
    // Maximum Windows Phone version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum Windows Phone version.
    osMinimumVersion?: NullableOption<string>;
    // Whether or not to block syncing the calendar.
    passwordBlockSimple?: boolean;
    // Number of days before the password expires.
    passwordExpirationDays?: NullableOption<number>;
    // The number of character sets required in the password.
    passwordMinimumCharacterSetCount?: NullableOption<number>;
    // Minimum length of passwords.
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before a password is required.
    passwordMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // Number of previous passwords to block. Valid values 0 to 24
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Whether or not to require a password.
    passwordRequired?: boolean;
    // The required password type. Possible values are: deviceDefault, alphanumeric, numeric.
    passwordRequiredType?: RequiredPasswordType;
    // Require encryption on windows phone devices.
    storageRequireEncryption?: boolean;
}
export interface WindowsPhone81CustomConfiguration extends DeviceConfiguration {
    // OMA settings. This collection can contain a maximum of 1000 elements.
    omaSettings?: NullableOption<OmaSetting[]>;
}
export interface WindowsPhone81GeneralConfiguration extends DeviceConfiguration {
    // Value indicating whether this policy only applies to Windows Phone 8.1. This property is read-only.
    applyOnlyToWindowsPhone81?: boolean;
    // Indicates whether or not to block copy paste.
    appsBlockCopyPaste?: boolean;
    // Indicates whether or not to block bluetooth.
    bluetoothBlocked?: boolean;
    // Indicates whether or not to block camera.
    cameraBlocked?: boolean;
    // Indicates whether or not to block Wi-Fi tethering. Has no impact if Wi-Fi is blocked.
    cellularBlockWifiTethering?: boolean;
    // List that is in the AppComplianceList. Possible values are: none, appsInListCompliant, appsNotInListCompliant.
    compliantAppListType?: AppListType;
    /**
     * List of apps in the compliance (either allow list or block list, controlled by CompliantAppListType). This collection
     * can contain a maximum of 10000 elements.
     */
    compliantAppsList?: NullableOption<AppListItem[]>;
    // Indicates whether or not to block diagnostic data submission.
    diagnosticDataBlockSubmission?: boolean;
    // Indicates whether or not to block custom email accounts.
    emailBlockAddingAccounts?: boolean;
    // Indicates whether or not to block location services.
    locationServicesBlocked?: boolean;
    // Indicates whether or not to block using a Microsoft Account.
    microsoftAccountBlocked?: boolean;
    // Indicates whether or not to block Near-Field Communication.
    nfcBlocked?: boolean;
    // Indicates whether or not to block syncing the calendar.
    passwordBlockSimple?: boolean;
    // Number of days before the password expires.
    passwordExpirationDays?: NullableOption<number>;
    // Number of character sets a password must contain.
    passwordMinimumCharacterSetCount?: NullableOption<number>;
    // Minimum length of passwords.
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before screen timeout.
    passwordMinutesOfInactivityBeforeScreenTimeout?: NullableOption<number>;
    // Number of previous passwords to block. Valid values 0 to 24
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Indicates whether or not to require a password.
    passwordRequired?: boolean;
    // Password type that is required. Possible values are: deviceDefault, alphanumeric, numeric.
    passwordRequiredType?: RequiredPasswordType;
    // Number of sign in failures allowed before factory reset.
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    // Indicates whether or not to block screenshots.
    screenCaptureBlocked?: boolean;
    // Indicates whether or not to block removable storage.
    storageBlockRemovableStorage?: boolean;
    // Indicates whether or not to require encryption.
    storageRequireEncryption?: boolean;
    // Indicates whether or not to block the web browser.
    webBrowserBlocked?: boolean;
    // Indicates whether or not to block automatically connecting to Wi-Fi hotspots. Has no impact if Wi-Fi is blocked.
    wifiBlockAutomaticConnectHotspots?: boolean;
    // Indicates whether or not to block Wi-Fi.
    wifiBlocked?: boolean;
    // Indicates whether or not to block Wi-Fi hotspot reporting. Has no impact if Wi-Fi is blocked.
    wifiBlockHotspotReporting?: boolean;
    // Indicates whether or not to block the Windows Store.
    windowsStoreBlocked?: boolean;
}
export interface WindowsUpdateForBusinessConfiguration extends DeviceConfiguration {
    /**
     * When TRUE, allows eligible Windows 10 devices to upgrade to Windows 11. When FALSE, implies the device stays on the
     * existing operating system. Returned by default. Query parameters are not supported.
     */
    allowWindows11Upgrade?: boolean;
    /**
     * The Automatic Update Mode. Possible values are: UserDefined, NotifyDownload, AutoInstallAtMaintenanceTime,
     * AutoInstallAndRebootAtMaintenanceTime, AutoInstallAndRebootAtScheduledTime, AutoInstallAndRebootWithoutEndUserControl,
     * WindowsDefault. UserDefined is the default value, no intent. Returned by default. Query parameters are not supported.
     * Possible values are: userDefined, notifyDownload, autoInstallAtMaintenanceTime, autoInstallAndRebootAtMaintenanceTime,
     * autoInstallAndRebootAtScheduledTime, autoInstallAndRebootWithoutEndUserControl.
     */
    automaticUpdateMode?: AutomaticUpdateMode;
    /**
     * Specify the method by which the auto-restart required notification is dismissed. Possible values are: NotConfigured,
     * Automatic, User. Returned by default. Query parameters are not supported. Possible values are: notConfigured,
     * automatic, user, unknownFutureValue.
     */
    autoRestartNotificationDismissal?: AutoRestartNotificationDismissalMethod;
    /**
     * Determines which branch devices will receive their updates from. Possible values are: UserDefined, All,
     * BusinessReadyOnly, WindowsInsiderBuildFast, WindowsInsiderBuildSlow, WindowsInsiderBuildRelease. Returned by default.
     * Query parameters are not supported. Possible values are: userDefined, all, businessReadyOnly, windowsInsiderBuildFast,
     * windowsInsiderBuildSlow, windowsInsiderBuildRelease.
     */
    businessReadyUpdatesOnly?: WindowsUpdateType;
    /**
     * Number of days before feature updates are installed automatically with valid range from 0 to 30 days. Returned by
     * default. Query parameters are not supported.
     */
    deadlineForFeatureUpdatesInDays?: NullableOption<number>;
    /**
     * Number of days before quality updates are installed automatically with valid range from 0 to 30 days. Returned by
     * default. Query parameters are not supported.
     */
    deadlineForQualityUpdatesInDays?: NullableOption<number>;
    /**
     * Number of days after deadline until restarts occur automatically with valid range from 0 to 7 days. Returned by
     * default. Query parameters are not supported.
     */
    deadlineGracePeriodInDays?: NullableOption<number>;
    /**
     * The Delivery Optimization Mode. Possible values are: UserDefined, HttpOnly, HttpWithPeeringNat,
     * HttpWithPeeringPrivateGroup, HttpWithInternetPeering, SimpleDownload, BypassMode. UserDefined allows the user to set.
     * Returned by default. Query parameters are not supported. Possible values are: userDefined, httpOnly,
     * httpWithPeeringNat, httpWithPeeringPrivateGroup, httpWithInternetPeering, simpleDownload, bypassMode.
     */
    deliveryOptimizationMode?: WindowsDeliveryOptimizationMode;
    /**
     * When TRUE, excludes Windows update Drivers. When FALSE, does not exclude Windows update Drivers. Returned by default.
     * Query parameters are not supported.
     */
    driversExcluded?: boolean;
    /**
     * Deadline in days before automatically scheduling and executing a pending restart outside of active hours, with valid
     * range from 2 to 30 days. Returned by default. Query parameters are not supported.
     */
    engagedRestartDeadlineInDays?: NullableOption<number>;
    /**
     * Number of days a user can snooze Engaged Restart reminder notifications with valid range from 1 to 3 days. Returned by
     * default. Query parameters are not supported.
     */
    engagedRestartSnoozeScheduleInDays?: NullableOption<number>;
    /**
     * Number of days before transitioning from Auto Restarts scheduled outside of active hours to Engaged Restart, which
     * requires the user to schedule, with valid range from 0 to 30 days. Returned by default. Query parameters are not
     * supported.
     */
    engagedRestartTransitionScheduleInDays?: NullableOption<number>;
    /**
     * Defer Feature Updates by these many days with valid range from 0 to 30 days. Returned by default. Query parameters are
     * not supported.
     */
    featureUpdatesDeferralPeriodInDays?: number;
    /**
     * When TRUE, assigned devices are paused from receiving feature updates for up to 35 days from the time you pause the
     * ring. When FALSE, does not pause Feature Updates. Returned by default. Query parameters are not supported.s
     */
    featureUpdatesPaused?: boolean;
    /**
     * The Feature Updates Pause Expiry datetime. This value is 35 days from the time admin paused or extended the pause for
     * the ring. Returned by default. Query parameters are not supported.
     */
    featureUpdatesPauseExpiryDateTime?: string;
    /**
     * The Feature Updates Pause start date. This value is the time when the admin paused or extended the pause for the ring.
     * Returned by default. Query parameters are not supported. This property is read-only.
     */
    featureUpdatesPauseStartDate?: NullableOption<string>;
    /**
     * The Feature Updates Rollback Start datetime.This value is the time when the admin rolled back the Feature update for
     * the ring.Returned by default.Query parameters are not supported.
     */
    featureUpdatesRollbackStartDateTime?: string;
    /**
     * The number of days after a Feature Update for which a rollback is valid with valid range from 2 to 60 days. Returned by
     * default. Query parameters are not supported.
     */
    featureUpdatesRollbackWindowInDays?: NullableOption<number>;
    /**
     * When TRUE, rollback Feature Updates on the next device check in. When FALSE, do not rollback Feature Updates on the
     * next device check in. Returned by default.Query parameters are not supported.
     */
    featureUpdatesWillBeRolledBack?: NullableOption<boolean>;
    /**
     * The Installation Schedule. Possible values are: ActiveHoursStart, ActiveHoursEnd, ScheduledInstallDay,
     * ScheduledInstallTime. Returned by default. Query parameters are not supported.
     */
    installationSchedule?: NullableOption<WindowsUpdateInstallScheduleType>;
    /**
     * When TRUE, allows Microsoft Update Service. When FALSE, does not allow Microsoft Update Service. Returned by default.
     * Query parameters are not supported.
     */
    microsoftUpdateServiceAllowed?: boolean;
    /**
     * When TRUE the device should wait until deadline for rebooting outside of active hours. When FALSE the device should not
     * wait until deadline for rebooting outside of active hours. Returned by default. Query parameters are not supported.
     */
    postponeRebootUntilAfterDeadline?: NullableOption<boolean>;
    /**
     * The Pre-Release Features. Possible values are: UserDefined, SettingsOnly, SettingsAndExperimentations, NotAllowed.
     * UserDefined is the default value, no intent. Returned by default. Query parameters are not supported. Possible values
     * are: userDefined, settingsOnly, settingsAndExperimentations, notAllowed.
     */
    prereleaseFeatures?: PrereleaseFeatures;
    /**
     * Defer Quality Updates by these many days with valid range from 0 to 30 days. Returned by default. Query parameters are
     * not supported.
     */
    qualityUpdatesDeferralPeriodInDays?: number;
    /**
     * When TRUE, assigned devices are paused from receiving quality updates for up to 35 days from the time you pause the
     * ring. When FALSE, does not pause Quality Updates. Returned by default. Query parameters are not supported.
     */
    qualityUpdatesPaused?: boolean;
    /**
     * The Quality Updates Pause Expiry datetime. This value is 35 days from the time admin paused or extended the pause for
     * the ring. Returned by default. Query parameters are not supported.
     */
    qualityUpdatesPauseExpiryDateTime?: string;
    /**
     * The Quality Updates Pause start date. This value is the time when the admin paused or extended the pause for the ring.
     * Returned by default. Query parameters are not supported. This property is read-only.
     */
    qualityUpdatesPauseStartDate?: NullableOption<string>;
    /**
     * The Quality Updates Rollback Start datetime. This value is the time when the admin rolled back the Quality update for
     * the ring. Returned by default. Query parameters are not supported.
     */
    qualityUpdatesRollbackStartDateTime?: string;
    /**
     * When TRUE, rollback Quality Updates on the next device check in. When FALSE, do not rollback Quality Updates on the
     * next device check in. Returned by default. Query parameters are not supported.
     */
    qualityUpdatesWillBeRolledBack?: NullableOption<boolean>;
    /**
     * Specify the period for auto-restart imminent warning notifications. Supported values: 15, 30 or 60 (minutes). Returned
     * by default. Query parameters are not supported.
     */
    scheduleImminentRestartWarningInMinutes?: NullableOption<number>;
    /**
     * Specify the period for auto-restart warning reminder notifications. Supported values: 2, 4, 8, 12 or 24 (hours).
     * Returned by default. Query parameters are not supported.
     */
    scheduleRestartWarningInHours?: NullableOption<number>;
    /**
     * When TRUE, skips all checks before restart: Battery level = 40%, User presence, Display Needed, Presentation mode, Full
     * screen mode, phone call state, game mode etc. When FALSE, does not skip all checks before restart. Returned by default.
     * Query parameters are not supported.
     */
    skipChecksBeforeRestart?: boolean;
    /**
     * Specifies what Windows Update notifications users see. Possible values are: NotConfigured, DefaultNotifications,
     * RestartWarningsOnly, DisableAllNotifications. Returned by default. Query parameters are not supported. Possible values
     * are: notConfigured, defaultNotifications, restartWarningsOnly, disableAllNotifications, unknownFutureValue.
     */
    updateNotificationLevel?: WindowsUpdateNotificationDisplayOption;
    /**
     * Schedule the update installation on the weeks of the month. Possible values are: UserDefined, FirstWeek, SecondWeek,
     * ThirdWeek, FourthWeek, EveryWeek. Returned by default. Query parameters are not supported. Possible values are:
     * userDefined, firstWeek, secondWeek, thirdWeek, fourthWeek, everyWeek, unknownFutureValue.
     */
    updateWeeks?: NullableOption<WindowsUpdateForBusinessUpdateWeeks>;
    /**
     * Specifies whether to enable end user’s access to pause software updates. Possible values are: NotConfigured, Enabled,
     * Disabled. Returned by default. Query parameters are not supported. Possible values are: notConfigured, enabled,
     * disabled.
     */
    userPauseAccess?: Enablement;
    /**
     * Specifies whether to disable user’s access to scan Windows Update. Possible values are: NotConfigured, Enabled,
     * Disabled. Returned by default. Query parameters are not supported. Possible values are: notConfigured, enabled,
     * disabled.
     */
    userWindowsUpdateScanAccess?: Enablement;
}
export interface EnrollmentConfigurationAssignment extends Entity {
    // Represents an assignment to managed devices in the tenant
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface DeviceEnrollmentLimitConfiguration extends DeviceEnrollmentConfiguration {
    // The maximum number of devices that a user can enroll
    limit?: number;
}
export interface DeviceEnrollmentPlatformRestrictionsConfiguration extends DeviceEnrollmentConfiguration {
    // Android restrictions based on platform, platform operating system version, and device ownership
    androidRestriction?: NullableOption<DeviceEnrollmentPlatformRestriction>;
    // Ios restrictions based on platform, platform operating system version, and device ownership
    iosRestriction?: NullableOption<DeviceEnrollmentPlatformRestriction>;
    // Mac restrictions based on platform, platform operating system version, and device ownership
    macOSRestriction?: NullableOption<DeviceEnrollmentPlatformRestriction>;
    // Windows mobile restrictions based on platform, platform operating system version, and device ownership
    windowsMobileRestriction?: NullableOption<DeviceEnrollmentPlatformRestriction>;
    // Windows restrictions based on platform, platform operating system version, and device ownership
    windowsRestriction?: NullableOption<DeviceEnrollmentPlatformRestriction>;
}
export interface DeviceEnrollmentWindowsHelloForBusinessConfiguration extends DeviceEnrollmentConfiguration {
    /**
     * Controls the ability to use the anti-spoofing features for facial recognition on devices which support it. If set to
     * disabled, anti-spoofing features are not allowed. If set to Not Configured, the user can choose whether they want to
     * use anti-spoofing. Possible values are: notConfigured, enabled, disabled.
     */
    enhancedBiometricsState?: Enablement;
    /**
     * Controls the period of time (in days) that a PIN can be used before the system requires the user to change it. This
     * must be set between 0 and 730, inclusive. If set to 0, the user's PIN will never expire
     */
    pinExpirationInDays?: number;
    /**
     * Controls the ability to use lowercase letters in the Windows Hello for Business PIN. Allowed permits the use of
     * lowercase letter(s), whereas Required ensures they are present. If set to Not Allowed, lowercase letters will not be
     * permitted. Possible values are: allowed, required, disallowed.
     */
    pinLowercaseCharactersUsage?: WindowsHelloForBusinessPinUsage;
    /**
     * Controls the maximum number of characters allowed for the Windows Hello for Business PIN. This value must be between 4
     * and 127, inclusive. This value must be greater than or equal to the value set for the minimum PIN.
     */
    pinMaximumLength?: number;
    /**
     * Controls the minimum number of characters required for the Windows Hello for Business PIN. This value must be between 4
     * and 127, inclusive, and less than or equal to the value set for the maximum PIN.
     */
    pinMinimumLength?: number;
    /**
     * Controls the ability to prevent users from using past PINs. This must be set between 0 and 50, inclusive, and the
     * current PIN of the user is included in that count. If set to 0, previous PINs are not stored. PIN history is not
     * preserved through a PIN reset.
     */
    pinPreviousBlockCount?: number;
    /**
     * Controls the ability to use special characters in the Windows Hello for Business PIN. Allowed permits the use of
     * special character(s), whereas Required ensures they are present. If set to Not Allowed, special character(s) will not
     * be permitted. Possible values are: allowed, required, disallowed.
     */
    pinSpecialCharactersUsage?: WindowsHelloForBusinessPinUsage;
    /**
     * Controls the ability to use uppercase letters in the Windows Hello for Business PIN. Allowed permits the use of
     * uppercase letter(s), whereas Required ensures they are present. If set to Not Allowed, uppercase letters will not be
     * permitted. Possible values are: allowed, required, disallowed.
     */
    pinUppercaseCharactersUsage?: WindowsHelloForBusinessPinUsage;
    /**
     * Controls the use of Remote Windows Hello for Business. Remote Windows Hello for Business provides the ability for a
     * portable, registered device to be usable as a companion for desktop authentication. The desktop must be Azure AD joined
     * and the companion device must have a Windows Hello for Business PIN.
     */
    remotePassportEnabled?: boolean;
    /**
     * Controls whether to require a Trusted Platform Module (TPM) for provisioning Windows Hello for Business. A TPM provides
     * an additional security benefit in that data stored on it cannot be used on other devices. If set to False, all devices
     * can provision Windows Hello for Business even if there is not a usable TPM.
     */
    securityDeviceRequired?: boolean;
    /**
     * Controls whether to allow the device to be configured for Windows Hello for Business. If set to disabled, the user
     * cannot provision Windows Hello for Business except on Azure Active Directory joined mobile phones if otherwise
     * required. If set to Not Configured, Intune will not override client defaults. Possible values are: notConfigured,
     * enabled, disabled.
     */
    state?: Enablement;
    /**
     * Controls the use of biometric gestures, such as face and fingerprint, as an alternative to the Windows Hello for
     * Business PIN. If set to False, biometric gestures are not allowed. Users must still configure a PIN as a backup in case
     * of failures.
     */
    unlockWithBiometricsEnabled?: boolean;
}
export interface AppLogCollectionRequest extends Entity {
    // Time at which the upload log request reached a completed state if not completed yet NULL will be returned.
    completedDateTime?: NullableOption<string>;
    // List of log folders.
    customLogFolders?: NullableOption<string[]>;
    // Indicates error message if any during the upload process.
    errorMessage?: NullableOption<string>;
    /**
     * Indicates the status for the app log collection request if it is pending, completed or failed, Default is pending.
     * Possible values are: pending, completed, failed, unknownFutureValue.
     */
    status?: AppLogUploadState;
}
export interface MalwareStateForWindowsDevice extends Entity {
    // Indicates the number of times the malware is detected
    detectionCount?: NullableOption<number>;
    // Indicates the name of the device being evaluated for malware state
    deviceName?: NullableOption<string>;
    /**
     * Indicates execution status of the malware. Possible values are: unknown, blocked, allowed, running, notRunning.
     * Defaults to unknown. Possible values are: unknown, blocked, allowed, running, notRunning.
     */
    executionState?: NullableOption<WindowsMalwareExecutionState>;
    // Initial detection datetime of the malware
    initialDetectionDateTime?: NullableOption<string>;
    // The last time this particular threat was changed
    lastStateChangeDateTime?: NullableOption<string>;
    /**
     * Indicates threat status of the malware. Possible values are: active, actionFailed, manualStepsRequired,
     * fullScanRequired, rebootRequired, remediatedWithNonCriticalFailures, quarantined, removed, cleaned, allowed,
     * noStatusCleared. defaults to noStatusCleared. Possible values are: active, actionFailed, manualStepsRequired,
     * fullScanRequired, rebootRequired, remediatedWithNonCriticalFailures, quarantined, removed, cleaned, allowed,
     * noStatusCleared.
     */
    threatState?: NullableOption<WindowsMalwareThreatState>;
}
export interface UserExperienceAnalyticsMetric extends Entity {
    // The unit of the user experience analytics metric. Examples: none, percentage, count, seconds, score.
    unit?: NullableOption<string>;
    // The value of the user experience analytics metric.
    value?: number;
}
export interface UserExperienceAnalyticsWorkFromAnywhereDevice extends Entity {
    /**
     * When TRUE, indicates the intune device's autopilot profile is assigned. When FALSE, indicates it's not Assigned.
     * Supports: $select, $OrderBy. Read-only.
     */
    autoPilotProfileAssigned?: NullableOption<boolean>;
    /**
     * When TRUE, indicates the intune device's autopilot is registered. When FALSE, indicates it's not registered. Supports:
     * $select, $OrderBy. Read-only.
     */
    autoPilotRegistered?: NullableOption<boolean>;
    // The Azure Active Directory (Azure AD) device Id. Supports: $select, $OrderBy. Read-only.
    azureAdDeviceId?: NullableOption<string>;
    // The work from anywhere device's Azure Active Directory (Azure AD) join type. Supports: $select, $OrderBy. Read-only.
    azureAdJoinType?: NullableOption<string>;
    /**
     * When TRUE, indicates the device's Azure Active Directory (Azure AD) is registered. When False, indicates it's not
     * registered. Supports: $select, $OrderBy. Read-only.
     */
    azureAdRegistered?: NullableOption<boolean>;
    /**
     * Indicates per device cloud identity score. Valid values 0 to 100. Value -1 means associated score is unavailable.
     * Supports: $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    cloudIdentityScore?: NullableOption<number>;
    /**
     * Indicates per device cloud management score. Valid values 0 to 100. Value -1 means associated score is unavailable.
     * Supports: $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    cloudManagementScore?: NullableOption<number>;
    /**
     * Indicates per device cloud provisioning score. Valid values 0 to 100. Value -1 means associated score is unavailable.
     * Supports: $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    cloudProvisioningScore?: NullableOption<number>;
    /**
     * When TRUE, indicates the device's compliance policy is set to intune. When FALSE, indicates it's not set to intune.
     * Supports: $select, $OrderBy. Read-only.
     */
    compliancePolicySetToIntune?: NullableOption<boolean>;
    // The Intune device id of the device. Supports: $select, $OrderBy. Read-only.
    deviceId?: NullableOption<string>;
    // The name of the device. Supports: $select, $OrderBy. Read-only.
    deviceName?: NullableOption<string>;
    /**
     * The health state of the user experience analytics work from anywhere device. Possible values are: unknown,
     * insufficientData, needsAttention, meetingGoals. Unknown by default. Supports: $select, $OrderBy. Read-only. Possible
     * values are: unknown, insufficientData, needsAttention, meetingGoals, unknownFutureValue.
     */
    healthStatus?: UserExperienceAnalyticsHealthState;
    /**
     * When TRUE, indicates the device's Cloud Management Gateway for Configuration Manager is enabled. When FALSE, indicates
     * it's not enabled. Supports: $select, $OrderBy. Read-only.
     */
    isCloudManagedGatewayEnabled?: NullableOption<boolean>;
    // The management agent of the device. Supports: $select, $OrderBy. Read-only.
    managedBy?: NullableOption<string>;
    // The manufacturer name of the device. Supports: $select, $OrderBy. Read-only.
    manufacturer?: NullableOption<string>;
    // The model name of the device. Supports: $select, $OrderBy. Read-only.
    model?: NullableOption<string>;
    /**
     * When TRUE, indicates OS check failed for device to upgrade to the latest version of windows. When FALSE, indicates the
     * check succeeded. Supports: $select, $OrderBy. Read-only.
     */
    osCheckFailed?: NullableOption<boolean>;
    // The OS description of the device. Supports: $select, $OrderBy. Read-only.
    osDescription?: NullableOption<string>;
    // The OS version of the device. Supports: $select, $OrderBy. Read-only.
    osVersion?: NullableOption<string>;
    /**
     * When TRUE, indicates the device's other workloads is set to intune. When FALSE, indicates it's not set to intune.
     * Supports: $select, $OrderBy. Read-only.
     */
    otherWorkloadsSetToIntune?: NullableOption<boolean>;
    // Ownership of the device. Supports: $select, $OrderBy. Read-only.
    ownership?: NullableOption<string>;
    /**
     * When TRUE, indicates processor hardware 64-bit architecture check failed for device to upgrade to the latest version of
     * windows. When FALSE, indicates the check succeeded. Supports: $select, $OrderBy. Read-only.
     */
    processor64BitCheckFailed?: NullableOption<boolean>;
    /**
     * When TRUE, indicates processor hardware core count check failed for device to upgrade to the latest version of windows.
     * When FALSE, indicates the check succeeded. Supports: $select, $OrderBy. Read-only.
     */
    processorCoreCountCheckFailed?: NullableOption<boolean>;
    /**
     * When TRUE, indicates processor hardware family check failed for device to upgrade to the latest version of windows.
     * When FALSE, indicates the check succeeded. Supports: $select, $OrderBy. Read-only.
     */
    processorFamilyCheckFailed?: NullableOption<boolean>;
    /**
     * When TRUE, indicates processor hardware speed check failed for device to upgrade to the latest version of windows. When
     * FALSE, indicates the check succeeded. Supports: $select, $OrderBy. Read-only.
     */
    processorSpeedCheckFailed?: NullableOption<boolean>;
    /**
     * When TRUE, indicates RAM hardware check failed for device to upgrade to the latest version of windows. When FALSE,
     * indicates the check succeeded. Supports: $select, $OrderBy. Read-only.
     */
    ramCheckFailed?: NullableOption<boolean>;
    /**
     * When TRUE, indicates secure boot hardware check failed for device to upgrade to the latest version of windows. When
     * FALSE, indicates the check succeeded. Supports: $select, $OrderBy. Read-only.
     */
    secureBootCheckFailed?: NullableOption<boolean>;
    // The serial number of the device. Supports: $select, $OrderBy. Read-only.
    serialNumber?: NullableOption<string>;
    /**
     * When TRUE, indicates storage hardware check failed for device to upgrade to the latest version of windows. When FALSE,
     * indicates the check succeeded. Supports: $select, $OrderBy. Read-only.
     */
    storageCheckFailed?: NullableOption<boolean>;
    /**
     * When TRUE, indicates the device is Tenant Attached. When FALSE, indicates it's not Tenant Attached. Supports: $select,
     * $OrderBy. Read-only.
     */
    tenantAttached?: NullableOption<boolean>;
    /**
     * When TRUE, indicates Trusted Platform Module (TPM) hardware check failed for device to the latest version of upgrade to
     * windows. When FALSE, indicates the check succeeded. Supports: $select, $OrderBy. Read-only.
     */
    tpmCheckFailed?: NullableOption<boolean>;
    /**
     * The windows upgrade eligibility status of device. Possible values are: upgraded, unknown, notCapable, capable. Unknown
     * by default. Supports: $select, $OrderBy. Read-only. Possible values are: upgraded, unknown, notCapable, capable,
     * unknownFutureValue.
     */
    upgradeEligibility?: OperatingSystemUpgradeEligibility;
    /**
     * Indicates per device windows score. Valid values 0 to 100. Value -1 means associated score is unavailable. Supports:
     * $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    windowsScore?: NullableOption<number>;
    /**
     * Indicates work from anywhere per device overall score. Valid values 0 to 100. Value -1 means associated score is
     * unavailable. Supports: $select, $OrderBy. Read-only. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
     */
    workFromAnywhereScore?: NullableOption<number>;
}
export interface WindowsDeviceMalwareState extends Entity {
    // Information URL to learn more about the malware
    additionalInformationUrl?: NullableOption<string>;
    /**
     * Category of the malware. Possible values are: invalid, adware, spyware, passwordStealer, trojanDownloader, worm,
     * backdoor, remoteAccessTrojan, trojan, emailFlooder, keylogger, dialer, monitoringSoftware, browserModifier, cookie,
     * browserPlugin, aolExploit, nuker, securityDisabler, jokeProgram, hostileActiveXControl, softwareBundler,
     * stealthNotifier, settingsModifier, toolBar, remoteControlSoftware, trojanFtp, potentialUnwantedSoftware, icqExploit,
     * trojanTelnet, exploit, filesharingProgram, malwareCreationTool, remoteControlSoftware, tool, trojanDenialOfService,
     * trojanDropper, trojanMassMailer, trojanMonitoringSoftware, trojanProxyServer, virus, known, unknown, spp, behavior,
     * vulnerability, policy, enterpriseUnwantedSoftware, ransom, hipsRule.
     */
    category?: NullableOption<WindowsMalwareCategory>;
    // Number of times the malware is detected
    detectionCount?: NullableOption<number>;
    // Malware name
    displayName?: NullableOption<string>;
    /**
     * Execution status of the malware like blocked/executing etc. Possible values are: unknown, blocked, allowed, running,
     * notRunning.
     */
    executionState?: NullableOption<WindowsMalwareExecutionState>;
    // Initial detection datetime of the malware
    initialDetectionDateTime?: NullableOption<string>;
    // The last time this particular threat was changed
    lastStateChangeDateTime?: NullableOption<string>;
    // Severity of the malware. Possible values are: unknown, low, moderate, high, severe.
    severity?: NullableOption<WindowsMalwareSeverity>;
    /**
     * Current status of the malware like cleaned/quarantined/allowed etc. Possible values are: unknown, detected, cleaned,
     * quarantined, removed, allowed, blocked, cleanFailed, quarantineFailed, removeFailed, allowFailed, abandoned,
     * blockFailed.
     */
    state?: NullableOption<WindowsMalwareState>;
    /**
     * Current status of the malware like cleaned/quarantined/allowed etc. Possible values are: active, actionFailed,
     * manualStepsRequired, fullScanRequired, rebootRequired, remediatedWithNonCriticalFailures, quarantined, removed,
     * cleaned, allowed, noStatusCleared.
     */
    threatState?: NullableOption<WindowsMalwareThreatState>;
}
// tslint:disable-next-line: interface-name
export interface ImportedWindowsAutopilotDeviceIdentityUpload extends Entity {
    // DateTime when the entity is created.
    createdDateTimeUtc?: string;
    // Upload status.
    status?: ImportedWindowsAutopilotDeviceIdentityUploadStatus;
    // Collection of all Autopilot devices as a part of this upload.
    deviceIdentities?: NullableOption<ImportedWindowsAutopilotDeviceIdentity[]>;
}
export interface ManagedMobileApp extends Entity {
    // The identifier for an app with it's operating system type.
    mobileAppIdentifier?: NullableOption<MobileAppIdentifier>;
    // Version of the entity.
    version?: NullableOption<string>;
}
export interface ManagedAppPolicyDeploymentSummary extends Entity {
    // Not yet documented
    configurationDeployedUserCount?: number;
    // Not yet documented
    configurationDeploymentSummaryPerApp?: NullableOption<ManagedAppPolicyDeploymentSummaryPerApp[]>;
    // Not yet documented
    displayName?: NullableOption<string>;
    // Not yet documented
    lastRefreshTime?: string;
    // Version of the entity.
    version?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface AndroidManagedAppRegistration extends ManagedAppRegistration {}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IosManagedAppRegistration extends ManagedAppRegistration {}
export interface ManagedAppOperation extends Entity {
    // The operation name.
    displayName?: NullableOption<string>;
    // The last time the app operation was modified.
    lastModifiedDateTime?: string;
    // The current state of the operation
    state?: NullableOption<string>;
    // Version of the entity.
    version?: NullableOption<string>;
}
export interface ManagedAppStatusRaw extends ManagedAppStatus {
    // Status report content.
    content?: NullableOption<any>;
}
export interface TargetedManagedAppPolicyAssignment extends Entity {
    // Identifier for deployment to a group or app
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface WindowsInformationProtectionAppLockerFile extends Entity {
    // The friendly name
    displayName?: NullableOption<string>;
    // File as a byte array
    file?: NullableOption<string>;
    // SHA256 hash of the file
    fileHash?: NullableOption<string>;
    // Version of the entity.
    version?: NullableOption<string>;
}
export interface LocalizedNotificationMessage extends Entity {
    /**
     * Flag to indicate whether or not this is the default locale for language fallback. This flag can only be set. To unset,
     * set this property to true on another Localized Notification Message.
     */
    isDefault?: boolean;
    // DateTime the object was last modified.
    lastModifiedDateTime?: string;
    // The Locale for which this message is destined.
    locale?: string;
    // The Message Template content.
    messageTemplate?: string;
    // The Message Template Subject.
    subject?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceAndAppManagementRoleDefinition extends RoleDefinition {}
export interface DeviceManagementExportJob extends Entity {
    // Time that the exported report expires
    expirationDateTime?: string;
    // Filters applied on the report
    filter?: NullableOption<string>;
    // Format of the exported report. Possible values are: csv, pdf, json, unknownFutureValue.
    format?: DeviceManagementReportFileFormat;
    /**
     * Configures how the requested export job is localized. Possible values are: localizedValuesAsAdditionalColumn,
     * replaceLocalizableValues.
     */
    localizationType?: DeviceManagementExportJobLocalizationType;
    // Name of the report
    reportName?: string;
    // Time that the exported report was requested
    requestDateTime?: string;
    // Columns selected from the report
    select?: NullableOption<string[]>;
    /**
     * A snapshot is an identifiable subset of the dataset represented by the ReportName. A sessionId or
     * CachedReportConfiguration id can be used here. If a sessionId is specified, Filter, Select, and OrderBy are applied to
     * the data represented by the sessionId. Filter, Select, and OrderBy cannot be specified together with a
     * CachedReportConfiguration id.
     */
    snapshotId?: NullableOption<string>;
    // Status of the export job. Possible values are: unknown, notStarted, inProgress, completed, failed.
    status?: DeviceManagementReportStatus;
    // Temporary location of the exported report
    url?: NullableOption<string>;
}
export interface EnrollmentTroubleshootingEvent extends DeviceManagementTroubleshootingEvent {
    // Azure AD device identifier.
    deviceId?: NullableOption<string>;
    /**
     * Type of the enrollment. Possible values are: unknown, userEnrollment, deviceEnrollmentManager, appleBulkWithUser,
     * appleBulkWithoutUser, windowsAzureADJoin, windowsBulkUserless, windowsAutoEnrollment, windowsBulkAzureDomainJoin,
     * windowsCoManagement, windowsAzureADJoinUsingDeviceAuth, appleUserEnrollment, appleUserEnrollmentWithServiceAccount.
     */
    enrollmentType?: DeviceEnrollmentType;
    /**
     * Highlevel failure category. Possible values are: unknown, authentication, authorization, accountValidation,
     * userValidation, deviceNotSupported, inMaintenance, badRequest, featureNotSupported, enrollmentRestrictionsEnforced,
     * clientDisconnected, userAbandonment.
     */
    failureCategory?: DeviceEnrollmentFailureReason;
    // Detailed failure reason.
    failureReason?: NullableOption<string>;
    // Device identifier created or collected by Intune.
    managedDeviceIdentifier?: NullableOption<string>;
    // Operating System.
    operatingSystem?: NullableOption<string>;
    // OS Version.
    osVersion?: NullableOption<string>;
    // Identifier for the user that tried to enroll the device.
    userId?: NullableOption<string>;
}
export interface ServiceHealth extends Entity {
    /**
     * The service name. Use the list healthOverviews operation to get exact string names for services subscribed by the
     * tenant.
     */
    service?: string;
    /**
     * Show the overall service health status. Possible values are: serviceOperational, investigating, restoringService,
     * verifyingService, serviceRestored, postIncidentReviewPublished, serviceDegradation, serviceInterruption,
     * extendedRecovery, falsePositive, investigationSuspended, resolved, mitigatedExternal, mitigated, resolvedExternal,
     * confirmed, reported, unknownFutureValue. For more information, see serviceHealthStatus values.
     */
    status?: ServiceHealthStatus;
    // A collection of issues that happened on the service, with detailed information for each issue.
    issues?: NullableOption<ServiceHealthIssue[]>;
}
export interface ServiceAnnouncementBase extends Entity {
    // More details about service event. This property doesn't support filters.
    details?: NullableOption<KeyValuePair[]>;
    // The end time of the service event.
    endDateTime?: NullableOption<string>;
    // The last modified time of the service event.
    lastModifiedDateTime?: string;
    // The start time of the service event.
    startDateTime?: string;
    // The title of the service event.
    title?: string;
}
export interface ServiceHealthIssue extends ServiceAnnouncementBase {
    // The type of service health issue. Possible values are: advisory, incident, unknownFutureValue.
    classification?: ServiceHealthClassificationType;
    // The feature name of the service issue.
    feature?: NullableOption<string>;
    // The feature group name of the service issue.
    featureGroup?: NullableOption<string>;
    // The description of the service issue impact.
    impactDescription?: string;
    // Indicates whether the issue is resolved.
    isResolved?: boolean;
    // Indicates the origin of the service issue. Possible values are: microsoft, thirdParty, customer, unknownFutureValue.
    origin?: ServiceHealthOrigin;
    // Collection of historical posts for the service issue.
    posts?: ServiceHealthIssuePost[];
    // Indicates the service affected by the issue.
    service?: string;
    /**
     * The status of the service issue. Possible values are: serviceOperational, investigating, restoringService,
     * verifyingService, serviceRestored, postIncidentReviewPublished, serviceDegradation, serviceInterruption,
     * extendedRecovery, falsePositive, investigationSuspended, resolved, mitigatedExternal, mitigated, resolvedExternal,
     * confirmed, reported, unknownFutureValue. See more in the table below.
     */
    status?: ServiceHealthStatus;
}
export interface ServiceUpdateMessage extends ServiceAnnouncementBase {
    // The expected deadline of the action for the message.
    actionRequiredByDateTime?: NullableOption<string>;
    // The zip file that contains all attachments for a message.
    attachmentsArchive?: NullableOption<any>;
    // The content type and content of the service message body. The supported value for the contentType property is html.
    body?: ItemBody;
    // The service message category. Possible values are: preventOrFixIssue, planForChange, stayInformed, unknownFutureValue.
    category?: ServiceUpdateCategory;
    // Indicates whether the message has any attachment.
    hasAttachments?: boolean;
    // Indicates whether the message describes a major update for the service.
    isMajorChange?: NullableOption<boolean>;
    // The affected services by the service message.
    services?: NullableOption<string[]>;
    // The severity of the service message. Possible values are: normal, high, critical, unknownFutureValue.
    severity?: ServiceUpdateSeverity;
    /**
     * A collection of tags for the service message. Tags are provided by the service team/support team who post the message
     * to tell whether this message contains privacy data, or whether this message is for a service new feature update, and so
     * on.
     */
    tags?: NullableOption<string[]>;
    /**
     * Represents user viewpoints data of the service message. This data includes message status such as whether the user has
     * archived, read, or marked the message as favorite. This property is null when accessed with application permissions.
     */
    viewPoint?: NullableOption<ServiceUpdateMessageViewpoint>;
    // A collection of serviceAnnouncementAttachments.
    attachments?: NullableOption<ServiceAnnouncementAttachment[]>;
}
export interface ServiceAnnouncementAttachment extends Entity {
    // The attachment content.
    content?: NullableOption<any>;
    contentType?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    name?: NullableOption<string>;
    size?: number;
}
// tslint:disable-next-line: no-empty-interface
export interface SearchEntity extends Entity {}
export interface Planner extends Entity {
    // Read-only. Nullable. Returns a collection of the specified buckets
    buckets?: NullableOption<PlannerBucket[]>;
    // Read-only. Nullable. Returns a collection of the specified plans
    plans?: NullableOption<PlannerPlan[]>;
    // Read-only. Nullable. Returns a collection of the specified tasks
    tasks?: NullableOption<PlannerTask[]>;
}
export interface PlannerBucket extends Entity {
    // Name of the bucket.
    name?: string;
    /**
     * Hint used to order items of this type in a list view. For details about the supported format, see Using order hints in
     * Planner.
     */
    orderHint?: NullableOption<string>;
    // Plan ID to which the bucket belongs.
    planId?: NullableOption<string>;
    // Read-only. Nullable. The collection of tasks in the bucket.
    tasks?: NullableOption<PlannerTask[]>;
}
export interface PlannerPlan extends Entity {
    /**
     * Identifies the container of the plan. Specify only the url, the containerId and type, or all properties. After it's
     * set, this property can’t be updated. Required.
     */
    container?: NullableOption<PlannerPlanContainer>;
    // Read-only. The user who created the plan.
    createdBy?: NullableOption<IdentitySet>;
    /**
     * Read-only. Date and time at which the plan is created. The Timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: NullableOption<string>;
    owner?: NullableOption<string>;
    // Required. Title of the plan.
    title?: string;
    // Read-only. Nullable. Collection of buckets in the plan.
    buckets?: NullableOption<PlannerBucket[]>;
    // Read-only. Nullable. Extra details about the plan.
    details?: NullableOption<PlannerPlanDetails>;
    // Read-only. Nullable. Collection of tasks in the plan.
    tasks?: NullableOption<PlannerTask[]>;
}
export interface PlannerTask extends Entity {
    // Number of checklist items with value set to false, representing incomplete items.
    activeChecklistItemCount?: NullableOption<number>;
    // The categories to which the task has been applied. See applied Categories for possible values.
    appliedCategories?: NullableOption<PlannerAppliedCategories>;
    // Hint used to order items of this type in a list view. The format is defined as outlined here.
    assigneePriority?: NullableOption<string>;
    // The set of assignees the task is assigned to.
    assignments?: NullableOption<PlannerAssignments>;
    /**
     * Bucket ID to which the task belongs. The bucket needs to be in the plan that the task is in. It's 28 characters long
     * and case-sensitive. Format validation is done on the service.
     */
    bucketId?: NullableOption<string>;
    // Number of checklist items that are present on the task.
    checklistItemCount?: NullableOption<number>;
    // Identity of the user that completed the task.
    completedBy?: NullableOption<IdentitySet>;
    /**
     * Read-only. Date and time at which the 'percentComplete' of the task is set to '100'. The Timestamp type represents date
     * and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z
     */
    completedDateTime?: NullableOption<string>;
    // Thread ID of the conversation on the task. This is the ID of the conversation thread object created in the group.
    conversationThreadId?: NullableOption<string>;
    // Identity of the user that created the task.
    createdBy?: NullableOption<IdentitySet>;
    /**
     * Read-only. Date and time at which the task is created. The Timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: NullableOption<string>;
    /**
     * Date and time at which the task is due. The Timestamp type represents date and time information using ISO 8601 format
     * and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    dueDateTime?: NullableOption<string>;
    // Read-only. Value is true if the details object of the task has a nonempty description and false otherwise.
    hasDescription?: NullableOption<boolean>;
    // Hint used to order items of this type in a list view. The format is defined as outlined here.
    orderHint?: NullableOption<string>;
    // Percentage of task completion. When set to 100, the task is considered completed.
    percentComplete?: NullableOption<number>;
    // Plan ID to which the task belongs.
    planId?: NullableOption<string>;
    /**
     * This sets the type of preview that shows up on the task. The possible values are: automatic, noPreview, checklist,
     * description, reference.
     */
    previewType?: NullableOption<PlannerPreviewType>;
    /**
     * Priority of the task. The valid range of values is between 0 and 10, with the increasing value being lower priority (0
     * has the highest priority and 10 has the lowest priority). Currently, Planner interprets values 0 and 1 as 'urgent', 2,
     * 3 and 4 as 'important', 5, 6, and 7 as 'medium', and 8, 9, and 10 as 'low'. Additionally, Planner sets the value 1 for
     * 'urgent', 3 for 'important', 5 for 'medium', and 9 for 'low'.
     */
    priority?: NullableOption<number>;
    // Number of external references that exist on the task.
    referenceCount?: NullableOption<number>;
    /**
     * Date and time at which the task starts. The Timestamp type represents date and time information using ISO 8601 format
     * and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    startDateTime?: NullableOption<string>;
    // Title of the task.
    title?: string;
    // Read-only. Nullable. Used to render the task correctly in the task board view when grouped by assignedTo.
    assignedToTaskBoardFormat?: NullableOption<PlannerAssignedToTaskBoardTaskFormat>;
    // Read-only. Nullable. Used to render the task correctly in the task board view when grouped by bucket.
    bucketTaskBoardFormat?: NullableOption<PlannerBucketTaskBoardTaskFormat>;
    // Read-only. Nullable. More details about the task.
    details?: NullableOption<PlannerTaskDetails>;
    // Read-only. Nullable. Used to render the task correctly in the task board view when grouped by progress.
    progressTaskBoardFormat?: NullableOption<PlannerProgressTaskBoardTaskFormat>;
}
export interface PlannerAssignedToTaskBoardTaskFormat extends Entity {
    /**
     * Dictionary of hints used to order tasks on the AssignedTo view of the Task Board. The key of each entry is one of the
     * users the task is assigned to and the value is the order hint. The format of each value is defined as outlined here.
     */
    orderHintsByAssignee?: NullableOption<PlannerOrderHintsByAssignee>;
    /**
     * Hint value used to order the task on the AssignedTo view of the Task Board when the task isn't assigned to anyone, or
     * if the orderHintsByAssignee dictionary doesn't provide an order hint for the user the task is assigned to. The format
     * is defined as outlined here.
     */
    unassignedOrderHint?: NullableOption<string>;
}
export interface PlannerBucketTaskBoardTaskFormat extends Entity {
    /**
     * Hint used to order tasks in the bucket view of the task board. For details about the supported format, see Using order
     * hints in Planner.
     */
    orderHint?: NullableOption<string>;
}
export interface PlannerPlanDetails extends Entity {
    // An object that specifies the descriptions of the 25 categories that can be associated with tasks in the plan.
    categoryDescriptions?: NullableOption<PlannerCategoryDescriptions>;
    /**
     * Set of user IDs that this plan is shared with. If you're using Microsoft 365 groups, use the Groups API to manage group
     * membership to share the group's plan. You can also add existing members of the group to this collection, although it
     * isn't required for them to access the plan owned by the group.
     */
    sharedWith?: NullableOption<PlannerUserIds>;
}
export interface PlannerProgressTaskBoardTaskFormat extends Entity {
    /**
     * Hint value used to order the task on the progress view of the task board. For details about the supported format, see
     * Using order hints in Planner.
     */
    orderHint?: NullableOption<string>;
}
export interface PlannerTaskDetails extends Entity {
    // The collection of checklist items on the task.
    checklist?: NullableOption<PlannerChecklistItems>;
    // Description of the task.
    description?: NullableOption<string>;
    /**
     * This sets the type of preview that shows up on the task. The possible values are: automatic, noPreview, checklist,
     * description, reference. When set to automatic the displayed preview is chosen by the app viewing the task.
     */
    previewType?: NullableOption<PlannerPreviewType>;
    // The collection of references on the task.
    references?: NullableOption<PlannerExternalReferences>;
}
export interface SharedInsight extends Entity {
    // Details about the shared item. Read only.
    lastShared?: NullableOption<SharingDetail>;
    // Reference properties of the shared document, such as the url and type of the document. Read-only
    resourceReference?: NullableOption<ResourceReference>;
    // Properties that you can use to visualize the document in your experience. Read-only
    resourceVisualization?: NullableOption<ResourceVisualization>;
    sharingHistory?: NullableOption<SharingDetail[]>;
    lastSharedMethod?: NullableOption<Entity>;
    /**
     * Used for navigating to the item that was shared. For file attachments, the type is fileAttachment. For linked
     * attachments, the type is driveItem.
     */
    resource?: NullableOption<Entity>;
}
export interface Trending extends Entity {
    lastModifiedDateTime?: NullableOption<string>;
    // Reference properties of the trending document, such as the url and type of the document.
    resourceReference?: NullableOption<ResourceReference>;
    // Properties that you can use to visualize the document in your experience.
    resourceVisualization?: NullableOption<ResourceVisualization>;
    /**
     * Value indicating how much the document is currently trending. The larger the number, the more the document is currently
     * trending around the user (the more relevant it is). Returned documents are sorted by this value.
     */
    weight?: number;
    // Used for navigating to the trending document.
    resource?: NullableOption<Entity>;
}
export interface UsedInsight extends Entity {
    // Information about when the item was last viewed or modified by the user. Read only.
    lastUsed?: NullableOption<UsageDetails>;
    // Reference properties of the used document, such as the url and type of the document. Read-only
    resourceReference?: NullableOption<ResourceReference>;
    // Properties that you can use to visualize the document in your experience. Read-only
    resourceVisualization?: NullableOption<ResourceVisualization>;
    /**
     * Used for navigating to the item that was used. For file attachments, the type is fileAttachment. For linked
     * attachments, the type is driveItem.
     */
    resource?: NullableOption<Entity>;
}
export interface ChangeTrackedEntity extends Entity {
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: NullableOption<string>;
    // Identity of the person who last modified the entity.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastModifiedDateTime?: NullableOption<string>;
}
export interface ShiftPreferences extends ChangeTrackedEntity {
    // Availability of the user to be scheduled for work and its recurrence pattern.
    availability?: NullableOption<ShiftAvailability[]>;
}
export interface OnenoteEntityBaseModel extends Entity {
    // The endpoint where you can get details about the page. Read-only.
    self?: NullableOption<string>;
}
export interface OnenoteEntitySchemaObjectModel extends OnenoteEntityBaseModel {
    /**
     * The date and time when the page was created. The timestamp represents date and time information using ISO 8601 format
     * and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    createdDateTime?: NullableOption<string>;
}
export interface OnenoteEntityHierarchyModel extends OnenoteEntitySchemaObjectModel {
    // Identity of the user, device, and application that created the item. Read-only.
    createdBy?: NullableOption<IdentitySet>;
    // The name of the notebook.
    displayName?: NullableOption<string>;
    // Identity of the user, device, and application that created the item. Read-only.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * The date and time when the notebook was last modified. The timestamp represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    lastModifiedDateTime?: NullableOption<string>;
}
export interface Notebook extends OnenoteEntityHierarchyModel {
    // Indicates whether this is the user's default notebook. Read-only.
    isDefault?: NullableOption<boolean>;
    /**
     * Indicates whether the notebook is shared. If true, the contents of the notebook can be seen by people other than the
     * owner. Read-only.
     */
    isShared?: NullableOption<boolean>;
    /**
     * Links for opening the notebook. The oneNoteClientURL link opens the notebook in the OneNote native client if it's
     * installed. The oneNoteWebURL link opens the notebook in OneNote on the web.
     */
    links?: NullableOption<NotebookLinks>;
    // The URL for the sectionGroups navigation property, which returns all the section groups in the notebook. Read-only.
    sectionGroupsUrl?: NullableOption<string>;
    // The URL for the sections navigation property, which returns all the sections in the notebook. Read-only.
    sectionsUrl?: NullableOption<string>;
    /**
     * Possible values are: Owner, Contributor, Reader, None. Owner represents owner-level access to the notebook. Contributor
     * represents read/write access to the notebook. Reader represents read-only access to the notebook. Read-only.
     */
    userRole?: NullableOption<OnenoteUserRole>;
    // The section groups in the notebook. Read-only. Nullable.
    sectionGroups?: NullableOption<SectionGroup[]>;
    // The sections in the notebook. Read-only. Nullable.
    sections?: NullableOption<OnenoteSection[]>;
}
export interface SectionGroup extends OnenoteEntityHierarchyModel {
    /**
     * The URL for the sectionGroups navigation property, which returns all the section groups in the section group.
     * Read-only.
     */
    sectionGroupsUrl?: NullableOption<string>;
    // The URL for the sections navigation property, which returns all the sections in the section group. Read-only.
    sectionsUrl?: NullableOption<string>;
    // The notebook that contains the section group. Read-only.
    parentNotebook?: NullableOption<Notebook>;
    // The section group that contains the section group. Read-only.
    parentSectionGroup?: NullableOption<SectionGroup>;
    // The section groups in the section. Read-only. Nullable.
    sectionGroups?: NullableOption<SectionGroup[]>;
    // The sections in the section group. Read-only. Nullable.
    sections?: NullableOption<OnenoteSection[]>;
}
export interface OnenoteSection extends OnenoteEntityHierarchyModel {
    // Indicates whether this is the user's default section. Read-only.
    isDefault?: NullableOption<boolean>;
    /**
     * Links for opening the section. The oneNoteClientURL link opens the section in the OneNote native client if it's
     * installed. The oneNoteWebURL link opens the section in OneNote on the web.
     */
    links?: NullableOption<SectionLinks>;
    // The pages endpoint where you can get details for all the pages in the section. Read-only.
    pagesUrl?: NullableOption<string>;
    // The collection of pages in the section. Read-only. Nullable.
    pages?: NullableOption<OnenotePage[]>;
    // The notebook that contains the section. Read-only.
    parentNotebook?: NullableOption<Notebook>;
    // The section group that contains the section. Read-only.
    parentSectionGroup?: NullableOption<SectionGroup>;
}
export interface Operation extends Entity {
    // The start time of the operation.
    createdDateTime?: NullableOption<string>;
    // The time of the last action of the operation.
    lastActionDateTime?: NullableOption<string>;
    // The current status of the operation: notStarted, running, completed, failed
    status?: NullableOption<OperationStatus>;
}
export interface OnenoteOperation extends Operation {
    // The error returned by the operation.
    error?: NullableOption<OnenoteOperationError>;
    // The operation percent complete if the operation is still in running status.
    percentComplete?: NullableOption<string>;
    // The resource id.
    resourceId?: NullableOption<string>;
    // The resource URI for the object. For example, the resource URI for a copied page or section.
    resourceLocation?: NullableOption<string>;
}
export interface OnenotePage extends OnenoteEntitySchemaObjectModel {
    // The page's HTML content.
    content?: NullableOption<any>;
    // The URL for the page's HTML content. Read-only.
    contentUrl?: NullableOption<string>;
    // The unique identifier of the application that created the page. Read-only.
    createdByAppId?: NullableOption<string>;
    /**
     * The date and time when the page was last modified. The timestamp represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // The indentation level of the page. Read-only.
    level?: NullableOption<number>;
    /**
     * Links for opening the page. The oneNoteClientURL link opens the page in the OneNote native client if it 's installed.
     * The oneNoteWebUrl link opens the page in OneNote on the web. Read-only.
     */
    links?: NullableOption<PageLinks>;
    // The order of the page within its parent section. Read-only.
    order?: NullableOption<number>;
    // The title of the page.
    title?: NullableOption<string>;
    userTags?: NullableOption<string[]>;
    // The notebook that contains the page. Read-only.
    parentNotebook?: NullableOption<Notebook>;
    // The section that contains the page. Read-only.
    parentSection?: NullableOption<OnenoteSection>;
}
export interface OnenoteResource extends OnenoteEntityBaseModel {
    // The content stream
    content?: NullableOption<any>;
    // The URL for downloading the content
    contentUrl?: NullableOption<string>;
}
export interface DelegatedAdminAccessAssignment extends Entity {
    // The access container through which members are assigned access. For example, a security group.
    accessContainer?: DelegatedAdminAccessContainer;
    /**
     * The access details containing the identifiers of the administrative roles that the partner is assigned in the customer
     * tenant.
     */
    accessDetails?: DelegatedAdminAccessDetails;
    // The date and time in ISO 8601 format and in UTC time when the access assignment was created. Read-only.
    createdDateTime?: NullableOption<string>;
    // The date and time in ISO 8601 and in UTC time when this access assignment was last modified. Read-only.
    lastModifiedDateTime?: NullableOption<string>;
    /**
     * The status of the access assignment. Read-only. The possible values are: pending, active, deleting, deleted, error,
     * unknownFutureValue.
     */
    status?: NullableOption<DelegatedAdminAccessAssignmentStatus>;
}
export interface DelegatedAdminServiceManagementDetail extends Entity {
    // The URL of the management portal for the managed service. Read-only.
    serviceManagementUrl?: string;
    // The name of a managed service. Read-only.
    serviceName?: string;
}
export interface DelegatedAdminRelationshipOperation extends Entity {
    // The time in ISO 8601 format and in UTC time when the long-running operation was created. Read-only.
    createdDateTime?: string;
    // The data (payload) for the operation. Read-only.
    data?: string;
    // The time in ISO 8601 format and in UTC time when the long-running operation was last modified. Read-only.
    lastModifiedDateTime?: string;
    /**
     * The type of long-running operation. The possible values are: delegatedAdminAccessAssignmentUpdate, unknownFutureValue.
     * Read-only.
     */
    operationType?: DelegatedAdminRelationshipOperationType;
    /**
     * The status of the operation. Read-only. The possible values are: notStarted, running, succeeded, failed,
     * unknownFutureValue. Read-only. Supports $orderby.
     */
    status?: LongRunningOperationStatus;
}
export interface DelegatedAdminRelationshipRequest extends Entity {
    /**
     * The action to be performed on the delegated admin relationship. The possible values are: lockForApproval, approve,
     * terminate, unknownFutureValue, reject. Note that you must use the Prefer: include-unknown-enum-members request header
     * to get the following value(s) in this evolvable enum: reject. For a partner to finalize a relationship in the created
     * status, set the action to lockForApproval. For a partner to terminate a relationship in the active status, set the
     * action to terminate. For an indirect reseller to approve a relationship created by an indirect provider in the
     * approvalPending status, set the action to approve. For an indirect reseller to reject a relationship created by an
     * indirect provider in the approvalPending status, set the action to reject.
     */
    action?: DelegatedAdminRelationshipRequestAction;
    // The date and time in ISO 8601 format and in UTC time when the relationship request was created. Read-only.
    createdDateTime?: NullableOption<string>;
    // The date and time in ISO 8601 format and UTC time when this relationship request was last modified. Read-only.
    lastModifiedDateTime?: NullableOption<string>;
    // The status of the request. Read-only. The possible values are: created, pending, succeeded, failed, unknownFutureValue.
    status?: NullableOption<DelegatedAdminRelationshipRequestStatus>;
}
export interface ResellerDelegatedAdminRelationship extends DelegatedAdminRelationship {
    // The tenant ID of the indirect provider partner who created the relationship for the indirect reseller partner.
    indirectProviderTenantId?: string;
    /**
     * Indicates the indirect reseller partner consent status. true indicates that the partner has yet to review the
     * relationship; false indicates that the partner has already provided consent by approving or rejecting the relationship.
     */
    isPartnerConsentPending?: boolean;
}
export interface ProfileCardProperty extends Entity {
    /**
     * Allows an administrator to set a custom display label for the directory property and localize it for the users in their
     * tenant.
     */
    annotations?: NullableOption<ProfileCardAnnotation[]>;
    /**
     * Identifies a profileCardProperty resource in Get, Update, or Delete operations. Allows an administrator to surface
     * hidden Microsoft Entra ID properties on the Microsoft 365 profile card within their tenant. When present, the Microsoft
     * Entra ID field referenced in this property is visible to all users in your tenant on the contact pane of the profile
     * card. Allowed values for this field are: UserPrincipalName, Fax, StreetAddress, PostalCode, StateOrProvince, Alias,
     * CustomAttribute1, CustomAttribute2, CustomAttribute3, CustomAttribute4, CustomAttribute5, CustomAttribute6,
     * CustomAttribute7, CustomAttribute8, CustomAttribute9, CustomAttribute10, CustomAttribute11, CustomAttribute12,
     * CustomAttribute13, CustomAttribute14, CustomAttribute15.
     */
    directoryPropertyName?: NullableOption<string>;
}
export interface UnifiedRoleManagementPolicyRule extends Entity {
    /**
     * Defines details of scope that's targeted by role management policy rule. The details can include the principal type,
     * the role assignment type, and actions affecting a role. Supports $filter (eq, ne).
     */
    target?: NullableOption<UnifiedRoleManagementPolicyRuleTarget>;
}
export interface UnifiedRoleManagementPolicyApprovalRule extends UnifiedRoleManagementPolicyRule {
    // The settings for approval of the role assignment.
    setting?: NullableOption<ApprovalSettings>;
}
export interface UnifiedRoleManagementPolicyAuthenticationContextRule extends UnifiedRoleManagementPolicyRule {
    // The value of the authentication context claim.
    claimValue?: NullableOption<string>;
    // Determines whether this rule is enabled.
    isEnabled?: NullableOption<boolean>;
}
export interface UnifiedRoleManagementPolicyEnablementRule extends UnifiedRoleManagementPolicyRule {
    /**
     * The collection of rules that are enabled for this policy rule. For example, MultiFactorAuthentication, Ticketing, and
     * Justification.
     */
    enabledRules?: NullableOption<string[]>;
}
export interface UnifiedRoleManagementPolicyExpirationRule extends UnifiedRoleManagementPolicyRule {
    // Indicates whether expiration is required or if it's a permanently active assignment or eligibility.
    isExpirationRequired?: NullableOption<boolean>;
    /**
     * The maximum duration allowed for eligibility or assignment that isn't permanent. Required when isExpirationRequired is
     * true.
     */
    maximumDuration?: NullableOption<string>;
}
export interface UnifiedRoleManagementPolicyNotificationRule extends UnifiedRoleManagementPolicyRule {
    // Indicates whether a default recipient will receive the notification email.
    isDefaultRecipientsEnabled?: NullableOption<boolean>;
    // The level of notification. The possible values are None, Critical, All.
    notificationLevel?: NullableOption<string>;
    // The list of recipients of the email notifications.
    notificationRecipients?: NullableOption<string[]>;
    // The type of notification. Only Email is supported.
    notificationType?: NullableOption<string>;
    // The type of recipient of the notification. The possible values are Requestor, Approver, Admin.
    recipientType?: NullableOption<string>;
}
export interface PrinterBase extends Entity {
    // The capabilities of the printer/printerShare.
    capabilities?: NullableOption<PrinterCapabilities>;
    // The default print settings of printer/printerShare.
    defaults?: NullableOption<PrinterDefaults>;
    // The name of the printer/printerShare.
    displayName?: string;
    // Specifies whether the printer/printerShare is currently accepting new print jobs.
    isAcceptingJobs?: NullableOption<boolean>;
    // The physical and/or organizational location of the printer/printerShare.
    location?: NullableOption<PrinterLocation>;
    // The manufacturer of the printer/printerShare.
    manufacturer?: NullableOption<string>;
    // The model name of the printer/printerShare.
    model?: NullableOption<string>;
    // The processing status of the printer/printerShare, including any errors.
    status?: PrinterStatus;
    // The list of jobs that are queued for printing by the printer/printerShare.
    jobs?: NullableOption<PrintJob[]>;
}
export interface PrinterShare extends PrinterBase {
    /**
     * If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by
     * the allowedUsers and allowedGroups navigation properties.
     */
    allowAllUsers?: boolean;
    // The DateTimeOffset when the printer share was created. Read-only.
    createdDateTime?: string;
    // Additional data for a printer share as viewed by the signed-in user.
    viewPoint?: NullableOption<PrinterShareViewpoint>;
    // The groups whose users have access to print using the printer.
    allowedGroups?: NullableOption<Group[]>;
    // The users who have access to print using the printer.
    allowedUsers?: NullableOption<User[]>;
    // The printer that this printer share is related to.
    printer?: NullableOption<Printer>;
}
export interface Print {
    // Tenant-wide settings for the Universal Print service.
    settings?: NullableOption<PrintSettings>;
    // The list of available print connectors.
    connectors?: NullableOption<PrintConnector[]>;
    // The list of print long running operations.
    operations?: NullableOption<PrintOperation[]>;
    // The list of printers registered in the tenant.
    printers?: NullableOption<Printer[]>;
    // The list of available Universal Print service endpoints.
    services?: NullableOption<PrintService[]>;
    // The list of printer shares registered in the tenant.
    shares?: NullableOption<PrinterShare[]>;
    // List of abstract definition for a task that can be triggered when various events occur within Universal Print.
    taskDefinitions?: NullableOption<PrintTaskDefinition[]>;
}
export interface PrintConnector extends Entity {
    // The connector's version.
    appVersion?: string;
    // The name of the connector.
    displayName?: string;
    // The connector machine's hostname.
    fullyQualifiedDomainName?: string;
    // The physical and/or organizational location of the connector.
    location?: NullableOption<PrinterLocation>;
    // The connector machine's operating system version.
    operatingSystem?: string;
    // The DateTimeOffset when the connector was registered.
    registeredDateTime?: string;
}
export interface PrintOperation extends Entity {
    // The DateTimeOffset when the operation was created. Read-only.
    createdDateTime?: string;
    // The status of the operation. Read-only.
    status?: PrintOperationStatus;
}
export interface Printer extends PrinterBase {
    // True if the printer has a physical device for printing. Read-only.
    hasPhysicalDevice?: boolean;
    // True if the printer is shared; false otherwise. Read-only.
    isShared?: boolean;
    // The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.
    lastSeenDateTime?: NullableOption<string>;
    // The DateTimeOffset when the printer was registered. Read-only.
    registeredDateTime?: string;
    // The connectors that are associated with the printer.
    connectors?: NullableOption<PrintConnector[]>;
    /**
     * The list of printerShares that are associated with the printer. Currently, only one printerShare can be associated with
     * the printer. Read-only. Nullable.
     */
    shares?: NullableOption<PrinterShare[]>;
    // A list of task triggers that are associated with the printer.
    taskTriggers?: NullableOption<PrintTaskTrigger[]>;
}
export interface PrintService extends Entity {
    // Endpoints that can be used to access the service. Read-only. Nullable.
    endpoints?: NullableOption<PrintServiceEndpoint[]>;
}
export interface PrintTaskDefinition extends Entity {
    // The application that created the printTaskDefinition. Read-only.
    createdBy?: AppIdentity;
    // The name of the printTaskDefinition.
    displayName?: string;
    /**
     * A list of tasks that have been created based on this definition. The list includes currently running tasks and recently
     * completed tasks. Read-only.
     */
    tasks?: NullableOption<PrintTask[]>;
}
export interface PrintDocument extends Entity {
    // The document's content (MIME) type. Read-only.
    contentType?: NullableOption<string>;
    // The document's name. Read-only.
    displayName?: NullableOption<string>;
    // The document's size in bytes. Read-only.
    size?: number;
}
export interface PrintTaskTrigger extends Entity {
    /**
     * The Universal Print event that causes a new printTask to be triggered. Valid values are described in the following
     * table.
     */
    event?: PrintEvent;
    // An abstract definition that is used to create a printTask when triggered by a print event. Read-only.
    definition?: PrintTaskDefinition;
}
export interface PrintJob extends Entity {
    // A group of settings that a printer should use to print a job.
    configuration?: PrintJobConfiguration;
    createdBy?: NullableOption<UserIdentity>;
    // The DateTimeOffset when the job was created. Read-only.
    createdDateTime?: string;
    // If true, document can be fetched by printer.
    isFetchable?: boolean;
    // Contains the source job URL, if the job has been redirected from another printer.
    redirectedFrom?: NullableOption<string>;
    // Contains the destination job URL, if the job has been redirected to another printer.
    redirectedTo?: NullableOption<string>;
    // The status of the print job. Read-only.
    status?: PrintJobStatus;
    documents?: NullableOption<PrintDocument[]>;
    // A list of printTasks that were triggered by this print job.
    tasks?: NullableOption<PrintTask[]>;
}
export interface PrinterCreateOperation extends PrintOperation {
    // The signed certificate created during the registration process. Read-only.
    certificate?: NullableOption<string>;
    // The created printer entity. Read-only.
    printer?: NullableOption<Printer>;
}
export interface PrintTask extends Entity {
    /**
     * The URL for the print entity that triggered this task. For example,
     * https://graph.microsoft.com/v1.0/print/printers/{printerId}/jobs/{jobId}. Read-only.
     */
    parentUrl?: string;
    /**
     * The current execution status of this printTask. The calling application is responsible for updating this status when
     * processing is finished, unless the related printJob has been redirected to another printer. Failure to report
     * completion will result in the related print job being blocked from printing and eventually deleted.
     */
    status?: PrintTaskStatus;
    // The printTaskDefinition that was used to create this task. Read-only.
    definition?: PrintTaskDefinition;
    // The printTaskTrigger that triggered this task's execution. Read-only.
    trigger?: PrintTaskTrigger;
}
export interface PrintServiceEndpoint extends Entity {
    // A human-readable display name for the endpoint.
    displayName?: string;
    // The URI that can be used to access the service.
    uri?: string;
}
export interface ActivityHistoryItem extends Entity {
    /**
     * Optional. The duration of active user engagement. if not supplied, this is calculated from the startedDateTime and
     * lastActiveDateTime.
     */
    activeDurationSeconds?: NullableOption<number>;
    // Set by the server. DateTime in UTC when the object was created on the server.
    createdDateTime?: NullableOption<string>;
    // Optional. UTC DateTime when the historyItem will undergo hard-delete. Can be set by the client.
    expirationDateTime?: NullableOption<string>;
    /**
     * Optional. UTC DateTime when the historyItem (activity session) was last understood as active or finished - if null,
     * historyItem status should be Ongoing.
     */
    lastActiveDateTime?: NullableOption<string>;
    // Set by the server. DateTime in UTC when the object was modified on the server.
    lastModifiedDateTime?: NullableOption<string>;
    // Required. UTC DateTime when the historyItem (activity session) was started. Required for timeline history.
    startedDateTime?: string;
    // Set by the server. A status code used to identify valid objects. Values: active, updated, deleted, ignored.
    status?: NullableOption<Status>;
    /**
     * Optional. The timezone in which the user's device used to generate the activity was located at activity creation time.
     * Values supplied as Olson IDs in order to support cross-platform representation.
     */
    userTimezone?: NullableOption<string>;
    // Optional. NavigationProperty/Containment; navigation property to the associated activity.
    activity?: UserActivity;
}
export interface DataPolicyOperation extends Entity {
    /**
     * Represents when the request for this data policy operation was completed, in UTC time, using the ISO 8601 format. For
     * example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Null until the operation completes.
     */
    completedDateTime?: NullableOption<string>;
    // Specifies the progress of an operation.
    progress?: number;
    // Possible values are: notStarted, running, complete, failed, unknownFutureValue.
    status?: NullableOption<DataPolicyOperationStatus>;
    // The URL location to where data is being exported for export requests.
    storageLocation?: NullableOption<string>;
    /**
     * Represents when the request for this data operation was submitted, in UTC time, using the ISO 8601 format. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    submittedDateTime?: string;
    // The id for the user on whom the operation is performed.
    userId?: string;
}
export interface EndUserNotification extends Entity {
    // Identity of the user who created the notification.
    createdBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the notification was created. The timestamp type represents date and time information using ISO 8601
     * format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // Description of the notification as defined by the user.
    description?: NullableOption<string>;
    // Name of the notification as defined by the user.
    displayName?: NullableOption<string>;
    // Identity of the user who last modified the notification.
    lastModifiedBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the notification was last modified. The timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
    /**
     * Type of notification. Possible values are: unknown, positiveReinforcement, noTraining, trainingAssignment,
     * trainingReminder, unknownFutureValue.
     */
    notificationType?: NullableOption<EndUserNotificationType>;
    // The source of the content. Possible values are: unknown, global, tenant, unknownFutureValue.
    source?: NullableOption<SimulationContentSource>;
    // The status of the notification. Possible values are: unknown, draft, ready, archive, delete, unknownFutureValue.
    status?: NullableOption<SimulationContentStatus>;
    // Supported locales for endUserNotification content.
    supportedLocales?: NullableOption<string[]>;
    details?: NullableOption<EndUserNotificationDetail[]>;
}
export interface Training extends Entity {
    /**
     * Training availability status. Possible values are: unknown, notAvailable, available, archive, delete,
     * unknownFutureValue.
     */
    availabilityStatus?: NullableOption<TrainingAvailabilityStatus>;
    // Identity of the user who created the training.
    createdBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the training was created. The timestamp type represents date and time information using ISO 8601
     * format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // The description for the training.
    description?: NullableOption<string>;
    // The display name for the training.
    displayName?: NullableOption<string>;
    // Training duration.
    durationInMinutes?: NullableOption<number>;
    // Indicates whether the training has any evaluation.
    hasEvaluation?: NullableOption<boolean>;
    // Identity of the user who last modified the training.
    lastModifiedBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the training was last modified. The timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // Training content source. Possible values are: unknown, global, tenant, unknownFutureValue.
    source?: NullableOption<SimulationContentSource>;
    // Supported locales for content for the associated training.
    supportedLocales?: NullableOption<string[]>;
    // Training tags.
    tags?: NullableOption<string[]>;
    // The type of training. Possible values are: unknown, phishing, unknownFutureValue.
    type?: NullableOption<TrainingType>;
    // Language specific details on a training.
    languageDetails?: NullableOption<TrainingLanguageDetail[]>;
}
export interface AttackSimulationOperation extends LongRunningOperation {
    // Percentage of completion of the respective operation.
    percentageCompleted?: number;
    // Tenant identifier.
    tenantId?: NullableOption<string>;
    // The attack simulation operation type. Possible values are: createSimulation, updateSimulation, unknownFutureValue.
    type?: NullableOption<AttackSimulationOperationType>;
}
export interface LandingPage extends Entity {
    // Identity of the user who created the landing page.
    createdBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the landing page was created. The timestamp type represents date and time information using ISO 8601
     * format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // Description of the landing page as defined by the user.
    description?: NullableOption<string>;
    // The display name of the landing page.
    displayName?: NullableOption<string>;
    // Email identity of the user who last modified the landing page.
    lastModifiedBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the landing page was last modified. The timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // Content locale.
    locale?: NullableOption<string>;
    // The source of the content. Possible values are: unknown, global, tenant, unknownFutureValue.
    source?: NullableOption<SimulationContentSource>;
    // The status of the simulation. Possible values are: unknown, draft, ready, archive, delete, unknownFutureValue.
    status?: NullableOption<SimulationContentStatus>;
    // Supported locales.
    supportedLocales?: NullableOption<string[]>;
    // The detail information for a landing page associated with a simulation during its creation.
    details?: NullableOption<LandingPageDetail[]>;
}
export interface LoginPage extends Entity {
    // The HTML content of the login page.
    content?: NullableOption<string>;
    // Identity of the user who created the login page.
    createdBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the login page was created. The timestamp type represents date and time information using ISO 8601
     * format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // Description about the login page.
    description?: NullableOption<string>;
    // Display name of the login page.
    displayName?: NullableOption<string>;
    // The content language of the login page.
    language?: NullableOption<string>;
    // Identity of the user who last modified the login page.
    lastModifiedBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the login page was last modified. The timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // The source of the content. Possible values are: unknown, global, tenant, unknownFutureValue.
    source?: NullableOption<SimulationContentSource>;
    // The login page status. Possible values are: unknown, draft, ready, archive, delete, unknownFutureValue.
    status?: NullableOption<SimulationContentStatus>;
}
export interface Payload extends Entity {
    /**
     * The branch of a payload. Possible values are: unknown, other, americanExpress, capitalOne, dhl, docuSign, dropbox,
     * facebook, firstAmerican, microsoft, netflix, scotiabank, sendGrid, stewartTitle, tesco, wellsFargo, syrinxCloud, adobe,
     * teams, zoom, unknownFutureValue.
     */
    brand?: NullableOption<PayloadBrand>;
    // The complexity of a payload. Possible values are: unknown, low, medium, high, unknownFutureValue.
    complexity?: NullableOption<PayloadComplexity>;
    // Identity of the user who created the attack simulation and training campaign payload.
    createdBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the attack simulation and training campaign payload. The timestamp type represents date and time
     * information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // Description of the attack simulation and training campaign payload.
    description?: NullableOption<string>;
    // Additional details about the payload.
    detail?: NullableOption<PayloadDetail>;
    // Display name of the attack simulation and training campaign payload. Supports $filter and $orderby.
    displayName?: NullableOption<string>;
    /**
     * Industry of a payload. Possible values are: unknown, other, banking, businessServices, consumerServices, education,
     * energy, construction, consulting, financialServices, government, hospitality, insurance, legal, courierServices, IT,
     * healthcare, manufacturing, retail, telecom, realEstate, unknownFutureValue.
     */
    industry?: NullableOption<PayloadIndustry>;
    /**
     * Indicates whether the attack simulation and training campaign payload was created from an automation flow. Supports
     * $filter and $orderby.
     */
    isAutomated?: NullableOption<boolean>;
    // Indicates whether the payload is controversial.
    isControversial?: NullableOption<boolean>;
    // Indicates whether the payload is from any recent event.
    isCurrentEvent?: NullableOption<boolean>;
    // Payload language.
    language?: NullableOption<string>;
    // Identity of the user who most recently modified the attack simulation and training campaign payload.
    lastModifiedBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the attack simulation and training campaign payload was last modified. The timestamp type represents
     * date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // Free text tags for a payload.
    payloadTags?: NullableOption<string[]>;
    // The payload delivery platform for a simulation. Possible values are: unknown, sms, email, teams, unknownFutureValue.
    platform?: NullableOption<PayloadDeliveryPlatform>;
    // Predicted probability for a payload to phish a targeted user.
    predictedCompromiseRate?: NullableOption<number>;
    /**
     * Attack type of the attack simulation and training campaign. Supports $filter and $orderby. Possible values are:
     * unknown, social, cloud, endpoint, unknownFutureValue.
     */
    simulationAttackType?: NullableOption<SimulationAttackType>;
    /**
     * Simulation content source. Supports $filter and $orderby. Possible values are: unknown, global, tenant,
     * unknownFutureValue.
     */
    source?: SimulationContentSource;
    /**
     * Simulation content status. Supports $filter and $orderby. Possible values are: unknown, draft, ready, archive, delete,
     * unknownFutureValue.
     */
    status?: NullableOption<SimulationContentStatus>;
    /**
     * The social engineering technique used in the attack simulation and training campaign. Supports $filter and $orderby.
     * Possible values are: unknown, credentialHarvesting, attachmentMalware, driveByUrl, linkInAttachment, linkToMalwareFile,
     * unknownFutureValue, oAuthConsentGrant. Note that you must use the Prefer: include-unknown-enum-members request header
     * to get the following values from this evolvable enum: oAuthConsentGrant. For more information on the types of social
     * engineering attack techniques, see simulations.
     */
    technique?: NullableOption<SimulationAttackTechnique>;
    /**
     * The theme of a payload. Possible values are: unknown, other, accountActivation, accountVerification, billing,
     * cleanUpMail, controversial, documentReceived, expense, fax, financeReport, incomingMessages, invoice, itemReceived,
     * loginAlert, mailReceived, password, payment, payroll, personalizedOffer, quarantine, remoteWork, reviewMessage,
     * securityUpdate, serviceSuspended, signatureRequired, upgradeMailboxStorage, verifyMailbox, voicemail, advertisement,
     * employeeEngagement, unknownFutureValue.
     */
    theme?: NullableOption<PayloadTheme>;
}
export interface SimulationAutomation extends Entity {
    // Identity of the user who created the attack simulation automation.
    createdBy?: NullableOption<EmailIdentity>;
    // Date and time when the attack simulation automation was created.
    createdDateTime?: NullableOption<string>;
    // Description of the attack simulation automation.
    description?: NullableOption<string>;
    // Display name of the attack simulation automation. Supports $filter and $orderby.
    displayName?: NullableOption<string>;
    // Identity of the user who most recently modified the attack simulation automation.
    lastModifiedBy?: NullableOption<EmailIdentity>;
    // Date and time when the attack simulation automation was most recently modified.
    lastModifiedDateTime?: NullableOption<string>;
    // Date and time of the latest run of the attack simulation automation.
    lastRunDateTime?: NullableOption<string>;
    // Date and time of the upcoming run of the attack simulation automation.
    nextRunDateTime?: NullableOption<string>;
    /**
     * Status of the attack simulation automation. Supports $filter and $orderby. The possible values are: unknown, draft,
     * notRunning, running, completed, unknownFutureValue.
     */
    status?: NullableOption<SimulationAutomationStatus>;
    // A collection of simulation automation runs.
    runs?: NullableOption<SimulationAutomationRun[]>;
}
export interface Simulation extends Entity {
    /**
     * The social engineering technique used in the attack simulation and training campaign. Supports $filter and $orderby.
     * Possible values are: unknown, credentialHarvesting, attachmentMalware, driveByUrl, linkInAttachment, linkToMalwareFile,
     * unknownFutureValue, oAuthConsentGrant. Note that you must use the Prefer: include-unknown-enum-members request header
     * to get the following values from this evolvable enum: oAuthConsentGrant. For more information on the types of social
     * engineering attack techniques, see simulations.
     */
    attackTechnique?: NullableOption<SimulationAttackTechnique>;
    /**
     * Attack type of the attack simulation and training campaign. Supports $filter and $orderby. Possible values are:
     * unknown, social, cloud, endpoint, unknownFutureValue.
     */
    attackType?: NullableOption<SimulationAttackType>;
    // Unique identifier for the attack simulation automation.
    automationId?: NullableOption<string>;
    // Date and time of completion of the attack simulation and training campaign. Supports $filter and $orderby.
    completionDateTime?: NullableOption<string>;
    // Identity of the user who created the attack simulation and training campaign.
    createdBy?: NullableOption<EmailIdentity>;
    // Date and time of creation of the attack simulation and training campaign.
    createdDateTime?: NullableOption<string>;
    // Description of the attack simulation and training campaign.
    description?: NullableOption<string>;
    // Display name of the attack simulation and training campaign. Supports $filter and $orderby.
    displayName?: NullableOption<string>;
    // Simulation duration in days.
    durationInDays?: NullableOption<number>;
    // Details about the end user notification setting.
    endUserNotificationSetting?: NullableOption<EndUserNotificationSetting>;
    // Users excluded from the simulation.
    excludedAccountTarget?: NullableOption<AccountTargetContent>;
    // Users targeted in the simulation.
    includedAccountTarget?: NullableOption<AccountTargetContent>;
    /**
     * Flag that represents if the attack simulation and training campaign was created from a simulation automation flow.
     * Supports $filter and $orderby.
     */
    isAutomated?: NullableOption<boolean>;
    // Identity of the user who most recently modified the attack simulation and training campaign.
    lastModifiedBy?: NullableOption<EmailIdentity>;
    // Date and time of the most recent modification of the attack simulation and training campaign.
    lastModifiedDateTime?: NullableOption<string>;
    // Date and time of the launch/start of the attack simulation and training campaign. Supports $filter and $orderby.
    launchDateTime?: NullableOption<string>;
    // OAuth app details for the OAuth technique.
    oAuthConsentAppDetail?: NullableOption<OAuthConsentAppDetail>;
    /**
     * Method of delivery of the phishing payload used in the attack simulation and training campaign. Possible values are:
     * unknown, sms, email, teams, unknownFutureValue.
     */
    payloadDeliveryPlatform?: NullableOption<PayloadDeliveryPlatform>;
    // Report of the attack simulation and training campaign.
    report?: NullableOption<SimulationReport>;
    /**
     * Status of the attack simulation and training campaign. Supports $filter and $orderby. Possible values are: unknown,
     * draft, running, scheduled, succeeded, failed, cancelled, excluded, unknownFutureValue.
     */
    status?: NullableOption<SimulationStatus>;
    // Details about the training settings for a simulation.
    trainingSetting?: NullableOption<TrainingSetting>;
    // The landing page associated with a simulation during its creation.
    landingPage?: NullableOption<LandingPage>;
    // The login page associated with a simulation during its creation.
    loginPage?: NullableOption<LoginPage>;
    // The payload associated with a simulation during its creation.
    payload?: NullableOption<Payload>;
}
export interface EndUserNotificationDetail extends Entity {
    // Email HTML content.
    emailContent?: string;
    // Indicates whether this language is default.
    isDefaultLangauge?: NullableOption<boolean>;
    // Notification language.
    language?: string;
    // Notification locale.
    locale?: string;
    // Email details of the sender.
    sentFrom?: EmailIdentity;
    // Mail subject.
    subject?: string;
}
export interface LandingPageDetail extends Entity {
    // Landing page detail content.
    content?: string;
    // Indicates whether this language detail is default for the landing page.
    isDefaultLangauge?: NullableOption<boolean>;
    // The content language for the landing page.
    language?: string;
}
export interface SimulationAutomationRun extends Entity {
    // Date and time when the run ends in an attack simulation automation.
    endDateTime?: NullableOption<string>;
    // Unique identifier for the attack simulation campaign initiated in the attack simulation automation run.
    simulationId?: NullableOption<string>;
    // Date and time when the run starts in an attack simulation automation.
    startDateTime?: NullableOption<string>;
    /**
     * Status of the attack simulation automation run. The possible values are: unknown, running, succeeded, failed, skipped,
     * unknownFutureValue.
     */
    status?: NullableOption<SimulationAutomationRunStatus>;
}
export interface TrainingLanguageDetail extends Entity {
    // Language specific content for the training.
    content?: string;
    // Identity of the user who created the language details.
    createdBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the language details were created. The timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // Description as defined by the user.
    description?: NullableOption<string>;
    // Display name as defined by the user.
    displayName?: NullableOption<string>;
    // Indicates whether the training has a default language.
    isDefaultLangauge?: NullableOption<boolean>;
    // Identity of the user who last modified the details.
    lastModifiedBy?: NullableOption<EmailIdentity>;
    /**
     * Date and time when the trainingLanguageDetail was last modified. The timestamp type represents date and time
     * information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // Content locale for the training detail.
    locale?: string;
}
export interface CommsOperation extends Entity {
    // Unique Client Context string. Max limit is 256 chars.
    clientContext?: NullableOption<string>;
    // The result information. Read-only.
    resultInfo?: NullableOption<ResultInfo>;
    // Possible values are: notStarted, running, completed, failed. Read-only.
    status?: OperationStatus;
}
// tslint:disable-next-line: no-empty-interface
export interface AddLargeGalleryViewOperation extends CommsOperation {}
export interface AttendanceRecord extends Entity {
    // List of time periods between joining and leaving a meeting.
    attendanceIntervals?: NullableOption<AttendanceInterval[]>;
    // Email address of the user associated with this attendance record.
    emailAddress?: NullableOption<string>;
    // Identity of the user associated with this attendance record.
    identity?: NullableOption<Identity>;
    // Role of the attendee. Possible values are: None, Attendee, Presenter, and Organizer.
    role?: NullableOption<string>;
    // Total duration of the attendances in seconds.
    totalAttendanceInSeconds?: NullableOption<number>;
}
export interface AudioRoutingGroup extends Entity {
    // List of receiving participant ids.
    receivers?: NullableOption<string[]>;
    // Routing group mode. Possible values are: oneToOne, multicast.
    routingMode?: RoutingMode;
    // List of source participant ids.
    sources?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface ContentSharingSession extends Entity {}
export interface Participant extends Entity {
    // Information about the participant.
    info?: ParticipantInfo;
    // true if the participant is in lobby.
    isInLobby?: boolean;
    // true if the participant is muted (client or server muted).
    isMuted?: boolean;
    // The list of media streams.
    mediaStreams?: NullableOption<MediaStream[]>;
    // A blob of data provided by the participant in the roster.
    metadata?: NullableOption<string>;
    // Information about whether the participant has recording capability.
    recordingInfo?: NullableOption<RecordingInfo>;
    removedState?: NullableOption<RemovedState>;
    // Indicates the reason or reasons media content from this participant is restricted.
    restrictedExperience?: NullableOption<OnlineMeetingRestricted>;
    rosterSequenceNumber?: NullableOption<number>;
}
// tslint:disable-next-line: no-empty-interface
export interface CancelMediaProcessingOperation extends CommsOperation {}
export interface DeltaParticipants extends Entity {
    sequenceNumber?: NullableOption<number>;
    participants?: NullableOption<Participant[]>;
}
// tslint:disable-next-line: interface-name
export interface InviteParticipantsOperation extends CommsOperation {
    // The participants to invite.
    participants?: InvitationParticipantInfo[];
}
export interface MeetingAttendanceReport extends Entity {
    // UTC time when the meeting ended. Read-only.
    meetingEndDateTime?: NullableOption<string>;
    // UTC time when the meeting started. Read-only.
    meetingStartDateTime?: NullableOption<string>;
    // Total number of participants. Read-only.
    totalParticipantCount?: NullableOption<number>;
    // List of attendance records of an attendance report. Read-only.
    attendanceRecords?: NullableOption<AttendanceRecord[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface MuteParticipantOperation extends CommsOperation {}
export interface ParticipantJoiningNotification extends Entity {
    call?: NullableOption<Call>;
}
export interface ParticipantLeftNotification extends Entity {
    // ID of the participant under the policy who has left the meeting.
    participantId?: string;
    call?: NullableOption<Call>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlayPromptOperation extends CommsOperation {}
export interface RecordOperation extends CommsOperation {
    // The access token required to retrieve the recording.
    recordingAccessToken?: NullableOption<string>;
    // The location where the recording is located.
    recordingLocation?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface StartHoldMusicOperation extends CommsOperation {}
// tslint:disable-next-line: no-empty-interface
export interface StopHoldMusicOperation extends CommsOperation {}
// tslint:disable-next-line: no-empty-interface
export interface SubscribeToToneOperation extends CommsOperation {}
// tslint:disable-next-line: no-empty-interface
export interface UnmuteParticipantOperation extends CommsOperation {}
// tslint:disable-next-line: no-empty-interface
export interface UpdateRecordingStatusOperation extends CommsOperation {}
export interface VirtualEvent extends Entity {
    createdBy?: NullableOption<CommunicationsIdentitySet>;
    description?: NullableOption<ItemBody>;
    displayName?: NullableOption<string>;
    endDateTime?: NullableOption<DateTimeTimeZone>;
    startDateTime?: NullableOption<DateTimeTimeZone>;
    status?: NullableOption<VirtualEventStatus>;
    sessions?: NullableOption<VirtualEventSession[]>;
}
export interface VirtualEventSession extends OnlineMeetingBase {
    endDateTime?: NullableOption<DateTimeTimeZone>;
    startDateTime?: NullableOption<DateTimeTimeZone>;
}
export interface VirtualEventRegistration extends Entity {
    cancelationDateTime?: NullableOption<string>;
    email?: NullableOption<string>;
    firstName?: NullableOption<string>;
    lastName?: NullableOption<string>;
    registrationDateTime?: NullableOption<string>;
    registrationQuestionAnswers?: NullableOption<VirtualEventRegistrationQuestionAnswer[]>;
    status?: NullableOption<VirtualEventAttendeeRegistrationStatus>;
    userId?: NullableOption<string>;
}
export interface VirtualEventWebinar extends VirtualEvent {
    audience?: NullableOption<MeetingAudience>;
    coOrganizers?: NullableOption<CommunicationsUserIdentity[]>;
    registrations?: NullableOption<VirtualEventRegistration[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface AuthenticationMethod extends Entity {}
export interface EmailAuthenticationMethod extends AuthenticationMethod {
    // The email address registered to this user.
    emailAddress?: NullableOption<string>;
}
export interface Fido2AuthenticationMethod extends AuthenticationMethod {
    // Authenticator Attestation GUID, an identifier that indicates the type (e.g. make and model) of the authenticator.
    aaGuid?: NullableOption<string>;
    // The attestation certificate(s) attached to this security key.
    attestationCertificates?: NullableOption<string[]>;
    // The attestation level of this FIDO2 security key. Possible values are: attested, or notAttested.
    attestationLevel?: NullableOption<AttestationLevel>;
    // The timestamp when this key was registered to the user.
    createdDateTime?: NullableOption<string>;
    // The display name of the key as given by the user.
    displayName?: NullableOption<string>;
    // The manufacturer-assigned model of the FIDO2 security key.
    model?: NullableOption<string>;
}
export interface MicrosoftAuthenticatorAuthenticationMethod extends AuthenticationMethod {
    /**
     * The date and time that this app was registered. This property is null if the device isn't registered for passwordless
     * Phone Sign-In.
     */
    createdDateTime?: NullableOption<string>;
    // Tags containing app metadata.
    deviceTag?: NullableOption<string>;
    // The name of the device on which this app is registered.
    displayName?: NullableOption<string>;
    // Numerical version of this instance of the Authenticator app.
    phoneAppVersion?: NullableOption<string>;
    /**
     * The registered device on which Microsoft Authenticator resides. This property is null if the device isn't registered
     * for passwordless Phone Sign-In.
     */
    device?: NullableOption<Device>;
}
export interface PasswordAuthenticationMethod extends AuthenticationMethod {
    /**
     * The date and time when this password was last updated. This property is currently not populated. Read-only. The
     * Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // For security, the password is always returned as null from a LIST or GET operation.
    password?: NullableOption<string>;
}
export interface PhoneAuthenticationMethod extends AuthenticationMethod {
    /**
     * The phone number to text or call for authentication. Phone numbers use the format +{country code} {number}x{extension},
     * with extension optional. For example, +1 5555551234 or +1 5555551234x123 are valid. Numbers are rejected when creating
     * or updating if they don't match the required format.
     */
    phoneNumber?: NullableOption<string>;
    // The type of this phone. Possible values are: mobile, alternateMobile, or office.
    phoneType?: NullableOption<AuthenticationPhoneType>;
    /**
     * Whether a phone is ready to be used for SMS sign-in or not. Possible values are: notSupported, notAllowedByPolicy,
     * notEnabled, phoneNumberNotUnique, ready, or notConfigured, unknownFutureValue.
     */
    smsSignInState?: NullableOption<AuthenticationMethodSignInState>;
}
export interface SoftwareOathAuthenticationMethod extends AuthenticationMethod {
    // The secret key of the method. Always returns null.
    secretKey?: NullableOption<string>;
}
export interface TemporaryAccessPassAuthenticationMethod extends AuthenticationMethod {
    // The date and time when the Temporary Access Pass was created.
    createdDateTime?: NullableOption<string>;
    // The state of the authentication method that indicates whether it's currently usable by the user.
    isUsable?: NullableOption<boolean>;
    /**
     * Determines whether the pass is limited to a one-time use. If true, the pass can be used once; if false, the pass can be
     * used multiple times within the Temporary Access Pass lifetime.
     */
    isUsableOnce?: NullableOption<boolean>;
    /**
     * The lifetime of the Temporary Access Pass in minutes starting at startDateTime. Must be between 10 and 43200 inclusive
     * (equivalent to 30 days).
     */
    lifetimeInMinutes?: NullableOption<number>;
    /**
     * Details about the usability state (isUsable). Reasons can include: EnabledByPolicy, DisabledByPolicy, Expired,
     * NotYetValid, OneTimeUsed.
     */
    methodUsabilityReason?: NullableOption<string>;
    // The date and time when the Temporary Access Pass becomes available to use and when isUsable is true is enforced.
    startDateTime?: NullableOption<string>;
    /**
     * The Temporary Access Pass used to authenticate. Returned only on creation of a new
     * temporaryAccessPassAuthenticationMethod object; Hidden in subsequent read operations and returned as null with GET.
     */
    temporaryAccessPass?: NullableOption<string>;
}
export interface WindowsHelloForBusinessAuthenticationMethod extends AuthenticationMethod {
    // The date and time that this Windows Hello for Business key was registered.
    createdDateTime?: NullableOption<string>;
    // The name of the device on which Windows Hello for Business is registered
    displayName?: NullableOption<string>;
    // Key strength of this Windows Hello for Business key. Possible values are: normal, weak, unknown.
    keyStrength?: NullableOption<AuthenticationMethodKeyStrength>;
    /**
     * The registered device on which this Windows Hello for Business key resides. Supports $expand. When you get a user's
     * Windows Hello for Business registration information, this property is returned only on a single GET and when you
     * specify ?$expand. For example, GET
     * /users/admin@contoso.com/authentication/windowsHelloForBusinessMethods/_jpuR-TGZtk6aQCLF3BQjA2?$expand=device.
     */
    device?: NullableOption<Device>;
}
export interface AadUserConversationMember extends ConversationMember {
    // The email address of the user.
    email?: NullableOption<string>;
    // TenantId which the Microsoft Entra user belongs to.
    tenantId?: NullableOption<string>;
    // The guid of the user.
    userId?: NullableOption<string>;
    user?: NullableOption<User>;
}
export interface AnonymousGuestConversationMember extends ConversationMember {
    /**
     * Unique ID that represents the user. Note: This ID can change if the user leaves and rejoins the meeting, or joins from
     * a different device.
     */
    anonymousGuestId?: NullableOption<string>;
}
export interface AppCatalogs extends Entity {
    teamsApps?: NullableOption<TeamsApp[]>;
}
export interface TeamsApp extends Entity {
    // The name of the catalog app provided by the app developer in the Microsoft Teams zip app package.
    displayName?: NullableOption<string>;
    // The method of distribution for the app. Read-only.
    distributionMethod?: NullableOption<TeamsAppDistributionMethod>;
    // The ID of the catalog provided by the app developer in the Microsoft Teams zip app package.
    externalId?: NullableOption<string>;
    // The details for each version of the app.
    appDefinitions?: NullableOption<TeamsAppDefinition[]>;
}
export interface TeamInfo extends Entity {
    // The name of the team.
    displayName?: NullableOption<string>;
    // The ID of the Microsoft Entra tenant.
    tenantId?: NullableOption<string>;
    team?: NullableOption<Team>;
}
// tslint:disable-next-line: no-empty-interface
export interface AssociatedTeamInfo extends TeamInfo {}
export interface AzureCommunicationServicesUserConversationMember extends ConversationMember {
    // Azure Communication Services ID of the user.
    azureCommunicationServicesId?: NullableOption<string>;
}
export interface ChatMessage extends Entity {
    // References to attached objects like files, tabs, meetings etc.
    attachments?: NullableOption<ChatMessageAttachment[]>;
    /**
     * Plaintext/HTML representation of the content of the chat message. Representation is specified by the contentType inside
     * the body. The content is always in HTML if the chat message contains a chatMessageMention.
     */
    body?: ItemBody;
    // If the message was sent in a channel, represents identity of the channel.
    channelIdentity?: NullableOption<ChannelIdentity>;
    // If the message was sent in a chat, represents the identity of the chat.
    chatId?: NullableOption<string>;
    // Timestamp of when the chat message was created.
    createdDateTime?: NullableOption<string>;
    // Read only. Timestamp at which the chat message was deleted, or null if not deleted.
    deletedDateTime?: NullableOption<string>;
    // Read-only. Version number of the chat message.
    etag?: NullableOption<string>;
    /**
     * Read-only. If present, represents details of an event that happened in a chat, a channel, or a team, for example,
     * adding new members. For event messages, the messageType property will be set to systemEventMessage.
     */
    eventDetail?: NullableOption<EventMessageDetail>;
    // Details of the sender of the chat message. Can only be set during migration.
    from?: NullableOption<ChatMessageFromIdentitySet>;
    // The importance of the chat message. The possible values are: normal, high, urgent.
    importance?: ChatMessageImportance;
    /**
     * Read only. Timestamp when edits to the chat message were made. Triggers an 'Edited' flag in the Teams UI. If no edits
     * are made the value is null.
     */
    lastEditedDateTime?: NullableOption<string>;
    /**
     * Read only. Timestamp when the chat message is created (initial setting) or modified, including when a reaction is added
     * or removed.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // Locale of the chat message set by the client. Always set to en-us.
    locale?: string;
    // List of entities mentioned in the chat message. Supported entities are: user, bot, team, and channel.
    mentions?: NullableOption<ChatMessageMention[]>;
    /**
     * List of activity history of a message item, including modification time and actions, such as reactionAdded,
     * reactionRemoved, or reaction changes, on the message.
     */
    messageHistory?: NullableOption<ChatMessageHistoryItem[]>;
    /**
     * The type of chat message. The possible values are: message, chatEvent, typing, unknownFutureValue, systemEventMessage.
     * Note that you must use the Prefer: include-unknown-enum-members request header to get the following value in this
     * evolvable enum: systemEventMessage.
     */
    messageType?: ChatMessageType;
    // Defines the properties of a policy violation set by a data loss prevention (DLP) application.
    policyViolation?: NullableOption<ChatMessagePolicyViolation>;
    // Reactions for this chat message (for example, Like).
    reactions?: NullableOption<ChatMessageReaction[]>;
    /**
     * Read-only. ID of the parent chat message or root chat message of the thread. (Only applies to chat messages in
     * channels, not chats.)
     */
    replyToId?: NullableOption<string>;
    // The subject of the chat message, in plaintext.
    subject?: NullableOption<string>;
    /**
     * Summary text of the chat message that could be used for push notifications and summary views or fall back views. Only
     * applies to channel chat messages, not chat messages in a chat.
     */
    summary?: NullableOption<string>;
    // Read-only. Link to the message in Microsoft Teams.
    webUrl?: NullableOption<string>;
    // Content in a message hosted by Microsoft Teams - for example, images or code snippets.
    hostedContents?: NullableOption<ChatMessageHostedContent[]>;
    // Replies for a specified message. Supports $expand for channel messages.
    replies?: NullableOption<ChatMessage[]>;
}
export interface SharedWithChannelTeamInfo extends TeamInfo {
    // Indicates whether the team is the host of the channel.
    isHostTeam?: NullableOption<boolean>;
    // A collection of team members who have access to the shared channel.
    allowedMembers?: NullableOption<ConversationMember[]>;
}
export interface TeamsTab extends Entity {
    // Container for custom settings applied to a tab. The tab is considered configured only once this property is set.
    configuration?: NullableOption<TeamsTabConfiguration>;
    // Name of the tab.
    displayName?: NullableOption<string>;
    // Deep link URL of the tab instance. Read only.
    webUrl?: NullableOption<string>;
    // The application that is linked to the tab. This can't be changed after tab creation.
    teamsApp?: NullableOption<TeamsApp>;
}
export interface ChatMessageInfo extends Entity {
    /**
     * Body of the chatMessage. This will still contain markers for @mentions and attachments even though the object doesn't
     * return @mentions and attachments.
     */
    body?: NullableOption<ItemBody>;
    // Date time object representing the time at which message was created.
    createdDateTime?: NullableOption<string>;
    /**
     * Read-only. If present, represents details of an event that happened in a chat, a channel, or a team, for example,
     * members were added, and so on. For event messages, the messageType property is set to systemEventMessage.
     */
    eventDetail?: NullableOption<EventMessageDetail>;
    // Information about the sender of the message.
    from?: NullableOption<ChatMessageFromIdentitySet>;
    // If set to true, the original message has been deleted.
    isDeleted?: NullableOption<boolean>;
    // The type of chat message. The possible values are: message, unknownFutureValue, systemEventMessage.
    messageType?: ChatMessageType;
}
export interface PinnedChatMessageInfo extends Entity {
    // Represents details about the chat message that is pinned.
    message?: NullableOption<ChatMessage>;
}
export interface TeamworkHostedContent extends Entity {
    // Write only. Bytes for the hosted content (such as images).
    contentBytes?: NullableOption<string>;
    // Write only. Content type. such as image/png, image/jpg.
    contentType?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface ChatMessageHostedContent extends TeamworkHostedContent {}
export interface DeletedTeam extends Entity {
    // The channels that are either shared with this deleted team or created in this deleted team.
    channels?: NullableOption<Channel[]>;
}
export interface MicrosoftAccountUserConversationMember extends ConversationMember {
    // Microsoft Account ID of the user.
    userId?: NullableOption<string>;
}
export interface SkypeForBusinessUserConversationMember extends ConversationMember {
    // ID of the tenant that the user belongs to.
    tenantId?: NullableOption<string>;
    // Microsoft Entra ID of the user.
    userId?: NullableOption<string>;
}
export interface SkypeUserConversationMember extends ConversationMember {
    // Skype ID of the user.
    skypeId?: NullableOption<string>;
}
export interface TeamsAppDefinition extends Entity {
    // Authorization requirements specified in the Teams app manifest.
    authorization?: NullableOption<TeamsAppAuthorization>;
    createdBy?: NullableOption<IdentitySet>;
    // Verbose description of the application.
    description?: NullableOption<string>;
    // The name of the app provided by the app developer.
    displayName?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    /**
     * The published status of a specific version of a Teams app. Possible values are:submitted—The specific version of the
     * Teams app has been submitted and is under review. published—The request to publish the specific version of the Teams
     * app has been approved by the admin and the app is published. rejected—The admin rejected the request to publish the
     * specific version of the Teams app.
     */
    publishingState?: NullableOption<TeamsAppPublishingState>;
    // Short description of the application.
    shortDescription?: NullableOption<string>;
    // The ID from the Teams app manifest.
    teamsAppId?: NullableOption<string>;
    // The version number of the application.
    version?: NullableOption<string>;
    // The details of the bot specified in the Teams app manifest.
    bot?: NullableOption<TeamworkBot>;
}
// tslint:disable-next-line: no-empty-interface
export interface TeamworkBot extends Entity {}
export interface TeamsAppSettings extends Entity {
    // Indicates whether users are allowed to request access to the unavailable Teams apps.
    allowUserRequestsForAppAccess?: NullableOption<boolean>;
}
export interface Teamwork extends Entity {
    workforceIntegrations?: NullableOption<WorkforceIntegration[]>;
    // The deleted team.
    deletedTeams?: NullableOption<DeletedTeam[]>;
    // Represents tenant-wide settings for all Teams apps in the tenant.
    teamsAppSettings?: NullableOption<TeamsAppSettings>;
}
export interface WorkforceIntegration extends ChangeTrackedEntity {
    // API version for the call back URL. Start with 1.
    apiVersion?: NullableOption<number>;
    // Name of the workforce integration.
    displayName?: NullableOption<string>;
    // The workforce integration encryption resource.
    encryption?: NullableOption<WorkforceIntegrationEncryption>;
    // Indicates whether this workforce integration is currently active and available.
    isActive?: NullableOption<boolean>;
    /**
     * The Shifts entities supported for synchronous change notifications. Shifts will make a call back to the url provided on
     * client changes on those entities added here. By default, no entities are supported for change notifications. Possible
     * values are: none, shift, swapRequest, userShiftPreferences, openshift, openShiftRequest, offerShiftRequest,
     * unknownFutureValue.
     */
    supportedEntities?: NullableOption<WorkforceIntegrationSupportedEntities>;
    // Workforce Integration URL for callbacks from the Shifts service.
    url?: NullableOption<string>;
}
export interface TeamworkTagMember extends Entity {
    // The member's display name.
    displayName?: NullableOption<string>;
    // The ID of the tenant that the tag member is a part of.
    tenantId?: NullableOption<string>;
    // The user ID of the member.
    userId?: NullableOption<string>;
}
export interface UserScopeTeamsAppInstallation extends TeamsAppInstallation {
    // The chat between the user and Teams app.
    chat?: NullableOption<Chat>;
}
export interface ScheduleChangeRequest extends ChangeTrackedEntity {
    assignedTo?: NullableOption<ScheduleChangeRequestActor>;
    managerActionDateTime?: NullableOption<string>;
    managerActionMessage?: NullableOption<string>;
    managerUserId?: NullableOption<string>;
    senderDateTime?: NullableOption<string>;
    senderMessage?: NullableOption<string>;
    senderUserId?: NullableOption<string>;
    state?: NullableOption<ScheduleChangeState>;
}
export interface OfferShiftRequest extends ScheduleChangeRequest {
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    recipientActionDateTime?: NullableOption<string>;
    // Custom message sent by recipient of the offer shift request.
    recipientActionMessage?: NullableOption<string>;
    // User ID of the recipient of the offer shift request.
    recipientUserId?: NullableOption<string>;
    // User ID of the sender of the offer shift request.
    senderShiftId?: NullableOption<string>;
}
export interface OpenShift extends ChangeTrackedEntity {
    // An unpublished open shift.
    draftOpenShift?: NullableOption<OpenShiftItem>;
    // ID for the scheduling group that the open shift belongs to.
    schedulingGroupId?: NullableOption<string>;
    // A published open shift.
    sharedOpenShift?: NullableOption<OpenShiftItem>;
}
export interface OpenShiftChangeRequest extends ScheduleChangeRequest {
    // ID for the open shift.
    openShiftId?: NullableOption<string>;
}
export interface SchedulingGroup extends ChangeTrackedEntity {
    // The display name for the schedulingGroup. Required.
    displayName?: NullableOption<string>;
    // Indicates whether the schedulingGroup can be used when creating new entities or updating existing ones. Required.
    isActive?: NullableOption<boolean>;
    // The list of user IDs that are a member of the schedulingGroup. Required.
    userIds?: NullableOption<string[]>;
}
export interface Shift extends ChangeTrackedEntity {
    // The draft version of this shift that is viewable by managers. Required.
    draftShift?: NullableOption<ShiftItem>;
    // ID of the scheduling group the shift is part of. Required.
    schedulingGroupId?: NullableOption<string>;
    // The shared version of this shift that is viewable by both employees and managers. Required.
    sharedShift?: NullableOption<ShiftItem>;
    // ID of the user assigned to the shift. Required.
    userId?: NullableOption<string>;
}
export interface SwapShiftsChangeRequest extends OfferShiftRequest {
    // ShiftId for the recipient user with whom the request is to swap.
    recipientShiftId?: NullableOption<string>;
}
export interface TimeOffReason extends ChangeTrackedEntity {
    // The name of the timeOffReason. Required.
    displayName?: NullableOption<string>;
    /**
     * Supported icon types are: none, car, calendar, running, plane, firstAid, doctor, notWorking, clock, juryDuty, globe,
     * cup, phone, weather, umbrella, piggyBank, dog, cake, trafficCone, pin, sunny. Required.
     */
    iconType?: NullableOption<TimeOffReasonIconType>;
    // Indicates whether the timeOffReason can be used when creating new entities or updating existing ones. Required.
    isActive?: NullableOption<boolean>;
}
export interface TimeOffRequest extends ScheduleChangeRequest {
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    endDateTime?: NullableOption<string>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    startDateTime?: NullableOption<string>;
    // The reason for the time off.
    timeOffReasonId?: NullableOption<string>;
}
export interface TimeOff extends ChangeTrackedEntity {
    // The draft version of this timeOff that is viewable by managers. Required.
    draftTimeOff?: NullableOption<TimeOffItem>;
    // The shared version of this timeOff that is viewable by both employees and managers. Required.
    sharedTimeOff?: NullableOption<TimeOffItem>;
    // ID of the user assigned to the timeOff. Required.
    userId?: NullableOption<string>;
}
export interface EmailFileAssessmentRequest extends ThreatAssessmentRequest {
    // Base64 encoded .eml email file content. The file content can't fetch back because it isn't stored.
    contentData?: string;
    /**
     * The reason for mail routed to its destination. Possible values are: none, mailFlowRule, safeSender, blockedSender,
     * advancedSpamFiltering, domainAllowList, domainBlockList, notInAddressBook, firstTimeSender, autoPurgeToInbox,
     * autoPurgeToJunk, autoPurgeToDeleted, outbound, notJunk, junk.
     */
    destinationRoutingReason?: NullableOption<MailDestinationRoutingReason>;
    // The mail recipient whose policies are used to assess the mail.
    recipientEmail?: string;
}
export interface FileAssessmentRequest extends ThreatAssessmentRequest {
    // Base64 encoded file content. The file content can't fetch back because it isn't stored.
    contentData?: string;
    // The file name.
    fileName?: string;
}
export interface MailAssessmentRequest extends ThreatAssessmentRequest {
    /**
     * The reason for mail routed to its destination. Possible values are: none, mailFlowRule, safeSender, blockedSender,
     * advancedSpamFiltering, domainAllowList, domainBlockList, notInAddressBook, firstTimeSender, autoPurgeToInbox,
     * autoPurgeToJunk, autoPurgeToDeleted, outbound, notJunk, junk.
     */
    destinationRoutingReason?: NullableOption<MailDestinationRoutingReason>;
    // The resource URI of the mail message for assessment.
    messageUri?: string;
    // The mail recipient whose policies are used to assess the mail.
    recipientEmail?: string;
}
export interface ThreatAssessmentResult extends Entity {
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // The result message for each threat assessment.
    message?: NullableOption<string>;
    // The threat assessment result type. Possible values are: checkPolicy, rescan.
    resultType?: NullableOption<ThreatAssessmentResultType>;
}
export interface UrlAssessmentRequest extends ThreatAssessmentRequest {
    // The URL string.
    url?: string;
}
export interface AttachmentBase extends Entity {
    // The MIME type.
    contentType?: NullableOption<string>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // The display name of the attachment. This doesn't need to be the actual file name.
    name?: NullableOption<string>;
    // The length of the attachment in bytes.
    size?: number;
}
export interface AttachmentSession extends Entity {
    // The content streams that are uploaded.
    content?: NullableOption<any>;
    /**
     * The date and time in UTC when the upload session will expire. The complete file must be uploaded before this expiration
     * time is reached.
     */
    expirationDateTime?: NullableOption<string>;
    // Indicates a single value {start} that represents the location in the file where the next upload should begin.
    nextExpectedRanges?: NullableOption<string[]>;
}
export interface ChecklistItem extends Entity {
    // The date and time when the checklistItem was finished.
    checkedDateTime?: NullableOption<string>;
    // The date and time when the checklistItem was created.
    createdDateTime?: string;
    // Field indicating the title of checklistItem.
    displayName?: NullableOption<string>;
    // State indicating whether the item is checked off or not.
    isChecked?: NullableOption<boolean>;
}
export interface LinkedResource extends Entity {
    // The app name of the source that sends the linkedResource.
    applicationName?: NullableOption<string>;
    // The title of the linkedResource.
    displayName?: NullableOption<string>;
    // ID of the object that is associated with this task on the third-party/partner system.
    externalId?: NullableOption<string>;
    // Deep link to the linkedResource.
    webUrl?: NullableOption<string>;
}
export interface TaskFileAttachment extends AttachmentBase {
    // The base64-encoded contents of the file.
    contentBytes?: string;
}
export interface TodoTaskList extends Entity {
    // The name of the task list.
    displayName?: NullableOption<string>;
    // True if the user is owner of the given task list.
    isOwner?: boolean;
    // True if the task list is shared with other users
    isShared?: boolean;
    /**
     * Property indicating the list name if the given list is a well-known list. Possible values are: none, defaultList,
     * flaggedEmails, unknownFutureValue.
     */
    wellknownListName?: WellknownListName;
    // The collection of open extensions defined for the task list. Nullable.
    extensions?: NullableOption<Extension[]>;
    // The tasks in this task list. Read-only. Nullable.
    tasks?: NullableOption<TodoTask[]>;
}
export interface TodoTask extends Entity {
    // The task body that typically contains information about the task.
    body?: NullableOption<ItemBody>;
    /**
     * The date and time when the task body was last modified. By default, it is in UTC. You can provide a custom time zone in
     * the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan
     * 1, 2020 would look like this: '2020-01-01T00:00:00Z'.
     */
    bodyLastModifiedDateTime?: string;
    /**
     * The categories associated with the task. Each category corresponds to the displayName property of an outlookCategory
     * that the user has defined.
     */
    categories?: NullableOption<string[]>;
    // The date and time in the specified time zone that the task was finished.
    completedDateTime?: NullableOption<DateTimeTimeZone>;
    /**
     * The date and time when the task was created. By default, it is in UTC. You can provide a custom time zone in the
     * request header. The property value uses ISO 8601 format. For example, midnight UTC on Jan 1, 2020 would look like this:
     * '2020-01-01T00:00:00Z'.
     */
    createdDateTime?: string;
    // The date and time in the specified time zone that the task is to be finished.
    dueDateTime?: NullableOption<DateTimeTimeZone>;
    // Indicates whether the task has attachments.
    hasAttachments?: NullableOption<boolean>;
    // The importance of the task. Possible values are: low, normal, high.
    importance?: Importance;
    // Set to true if an alert is set to remind the user of the task.
    isReminderOn?: boolean;
    /**
     * The date and time when the task was last modified. By default, it is in UTC. You can provide a custom time zone in the
     * request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1,
     * 2020 would look like this: '2020-01-01T00:00:00Z'.
     */
    lastModifiedDateTime?: string;
    // The recurrence pattern for the task.
    recurrence?: NullableOption<PatternedRecurrence>;
    // The date and time in the specified time zone for a reminder alert of the task to occur.
    reminderDateTime?: NullableOption<DateTimeTimeZone>;
    // The date and time in the specified time zone at which the task is scheduled to start.
    startDateTime?: NullableOption<DateTimeTimeZone>;
    /**
     * Indicates the state or progress of the task. Possible values are: notStarted, inProgress, completed, waitingOnOthers,
     * deferred.
     */
    status?: TaskStatus;
    // A brief description of the task.
    title?: NullableOption<string>;
    // A collection of file attachments for the task.
    attachments?: NullableOption<AttachmentBase[]>;
    attachmentSessions?: NullableOption<AttachmentSession[]>;
    // A collection of checklistItems linked to a task.
    checklistItems?: NullableOption<ChecklistItem[]>;
    // The collection of open extensions defined for the task. Nullable.
    extensions?: NullableOption<Extension[]>;
    // A collection of resources linked to the task.
    linkedResources?: NullableOption<LinkedResource[]>;
}
export interface EmployeeExperience {
    learningCourseActivities?: NullableOption<LearningCourseActivity[]>;
    // A collection of learning providers.
    learningProviders?: NullableOption<LearningProvider[]>;
}
export interface LearningCourseActivity extends Entity {
    // Date and time when the assignment was completed. Optional.
    completedDateTime?: NullableOption<string>;
    // The percentage completion value of the course activity. Optional.
    completionPercentage?: NullableOption<number>;
    // A course activity ID generated by the provider. Optional.
    externalcourseActivityId?: NullableOption<string>;
    // The user ID of the learner to whom the activity is assigned. Required.
    learnerUserId?: string;
    // The ID of the learning content created in Viva Learning. Required.
    learningContentId?: string;
    // The registration ID of the provider. Required.
    learningProviderId?: NullableOption<string>;
    // The status of the course activity. Possible values are: notStarted, inProgress, completed. Required.
    status?: NullableOption<CourseStatus>;
}
export interface LearningProvider extends Entity {
    // The display name that appears in Viva Learning. Required.
    displayName?: string;
    /**
     * Indicates whether a provider can ingest learning course activity records. The default value is false. Set to true to
     * make learningCourseActivities available for this provider.
     */
    isCourseActivitySyncEnabled?: NullableOption<boolean>;
    // Authentication URL to access the courses for the provider. Optional.
    loginWebUrl?: NullableOption<string>;
    /**
     * The long logo URL for the dark mode that needs to be a publicly accessible image. This image would be saved to the blob
     * storage of Viva Learning for rendering within the Viva Learning app. Required.
     */
    longLogoWebUrlForDarkTheme?: string;
    /**
     * The long logo URL for the light mode that needs to be a publicly accessible image. This image would be saved to the
     * blob storage of Viva Learning for rendering within the Viva Learning app. Required.
     */
    longLogoWebUrlForLightTheme?: string;
    /**
     * The square logo URL for the dark mode that needs to be a publicly accessible image. This image would be saved to the
     * blob storage of Viva Learning for rendering within the Viva Learning app. Required.
     */
    squareLogoWebUrlForDarkTheme?: string;
    /**
     * The square logo URL for the light mode that needs to be a publicly accessible image. This image would be saved to the
     * blob storage of Viva Learning for rendering within the Viva Learning app. Required.
     */
    squareLogoWebUrlForLightTheme?: string;
    // Learning catalog items for the provider.
    learningContents?: NullableOption<LearningContent[]>;
    learningCourseActivities?: NullableOption<LearningCourseActivity[]>;
}
export interface LearningAssignment extends LearningCourseActivity {
    // Assigned date for the course activity. Optional.
    assignedDateTime?: NullableOption<string>;
    // The user ID of the assigner. Optional.
    assignerUserId?: NullableOption<string>;
    // The assignment type for the course activity. Possible values are: required, recommended, unknownFutureValue. Required.
    assignmentType?: AssignmentType;
    // Due date for the course activity. Optional.
    dueDateTime?: NullableOption<DateTimeTimeZone>;
    // Notes for the course activity. Optional.
    notes?: NullableOption<ItemBody>;
}
export interface LearningContent extends Entity {
    // Keywords, topics, and other tags associated with the learning content. Optional.
    additionalTags?: NullableOption<string[]>;
    // The content web URL for the learning content. Required.
    contentWebUrl?: string;
    // The authors, creators, or contributors of the learning content. Optional.
    contributors?: NullableOption<string[]>;
    /**
     * The date and time when the learning content was created. The Timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Optional.
     */
    createdDateTime?: NullableOption<string>;
    // The description or summary for the learning content. Optional.
    description?: NullableOption<string>;
    // The duration of the learning content in seconds. The value is represented in ISO 8601 format for durations. Optional.
    duration?: NullableOption<string>;
    // Unique external content ID for the learning content. Required.
    externalId?: string;
    // The format of the learning content. For example, Course, Video, Book, Book Summary, Audiobook Summary. Optional.
    format?: NullableOption<string>;
    /**
     * Indicates whether the content is active or not. Inactive content doesn't show up in the UI. The default value is true.
     * Optional.
     */
    isActive?: NullableOption<boolean>;
    /**
     * Indicates whether the learning content requires the user to sign-in on the learning provider platform or not. The
     * default value is false. Optional.
     */
    isPremium?: NullableOption<boolean>;
    // Indicates whether the learning content is searchable or not. The default value is true. Optional.
    isSearchable?: NullableOption<boolean>;
    // The language of the learning content, for example, en-us or fr-fr. Required.
    languageTag?: string;
    /**
     * The date and time when the learning content was last modified. The Timestamp type represents date and time information
     * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     * Optional.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // The number of pages of the learning content, for example, 9. Optional.
    numberOfPages?: NullableOption<number>;
    // The skills tags associated with the learning content. Optional.
    skillTags?: NullableOption<string[]>;
    // The source name of the learning content, such as LinkedIn Learning or Coursera. Optional.
    sourceName?: NullableOption<string>;
    // The URL of learning content thumbnail image. Optional.
    thumbnailWebUrl?: NullableOption<string>;
    // The title of the learning content. Required.
    title?: string;
}
export interface LearningSelfInitiatedCourse extends LearningCourseActivity {
    // The date and time on which the self-initiated course was started by the learner. Optional.
    startedDateTime?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface CustomExtensionAuthenticationConfiguration {}
// tslint:disable-next-line: no-empty-interface
export interface AzureAdPopTokenAuthentication extends CustomExtensionAuthenticationConfiguration {}
export interface CustomExtensionCallbackConfiguration {
    /**
     * The maximum duration in ISO 8601 format that Microsoft Entra ID will wait for a resume action for the callout it sent
     * to the logic app. The valid range for custom extensions in lifecycle workflows is five minutes to three hours. The
     * valid range for custom extensions in entitlement management is between 5 minutes and 14 days. For example, PT3H refers
     * to three hours, P3D refers to three days, PT10M refers to ten minutes.
     */
    timeoutDuration?: NullableOption<string>;
}
export interface CustomExtensionCalloutRequest {
    // Contains the data that will be provided to the external system.
    data?: NullableOption<CustomExtensionData>;
    // Identifies the source system or event context related to the callout request.
    source?: NullableOption<string>;
    // Describes the type of event related to the callout request.
    type?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface CustomExtensionData {}
export interface CustomExtensionCalloutResponse {
    // Contains the data the external system provides to the custom extension endpoint.
    data?: NullableOption<CustomExtensionData>;
    // Identifies the external system or event context related to the response.
    source?: NullableOption<string>;
    // Describes the type of event related to the response.
    type?: NullableOption<string>;
}
export interface CustomExtensionClientConfiguration {
    /**
     * The max duration in milliseconds that Microsoft Entra ID waits for a response from the external app before it shuts
     * down the connection. The valid range is between 200 and 2000 milliseconds. Default duration is 1000.
     */
    timeoutInMilliseconds?: NullableOption<number>;
}
// tslint:disable-next-line: no-empty-interface
export interface CustomExtensionEndpointConfiguration {}
export interface EmailSettings {
    /**
     * Specifies the domain that should be used when sending email notifications. This domain must be verified in order to be
     * used. We recommend that you use a domain that has the appropriate DNS records to facilitate email validation, like SPF,
     * DKIM, DMARC, and MX, because this then complies with the RFC compliance for sending and receiving email. For details,
     * see Learn more about Exchange Online Email Routing.
     */
    senderDomain?: string;
    /**
     * Specifies if the organization’s banner logo should be included in email notifications. The banner logo will replace the
     * Microsoft logo at the top of the email notification. If true the banner logo will be taken from the tenant’s branding
     * settings. This value can only be set to true if the organizationalBranding bannerLogo property is set.
     */
    useCompanyBranding?: boolean;
}
// tslint:disable-next-line: interface-name
export interface Identity {
    /**
     * The display name of the identity. The display name might not always be available or up to date. For example, if a user
     * changes their display name, the API might show the new value in a future response, but the items associated with the
     * user won't show up as having changed when using delta.
     */
    displayName?: NullableOption<string>;
    // Unique identifier for the identity.
    id?: NullableOption<string>;
}
export interface KeyValuePair {
    // Name for this key-value pair
    name?: string;
    // Value for this key-value pair
    value?: NullableOption<string>;
}
export interface LogicAppTriggerEndpointConfiguration extends CustomExtensionEndpointConfiguration {
    // The name of the logic app.
    logicAppWorkflowName?: NullableOption<string>;
    // The Azure resource group name for the logic app.
    resourceGroupName?: NullableOption<string>;
    // Identifier of the Azure subscription for the logic app.
    subscriptionId?: NullableOption<string>;
    /**
     * The URL to the logic app endpoint that will be triggered. Only required for app-only token scenarios where app is
     * creating a customCalloutExtension without a signed-in user.
     */
    url?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface SubjectSet {}
export interface AddIn {
    id?: NullableOption<string>;
    properties?: KeyValue[];
    type?: string;
}
export interface ApiApplication {
    // When true, allows an application to use claims mapping without specifying a custom signing key.
    acceptMappedClaims?: NullableOption<boolean>;
    /**
     * Used for bundling consent if you have a solution that contains two parts: a client app and a custom web API app. If you
     * set the appID of the client app to this value, the user only consents once to the client app. Microsoft Entra ID knows
     * that consenting to the client means implicitly consenting to the web API and automatically provisions service
     * principals for both APIs at the same time. Both the client and the web API app must be registered in the same tenant.
     */
    knownClientApplications?: NullableOption<string[]>;
    /**
     * The definition of the delegated permissions exposed by the web API represented by this application registration. These
     * delegated permissions may be requested by a client application, and may be granted by users or administrators during
     * consent. Delegated permissions are sometimes referred to as OAuth 2.0 scopes.
     */
    oauth2PermissionScopes?: PermissionScope[];
    /**
     * Lists the client applications that are preauthorized with the specified delegated permissions to access this
     * application's APIs. Users aren't required to consent to any preauthorized application (for the permissions specified).
     * However, any other permissions not listed in preAuthorizedApplications (requested through incremental consent for
     * example) will require user consent.
     */
    preAuthorizedApplications?: NullableOption<PreAuthorizedApplication[]>;
    /**
     * Specifies the access token version expected by this resource. This changes the version and format of the JWT produced
     * independent of the endpoint or client used to request the access token. The endpoint used, v1.0 or v2.0, is chosen by
     * the client and only impacts the version of id_tokens. Resources need to explicitly configure
     * requestedAccessTokenVersion to indicate the supported access token format. Possible values for
     * requestedAccessTokenVersion are 1, 2, or null. If the value is null, this defaults to 1, which corresponds to the v1.0
     * endpoint. If signInAudience on the application is configured as AzureADandPersonalMicrosoftAccount or
     * PersonalMicrosoftAccount, the value for this property must be 2.
     */
    requestedAccessTokenVersion?: NullableOption<number>;
}
export interface AppRole {
    /**
     * Specifies whether this app role can be assigned to users and groups (by setting to ['User']), to other application's
     * (by setting to ['Application'], or both (by setting to ['User', 'Application']). App roles supporting assignment to
     * other applications' service principals are also known as application permissions. The 'Application' value is only
     * supported for app roles defined on application entities.
     */
    allowedMemberTypes?: string[];
    /**
     * The description for the app role. This is displayed when the app role is being assigned and, if the app role functions
     * as an application permission, during consent experiences.
     */
    description?: NullableOption<string>;
    // Display name for the permission that appears in the app role assignment and consent experiences.
    displayName?: NullableOption<string>;
    /**
     * Unique role identifier inside the appRoles collection. When creating a new app role, a new GUID identifier must be
     * provided.
     */
    id?: string;
    /**
     * When creating or updating an app role, this must be set to true (which is the default). To delete a role, this must
     * first be set to false. At that point, in a subsequent call, this role may be removed.
     */
    isEnabled?: boolean;
    /**
     * Specifies if the app role is defined on the application object or on the servicePrincipal entity. Must not be included
     * in any POST or PATCH requests. Read-only.
     */
    origin?: NullableOption<string>;
    /**
     * Specifies the value to include in the roles claim in ID tokens and access tokens authenticating an assigned user or
     * service principal. Must not exceed 120 characters in length. Allowed characters are : ! # $ % &amp; ' ( ) * + , - . / :
     * ; = ? @ [ ] ^ + _ { } ~, and characters in the ranges 0-9, A-Z and a-z. Any other character, including the space
     * character, aren't allowed. May not begin with ..
     */
    value?: NullableOption<string>;
}
export interface Certification {
    // URL that shows certification details for the application.
    certificationDetailsUrl?: NullableOption<string>;
    // The timestamp when the current certification for the application expires.
    certificationExpirationDateTime?: NullableOption<string>;
    // Indicates whether the application is certified by Microsoft.
    isCertifiedByMicrosoft?: NullableOption<boolean>;
    // Indicates whether the application has been self-attested by the application developer or the publisher.
    isPublisherAttested?: NullableOption<boolean>;
    // The timestamp when the certification for the application was most recently added or updated.
    lastCertificationDateTime?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InformationalUrl {
    // CDN URL to the application's logo, Read-only.
    logoUrl?: NullableOption<string>;
    // Link to the application's marketing page. For example, https://www.contoso.com/app/marketing
    marketingUrl?: NullableOption<string>;
    // Link to the application's privacy statement. For example, https://www.contoso.com/app/privacy
    privacyStatementUrl?: NullableOption<string>;
    // Link to the application's support page. For example, https://www.contoso.com/app/support
    supportUrl?: NullableOption<string>;
    // Link to the application's terms of service statement. For example, https://www.contoso.com/app/termsofservice
    termsOfServiceUrl?: NullableOption<string>;
}
export interface KeyCredential {
    /**
     * A 40-character binary type that can be used to identify the credential. Optional. When not provided in the payload,
     * defaults to the thumbprint of the certificate.
     */
    customKeyIdentifier?: NullableOption<string>;
    // Friendly name for the key. Optional.
    displayName?: NullableOption<string>;
    /**
     * The date and time at which the credential expires. The DateTimeOffset type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    endDateTime?: NullableOption<string>;
    /**
     * The certificate's raw data in byte array converted to Base64 string. Returned only on $select for a single object, that
     * is, GET applications/{applicationId}?$select=keyCredentials or GET
     * servicePrincipals/{servicePrincipalId}?$select=keyCredentials; otherwise, it is always null. From a .cer certificate,
     * you can read the key using the Convert.ToBase64String() method. For more information, see Get the certificate key.
     */
    key?: NullableOption<string>;
    // The unique identifier (GUID) for the key.
    keyId?: NullableOption<string>;
    /**
     * The date and time at which the credential becomes valid.The Timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    startDateTime?: NullableOption<string>;
    // The type of key credential; for example, Symmetric, AsymmetricX509Cert.
    type?: NullableOption<string>;
    // A string that describes the purpose for which the key can be used; for example, Verify.
    usage?: NullableOption<string>;
}
export interface OptionalClaims {
    // The optional claims returned in the JWT access token.
    accessToken?: NullableOption<OptionalClaim[]>;
    // The optional claims returned in the JWT ID token.
    idToken?: NullableOption<OptionalClaim[]>;
    // The optional claims returned in the SAML token.
    saml2Token?: NullableOption<OptionalClaim[]>;
}
export interface ParentalControlSettings {
    /**
     * Specifies the two-letter ISO country codes. Access to the application will be blocked for minors from the countries
     * specified in this list.
     */
    countriesBlockedForMinors?: NullableOption<string[]>;
    /**
     * Specifies the legal age group rule that applies to users of the app. Can be set to one of the following values:
     * ValueDescriptionAllowDefault. Enforces the legal minimum. This means parental consent is required for minors in the
     * European Union and Korea.RequireConsentForPrivacyServicesEnforces the user to specify date of birth to comply with
     * COPPA rules. RequireConsentForMinorsRequires parental consent for ages below 18, regardless of country minor
     * rules.RequireConsentForKidsRequires parental consent for ages below 14, regardless of country minor
     * rules.BlockMinorsBlocks minors from using the app.
     */
    legalAgeGroupRule?: NullableOption<string>;
}
export interface PasswordCredential {
    // Do not use.
    customKeyIdentifier?: NullableOption<string>;
    // Friendly name for the password. Optional.
    displayName?: NullableOption<string>;
    /**
     * The date and time at which the password expires represented using ISO 8601 format and is always in UTC time. For
     * example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Optional.
     */
    endDateTime?: NullableOption<string>;
    // Contains the first three characters of the password. Read-only.
    hint?: NullableOption<string>;
    // The unique identifier for the password.
    keyId?: NullableOption<string>;
    /**
     * Read-only; Contains the strong passwords generated by Microsoft Entra ID that are 16-64 characters in length. The
     * generated password value is only returned during the initial POST request to addPassword. There is no way to retrieve
     * this password in the future.
     */
    secretText?: NullableOption<string>;
    /**
     * The date and time at which the password becomes valid. The Timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Optional.
     */
    startDateTime?: NullableOption<string>;
}
export interface PublicClientApplication {
    /**
     * Specifies the URLs where user tokens are sent for sign-in, or the redirect URIs where OAuth 2.0 authorization codes and
     * access tokens are sent.
     */
    redirectUris?: string[];
}
export interface RequestSignatureVerification {
    // Specifies which weak algorithms are allowed. The possible values are: rsaSha1, unknownFutureValue.
    allowedWeakAlgorithms?: NullableOption<WeakAlgorithms>;
    // Specifies whether signed authentication requests for this application should be required.
    isSignedRequestRequired?: boolean;
}
export interface RequiredResourceAccess {
    // The list of OAuth2.0 permission scopes and app roles that the application requires from the specified resource.
    resourceAccess?: ResourceAccess[];
    /**
     * The unique identifier for the resource that the application requires access to. This should be equal to the appId
     * declared on the target resource application.
     */
    resourceAppId?: string;
}
export interface ServicePrincipalLockConfiguration {
    /**
     * Enables locking all sensitive properties. The sensitive properties are keyCredentials, passwordCredentials, and
     * tokenEncryptionKeyId.
     */
    allProperties?: NullableOption<boolean>;
    // Locks the keyCredentials and passwordCredentials properties for modification where credential usage type is Sign.
    credentialsWithUsageSign?: NullableOption<boolean>;
    /**
     * Locks the keyCredentials and passwordCredentials properties for modification where credential usage type is Verify.
     * This locks OAuth service principals.
     */
    credentialsWithUsageVerify?: NullableOption<boolean>;
    /**
     * Enables or disables service principal lock configuration. To allow the sensitive properties to be updated, update this
     * property to false to disable the lock on the service principal.
     */
    isEnabled?: boolean;
    // Locks the tokenEncryptionKeyId property for modification on the service principal.
    tokenEncryptionKeyId?: NullableOption<boolean>;
}
export interface SpaApplication {
    /**
     * Specifies the URLs where user tokens are sent for sign-in, or the redirect URIs where OAuth 2.0 authorization codes and
     * access tokens are sent.
     */
    redirectUris?: string[];
}
export interface VerifiedPublisher {
    // The timestamp when the verified publisher was first added or most recently updated.
    addedDateTime?: NullableOption<string>;
    // The verified publisher name from the app publisher's Partner Center account.
    displayName?: NullableOption<string>;
    // The ID of the verified publisher from the app publisher's Partner Center account.
    verifiedPublisherId?: NullableOption<string>;
}
export interface WebApplication {
    // Home page or landing page of the application.
    homePageUrl?: NullableOption<string>;
    // Specifies whether this web application can request tokens using the OAuth 2.0 implicit flow.
    implicitGrantSettings?: NullableOption<ImplicitGrantSettings>;
    /**
     * Specifies the URL that is used by Microsoft's authorization service to log out a user using front-channel, back-channel
     * or SAML logout protocols.
     */
    logoutUrl?: NullableOption<string>;
    /**
     * Specifies the URLs where user tokens are sent for sign-in, or the redirect URIs where OAuth 2.0 authorization codes and
     * access tokens are sent.
     */
    redirectUris?: string[];
    redirectUriSettings?: RedirectUriSettings[];
}
export interface SignInActivity {
    /**
     * The last non-interactive sign-in date for a specific user. You can use this field to calculate the last time a client
     * attempted to sign into the directory on behalf of a user. Because some users may use clients to access tenant resources
     * rather than signing into your tenant directly, you can use the non-interactive sign-in date to along with
     * lastSignInDateTime to identify inactive users. The timestamp represents date and time information using ISO 8601 format
     * and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is: '2014-01-01T00:00:00Z'. Microsoft Entra ID
     * maintains non-interactive sign-ins going back to May 2020. For more information about using the value of this property,
     * see Manage inactive user accounts in Microsoft Entra ID.
     */
    lastNonInteractiveSignInDateTime?: NullableOption<string>;
    // Request identifier of the last non-interactive sign-in performed by this user.
    lastNonInteractiveSignInRequestId?: NullableOption<string>;
    /**
     * The last interactive sign-in date and time for a specific user. You can use this field to calculate the last time a
     * user attempted to sign into the directory with an interactive authentication method. This field can be used to build
     * reports, such as inactive users. The timestamp represents date and time information using ISO 8601 format and is always
     * in UTC time. For example, midnight UTC on Jan 1, 2014 is: '2014-01-01T00:00:00Z'. Microsoft Entra ID maintains
     * interactive sign-ins going back to April 2020. For more information about using the value of this property, see Manage
     * inactive user accounts in Microsoft Entra ID.
     */
    lastSignInDateTime?: NullableOption<string>;
    // Request identifier of the last interactive sign-in performed by this user.
    lastSignInRequestId?: NullableOption<string>;
}
export interface AssignedLicense {
    // A collection of the unique identifiers for plans that have been disabled.
    disabledPlans?: string[];
    // The unique identifier for the SKU.
    skuId?: NullableOption<string>;
}
export interface AssignedPlan {
    /**
     * The date and time at which the plan was assigned. The Timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    assignedDateTime?: NullableOption<string>;
    /**
     * Condition of the capability assignment. The possible values are Enabled, Warning, Suspended, Deleted, LockedOut. See a
     * detailed description of each value.
     */
    capabilityStatus?: NullableOption<string>;
    // The name of the service; for example, exchange.
    service?: NullableOption<string>;
    /**
     * A GUID that identifies the service plan. For a complete list of GUIDs and their equivalent friendly service names, see
     * Product names and service plan identifiers for licensing.
     */
    servicePlanId?: NullableOption<string>;
}
export interface AuthorizationInfo {
    certificateUserIds?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface CustomSecurityAttributeValue {}
export interface EmployeeOrgData {
    // The cost center associated with the user. Returned only on $select. Supports $filter.
    costCenter?: NullableOption<string>;
    // The name of the division in which the user works. Returned only on $select. Supports $filter.
    division?: NullableOption<string>;
}
export interface ObjectIdentity {
    /**
     * Specifies the issuer of the identity, for example facebook.com.For local accounts (where signInType isn't federated),
     * this property is the local B2C tenant default domain name, for example contoso.onmicrosoft.com.For guests from other
     * Microsoft Entra organization, this is the domain of the federated organization, for example contoso.com.Supports
     * $filter. 512 character limit.
     */
    issuer?: NullableOption<string>;
    /**
     * Specifies the unique identifier assigned to the user by the issuer. The combination of issuer and issuerAssignedId must
     * be unique within the organization. Represents the sign-in name for the user, when signInType is set to emailAddress or
     * userName (also known as local accounts).When signInType is set to: emailAddress, (or a custom string that starts with
     * emailAddress like emailAddress1) issuerAssignedId must be a valid email addressuserName, issuerAssignedId must begin
     * with alphabetical character or number, and can only contain alphanumeric characters and the following symbols: - or
     * Supports $filter. 64 character limit.
     */
    issuerAssignedId?: NullableOption<string>;
    /**
     * Specifies the user sign-in types in your directory, such as emailAddress, userName, federated, or userPrincipalName.
     * federated represents a unique identifier for a user from an issuer, that can be in any format chosen by the issuer.
     * Setting or updating a userPrincipalName identity will update the value of the userPrincipalName property on the user
     * object. The validations performed on the userPrincipalName property on the user object, for example, verified domains
     * and acceptable characters, will be performed when setting or updating a userPrincipalName identity. Other validation is
     * enforced on issuerAssignedId when the sign-in type is set to emailAddress or userName. This property can also be set to
     * any custom string.
     */
    signInType?: NullableOption<string>;
}
export interface LicenseAssignmentState {
    assignedByGroup?: NullableOption<string>;
    disabledPlans?: NullableOption<string[]>;
    error?: NullableOption<string>;
    lastUpdatedDateTime?: NullableOption<string>;
    skuId?: NullableOption<string>;
    state?: NullableOption<string>;
}
export interface OnPremisesExtensionAttributes {
    // First customizable extension attribute.
    extensionAttribute1?: NullableOption<string>;
    // Tenth customizable extension attribute.
    extensionAttribute10?: NullableOption<string>;
    // Eleventh customizable extension attribute.
    extensionAttribute11?: NullableOption<string>;
    // Twelfth customizable extension attribute.
    extensionAttribute12?: NullableOption<string>;
    // Thirteenth customizable extension attribute.
    extensionAttribute13?: NullableOption<string>;
    // Fourteenth customizable extension attribute.
    extensionAttribute14?: NullableOption<string>;
    // Fifteenth customizable extension attribute.
    extensionAttribute15?: NullableOption<string>;
    // Second customizable extension attribute.
    extensionAttribute2?: NullableOption<string>;
    // Third customizable extension attribute.
    extensionAttribute3?: NullableOption<string>;
    // Fourth customizable extension attribute.
    extensionAttribute4?: NullableOption<string>;
    // Fifth customizable extension attribute.
    extensionAttribute5?: NullableOption<string>;
    // Sixth customizable extension attribute.
    extensionAttribute6?: NullableOption<string>;
    // Seventh customizable extension attribute.
    extensionAttribute7?: NullableOption<string>;
    // Eighth customizable extension attribute.
    extensionAttribute8?: NullableOption<string>;
    // Ninth customizable extension attribute.
    extensionAttribute9?: NullableOption<string>;
}
export interface OnPremisesProvisioningError {
    /**
     * Category of the provisioning error. Note: Currently, there is only one possible value. Possible value: PropertyConflict
     * - indicates a property value is not unique. Other objects contain the same value for the property.
     */
    category?: NullableOption<string>;
    // The date and time at which the error occurred.
    occurredDateTime?: NullableOption<string>;
    // Name of the directory property causing the error. Current possible values: UserPrincipalName or ProxyAddress
    propertyCausingError?: NullableOption<string>;
    // Value of the property causing the error.
    value?: NullableOption<string>;
}
export interface PasswordProfile {
    // true if the user must change her password on the next login; otherwise false.
    forceChangePasswordNextSignIn?: NullableOption<boolean>;
    /**
     * If true, at next sign-in, the user must perform a multi-factor authentication (MFA) before being forced to change their
     * password. The behavior is identical to forceChangePasswordNextSignIn except that the user is required to first perform
     * a multi-factor authentication before password change. After a password change, this property will be automatically
     * reset to false. If not set, default is false.
     */
    forceChangePasswordNextSignInWithMfa?: NullableOption<boolean>;
    /**
     * The password for the user. This property is required when a user is created. It can be updated, but the user will be
     * required to change the password on the next login. The password must satisfy minimum requirements as specified by the
     * user's passwordPolicies property. By default, a strong password is required.
     */
    password?: NullableOption<string>;
}
export interface ProvisionedPlan {
    // For example, 'Enabled'.
    capabilityStatus?: NullableOption<string>;
    // For example, 'Success'.
    provisioningStatus?: NullableOption<string>;
    // The name of the service; for example, 'AccessControlS2S'
    service?: NullableOption<string>;
}
export interface ServiceProvisioningError {
    createdDateTime?: NullableOption<string>;
    isResolved?: NullableOption<boolean>;
    serviceInstance?: NullableOption<string>;
}
export interface MailboxSettings {
    // Folder ID of an archive folder for the user.
    archiveFolder?: NullableOption<string>;
    // Configuration settings to automatically notify the sender of an incoming email with a message from the signed-in user.
    automaticRepliesSetting?: NullableOption<AutomaticRepliesSetting>;
    // The date format for the user's mailbox.
    dateFormat?: NullableOption<string>;
    /**
     * If the user has a calendar delegate, this specifies whether the delegate, mailbox owner, or both receive meeting
     * messages and meeting responses. Possible values are: sendToDelegateAndInformationToPrincipal,
     * sendToDelegateAndPrincipal, sendToDelegateOnly.
     */
    delegateMeetingMessageDeliveryOptions?: NullableOption<DelegateMeetingMessageDeliveryOptions>;
    // The locale information for the user, including the preferred language and country/region.
    language?: NullableOption<LocaleInfo>;
    // The time format for the user's mailbox.
    timeFormat?: NullableOption<string>;
    // The default time zone for the user's mailbox.
    timeZone?: NullableOption<string>;
    /**
     * The purpose of the mailbox. Differentiates a mailbox for a single user from a shared mailbox and equipment mailbox in
     * Exchange Online. Possible values are: user, linked, shared, room, equipment, others, unknownFutureValue. Read-only.
     */
    userPurpose?: NullableOption<UserPurpose>;
    // The days of the week and hours in a specific time zone that the user works.
    workingHours?: NullableOption<WorkingHours>;
}
export interface UserPrint {
    recentPrinterShares?: NullableOption<PrinterShare[]>;
}
export interface AppIdentity {
    // Refers to the unique ID representing application in Microsoft Entra ID.
    appId?: NullableOption<string>;
    // Refers to the application name displayed in the Microsoft Entra admin center.
    displayName?: NullableOption<string>;
    // Refers to the unique ID for the service principal in Microsoft Entra ID.
    servicePrincipalId?: NullableOption<string>;
    // Refers to the Service Principal Name is the Application name in the tenant.
    servicePrincipalName?: NullableOption<string>;
}
export interface AppliedConditionalAccessPolicy {
    // Refers to the Name of the conditional access policy (example: 'Require MFA for Salesforce').
    displayName?: NullableOption<string>;
    // Refers to the grant controls enforced by the conditional access policy (example: 'Require multifactor authentication').
    enforcedGrantControls?: NullableOption<string[]>;
    // Refers to the session controls enforced by the conditional access policy (example: 'Require app enforced controls').
    enforcedSessionControls?: NullableOption<string[]>;
    // An identifier of the conditional access policy.
    id?: NullableOption<string>;
    /**
     * Indicates the result of the CA policy that was triggered. Possible values are: success, failure, notApplied (Policy
     * isn't applied because policy conditions weren't met),notEnabled (This is due to the policy in disabled state), unknown,
     * unknownFutureValue.
     */
    result?: NullableOption<AppliedConditionalAccessPolicyResult>;
}
export interface AuditActivityInitiator {
    /**
     * If the resource initiating the activity is an app, this property indicates all the app related information like appId,
     * Name, servicePrincipalId, Name.
     */
    app?: NullableOption<AppIdentity>;
    /**
     * If the resource initiating the activity is a user, this property Indicates all the user related information like
     * userId, Name, UserPrinicpalName.
     */
    user?: NullableOption<UserIdentity>;
}
export interface UserIdentity extends Identity {
    // Indicates the client IP address used by user performing the activity (audit log only).
    ipAddress?: NullableOption<string>;
    // The userPrincipalName attribute of the user.
    userPrincipalName?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface DetailsInfo {}
export interface DeviceDetail {
    // Indicates the browser information of the used for signing in.
    browser?: NullableOption<string>;
    // Refers to the UniqueID of the device used for signing in.
    deviceId?: NullableOption<string>;
    // Refers to the name of the device used for signing in.
    displayName?: NullableOption<string>;
    // Indicates whether the device is compliant.
    isCompliant?: NullableOption<boolean>;
    // Indicates whether the device is managed.
    isManaged?: NullableOption<boolean>;
    // Indicates the operating system name and version used for signing in.
    operatingSystem?: NullableOption<string>;
    // Provides information about whether the signed-in device is Workplace Joined, AzureAD Joined, Domain Joined.
    trustType?: NullableOption<string>;
}
export interface GeoCoordinates {
    // Optional. The altitude (height), in feet, above sea level for the item. Read-only.
    altitude?: NullableOption<number>;
    // Optional. The latitude, in decimal, for the item. Read-only.
    latitude?: NullableOption<number>;
    // Optional. The longitude, in decimal, for the item. Read-only.
    longitude?: NullableOption<number>;
}
// tslint:disable-next-line: interface-name
export interface Initiator extends Identity {
    // Type of initiator. Possible values are: user, application, system, unknownFutureValue.
    initiatorType?: NullableOption<InitiatorType>;
}
export interface KeyValue {
    // Key for the key-value pair.
    key?: NullableOption<string>;
    // Value for the key-value pair.
    value?: NullableOption<string>;
}
export interface ModifiedProperty {
    // Indicates the property name of the target attribute that was changed.
    displayName?: NullableOption<string>;
    // Indicates the updated value for the propery.
    newValue?: NullableOption<string>;
    // Indicates the previous value (before the update) for the property.
    oldValue?: NullableOption<string>;
}
export interface ProvisionedIdentity extends Identity {
    // Details of the identity.
    details?: NullableOption<DetailsInfo>;
    // Type of identity that has been provisioned, such as 'user' or 'group'. Supports $filter (eq, contains).
    identityType?: NullableOption<string>;
}
export interface ProvisioningErrorInfo {
    // Additional details if there's error.
    additionalDetails?: NullableOption<string>;
    // Categorizes the error code. Possible values are failure, nonServiceFailure, success, unknownFutureValue
    errorCategory?: NullableOption<ProvisioningStatusErrorCategory>;
    // Unique error code if any occurred. Learn more
    errorCode?: NullableOption<string>;
    // Summarizes the status and describes why the status happened.
    reason?: NullableOption<string>;
    // Provides the resolution for the corresponding error.
    recommendedAction?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface ProvisioningServicePrincipal extends Identity {}
export interface ProvisioningStatusInfo {
    // If status isn't success/ skipped details for the error are contained in this.
    errorInformation?: NullableOption<ProvisioningErrorInfo>;
    // Possible values are: success, warning, failure, skipped, unknownFutureValue.
    status?: NullableOption<ProvisioningResult>;
}
export interface ProvisioningStep {
    // Summary of what occurred during the step.
    description?: NullableOption<string>;
    // Details of what occurred during the step.
    details?: NullableOption<DetailsInfo>;
    // Name of the step.
    name?: NullableOption<string>;
    /**
     * Type of step. Possible values are: import, scoping, matching, processing, referenceResolution, export,
     * unknownFutureValue.
     */
    provisioningStepType?: NullableOption<ProvisioningStepType>;
    // Status of the step. Possible values are: success, warning, failure, skipped, unknownFutureValue.
    status?: NullableOption<ProvisioningResult>;
}
export interface ProvisioningSystem extends Identity {
    // Details of the system.
    details?: NullableOption<DetailsInfo>;
}
export interface SignInLocation {
    /**
     * Provides the city where the sign-in originated and is determined using latitude/longitude information from the sign-in
     * activity.
     */
    city?: NullableOption<string>;
    /**
     * Provides the country code info (two letter code) where the sign-in originated. This is calculated using
     * latitude/longitude information from the sign-in activity.
     */
    countryOrRegion?: NullableOption<string>;
    // Provides the latitude, longitude and altitude where the sign-in originated.
    geoCoordinates?: NullableOption<GeoCoordinates>;
    /**
     * Provides the State where the sign-in originated. This is calculated using latitude/longitude information from the
     * sign-in activity.
     */
    state?: NullableOption<string>;
}
export interface SignInStatus {
    // Provides additional details on the sign-in activity
    additionalDetails?: NullableOption<string>;
    /**
     * Provides the 5-6 digit error code that's generated during a sign-in failure. Check out the list of error codes and
     * messages.
     */
    errorCode?: NullableOption<number>;
    /**
     * Provides the error message or the reason for failure for the corresponding sign-in activity. Check out the list of
     * error codes and messages.
     */
    failureReason?: NullableOption<string>;
}
export interface TargetResource {
    // Indicates the visible name defined for the resource. Typically specified when the resource is created.
    displayName?: NullableOption<string>;
    /**
     * When type is set to Group, this indicates the group type. Possible values are: unifiedGroups, azureAD, and
     * unknownFutureValue
     */
    groupType?: NullableOption<GroupType>;
    // Indicates the unique ID of the resource.
    id?: NullableOption<string>;
    // Indicates name, old value and new value of each attribute that changed. Property values depend on the operation type.
    modifiedProperties?: NullableOption<ModifiedProperty[]>;
    // Describes the resource type. Example values include Application, Group, ServicePrincipal, and User.
    type?: NullableOption<string>;
    // When type is set to User, this includes the user name that initiated the action; null for other types.
    userPrincipalName?: NullableOption<string>;
}
export interface UserRegistrationFeatureCount {
    /**
     * Number of users registered or capable for multifactor authentication, self-service password reset, and passwordless
     * authentication. Possible values are: ssprRegistered, ssprEnabled, ssprCapable, passwordlessCapable, mfaCapable,
     * unknownFutureValue.
     */
    feature?: AuthenticationMethodFeature;
    // Number of users.
    userCount?: number;
}
export interface UserRegistrationFeatureSummary {
    // Total number of users accounts, excluding those that are blocked.
    totalUserCount?: number;
    /**
     * Number of users registered or capable for multi-factor authentication, self-service password reset, and passwordless
     * authentication.
     */
    userRegistrationFeatureCounts?: UserRegistrationFeatureCount[];
    // The role type of the user. Possible values are: all, privilegedAdmin, admin, user, unknownFutureValue.
    userRoles?: NullableOption<IncludedUserRoles>;
    // User type. Possible values are: all, member, guest, unknownFutureValue.
    userTypes?: NullableOption<IncludedUserTypes>;
}
export interface UserRegistrationMethodCount {
    // Name of the authentication method.
    authenticationMethod?: string;
    // Number of users registered.
    userCount?: number;
}
export interface UserRegistrationMethodSummary {
    // Total number of users in the tenant.
    totalUserCount?: number;
    // Number of users registered for each authentication method.
    userRegistrationMethodCounts?: UserRegistrationMethodCount[];
    // The role type of the user. Possible values are: all, privilegedAdmin, admin, user, unknownFutureValue.
    userRoles?: NullableOption<IncludedUserRoles>;
    // User type. Possible values are: all, member, guest, unknownFutureValue.
    userTypes?: NullableOption<IncludedUserTypes>;
}
export interface EmailAddress {
    // The email address of the person or entity.
    address?: NullableOption<string>;
    // The display name of the person or entity.
    name?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InvitedUserMessageInfo {
    // Additional recipients the invitation message should be sent to. Currently only one additional recipient is supported.
    ccRecipients?: NullableOption<Recipient[]>;
    // Customized message body you want to send if you don't want the default message.
    customizedMessageBody?: NullableOption<string>;
    /**
     * The language you want to send the default message in. If the customizedMessageBody is specified, this property is
     * ignored, and the message is sent using the customizedMessageBody. The language format should be in ISO 639. The default
     * is en-US.
     */
    messageLanguage?: NullableOption<string>;
}
export interface Recipient {
    // The recipient's email address.
    emailAddress?: NullableOption<EmailAddress>;
}
export interface ApplicationServicePrincipal {
    application?: NullableOption<Application>;
    servicePrincipal?: NullableOption<ServicePrincipal>;
}
export interface PermissionScope {
    /**
     * A description of the delegated permissions, intended to be read by an administrator granting the permission on behalf
     * of all users. This text appears in tenant-wide admin consent experiences.
     */
    adminConsentDescription?: NullableOption<string>;
    // The permission's title, intended to be read by an administrator granting the permission on behalf of all users.
    adminConsentDisplayName?: NullableOption<string>;
    /**
     * Unique delegated permission identifier inside the collection of delegated permissions defined for a resource
     * application.
     */
    id?: string;
    /**
     * When you create or update a permission, this property must be set to true (which is the default). To delete a
     * permission, this property must first be set to false. At that point, in a subsequent call, the permission may be
     * removed.
     */
    isEnabled?: boolean;
    origin?: NullableOption<string>;
    /**
     * The possible values are: User and Admin. Specifies whether this delegated permission should be considered safe for
     * non-admin users to consent to on behalf of themselves, or whether an administrator consent should always be required.
     * While Microsoft Graph defines the default consent requirement for each permission, the tenant administrator may
     * override the behavior in their organization (by allowing, restricting, or limiting user consent to this delegated
     * permission). For more information, see Configure how users consent to applications.
     */
    type?: NullableOption<string>;
    /**
     * A description of the delegated permissions, intended to be read by a user granting the permission on their own behalf.
     * This text appears in consent experiences where the user is consenting only on behalf of themselves.
     */
    userConsentDescription?: NullableOption<string>;
    /**
     * A title for the permission, intended to be read by a user granting the permission on their own behalf. This text
     * appears in consent experiences where the user is consenting only on behalf of themselves.
     */
    userConsentDisplayName?: NullableOption<string>;
    /**
     * Specifies the value to include in the scp (scope) claim in access tokens. Must not exceed 120 characters in length.
     * Allowed characters are : ! # $ % &amp; ' ( ) * + , - . / : ; = ? @ [ ] ^ + _ { } ~, and characters in the ranges 0-9,
     * A-Z and a-z. Any other character, including the space character, aren't allowed. May not begin with ..
     */
    value?: NullableOption<string>;
}
export interface ResourceSpecificPermission {
    // Describes the level of access that the resource-specific permission represents.
    description?: NullableOption<string>;
    // The display name for the resource-specific permission.
    displayName?: NullableOption<string>;
    // The unique identifier for the resource-specific application permission.
    id?: string;
    // Indicates whether the permission is enabled.
    isEnabled?: boolean;
    // The value of the permission.
    value?: NullableOption<string>;
}
export interface SamlSingleSignOnSettings {
    // The relative URI the service provider would redirect to after completion of the single sign-on flow.
    relayState?: NullableOption<string>;
}
export interface AuthenticationMethodFeatureConfiguration {
    // A single entity that is excluded from this feature.
    excludeTarget?: NullableOption<FeatureTarget>;
    // A single entity that is included in this feature.
    includeTarget?: NullableOption<FeatureTarget>;
    /**
     * Enable or disable the feature. Possible values are: default, enabled, disabled, unknownFutureValue. The default value
     * is used when the configuration hasn't been explicitly set and uses the default behavior of Microsoft Entra ID for the
     * setting. The default value is disabled.
     */
    state?: NullableOption<AdvancedConfigState>;
}
export interface FeatureTarget {
    // The ID of the entity that's targeted in the include or exclude rule, or all_users to target all users.
    id?: NullableOption<string>;
    // The kind of entity that's targeted. The possible values are: group, administrativeUnit, role, unknownFutureValue.
    targetType?: NullableOption<FeatureTargetType>;
}
export interface AuthenticationMethodsRegistrationCampaign {
    // Users and groups of users that are excluded from being prompted to set up the authentication method.
    excludeTargets?: ExcludeTarget[];
    // Users and groups of users that are prompted to set up the authentication method.
    includeTargets?: AuthenticationMethodsRegistrationCampaignIncludeTarget[];
    /**
     * Specifies the number of days that the user sees a prompt again if they select 'Not now' and snoozes the prompt.
     * Minimum: 0 days. Maximum: 14 days. If the value is '0', the user is prompted during every MFA attempt.
     */
    snoozeDurationInDays?: number;
    /**
     * Enable or disable the feature. Possible values are: default, enabled, disabled, unknownFutureValue. The default value
     * is used when the configuration hasn't been explicitly set and uses the default behavior of Microsoft Entra ID for the
     * setting. The default value is disabled.
     */
    state?: AdvancedConfigState;
}
export interface ExcludeTarget {
    // The object identifier of a Microsoft Entra user or group.
    id?: string;
    // The type of the authentication method target. Possible values are: user, group, unknownFutureValue.
    targetType?: AuthenticationMethodTargetType;
}
export interface AuthenticationMethodsRegistrationCampaignIncludeTarget {
    // The object identifier of a Microsoft Entra user or group.
    id?: string;
    // The authentication method that the user is prompted to register. The value must be microsoftAuthenticator.
    targetedAuthenticationMethod?: NullableOption<string>;
    // The type of the authentication method target. Possible values are: user, group, unknownFutureValue.
    targetType?: AuthenticationMethodTargetType;
}
export interface Fido2KeyRestrictions {
    // A collection of Authenticator Attestation GUIDs. AADGUIDs define key types and manufacturers.
    aaGuids?: NullableOption<string[]>;
    // Enforcement type. Possible values are: allow, block.
    enforcementType?: NullableOption<Fido2RestrictionEnforcementType>;
    // Determines if the configured key enforcement is enabled.
    isEnforced?: NullableOption<boolean>;
}
export interface MicrosoftAuthenticatorFeatureSettings {
    // Determines whether the user's Authenticator app shows them the client app they're signing into.
    displayAppInformationRequiredState?: NullableOption<AuthenticationMethodFeatureConfiguration>;
    /**
     * Determines whether the user's Authenticator app shows them the geographic location of where the authentication request
     * originated from.
     */
    displayLocationInformationRequiredState?: NullableOption<AuthenticationMethodFeatureConfiguration>;
}
export interface RegistrationEnforcement {
    // Run campaigns to remind users to set up targeted authentication methods.
    authenticationMethodsRegistrationCampaign?: NullableOption<AuthenticationMethodsRegistrationCampaign>;
}
export interface UpdateAllowedCombinationsResult {
    // Information about why the updateAllowedCombinations action was successful or failed.
    additionalInformation?: NullableOption<string>;
    // References to existing Conditional Access policies that use this authentication strength.
    conditionalAccessReferences?: NullableOption<string[]>;
    // The list of current authentication method combinations allowed by the authentication strength.
    currentCombinations?: AuthenticationMethodModes[];
    /**
     * The list of former authentication method combinations allowed by the authentication strength before they were updated
     * through the updateAllowedCombinations action.
     */
    previousCombinations?: AuthenticationMethodModes[];
}
export interface X509CertificateAuthenticationModeConfiguration {
    /**
     * Rules are configured in addition to the authentication mode to bind a specific x509CertificateRuleType to an
     * x509CertificateAuthenticationMode. For example, bind the policyOID with identifier 1.32.132.343 to
     * x509CertificateMultiFactor authentication mode.
     */
    rules?: NullableOption<X509CertificateRule[]>;
    /**
     * The type of strong authentication mode. The possible values are: x509CertificateSingleFactor,
     * x509CertificateMultiFactor, unknownFutureValue.
     */
    x509CertificateAuthenticationDefaultMode?: NullableOption<X509CertificateAuthenticationMode>;
}
export interface X509CertificateRule {
    // The identifier of the X.509 certificate. Required.
    identifier?: NullableOption<string>;
    /**
     * The type of strong authentication mode. The possible values are: x509CertificateSingleFactor,
     * x509CertificateMultiFactor, unknownFutureValue. Required.
     */
    x509CertificateAuthenticationMode?: NullableOption<X509CertificateAuthenticationMode>;
    /**
     * The type of the X.509 certificate mode configuration rule. The possible values are: issuerSubject, policyOID,
     * unknownFutureValue. Required.
     */
    x509CertificateRuleType?: NullableOption<X509CertificateRuleType>;
}
export interface X509CertificateUserBinding {
    /**
     * The priority of the binding. Microsoft Entra ID uses the binding with the highest priority. This value must be a
     * non-negative integer and unique in the collection of objects in the certificateUserBindings property of an
     * x509CertificateAuthenticationMethodConfiguration object. Required
     */
    priority?: number;
    /**
     * Defines the Microsoft Entra user property of the user object to use for the binding. The possible values are:
     * userPrincipalName, onPremisesUserPrincipalName, certificateUserIds. Required.
     */
    userProperty?: NullableOption<string>;
    /**
     * The field on the X.509 certificate to use for the binding. The possible values are: PrincipalName, RFC822Name,
     * SubjectKeyIdentifier, SHA1PublicKey.
     */
    x509CertificateField?: NullableOption<string>;
}
export interface AvailabilityItem {
    // The end time of the time slot.
    endDateTime?: DateTimeTimeZone;
    /**
     * Indicates the service ID for 1:n appointments. If the appointment is of type 1:n, this field is present, otherwise,
     * null.
     */
    serviceId?: NullableOption<string>;
    // The start time of the time slot.
    startDateTime?: DateTimeTimeZone;
    // The status of the staff member. Possible values are: available, busy, slotsAvailable, outOfOffice, unknownFutureValue.
    status?: NullableOption<BookingsAvailabilityStatus>;
}
export interface DateTimeTimeZone {
    /**
     * A single point of time in a combined date and time representation ({date}T{time}; for example,
     * 2017-08-29T04:00:00.0000000).
     */
    dateTime?: string;
    // Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.
    timeZone?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface BookingCustomerInformationBase {}
export interface BookingCustomerInformation extends BookingCustomerInformationBase {
    /**
     * The ID of the bookingCustomer for this appointment. If no ID is specified when an appointment is created, then a new
     * bookingCustomer object is created. Once set, you should consider the customerId immutable.
     */
    customerId?: NullableOption<string>;
    // It consists of the list of custom questions and answers given by the customer as part of the appointment
    customQuestionAnswers?: NullableOption<BookingQuestionAnswer[]>;
    // The SMTP address of the bookingCustomer who is booking the appointment
    emailAddress?: NullableOption<string>;
    // Represents location information for the bookingCustomer who is booking the appointment.
    location?: NullableOption<Location>;
    // The customer's name.
    name?: NullableOption<string>;
    /**
     * Notes from the customer associated with this appointment. You can get the value only when reading this
     * bookingAppointment by its ID. You can set this property only when initially creating an appointment with a new
     * customer. After that point, the value is computed from the customer represented by the customerId.
     */
    notes?: NullableOption<string>;
    // The customer's phone number.
    phone?: NullableOption<string>;
    // The time zone of the customer. For a list of possible values, see dateTimeTimeZone.
    timeZone?: NullableOption<string>;
}
export interface BookingQuestionAnswer {
    // The answer given by the user in case the answerInputType is text.
    answer?: NullableOption<string>;
    // The expected answer type. The possible values are: text, radioButton, unknownFutureValue.
    answerInputType?: NullableOption<AnswerInputType>;
    // In case the answerInputType is radioButton, this will consists of a list of possible answer values.
    answerOptions?: NullableOption<string[]>;
    // Indicates whether it is mandatory to answer the custom question.
    isRequired?: NullableOption<boolean>;
    // The question.
    question?: NullableOption<string>;
    // The ID of the custom question.
    questionId?: NullableOption<string>;
    // The answers selected by the user.
    selectedOptions?: NullableOption<string[]>;
}
export interface Location {
    // The street address of the location.
    address?: NullableOption<PhysicalAddress>;
    // The geographic coordinates and elevation of the location.
    coordinates?: NullableOption<OutlookGeoCoordinates>;
    // The name associated with the location.
    displayName?: NullableOption<string>;
    // Optional email address of the location.
    locationEmailAddress?: NullableOption<string>;
    /**
     * The type of location. The possible values are: default, conferenceRoom, homeAddress, businessAddress,geoCoordinates,
     * streetAddress, hotel, restaurant, localBusiness, postalAddress. Read-only.
     */
    locationType?: NullableOption<LocationType>;
    // Optional URI representing the location.
    locationUri?: NullableOption<string>;
    // For internal use only.
    uniqueId?: NullableOption<string>;
    // For internal use only.
    uniqueIdType?: NullableOption<LocationUniqueIdType>;
}
export interface BookingQuestionAssignment {
    // The ID of the custom question.
    isRequired?: boolean;
    // Indicates whether it's mandatory to answer the custom question.
    questionId?: string;
}
export interface BookingReminder {
    // The message in the reminder.
    message?: string;
    /**
     * The amount of time before the start of an appointment that the reminder should be sent. It's denoted in ISO 8601
     * format.
     */
    offset?: string;
    // The persons who should receive the reminder. Possible values are: allAttendees, staff, customer, unknownFutureValue.
    recipients?: BookingReminderRecipients;
}
export interface BookingSchedulingPolicy {
    // True if to allow customers to choose a specific person for the booking.
    allowStaffSelection?: boolean;
    // Maximum number of days in advance that a booking can be made. It follows the ISO 8601 format.
    maximumAdvance?: string;
    // The minimum amount of time before which bookings and cancellations must be made. It follows the ISO 8601 format.
    minimumLeadTime?: string;
    /**
     * True to notify the business via email when a booking is created or changed. Use the email address specified in the
     * email property of the bookingBusiness entity for the business.
     */
    sendConfirmationsToOwner?: boolean;
    // Duration of each time slot, denoted in ISO 8601 format.
    timeSlotInterval?: string;
}
export interface BookingWorkHours {
    /**
     * The day of the week represented by this instance. Possible values are: sunday, monday, tuesday, wednesday, thursday,
     * friday, saturday.
     */
    day?: DayOfWeek;
    // A list of start/end times during a day.
    timeSlots?: NullableOption<BookingWorkTimeSlot[]>;
}
export interface BookingWorkTimeSlot {
    // The time of the day when work stops. For example, 17:00:00.0000000.
    endTime?: string;
    // The time of the day when work starts. For example, 08:00:00.0000000.
    startTime?: string;
}
export interface PhysicalAddress {
    // The city.
    city?: NullableOption<string>;
    // The country or region. It's a free-format string value, for example, 'United States'.
    countryOrRegion?: NullableOption<string>;
    // The postal code.
    postalCode?: NullableOption<string>;
    // The state.
    state?: NullableOption<string>;
    // The street.
    street?: NullableOption<string>;
}
export interface OutlookGeoCoordinates {
    /**
     * The accuracy of the latitude and longitude. As an example, the accuracy can be measured in meters, such as the latitude
     * and longitude are accurate to within 50 meters.
     */
    accuracy?: NullableOption<number>;
    // The altitude of the location.
    altitude?: NullableOption<number>;
    // The accuracy of the altitude.
    altitudeAccuracy?: NullableOption<number>;
    // The latitude of the location.
    latitude?: NullableOption<number>;
    // The longitude of the location.
    longitude?: NullableOption<number>;
}
export interface Phone {
    language?: NullableOption<string>;
    // The phone number.
    number?: NullableOption<string>;
    region?: NullableOption<string>;
    /**
     * The type of phone number. The possible values are: home, business, mobile, other, assistant, homeFax, businessFax,
     * otherFax, pager, radio.
     */
    type?: NullableOption<PhoneType>;
}
export interface StaffAvailabilityItem {
    // Each item in this collection indicates a slot and the status of the staff member.
    availabilityItems?: NullableOption<AvailabilityItem[]>;
    // The ID of the staff member.
    staffId?: NullableOption<string>;
}
export interface TimeSlot {
    // The date, time, and time zone that a period ends.
    end?: DateTimeTimeZone;
    // The date, time, and time zone that a period begins.
    start?: DateTimeTimeZone;
}
export interface DataSubject {
    // Email of the data subject.
    email?: NullableOption<string>;
    // First name of the data subject.
    firstName?: NullableOption<string>;
    // Last Name of the data subject.
    lastName?: NullableOption<string>;
    /**
     * The country/region of residency. The residency information is uesed only for internal reporting but not for the content
     * search.
     */
    residency?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IdentitySet {
    // Optional. The application associated with this action.
    application?: NullableOption<Identity>;
    // Optional. The device associated with this action.
    device?: NullableOption<Identity>;
    // Optional. The user associated with this action.
    user?: NullableOption<Identity>;
}
// tslint:disable-next-line: interface-name
export interface ItemBody {
    // The content of the item.
    content?: NullableOption<string>;
    // The type of the content. Possible values are text and html.
    contentType?: NullableOption<BodyType>;
}
export interface PublicError {
    // Represents the error code.
    code?: NullableOption<string>;
    // Details of the error.
    details?: NullableOption<PublicErrorDetail[]>;
    // Details of the inner error.
    innerError?: NullableOption<PublicInnerError>;
    // A non-localized message for the developer.
    message?: NullableOption<string>;
    // The target of the error.
    target?: NullableOption<string>;
}
export interface PublicErrorDetail {
    // The error code.
    code?: NullableOption<string>;
    // The error message.
    message?: NullableOption<string>;
    // The target of the error.
    target?: NullableOption<string>;
}
export interface PublicInnerError {
    // The error code.
    code?: NullableOption<string>;
    // A collection of error details.
    details?: NullableOption<PublicErrorDetail[]>;
    // The error message.
    message?: NullableOption<string>;
    // The target of the error.
    target?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface SubjectRightsRequestMailboxLocation {}
// tslint:disable-next-line: no-empty-interface
export interface SubjectRightsRequestAllMailboxLocation extends SubjectRightsRequestMailboxLocation {}
// tslint:disable-next-line: no-empty-interface
export interface SubjectRightsRequestSiteLocation {}
// tslint:disable-next-line: no-empty-interface
export interface SubjectRightsRequestAllSiteLocation extends SubjectRightsRequestSiteLocation {}
export interface SubjectRightsRequestDetail {
    // Count of items that are excluded from the request.
    excludedItemCount?: NullableOption<number>;
    // Count of items per insight.
    insightCounts?: NullableOption<KeyValuePair[]>;
    // Count of items found.
    itemCount?: NullableOption<number>;
    // Count of item that need review.
    itemNeedReview?: NullableOption<number>;
    // Count of items per product, such as Exchange, SharePoint, OneDrive, and Teams.
    productItemCounts?: NullableOption<KeyValuePair[]>;
    // Count of items signed off by the administrator.
    signedOffItemCount?: NullableOption<number>;
    // Total item size in bytes.
    totalItemSize?: NullableOption<number>;
}
export interface SubjectRightsRequestEnumeratedMailboxLocation extends SubjectRightsRequestMailboxLocation {
    /**
     * Collection of mailboxes that should be included in the search. Includes the user principal name (UPN) of each mailbox,
     * for example, Monica.Thompson@contoso.com.
     */
    userPrincipalNames?: NullableOption<string[]>;
}
export interface SubjectRightsRequestEnumeratedSiteLocation extends SubjectRightsRequestSiteLocation {
    /**
     * Collection of site URLs that should be included. Includes the URL of each site, for example,
     * https://www.contoso.com/site1.
     */
    urls?: NullableOption<string[]>;
}
export interface SubjectRightsRequestHistory {
    // Identity of the user who changed the subject rights request.
    changedBy?: NullableOption<IdentitySet>;
    // Data and time when the entity was changed.
    eventDateTime?: NullableOption<string>;
    /**
     * The stage when the entity was changed. Possible values are: contentRetrieval, contentReview, generateReport,
     * contentDeletion, caseResolved, unknownFutureValue, approval. Note that you must use the Prefer:
     * include-unknown-enum-members request header to get the following value(s) in this evolvable enum: approval.
     */
    stage?: NullableOption<SubjectRightsRequestStage>;
    /**
     * The status of the stage when the entity was changed. Possible values are: notStarted, current, completed, failed,
     * unknownFutureValue.
     */
    stageStatus?: NullableOption<SubjectRightsRequestStageStatus>;
    // Type of history.
    type?: NullableOption<string>;
}
export interface SubjectRightsRequestStageDetail {
    // Describes the error, if any, for the current stage.
    error?: NullableOption<PublicError>;
    /**
     * The stage of the subject rights request. Possible values are: contentRetrieval, contentReview, generateReport,
     * contentDeletion, caseResolved, unknownFutureValue, approval. You must use the Prefer: include-unknown-enum-members
     * request header to get the following value in this evolvable enum: approval.
     */
    stage?: NullableOption<SubjectRightsRequestStage>;
    // Status of the current stage. Possible values are: notStarted, current, completed, failed, unknownFutureValue.
    status?: NullableOption<SubjectRightsRequestStageStatus>;
}
export interface TeamFunSettings {
    // If set to true, enables users to include custom memes.
    allowCustomMemes?: NullableOption<boolean>;
    // If set to true, enables Giphy use.
    allowGiphy?: NullableOption<boolean>;
    // If set to true, enables users to include stickers and memes.
    allowStickersAndMemes?: NullableOption<boolean>;
    // Giphy content rating. Possible values are: moderate, strict.
    giphyContentRating?: NullableOption<GiphyRatingType>;
}
export interface TeamGuestSettings {
    // If set to true, guests can add and update channels.
    allowCreateUpdateChannels?: NullableOption<boolean>;
    // If set to true, guests can delete channels.
    allowDeleteChannels?: NullableOption<boolean>;
}
export interface TeamMemberSettings {
    // If set to true, members can add and remove apps.
    allowAddRemoveApps?: NullableOption<boolean>;
    // If set to true, members can add and update private channels.
    allowCreatePrivateChannels?: NullableOption<boolean>;
    // If set to true, members can add and update channels.
    allowCreateUpdateChannels?: NullableOption<boolean>;
    // If set to true, members can add, update, and remove connectors.
    allowCreateUpdateRemoveConnectors?: NullableOption<boolean>;
    // If set to true, members can add, update, and remove tabs.
    allowCreateUpdateRemoveTabs?: NullableOption<boolean>;
    // If set to true, members can delete channels.
    allowDeleteChannels?: NullableOption<boolean>;
}
export interface TeamMessagingSettings {
    // If set to true, @channel mentions are allowed.
    allowChannelMentions?: NullableOption<boolean>;
    // If set to true, owners can delete any message.
    allowOwnerDeleteMessages?: NullableOption<boolean>;
    // If set to true, @team mentions are allowed.
    allowTeamMentions?: NullableOption<boolean>;
    // If set to true, users can delete their messages.
    allowUserDeleteMessages?: NullableOption<boolean>;
    // If set to true, users can edit their messages.
    allowUserEditMessages?: NullableOption<boolean>;
}
export interface TeamSummary {
    // Count of guests in a team.
    guestsCount?: NullableOption<number>;
    // Count of members in a team.
    membersCount?: NullableOption<number>;
    // Count of owners in a team.
    ownersCount?: NullableOption<number>;
}
export interface ResultInfo {
    // The result code.
    code?: number;
    // The message.
    message?: NullableOption<string>;
    // The result subcode.
    subcode?: number;
}
export interface AssignedLabel {
    // The display name of the label. Read-only.
    displayName?: NullableOption<string>;
    // The unique identifier of the label.
    labelId?: NullableOption<string>;
}
export interface LicenseProcessingState {
    state?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface Root {}
export interface SharepointIds {
    // The unique identifier (guid) for the item's list in SharePoint.
    listId?: NullableOption<string>;
    // An integer identifier for the item within the containing list.
    listItemId?: NullableOption<string>;
    // The unique identifier (guid) for the item within OneDrive for Business or a SharePoint site.
    listItemUniqueId?: NullableOption<string>;
    // The unique identifier (guid) for the item's site collection (SPSite).
    siteId?: NullableOption<string>;
    // The SharePoint URL for the site that contains the item.
    siteUrl?: NullableOption<string>;
    // The unique identifier (guid) for the tenancy.
    tenantId?: NullableOption<string>;
    // The unique identifier (guid) for the item's site (SPWeb).
    webId?: NullableOption<string>;
}
export interface SiteCollection {
    // The geographic region code for where this site collection resides. Read-only.
    dataLocationCode?: NullableOption<string>;
    // The hostname for the site collection. Read-only.
    hostname?: NullableOption<string>;
    // If present, indicates that this is a root site collection in SharePoint. Read-only.
    root?: NullableOption<Root>;
}
// tslint:disable-next-line: no-empty-interface
export interface ApiAuthenticationConfigurationBase {}
export interface AssignmentOrder {
    /**
     * A list of identityUserFlowAttribute object identifiers that determine the order in which attributes should be collected
     * within a user flow.
     */
    order?: NullableOption<string[]>;
}
export interface BasicAuthentication extends ApiAuthenticationConfigurationBase {
    // The password. It isn't returned in the responses.
    password?: NullableOption<string>;
    // The username.
    username?: NullableOption<string>;
}
export interface ClientCertificateAuthentication extends ApiAuthenticationConfigurationBase {
    // The list of certificates uploaded for this API connector.
    certificateList?: NullableOption<Pkcs12CertificateInformation[]>;
}
export interface Pkcs12CertificateInformation {
    /**
     * Represents whether the certificate is the active certificate to be used for calling the API connector. The active
     * certificate is the most recently uploaded certificate that isn't yet expired but whose notBefore time is in the past.
     */
    isActive?: boolean;
    /**
     * The certificate's expiry. This value is a NumericDate as defined in RFC 7519 (A JSON numeric value representing the
     * number of seconds from 1970-01-01T00:00:00Z UTC until the specified UTC date/time, ignoring leap seconds.)
     */
    notAfter?: number;
    /**
     * The certificate's issue time (not before). This value is a NumericDate as defined in RFC 7519 (A JSON numeric value
     * representing the number of seconds from 1970-01-01T00:00:00Z UTC until the specified UTC date/time, ignoring leap
     * seconds.)
     */
    notBefore?: number;
    // The certificate thumbprint.
    thumbprint?: NullableOption<string>;
}
export interface Pkcs12Certificate extends ApiAuthenticationConfigurationBase {
    // The password for the pfx file. Required. If no password is used, you must still provide a value of ''.
    password?: NullableOption<string>;
    /**
     * Represents the pfx content that is sent. The value should be a base-64 encoded version of the actual certificate
     * content. Required.
     */
    pkcs12Value?: NullableOption<string>;
}
export interface SelfServiceSignUpAuthenticationFlowConfiguration {
    /**
     * Indicates whether self-service sign-up flow is enabled or disabled. The default value is false. This property isn't a
     * key. Required.
     */
    isEnabled?: boolean;
}
export interface UserAttributeValuesItem {
    // Determines whether the value is set as the default.
    isDefault?: boolean;
    // The display name of the property displayed to the user in the user flow.
    name?: NullableOption<string>;
    // The value that is set when this item is selected.
    value?: NullableOption<string>;
}
export interface UserFlowApiConnectorConfiguration {
    postAttributeCollection?: NullableOption<IdentityApiConnector>;
    postFederationSignup?: NullableOption<IdentityApiConnector>;
}
export interface LobbyBypassSettings {
    // Specifies whether or not to always let dial-in callers bypass the lobby. Optional.
    isDialInBypassEnabled?: NullableOption<boolean>;
    // Specifies the type of participants that are automatically admitted into a meeting, bypassing the lobby. Optional.
    scope?: NullableOption<LobbyBypassScope>;
}
export interface WatermarkProtectionValues {
    // Indicates whether to apply a watermark to any shared content.
    isEnabledForContentSharing?: NullableOption<boolean>;
    // Indicates whether to apply a watermark to everyone's video feed.
    isEnabledForVideo?: NullableOption<boolean>;
}
export interface DeviceLocalCredential extends Entity {
    // The name of the local admin account for which LAPS is enabled.
    accountName?: string;
    // The SID of the local admin account for which LAPS is enabled.
    accountSid?: string;
    // When the local administrator account credential for the device object was backed up to Azure Active Directory.
    backupDateTime?: string;
    /**
     * The password for the local administrator account that is backed up to Azure Active Directory and returned as a Base64
     * encoded value.
     */
    passwordBase64?: string;
}
export interface AlternativeSecurityId {
    // For internal use only.
    identityProvider?: NullableOption<string>;
    // For internal use only.
    key?: NullableOption<string>;
    // For internal use only.
    type?: NullableOption<number>;
}
export interface PreAuthorizedApplication {
    // The unique identifier for the application.
    appId?: NullableOption<string>;
    // The unique identifier for the oauth2PermissionScopes the application requires.
    delegatedPermissionIds?: string[];
}
export interface AppManagementConfiguration {
    // Collection of keyCredential restrictions settings to be applied to an application or service principal.
    keyCredentials?: NullableOption<KeyCredentialConfiguration[]>;
    // Collection of password restrictions settings to be applied to an application or service principal.
    passwordCredentials?: NullableOption<PasswordCredentialConfiguration[]>;
}
export interface KeyCredentialConfiguration {
    maxLifetime?: NullableOption<string>;
    /**
     * Timestamp when the policy is enforced for all apps created on or after the specified date. For existing applications,
     * the enforcement date would be back dated. To apply to all applications regardless of their creation date, this property
     * would be null. Nullable.
     */
    restrictForAppsCreatedAfterDateTime?: NullableOption<string>;
    /**
     * The type of restriction being applied. Possible values are asymmetricKeyLifetime, unknownFutureValue. Each value of
     * restrictionType can be used only once per policy.
     */
    restrictionType?: NullableOption<AppKeyCredentialRestrictionType>;
}
export interface PasswordCredentialConfiguration {
    maxLifetime?: NullableOption<string>;
    /**
     * Enforces the policy for an app created on or after the enforcement date. For existing applications, the enforcement
     * date would be back dated. To apply to all applications, enforcement datetime would be null.
     */
    restrictForAppsCreatedAfterDateTime?: NullableOption<string>;
    /**
     * The type of restriction being applied. The possible values are: passwordAddition, passwordLifetime,
     * symmetricKeyAddition, symmetricKeyLifetime,customPasswordAddition, unknownFutureValue. Each value of restrictionType
     * can be used only once per policy.
     */
    restrictionType?: NullableOption<AppCredentialRestrictionType>;
}
export interface CertificateAuthority {
    // Required. The base64 encoded string representing the public certificate.
    certificate?: string;
    // The URL of the certificate revocation list.
    certificateRevocationListUrl?: NullableOption<string>;
    /**
     * The URL contains the list of all revoked certificates since the last time a full certificate revocaton list was
     * created.
     */
    deltaCertificateRevocationListUrl?: NullableOption<string>;
    /**
     * Required. true if the trusted certificate is a root authority, false if the trusted certificate is an intermediate
     * authority.
     */
    isRootAuthority?: boolean;
    // The issuer of the certificate, calculated from the certificate value. Read-only.
    issuer?: string;
    // The subject key identifier of the certificate, calculated from the certificate value. Read-only.
    issuerSki?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface ComplexExtensionValue {}
export interface CrossTenantAccessPolicyB2BSetting {
    // The list of applications targeted with your cross-tenant access policy.
    applications?: NullableOption<CrossTenantAccessPolicyTargetConfiguration>;
    // The list of users and groups targeted with your cross-tenant access policy.
    usersAndGroups?: NullableOption<CrossTenantAccessPolicyTargetConfiguration>;
}
export interface CrossTenantAccessPolicyTargetConfiguration {
    // Defines whether access is allowed or blocked. The possible values are: allowed, blocked, unknownFutureValue.
    accessType?: NullableOption<CrossTenantAccessPolicyTargetConfigurationAccessType>;
    // Specifies whether to target users, groups, or applications with this rule.
    targets?: NullableOption<CrossTenantAccessPolicyTarget[]>;
}
export interface CrossTenantAccessPolicyInboundTrust {
    // Specifies whether compliant devices from external Microsoft Entra organizations are trusted.
    isCompliantDeviceAccepted?: NullableOption<boolean>;
    // Specifies whether Microsoft Entra hybrid joined devices from external Microsoft Entra organizations are trusted.
    isHybridAzureADJoinedDeviceAccepted?: NullableOption<boolean>;
    // Specifies whether MFA from external Microsoft Entra organizations is trusted.
    isMfaAccepted?: NullableOption<boolean>;
}
export interface CrossTenantAccessPolicyTarget {
    /**
     * The unique identifier of the user, group, or application; one of the following keywords: AllUsers and AllApplications;
     * or for targets that are applications, you may use reserved values.
     */
    target?: NullableOption<string>;
    // The type of resource that you want to target. The possible values are: user, group, application, unknownFutureValue.
    targetType?: NullableOption<CrossTenantAccessPolicyTargetType>;
}
export interface CrossTenantUserSyncInbound {
    /**
     * Defines whether user objects should be synchronized from the partner tenant. false causes any current user
     * synchronization from the source tenant to the target tenant to stop. This property has no impact on existing users who
     * have already been synchronized.
     */
    isSyncAllowed?: NullableOption<boolean>;
}
export interface DefaultUserRolePermissions {
    /**
     * Indicates whether the default user role can create applications. This setting corresponds to the Users can register
     * applications setting in the User settings menu in the Microsoft Entra admin center.
     */
    allowedToCreateApps?: boolean;
    /**
     * Indicates whether the default user role can create security groups. This setting corresponds to the following menus in
     * the Microsoft Entra admin center: The Users can create security groups in Microsoft Entra admin centers, API or
     * PowerShell setting in the Group settings menu. Users can create security groups setting in the User settings menu.
     */
    allowedToCreateSecurityGroups?: boolean;
    /**
     * Indicates whether the default user role can create tenants. This setting corresponds to the Restrict non-admin users
     * from creating tenants setting in the User settings menu in the Microsoft Entra admin center. When this setting is
     * false, users assigned the Tenant Creator role can still create tenants.
     */
    allowedToCreateTenants?: NullableOption<boolean>;
    // Indicates whether the registered owners of a device can read their own BitLocker recovery keys with default user role.
    allowedToReadBitlockerKeysForOwnedDevice?: NullableOption<boolean>;
    // Indicates whether the default user role can read other users. DO NOT SET THIS VALUE TO false.
    allowedToReadOtherUsers?: boolean;
    /**
     * Indicates if user consent to apps is allowed, and if it is, which permission to grant consent and which app consent
     * policy (permissionGrantPolicy) govern the permission for users to grant consent. Value should be in the format
     * managePermissionGrantsForSelf.{id}, where {id} is the id of a built-in or custom app consent policy. An empty list
     * indicates user consent to apps is disabled.
     */
    permissionGrantPoliciesAssigned?: NullableOption<string[]>;
}
export interface DomainState {
    /**
     * Timestamp for when the last activity occurred. The value is updated when an operation is scheduled, the asynchronous
     * task starts, and when the operation completes.
     */
    lastActionDateTime?: NullableOption<string>;
    // Type of asynchronous operation. The values can be ForceDelete or Verification
    operation?: NullableOption<string>;
    /**
     * Current status of the operation. Scheduled - Operation has been scheduled but has not started. InProgress - Task has
     * started and is in progress. Failed - Operation has failed.
     */
    status?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface ImplicitGrantSettings {
    // Specifies whether this web application can request an access token using the OAuth 2.0 implicit flow.
    enableAccessTokenIssuance?: NullableOption<boolean>;
    // Specifies whether this web application can request an ID token using the OAuth 2.0 implicit flow.
    enableIdTokenIssuance?: NullableOption<boolean>;
}
// tslint:disable-next-line: interface-name
export interface InboundOutboundPolicyConfiguration {
    // Defines whether external users coming inbound are allowed.
    inboundAllowed?: NullableOption<boolean>;
    // Defines whether internal users are allowed to go outbound.
    outboundAllowed?: NullableOption<boolean>;
}
// tslint:disable-next-line: interface-name
export interface InstanceResourceAccess {
    permissions?: ResourcePermission[];
    resourceAppId?: string;
}
export interface ResourcePermission {
    type?: string;
    value?: string;
}
export interface LicenseUnitsDetail {
    // The number of units that are enabled for the active subscription of the service SKU.
    enabled?: NullableOption<number>;
    // The number of units that are locked out because the customer canceled their subscription of the service SKU.
    lockedOut?: NullableOption<number>;
    /**
     * The number of units that are suspended because the subscription of the service SKU has been canceled. The units can't
     * be assigned but can still be reactivated before they're deleted.
     */
    suspended?: NullableOption<number>;
    /**
     * The number of units that are in warning status. When the subscription of the service SKU has expired, the customer has
     * a grace period to renew their subscription before it's canceled (moved to a suspended state).
     */
    warning?: NullableOption<number>;
}
export interface LoginPageLayoutConfiguration {
    // Option to show the footer on the sign-in page.
    isFooterShown?: NullableOption<boolean>;
    // Option to show the header on the sign-in page.
    isHeaderShown?: NullableOption<boolean>;
    /**
     * Represents the layout template to be displayed on the login page for a tenant. The possible values are default -
     * Represents the default Microsoft layout with a centered lightbox. verticalSplit - Represents a layout with a background
     * on the left side and a full-height lightbox to the right. unknownFutureValue - Evolvable enumeration sentinel value.
     * Don't use.
     */
    layoutTemplateType?: NullableOption<LayoutTemplateType>;
}
export interface LoginPageTextVisibilitySettings {
    /**
     * Option to hide the self-service password reset (SSPR) hyperlinks such as 'Can't access your account?', 'Forgot my
     * password' and 'Reset it now' on the sign-in form.
     */
    hideAccountResetCredentials?: NullableOption<boolean>;
    // Option to hide the self-service password reset (SSPR) 'Can't access your account?' hyperlink on the sign-in form.
    hideCannotAccessYourAccount?: NullableOption<boolean>;
    // Option to hide the self-service password reset (SSPR) 'Forgot my password' hyperlink on the sign-in form.
    hideForgotMyPassword?: NullableOption<boolean>;
    // Option to hide the 'Privacy &amp; Cookies' hyperlink in the footer.
    hidePrivacyAndCookies?: NullableOption<boolean>;
    // Option to hide the self-service password reset (SSPR) 'reset it now' hyperlink on the sign-in form.
    hideResetItNow?: NullableOption<boolean>;
    // Option to hide the 'Terms of Use' hyperlink in the footer.
    hideTermsOfUse?: NullableOption<boolean>;
}
export interface OnPremisesAccidentalDeletionPrevention {
    /**
     * Threshold value which triggers accidental deletion prevention. The threshold is either an absolute number of objects or
     * a percentage number of objects.
     */
    alertThreshold?: NullableOption<number>;
    /**
     * The status of the accidental deletion prevention feature. The possible values are: disabled, enabledForCount,
     * enabledForPercentage, unknownFutureValue.
     */
    synchronizationPreventionType?: NullableOption<OnPremisesDirectorySynchronizationDeletionPreventionType>;
}
export interface OnPremisesDirectorySynchronizationConfiguration {
    // Contains the accidental deletion prevention configuration for a tenant.
    accidentalDeletionPrevention?: NullableOption<OnPremisesAccidentalDeletionPrevention>;
}
export interface OnPremisesDirectorySynchronizationFeature {
    // Used to block cloud object takeover via source anchor hard match if enabled.
    blockCloudObjectTakeoverThroughHardMatchEnabled?: NullableOption<boolean>;
    /**
     * Use to block soft match for all objects if enabled for the tenant. Customers are encouraged to enable this feature and
     * keep it enabled until soft matching is required again for their tenancy. This flag should be enabled again after any
     * soft matching has been completed and is no longer needed.
     */
    blockSoftMatchEnabled?: NullableOption<boolean>;
    /**
     * When true, persists the values of Mobile and OtherMobile in on-premises AD during sync cycles instead of values of
     * MobilePhone or AlternateMobilePhones in Microsoft Entra ID.
     */
    bypassDirSyncOverridesEnabled?: NullableOption<boolean>;
    // Used to indicate that cloud password policy applies to users whose passwords are synchronized from on-premises.
    cloudPasswordPolicyForPasswordSyncedUsersEnabled?: NullableOption<boolean>;
    // Used to enable concurrent user credentials update in OrgId.
    concurrentCredentialUpdateEnabled?: NullableOption<boolean>;
    // Used to enable concurrent user creation in OrgId.
    concurrentOrgIdProvisioningEnabled?: NullableOption<boolean>;
    // Used to indicate that device write-back is enabled.
    deviceWritebackEnabled?: NullableOption<boolean>;
    // Used to indicate that directory extensions are being synced from on-premises AD to Microsoft Entra ID.
    directoryExtensionsEnabled?: NullableOption<boolean>;
    /**
     * Used to indicate that for a Microsoft Forefront Online Protection for Exchange (FOPE) migrated tenant, the conflicting
     * proxy address should be migrated over.
     */
    fopeConflictResolutionEnabled?: NullableOption<boolean>;
    // Used to enable object-level group writeback feature for additional group types.
    groupWriteBackEnabled?: NullableOption<boolean>;
    // Used to indicate on-premise password synchronization is enabled.
    passwordSyncEnabled?: NullableOption<boolean>;
    // Used to indicate that writeback of password resets from Microsoft Entra ID to on-premises AD is enabled.
    passwordWritebackEnabled?: NullableOption<boolean>;
    // Used to indicate that we should quarantine objects with conflicting proxy address.
    quarantineUponProxyAddressesConflictEnabled?: NullableOption<boolean>;
    // Used to indicate that we should quarantine objects conflicting with duplicate userPrincipalName.
    quarantineUponUpnConflictEnabled?: NullableOption<boolean>;
    // Used to indicate that we should soft match objects based on userPrincipalName.
    softMatchOnUpnEnabled?: NullableOption<boolean>;
    // Used to indicate that we should synchronize userPrincipalName objects for managed users with licenses.
    synchronizeUpnForManagedUsersEnabled?: NullableOption<boolean>;
    // Used to indicate that Microsoft 365 Group write-back is enabled.
    unifiedGroupWritebackEnabled?: NullableOption<boolean>;
    /**
     * Used to indicate that feature to force password change for a user on logon is enabled while synchronizing on-premise
     * credentials.
     */
    userForcePasswordChangeOnLogonEnabled?: NullableOption<boolean>;
    // Used to indicate that user writeback is enabled.
    userWritebackEnabled?: NullableOption<boolean>;
}
export interface OptionalClaim {
    /**
     * Additional properties of the claim. If a property exists in this collection, it modifies the behavior of the optional
     * claim specified in the name property.
     */
    additionalProperties?: NullableOption<string[]>;
    /**
     * If the value is true, the claim specified by the client is necessary to ensure a smooth authorization experience for
     * the specific task requested by the end user. The default value is false.
     */
    essential?: boolean;
    // The name of the optional claim.
    name?: string;
    /**
     * The source (directory object) of the claim. There are predefined claims and user-defined claims from extension
     * properties. If the source value is null, the claim is a predefined optional claim. If the source value is user, the
     * value in the name property is the extension property from the user object.
     */
    source?: NullableOption<string>;
}
export interface PhysicalOfficeAddress {
    // The city.
    city?: NullableOption<string>;
    // The country or region. It's a free-format string value, for example, 'United States'.
    countryOrRegion?: NullableOption<string>;
    // Office location such as building and office number for an organizational contact.
    officeLocation?: NullableOption<string>;
    // The postal code.
    postalCode?: NullableOption<string>;
    // The state.
    state?: NullableOption<string>;
    // The street.
    street?: NullableOption<string>;
}
export interface PrivacyProfile {
    // A valid smtp email address for the privacy statement contact. Not required.
    contactEmail?: NullableOption<string>;
    /**
     * A valid URL format that begins with http:// or https://. Maximum length is 255 characters. The URL that directs to the
     * company's privacy statement. Not required.
     */
    statementUrl?: NullableOption<string>;
}
export interface RedirectUriSettings {
    index?: NullableOption<number>;
    uri?: NullableOption<string>;
}
export interface ResourceAccess {
    /**
     * The unique identifier of an app role or delegated permission exposed by the resource application. For delegated
     * permissions, this should match the id property of one of the delegated permissions in the oauth2PermissionScopes
     * collection of the resource application's service principal. For app roles (application permissions), this should match
     * the id property of an app role in the appRoles collection of the resource application's service principal.
     */
    id?: string;
    /**
     * Specifies whether the id property references a delegated permission or an app role (application permission). The
     * possible values are: Scope (for delegated permissions) or Role (for app roles).
     */
    type?: NullableOption<string>;
}
export interface SelfSignedCertificate {
    customKeyIdentifier?: NullableOption<string>;
    displayName?: NullableOption<string>;
    endDateTime?: NullableOption<string>;
    key?: NullableOption<string>;
    keyId?: NullableOption<string>;
    startDateTime?: NullableOption<string>;
    thumbprint?: NullableOption<string>;
    type?: NullableOption<string>;
    usage?: NullableOption<string>;
}
export interface ServicePlanInfo {
    /**
     * The object the service plan can be assigned to. The possible values are:User - service plan can be assigned to
     * individual users.Company - service plan can be assigned to the entire tenant.
     */
    appliesTo?: NullableOption<string>;
    /**
     * The provisioning status of the service plan. The possible values are:Success - Service is fully provisioned.Disabled -
     * Service is disabled.Error - The service plan isn't provisioned and is in an error state.PendingInput - The service
     * isn't provisioned and is awaiting service confirmation.PendingActivation - The service is provisioned but requires
     * explicit activation by an administrator (for example, Intune_O365 service plan)PendingProvisioning - Microsoft has
     * added a new service to the product SKU and it isn't activated in the tenant.
     */
    provisioningStatus?: NullableOption<string>;
    // The unique identifier of the service plan.
    servicePlanId?: NullableOption<string>;
    // The name of the service plan.
    servicePlanName?: NullableOption<string>;
}
export interface ServiceProvisioningXmlError extends ServiceProvisioningError {
    errorDetail?: NullableOption<string>;
}
export interface SettingTemplateValue {
    // Default value for the setting.
    defaultValue?: NullableOption<string>;
    // Description of the setting.
    description?: NullableOption<string>;
    // Name of the setting.
    name?: NullableOption<string>;
    // Type of the setting.
    type?: NullableOption<string>;
}
export interface SettingValue {
    // Name of the setting (as defined by the groupSettingTemplate).
    name?: NullableOption<string>;
    // Value of the setting.
    value?: NullableOption<string>;
}
export interface SigningCertificateUpdateStatus {
    // Status of the last certificate update. Read-only. For a list of statuses, see certificateUpdateResult status.
    certificateUpdateResult?: NullableOption<string>;
    // Date and time in ISO 8601 format and in UTC time when the certificate was last updated. Read-only.
    lastRunDateTime?: NullableOption<string>;
}
export interface TenantInformation {
    // Primary domain name of a Microsoft Entra tenant.
    defaultDomainName?: NullableOption<string>;
    // Display name of a Microsoft Entra tenant.
    displayName?: NullableOption<string>;
    // Name shown to users that sign in to a Microsoft Entra tenant.
    federationBrandName?: NullableOption<string>;
    // Unique identifier of a Microsoft Entra tenant.
    tenantId?: string;
}
export interface UnifiedRolePermission {
    // Set of tasks that can be performed on a resource. Required.
    allowedResourceActions?: string[];
    // Optional constraints that must be met for the permission to be effective. Not supported for custom roles.
    condition?: NullableOption<string>;
    // Set of tasks that may not be performed on a resource. Not yet supported.
    excludedResourceActions?: NullableOption<string[]>;
}
export interface VerifiedDomain {
    // For example, Email, OfficeCommunicationsOnline.
    capabilities?: NullableOption<string>;
    // true if this is the default domain associated with the tenant; otherwise, false.
    isDefault?: NullableOption<boolean>;
    // true if this is the initial domain associated with the tenant; otherwise, false.
    isInitial?: NullableOption<boolean>;
    // The domain name; for example, contoso.onmicrosoft.com.
    name?: NullableOption<string>;
    // For example, Managed.
    type?: NullableOption<string>;
}
export interface BrowserSharedCookieHistory {
    // The comment for the shared cookie.
    comment?: NullableOption<string>;
    // The name of the cookie.
    displayName?: string;
    // Controls whether a cookie is a host-only or domain cookie.
    hostOnly?: boolean;
    // The URL of the cookie.
    hostOrDomain?: NullableOption<string>;
    // The user who last modified the cookie.
    lastModifiedBy?: IdentitySet;
    // The path of the cookie.
    path?: NullableOption<string>;
    // The date and time when the cookie was last published.
    publishedDateTime?: string;
    /**
     * Specifies how the cookies are shared between Microsoft Edge and Internet Explorer. The possible values are:
     * microsoftEdge, internetExplorer11, both, unknownFutureValue.
     */
    sourceEnvironment?: NullableOption<BrowserSharedCookieSourceEnvironment>;
}
export interface BrowserSiteHistory {
    /**
     * Controls the behavior of redirected sites. If true, indicates that the site will open in Internet Explorer 11 or
     * Microsoft Edge even if the site is navigated to as part of a HTTP or meta refresh redirection chain.
     */
    allowRedirect?: NullableOption<boolean>;
    // The comment for the site.
    comment?: string;
    /**
     * Controls what compatibility setting is used for specific sites or domains. The possible values are: default,
     * internetExplorer8Enterprise, internetExplorer7Enterprise, internetExplorer11, internetExplorer10, internetExplorer9,
     * internetExplorer8, internetExplorer7, internetExplorer5, unknownFutureValue.
     */
    compatibilityMode?: NullableOption<BrowserSiteCompatibilityMode>;
    // The user who last modified the site.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // The merge type of the site. The possible values are: noMerge, default, unknownFutureValue.
    mergeType?: NullableOption<BrowserSiteMergeType>;
    // The date and time when the site was last published.
    publishedDateTime?: string;
    /**
     * The target environment that the site should open in. The possible values are: internetExplorerMode, internetExplorer11,
     * microsoftEdge, configurable, none, unknownFutureValue.Prior to June 15, 2022, the internetExplorer11 option would allow
     * opening a site in the Internet Explorer 11 (IE11) desktop application. Following the retirement of IE11 on June 15,
     * 2022, the internetExplorer11 option will no longer open an IE11 window and will instead behave the same as the
     * internetExplorerMode option.
     */
    targetEnvironment?: NullableOption<BrowserSiteTargetEnvironment>;
}
// tslint:disable-next-line: no-empty-interface
export interface EducationAssignmentRecipient {}
// tslint:disable-next-line: no-empty-interface
export interface EducationAssignmentClassRecipient extends EducationAssignmentRecipient {}
export interface EducationAssignmentGrade {
    // User who did the grading.
    gradedBy?: NullableOption<IdentitySet>;
    /**
     * Moment in time when the grade was applied to this submission object. The Timestamp type represents date and time
     * information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z
     */
    gradedDateTime?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface EducationAssignmentGradeType {}
// tslint:disable-next-line: no-empty-interface
export interface EducationAssignmentGroupRecipient extends EducationAssignmentRecipient {}
export interface EducationAssignmentIndividualRecipient extends EducationAssignmentRecipient {
    // A collection of IDs of the recipients.
    recipients?: NullableOption<string[]>;
}
export interface EducationAssignmentPointsGrade extends EducationAssignmentGrade {
    // Number of points a teacher is giving this submission object.
    points?: NullableOption<number>;
}
export interface EducationAssignmentPointsGradeType extends EducationAssignmentGradeType {
    // Max points possible for this assignment.
    maxPoints?: NullableOption<number>;
}
export interface EducationResource {
    // The individual who created the resource.
    createdBy?: NullableOption<IdentitySet>;
    /**
     * Moment in time when the resource was created. The Timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: NullableOption<string>;
    // Display name of resource.
    displayName?: NullableOption<string>;
    // The last user to modify the resource.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * Moment in time when the resource was last modified. The Timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
}
export interface EducationExcelResource extends EducationResource {
    // Pointer to the Excel file object.
    fileUrl?: NullableOption<string>;
}
export interface EducationExternalResource extends EducationResource {
    // Location of the resource. Required
    webUrl?: NullableOption<string>;
}
export interface EducationFeedback {
    // User who created the feedback.
    feedbackBy?: NullableOption<IdentitySet>;
    /**
     * Moment in time when the feedback was given. The Timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    feedbackDateTime?: NullableOption<string>;
    // Feedback.
    text?: NullableOption<EducationItemBody>;
}
export interface EducationItemBody {
    content?: NullableOption<string>;
    contentType?: NullableOption<BodyType>;
}
export interface EducationFileResource extends EducationResource {
    // Location on disk of the file resource.
    fileUrl?: NullableOption<string>;
}
export interface EducationLinkResource extends EducationResource {
    // URL to the resource.
    link?: NullableOption<string>;
}
export interface EducationMediaResource extends EducationResource {
    // Location of the file on shared point folder. Required
    fileUrl?: NullableOption<string>;
}
export interface EducationPowerPointResource extends EducationResource {
    // Location of the file on disk.
    fileUrl?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface EducationSubmissionRecipient {}
export interface EducationSubmissionIndividualRecipient extends EducationSubmissionRecipient {
    // User ID of the user to whom the submission is assigned.
    userId?: NullableOption<string>;
}
export interface EducationTeamsAppResource extends EducationResource {
    // URL that points to the icon of the app.
    appIconWebUrl?: NullableOption<string>;
    // Teams app ID of the application.
    appId?: NullableOption<string>;
    // URL for the app resource that will be opened by Teams.
    teamsEmbeddedContentUrl?: NullableOption<string>;
    // URL for the app resource that can be opened in the browser.
    webUrl?: NullableOption<string>;
}
export interface EducationWordResource extends EducationResource {
    // Location of the file on disk.
    fileUrl?: NullableOption<string>;
}
export interface RubricCriterion {
    // The description of this criterion.
    description?: NullableOption<EducationItemBody>;
}
export interface RubricLevel {
    // The description of this rubric level.
    description?: NullableOption<EducationItemBody>;
    // The name of this rubric level.
    displayName?: NullableOption<string>;
    // Null if this is a no-points rubric; educationAssignmentPointsGradeType if it's a points rubric.
    grading?: NullableOption<EducationAssignmentGradeType>;
    // The ID of this resource.
    levelId?: NullableOption<string>;
}
export interface RubricQuality {
    // The collection of criteria for this rubric quality.
    criteria?: NullableOption<RubricCriterion[]>;
    // The description of this rubric quality.
    description?: NullableOption<EducationItemBody>;
    // The name of this rubric quality.
    displayName?: NullableOption<string>;
    // The ID of this resource.
    qualityId?: NullableOption<string>;
    // If present, a numerical weight for this quality. Weights must add up to 100.
    weight?: NullableOption<number>;
}
export interface RubricQualityFeedbackModel {
    // Specific feedback for one quality of this rubric.
    feedback?: NullableOption<EducationItemBody>;
    // The ID of the rubricQuality that this feedback is related to.
    qualityId?: NullableOption<string>;
}
export interface RubricQualitySelectedColumnModel {
    // ID of the selected level for this quality.
    columnId?: NullableOption<string>;
    // ID of the associated quality.
    qualityId?: NullableOption<string>;
}
export interface EducationCourse {
    // Unique identifier for the course.
    courseNumber?: NullableOption<string>;
    // Description of the course.
    description?: NullableOption<string>;
    // Name of the course.
    displayName?: NullableOption<string>;
    // ID of the course from the syncing system.
    externalId?: NullableOption<string>;
    // Subject of the course.
    subject?: NullableOption<string>;
}
export interface EducationTerm {
    // Display name of the term.
    displayName?: NullableOption<string>;
    // End of the term.
    endDate?: NullableOption<string>;
    // ID of term in the syncing system.
    externalId?: NullableOption<string>;
    // Start of the term.
    startDate?: NullableOption<string>;
}
export interface RelatedContact {
    // Indicates whether the user has been consented to access student data.
    accessConsent?: NullableOption<boolean>;
    // Name of the contact. Required.
    displayName?: string;
    // Primary email address of the contact. Required.
    emailAddress?: string;
    // Mobile phone number of the contact.
    mobilePhone?: NullableOption<string>;
    /**
     * Relationship to the user. Possible values are: parent, relative, aide, doctor, guardian, child, other,
     * unknownFutureValue.
     */
    relationship?: ContactRelationship;
}
export interface EducationOnPremisesInfo {
    // Unique identifier for the user object in Active Directory.
    immutableId?: NullableOption<string>;
}
export interface EducationStudent {
    // Birth date of the student.
    birthDate?: NullableOption<string>;
    // ID of the student in the source system.
    externalId?: NullableOption<string>;
    // The possible values are: female, male, other, unknownFutureValue.
    gender?: NullableOption<EducationGender>;
    // Current grade level of the student.
    grade?: NullableOption<string>;
    // Year the student is graduating from the school.
    graduationYear?: NullableOption<string>;
    // Student Number.
    studentNumber?: NullableOption<string>;
}
export interface EducationTeacher {
    // ID of the teacher in the source system.
    externalId?: NullableOption<string>;
    // Teacher number.
    teacherNumber?: NullableOption<string>;
}
export interface WorkbookFilterCriteria {
    color?: NullableOption<string>;
    criterion1?: NullableOption<string>;
    criterion2?: NullableOption<string>;
    dynamicCriteria?: string;
    filterOn?: string;
    icon?: NullableOption<WorkbookIcon>;
    operator?: string;
    values?: NullableOption<any>;
}
export interface WorkbookIcon {
    // Represents the index of the icon in the given set.
    index?: number;
    /**
     * Represents the set that the icon is part of. The possible values are: Invalid, ThreeArrows, ThreeArrowsGray,
     * ThreeFlags, ThreeTrafficLights1, ThreeTrafficLights2, ThreeSigns, ThreeSymbols, ThreeSymbols2, FourArrows,
     * FourArrowsGray, FourRedToBlack, FourRating, FourTrafficLights, FiveArrows, FiveArrowsGray, FiveRating, FiveQuarters,
     * ThreeStars, ThreeTriangles, FiveBoxes.
     */
    set?: string;
}
export interface WorkbookFilterDatetime {
    // The date in ISO8601 format used to filter data.
    date?: NullableOption<string>;
    /**
     * How specific the date should be used to keep data. For example, if the date is 2005-04-02 and the specificity is set to
     * 'month', the filter operation will keep all rows with a date in the month of April 2009. The possible values are: Year,
     * Monday, Day, Hour, Minute, Second.
     */
    specificity?: string;
}
export interface WorkbookOperationError {
    // The error code.
    code?: NullableOption<string>;
    innerError?: NullableOption<WorkbookOperationError>;
    // The error message.
    message?: NullableOption<string>;
}
export interface WorkbookRangeReference {
    address?: NullableOption<string>;
}
export interface WorkbookSessionInfo {
    // ID of the workbook session.
    id?: NullableOption<string>;
    // true for persistent session. false for non-persistent session (view mode)
    persistChanges?: NullableOption<boolean>;
}
export interface WorkbookSortField {
    // Represents whether the sorting is done in an ascending fashion.
    ascending?: boolean;
    // Represents the color that is the target of the condition if the sorting is on font or cell color.
    color?: NullableOption<string>;
    // Represents additional sorting options for this field. The possible values are: Normal, TextAsNumber.
    dataOption?: string;
    // Represents the icon that is the target of the condition if the sorting is on the cell's icon.
    icon?: NullableOption<WorkbookIcon>;
    /**
     * Represents the column (or row, depending on the sort orientation) that the condition is on. Represented as an offset
     * from the first column (or row).
     */
    key?: number;
    // Represents the type of sorting of this condition. The possible values are: Value, CellColor, FontColor, Icon.
    sortOn?: string;
}
export interface WorkbookWorksheetProtectionOptions {
    // Represents the worksheet protection option of allowing using auto filter feature.
    allowAutoFilter?: boolean;
    // Represents the worksheet protection option of allowing deleting columns.
    allowDeleteColumns?: boolean;
    // Represents the worksheet protection option of allowing deleting rows.
    allowDeleteRows?: boolean;
    // Represents the worksheet protection option of allowing formatting cells.
    allowFormatCells?: boolean;
    // Represents the worksheet protection option of allowing formatting columns.
    allowFormatColumns?: boolean;
    // Represents the worksheet protection option of allowing formatting rows.
    allowFormatRows?: boolean;
    // Represents the worksheet protection option of allowing inserting columns.
    allowInsertColumns?: boolean;
    // Represents the worksheet protection option of allowing inserting hyperlinks.
    allowInsertHyperlinks?: boolean;
    // Represents the worksheet protection option of allowing inserting rows.
    allowInsertRows?: boolean;
    // Represents the worksheet protection option of allowing using pivot table feature.
    allowPivotTables?: boolean;
    // Represents the worksheet protection option of allowing using sort feature.
    allowSort?: boolean;
}
export interface Quota {
    // Total space consumed by files in the recycle bin, in bytes. Read-only.
    deleted?: NullableOption<number>;
    // Total space remaining before reaching the quota limit, in bytes. Read-only.
    remaining?: NullableOption<number>;
    // Enumeration value that indicates the state of the storage space. Read-only.
    state?: NullableOption<string>;
    // Information about the drive's storage quota plans. Only in Personal OneDrive.
    storagePlanInformation?: NullableOption<StoragePlanInformation>;
    // Total allowed storage space, in bytes. Read-only.
    total?: NullableOption<number>;
    // Total space used, in bytes. Read-only.
    used?: NullableOption<number>;
}
// tslint:disable-next-line: no-empty-interface
export interface SystemFacet {}
export interface Audio {
    // The title of the album for this audio file.
    album?: NullableOption<string>;
    // The artist named on the album for the audio file.
    albumArtist?: NullableOption<string>;
    // The performing artist for the audio file.
    artist?: NullableOption<string>;
    // Bitrate expressed in kbps.
    bitrate?: NullableOption<number>;
    // The name of the composer of the audio file.
    composers?: NullableOption<string>;
    // Copyright information for the audio file.
    copyright?: NullableOption<string>;
    // The number of the disc this audio file came from.
    disc?: NullableOption<number>;
    // The total number of discs in this album.
    discCount?: NullableOption<number>;
    // Duration of the audio file, expressed in milliseconds
    duration?: NullableOption<number>;
    // The genre of this audio file.
    genre?: NullableOption<string>;
    // Indicates if the file is protected with digital rights management.
    hasDrm?: NullableOption<boolean>;
    // Indicates if the file is encoded with a variable bitrate.
    isVariableBitrate?: NullableOption<boolean>;
    // The title of the audio file.
    title?: NullableOption<string>;
    // The number of the track on the original disc for this audio file.
    track?: NullableOption<number>;
    // The total number of tracks on the original disc for this audio file.
    trackCount?: NullableOption<number>;
    // The year the audio file was recorded.
    year?: NullableOption<number>;
}
export interface Bundle {
    // If the bundle is an [album][], then the album property is included
    album?: NullableOption<Album>;
    // Number of children contained immediately within this container.
    childCount?: NullableOption<number>;
}
export interface Deleted {
    // Represents the state of the deleted item.
    state?: NullableOption<string>;
}
export interface File {
    // Hashes of the file's binary content, if available. Read-only.
    hashes?: NullableOption<Hashes>;
    /**
     * The MIME type for the file. This is determined by logic on the server and might not be the value provided when the file
     * was uploaded. Read-only.
     */
    mimeType?: NullableOption<string>;
    processingMetadata?: NullableOption<boolean>;
}
export interface FileSystemInfo {
    // The UTC date and time the file was created on a client.
    createdDateTime?: NullableOption<string>;
    // The UTC date and time the file was last accessed. Available for the recent file list only.
    lastAccessedDateTime?: NullableOption<string>;
    // The UTC date and time the file was last modified on a client.
    lastModifiedDateTime?: NullableOption<string>;
}
export interface Folder {
    // Number of children contained immediately within this container.
    childCount?: NullableOption<number>;
    // A collection of properties defining the recommended view for the folder.
    view?: NullableOption<FolderView>;
}
// tslint:disable-next-line: interface-name
export interface Image {
    // Optional. Height of the image, in pixels. Read-only.
    height?: NullableOption<number>;
    // Optional. Width of the image, in pixels. Read-only.
    width?: NullableOption<number>;
}
export interface Malware {
    // Contains the virus details for the malware facet.
    description?: NullableOption<string>;
}
export interface Package {
    /**
     * A string indicating the type of package. While oneNote is the only currently defined value, you should expect other
     * package types to be returned and handle them accordingly.
     */
    type?: NullableOption<string>;
}
export interface PendingOperations {
    // A property that indicates that an operation that might update the binary content of a file is pending completion.
    pendingContentUpdate?: NullableOption<PendingContentUpdate>;
}
export interface Photo {
    // Camera manufacturer. Read-only.
    cameraMake?: NullableOption<string>;
    // Camera model. Read-only.
    cameraModel?: NullableOption<string>;
    // The denominator for the exposure time fraction from the camera. Read-only.
    exposureDenominator?: NullableOption<number>;
    // The numerator for the exposure time fraction from the camera. Read-only.
    exposureNumerator?: NullableOption<number>;
    // The F-stop value from the camera. Read-only.
    fNumber?: NullableOption<number>;
    // The focal length from the camera. Read-only.
    focalLength?: NullableOption<number>;
    // The ISO value from the camera. Read-only.
    iso?: NullableOption<number>;
    // The orientation value from the camera. Writable on OneDrive Personal.
    orientation?: NullableOption<number>;
    // Represents the date and time the photo was taken. Read-only.
    takenDateTime?: NullableOption<string>;
}
export interface PublicationFacet {
    // User who has checked out the file.
    checkedOutBy?: NullableOption<IdentitySet>;
    // The state of publication for this document. Either published or checkout. Read-only.
    level?: NullableOption<string>;
    // The unique identifier for the version that is visible to the current caller. Read-only.
    versionId?: NullableOption<string>;
}
export interface RemoteItem {
    // Identity of the user, device, and application which created the item. Read-only.
    createdBy?: NullableOption<IdentitySet>;
    // Date and time of item creation. Read-only.
    createdDateTime?: NullableOption<string>;
    // Indicates that the remote item is a file. Read-only.
    file?: NullableOption<File>;
    // Information about the remote item from the local file system. Read-only.
    fileSystemInfo?: NullableOption<FileSystemInfo>;
    // Indicates that the remote item is a folder. Read-only.
    folder?: NullableOption<Folder>;
    // Unique identifier for the remote item in its drive. Read-only.
    id?: NullableOption<string>;
    // Image metadata, if the item is an image. Read-only.
    image?: NullableOption<Image>;
    // Identity of the user, device, and application which last modified the item. Read-only.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // Date and time the item was last modified. Read-only.
    lastModifiedDateTime?: NullableOption<string>;
    // Optional. Filename of the remote item. Read-only.
    name?: NullableOption<string>;
    /**
     * If present, indicates that this item is a package instead of a folder or file. Packages are treated like files in some
     * contexts and folders in others. Read-only.
     */
    package?: NullableOption<Package>;
    // Properties of the parent of the remote item. Read-only.
    parentReference?: NullableOption<ItemReference>;
    /**
     * Indicates that the item has been shared with others and provides information about the shared state of the item.
     * Read-only.
     */
    shared?: NullableOption<Shared>;
    /**
     * Provides interop between items in OneDrive for Business and SharePoint with the full set of item identifiers.
     * Read-only.
     */
    sharepointIds?: NullableOption<SharepointIds>;
    // Size of the remote item. Read-only.
    size?: NullableOption<number>;
    // If the current item is also available as a special folder, this facet is returned. Read-only.
    specialFolder?: NullableOption<SpecialFolder>;
    // Video metadata, if the item is a video. Read-only.
    video?: NullableOption<Video>;
    // DAV compatible URL for the item.
    webDavUrl?: NullableOption<string>;
    // URL that displays the resource in the browser. Read-only.
    webUrl?: NullableOption<string>;
}
export interface SearchResult {
    /**
     * A callback URL that can be used to record telemetry information. The application should issue a GET on this URL if the
     * user interacts with this item to improve the quality of results.
     */
    onClickTelemetryUrl?: NullableOption<string>;
}
export interface Shared {
    // The identity of the owner of the shared item. Read-only.
    owner?: NullableOption<IdentitySet>;
    // Indicates the scope of how the item is shared: anonymous, organization, or users. Read-only.
    scope?: NullableOption<string>;
    // The identity of the user who shared the item. Read-only.
    sharedBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the item was shared. Read-only.
    sharedDateTime?: NullableOption<string>;
}
export interface SpecialFolder {
    // The unique identifier for this item in the /drive/special collection
    name?: NullableOption<string>;
}
export interface Video {
    // Number of audio bits per sample.
    audioBitsPerSample?: NullableOption<number>;
    // Number of audio channels.
    audioChannels?: NullableOption<number>;
    // Name of the audio format (AAC, MP3, etc.).
    audioFormat?: NullableOption<string>;
    // Number of audio samples per second.
    audioSamplesPerSecond?: NullableOption<number>;
    // Bit rate of the video in bits per second.
    bitrate?: NullableOption<number>;
    // Duration of the file in milliseconds.
    duration?: NullableOption<number>;
    // 'Four character code' name of the video format.
    fourCC?: NullableOption<string>;
    // Frame rate of the video.
    frameRate?: NullableOption<number>;
    // Height of the video, in pixels.
    height?: NullableOption<number>;
    // Width of the video, in pixels.
    width?: NullableOption<number>;
}
export interface ListInfo {
    // If true, indicates that content types are enabled for this list.
    contentTypesEnabled?: NullableOption<boolean>;
    // If true, indicates that the list isn't normally visible in the SharePoint user experience.
    hidden?: NullableOption<boolean>;
    /**
     * An enumerated value that represents the base list template used in creating the list. Possible values include
     * documentLibrary, genericList, task, survey, announcements, contacts, and more.
     */
    template?: NullableOption<string>;
}
export interface AttendeeAvailability {
    /**
     * The email address and type of attendee - whether it's a person or a resource, and whether required or optional if it's
     * a person.
     */
    attendee?: NullableOption<AttendeeBase>;
    /**
     * The availability status of the attendee. The possible values are: free, tentative, busy, oof, workingElsewhere,
     * unknown.
     */
    availability?: NullableOption<FreeBusyStatus>;
}
export interface AttendeeBase extends Recipient {
    /**
     * The type of attendee. The possible values are: required, optional, resource. Currently if the attendee is a person,
     * findMeetingTimes always considers the person is of the Required type.
     */
    type?: NullableOption<AttendeeType>;
}
export interface LocationConstraint {
    /**
     * The client requests the service to include in the response a meeting location for the meeting. If this is true and all
     * the resources are busy, findMeetingTimes won't return any meeting time suggestions. If this is false and all the
     * resources are busy, findMeetingTimes would still look for meeting times without locations.
     */
    isRequired?: NullableOption<boolean>;
    // Constraint information for one or more locations that the client requests for the meeting.
    locations?: NullableOption<LocationConstraintItem[]>;
    // The client requests the service to suggest one or more meeting locations.
    suggestLocation?: NullableOption<boolean>;
}
export interface LocationConstraintItem extends Location {
    /**
     * If set to true and the specified resource is busy, findMeetingTimes looks for another resource that is free. If set to
     * false and the specified resource is busy, findMeetingTimes returns the resource best ranked in the user's cache without
     * checking if it's free. Default is true.
     */
    resolveAvailability?: NullableOption<boolean>;
}
export interface MeetingTimeSuggestion {
    // An array that shows the availability status of each attendee for this meeting suggestion.
    attendeeAvailability?: NullableOption<AttendeeAvailability[]>;
    // A percentage that represents the likelhood of all the attendees attending.
    confidence?: NullableOption<number>;
    // An array that specifies the name and geographic location of each meeting location for this meeting suggestion.
    locations?: NullableOption<Location[]>;
    // A time period suggested for the meeting.
    meetingTimeSlot?: NullableOption<TimeSlot>;
    /**
     * Order of meeting time suggestions sorted by their computed confidence value from high to low, then by chronology if
     * there are suggestions with the same confidence.
     */
    order?: NullableOption<number>;
    /**
     * Availability of the meeting organizer for this meeting suggestion. The possible values are: free, tentative, busy, oof,
     * workingElsewhere, unknown.
     */
    organizerAvailability?: NullableOption<FreeBusyStatus>;
    // Reason for suggesting the meeting time.
    suggestionReason?: NullableOption<string>;
}
export interface MeetingTimeSuggestionsResult {
    /**
     * A reason for not returning any meeting suggestions. The possible values are: attendeesUnavailable,
     * attendeesUnavailableOrUnknown, locationsUnavailable, organizerUnavailable, or unknown. This property is an empty string
     * if the meetingTimeSuggestions property does include any meeting suggestions.
     */
    emptySuggestionsReason?: NullableOption<string>;
    // An array of meeting suggestions.
    meetingTimeSuggestions?: NullableOption<MeetingTimeSuggestion[]>;
}
export interface TimeConstraint {
    // The nature of the activity, optional. The possible values are: work, personal, unrestricted, or unknown.
    activityDomain?: NullableOption<ActivityDomain>;
    timeSlots?: NullableOption<TimeSlot[]>;
}
export interface AttachmentItem {
    // The type of attachment. Possible values are: file, item, reference. Required.
    attachmentType?: NullableOption<AttachmentType>;
    /**
     * The CID or Content-Id of the attachment for referencing for the in-line attachments using the &amp;lt;img
     * src='cid:contentId'&amp;gt; tag in HTML messages. Optional.
     */
    contentId?: NullableOption<string>;
    // The nature of the data in the attachment. Optional.
    contentType?: NullableOption<string>;
    // true if the attachment is an inline attachment; otherwise, false. Optional.
    isInline?: NullableOption<boolean>;
    /**
     * The display name of the attachment. This can be a descriptive string and doesn't have to be the actual file name.
     * Required.
     */
    name?: NullableOption<string>;
    // The length of the attachment in bytes. Required.
    size?: NullableOption<number>;
}
export interface Attendee extends AttendeeBase {
    /**
     * An alternate date/time proposed by the attendee for a meeting request to start and end. If the attendee hasn't proposed
     * another time, then this property isn't included in a response of a GET event.
     */
    proposedNewTime?: NullableOption<TimeSlot>;
    // The attendee's response (none, accepted, declined, etc.) for the event and date-time that the response was sent.
    status?: NullableOption<ResponseStatus>;
}
export interface ResponseStatus {
    /**
     * The response type. Possible values are: none, organizer, tentativelyAccepted, accepted, declined, notResponded.To
     * differentiate between none and notResponded: none – from organizer's perspective. This value is used when the status of
     * an attendee/participant is reported to the organizer of a meeting. notResponded – from attendee's perspective.
     * Indicates the attendee has not responded to the meeting request. Clients can treat notResponded == none. As an example,
     * if attendee Alex hasn't responded to a meeting request, getting Alex' response status for that event in Alex' calendar
     * returns notResponded. Getting Alex' response from the calendar of any other attendee or the organizer's returns none.
     * Getting the organizer's response for the event in anybody's calendar also returns none.
     */
    response?: NullableOption<ResponseType>;
    /**
     * The date and time when the response was returned. It uses ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    time?: NullableOption<string>;
}
export interface AutomaticRepliesMailTips {
    // The automatic reply message.
    message?: NullableOption<string>;
    // The language that the automatic reply message is in.
    messageLanguage?: NullableOption<LocaleInfo>;
    // The date and time that automatic replies are set to end.
    scheduledEndTime?: NullableOption<DateTimeTimeZone>;
    // The date and time that automatic replies are set to begin.
    scheduledStartTime?: NullableOption<DateTimeTimeZone>;
}
export interface LocaleInfo {
    // A name representing the user's locale in natural language, for example, 'English (United States)'.
    displayName?: NullableOption<string>;
    /**
     * A locale representation for the user, which includes the user's preferred language and country/region. For example,
     * 'en-us'. The language component follows 2-letter codes as defined in ISO 639-1, and the country component follows
     * 2-letter codes as defined in ISO 3166-1 alpha-2.
     */
    locale?: NullableOption<string>;
}
export interface AutomaticRepliesSetting {
    /**
     * The set of audience external to the signed-in user's organization who will receive the ExternalReplyMessage, if Status
     * is AlwaysEnabled or Scheduled. The possible values are: none, contactsOnly, all.
     */
    externalAudience?: NullableOption<ExternalAudienceScope>;
    // The automatic reply to send to the specified external audience, if Status is AlwaysEnabled or Scheduled.
    externalReplyMessage?: NullableOption<string>;
    /**
     * The automatic reply to send to the audience internal to the signed-in user's organization, if Status is AlwaysEnabled
     * or Scheduled.
     */
    internalReplyMessage?: NullableOption<string>;
    // The date and time that automatic replies are set to end, if Status is set to Scheduled.
    scheduledEndDateTime?: NullableOption<DateTimeTimeZone>;
    // The date and time that automatic replies are set to begin, if Status is set to Scheduled.
    scheduledStartDateTime?: NullableOption<DateTimeTimeZone>;
    // Configurations status for automatic replies. The possible values are: disabled, alwaysEnabled, scheduled.
    status?: NullableOption<AutomaticRepliesStatus>;
}
export interface CalendarSharingMessageAction {
    action?: NullableOption<CalendarSharingAction>;
    actionType?: NullableOption<CalendarSharingActionType>;
    importance?: NullableOption<CalendarSharingActionImportance>;
}
export interface ConvertIdResult {
    // An error object indicating the reason for the conversion failure. This value isn't present if the conversion succeeded.
    errorDetails?: NullableOption<GenericError>;
    // The identifier that was converted. This value is the original, un-converted identifier.
    sourceId?: NullableOption<string>;
    // The converted identifier. This value isn't present if the conversion failed.
    targetId?: NullableOption<string>;
}
export interface GenericError {
    // The error code.
    code?: NullableOption<string>;
    // The error message.
    message?: NullableOption<string>;
}
export interface TimeZoneBase {
    /**
     * The name of a time zone. It can be a standard time zone name such as 'Hawaii-Aleutian Standard Time', or 'Customized
     * Time Zone' for a custom time zone.
     */
    name?: NullableOption<string>;
}
export interface CustomTimeZone extends TimeZoneBase {
    /**
     * The time offset of the time zone from Coordinated Universal Time (UTC). This value is in minutes. Time zones that are
     * ahead of UTC have a positive offset; time zones that are behind UTC have a negative offset.
     */
    bias?: NullableOption<number>;
    // Specifies when the time zone switches from standard time to daylight saving time.
    daylightOffset?: NullableOption<DaylightTimeZoneOffset>;
    // Specifies when the time zone switches from daylight saving time to standard time.
    standardOffset?: NullableOption<StandardTimeZoneOffset>;
}
export interface StandardTimeZoneOffset {
    // Represents the nth occurrence of the day of week that the transition from daylight saving time to standard time occurs.
    dayOccurrence?: NullableOption<number>;
    // Represents the day of the week when the transition from daylight saving time to standard time.
    dayOfWeek?: NullableOption<DayOfWeek>;
    // Represents the month of the year when the transition from daylight saving time to standard time occurs.
    month?: NullableOption<number>;
    // Represents the time of day when the transition from daylight saving time to standard time occurs.
    time?: NullableOption<string>;
    /**
     * Represents how frequently in terms of years the change from daylight saving time to standard time occurs. For example,
     * a value of 0 means every year.
     */
    year?: NullableOption<number>;
}
export interface DaylightTimeZoneOffset extends StandardTimeZoneOffset {
    // The time offset from Coordinated Universal Time (UTC) for daylight saving time. This value is in minutes.
    daylightBias?: NullableOption<number>;
}
export interface FollowupFlag {
    // The date and time that the follow-up was finished.
    completedDateTime?: NullableOption<DateTimeTimeZone>;
    /**
     * The date and time that the follow-up is to be finished. Note: To set the due date, you must also specify the
     * startDateTime; otherwise, you get a 400 Bad Request response.
     */
    dueDateTime?: NullableOption<DateTimeTimeZone>;
    // The status for follow-up for an item. Possible values are notFlagged, complete, and flagged.
    flagStatus?: NullableOption<FollowupFlagStatus>;
    // The date and time that the follow-up is to begin.
    startDateTime?: NullableOption<DateTimeTimeZone>;
}
export interface FreeBusyError {
    // Describes the error.
    message?: NullableOption<string>;
    // The response code from querying for the availability of the user, distribution list, or resource.
    responseCode?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InternetMessageHeader {
    // Represents the key in a key-value pair.
    name?: NullableOption<string>;
    // The value in a key-value pair.
    value?: NullableOption<string>;
}
export interface WorkingHours {
    // The days of the week on which the user works.
    daysOfWeek?: NullableOption<DayOfWeek[]>;
    // The time of the day that the user stops working.
    endTime?: NullableOption<string>;
    // The time of the day that the user starts working.
    startTime?: NullableOption<string>;
    // The time zone to which the working hours apply.
    timeZone?: NullableOption<TimeZoneBase>;
}
export interface MailTips {
    // Mail tips for automatic reply if it has been set up by the recipient.
    automaticReplies?: NullableOption<AutomaticRepliesMailTips>;
    // A custom mail tip that can be set on the recipient's mailbox.
    customMailTip?: NullableOption<string>;
    /**
     * Whether the recipient's mailbox is restricted, for example, accepting messages from only a predefined list of senders,
     * rejecting messages from a predefined list of senders, or accepting messages from only authenticated senders.
     */
    deliveryRestricted?: NullableOption<boolean>;
    // The email address of the recipient to get mailtips for.
    emailAddress?: NullableOption<EmailAddress>;
    // Errors that occur during the getMailTips action.
    error?: NullableOption<MailTipsError>;
    // The number of external members if the recipient is a distribution list.
    externalMemberCount?: NullableOption<number>;
    /**
     * Whether sending messages to the recipient requires approval. For example, if the recipient is a large distribution list
     * and a moderator has been set up to approve messages sent to that distribution list, or if sending messages to a
     * recipient requires approval of the recipient's manager.
     */
    isModerated?: NullableOption<boolean>;
    // The mailbox full status of the recipient.
    mailboxFull?: NullableOption<boolean>;
    // The maximum message size that has been configured for the recipient's organization or mailbox.
    maxMessageSize?: NullableOption<number>;
    /**
     * The scope of the recipient. Possible values are: none, internal, external, externalPartner, externalNonParther. For
     * example, an administrator can set another organization to be its 'partner'. The scope is useful if an administrator
     * wants certain mailtips to be accessible to certain scopes. It's also useful to senders to inform them that their
     * message may leave the organization, helping them make the correct decisions about wording, tone and content.
     */
    recipientScope?: NullableOption<RecipientScopeType>;
    // Recipients suggested based on previous contexts where they appear in the same message.
    recipientSuggestions?: NullableOption<Recipient[]>;
    // The number of members if the recipient is a distribution list.
    totalMemberCount?: NullableOption<number>;
}
export interface MailTipsError {
    // The error code.
    code?: NullableOption<string>;
    // The error message.
    message?: NullableOption<string>;
}
export interface MessageRuleActions {
    // A list of categories to be assigned to a message.
    assignCategories?: NullableOption<string[]>;
    // The ID of a folder that a message is to be copied to.
    copyToFolder?: NullableOption<string>;
    // Indicates whether a message should be moved to the Deleted Items folder.
    delete?: NullableOption<boolean>;
    // The email addresses of the recipients to which a message should be forwarded as an attachment.
    forwardAsAttachmentTo?: NullableOption<Recipient[]>;
    // The email addresses of the recipients to which a message should be forwarded.
    forwardTo?: NullableOption<Recipient[]>;
    // Indicates whether a message should be marked as read.
    markAsRead?: NullableOption<boolean>;
    // Sets the importance of the message, which can be: low, normal, high.
    markImportance?: NullableOption<Importance>;
    // The ID of the folder that a message will be moved to.
    moveToFolder?: NullableOption<string>;
    // Indicates whether a message should be permanently deleted and not saved to the Deleted Items folder.
    permanentDelete?: NullableOption<boolean>;
    // The email addresses to which a message should be redirected.
    redirectTo?: NullableOption<Recipient[]>;
    // Indicates whether subsequent rules should be evaluated.
    stopProcessingRules?: NullableOption<boolean>;
}
export interface MessageRulePredicates {
    /**
     * Represents the strings that should appear in the body of an incoming message in order for the condition or exception to
     * apply.
     */
    bodyContains?: NullableOption<string[]>;
    /**
     * Represents the strings that should appear in the body or subject of an incoming message in order for the condition or
     * exception to apply.
     */
    bodyOrSubjectContains?: NullableOption<string[]>;
    /**
     * Represents the categories that an incoming message should be labeled with in order for the condition or exception to
     * apply.
     */
    categories?: NullableOption<string[]>;
    // Represents the specific sender email addresses of an incoming message in order for the condition or exception to apply.
    fromAddresses?: NullableOption<Recipient[]>;
    // Indicates whether an incoming message must have attachments in order for the condition or exception to apply.
    hasAttachments?: NullableOption<boolean>;
    /**
     * Represents the strings that appear in the headers of an incoming message in order for the condition or exception to
     * apply.
     */
    headerContains?: NullableOption<string[]>;
    /**
     * The importance that is stamped on an incoming message in order for the condition or exception to apply: low, normal,
     * high.
     */
    importance?: NullableOption<Importance>;
    // Indicates whether an incoming message must be an approval request in order for the condition or exception to apply.
    isApprovalRequest?: NullableOption<boolean>;
    // Indicates whether an incoming message must be automatically forwarded in order for the condition or exception to apply.
    isAutomaticForward?: NullableOption<boolean>;
    // Indicates whether an incoming message must be an auto reply in order for the condition or exception to apply.
    isAutomaticReply?: NullableOption<boolean>;
    // Indicates whether an incoming message must be encrypted in order for the condition or exception to apply.
    isEncrypted?: NullableOption<boolean>;
    // Indicates whether an incoming message must be a meeting request in order for the condition or exception to apply.
    isMeetingRequest?: NullableOption<boolean>;
    // Indicates whether an incoming message must be a meeting response in order for the condition or exception to apply.
    isMeetingResponse?: NullableOption<boolean>;
    // Indicates whether an incoming message must be a non-delivery report in order for the condition or exception to apply.
    isNonDeliveryReport?: NullableOption<boolean>;
    /**
     * Indicates whether an incoming message must be permission controlled (RMS-protected) in order for the condition or
     * exception to apply.
     */
    isPermissionControlled?: NullableOption<boolean>;
    // Indicates whether an incoming message must be a read receipt in order for the condition or exception to apply.
    isReadReceipt?: NullableOption<boolean>;
    // Indicates whether an incoming message must be S/MIME-signed in order for the condition or exception to apply.
    isSigned?: NullableOption<boolean>;
    // Indicates whether an incoming message must be a voice mail in order for the condition or exception to apply.
    isVoicemail?: NullableOption<boolean>;
    /**
     * Represents the flag-for-action value that appears on an incoming message in order for the condition or exception to
     * apply. The possible values are: any, call, doNotForward, followUp, fyi, forward, noResponseNecessary, read, reply,
     * replyToAll, review.
     */
    messageActionFlag?: NullableOption<MessageActionFlag>;
    /**
     * Indicates whether the owner of the mailbox must not be a recipient of an incoming message in order for the condition or
     * exception to apply.
     */
    notSentToMe?: NullableOption<boolean>;
    /**
     * Represents the strings that appear in either the toRecipients or ccRecipients properties of an incoming message in
     * order for the condition or exception to apply.
     */
    recipientContains?: NullableOption<string[]>;
    /**
     * Represents the strings that appear in the from property of an incoming message in order for the condition or exception
     * to apply.
     */
    senderContains?: NullableOption<string[]>;
    /**
     * Represents the sensitivity level that must be stamped on an incoming message in order for the condition or exception to
     * apply. The possible values are: normal, personal, private, confidential.
     */
    sensitivity?: NullableOption<Sensitivity>;
    /**
     * Indicates whether the owner of the mailbox must be in the ccRecipients property of an incoming message in order for the
     * condition or exception to apply.
     */
    sentCcMe?: NullableOption<boolean>;
    /**
     * Indicates whether the owner of the mailbox must be the only recipient in an incoming message in order for the condition
     * or exception to apply.
     */
    sentOnlyToMe?: NullableOption<boolean>;
    /**
     * Represents the email addresses that an incoming message must have been sent to in order for the condition or exception
     * to apply.
     */
    sentToAddresses?: NullableOption<Recipient[]>;
    /**
     * Indicates whether the owner of the mailbox must be in the toRecipients property of an incoming message in order for the
     * condition or exception to apply.
     */
    sentToMe?: NullableOption<boolean>;
    /**
     * Indicates whether the owner of the mailbox must be in either a toRecipients or ccRecipients property of an incoming
     * message in order for the condition or exception to apply.
     */
    sentToOrCcMe?: NullableOption<boolean>;
    /**
     * Represents the strings that appear in the subject of an incoming message in order for the condition or exception to
     * apply.
     */
    subjectContains?: NullableOption<string[]>;
    /**
     * Represents the minimum and maximum sizes (in kilobytes) that an incoming message must fall in between in order for the
     * condition or exception to apply.
     */
    withinSizeRange?: NullableOption<SizeRange>;
}
export interface SizeRange {
    // The maximum size (in kilobytes) that an incoming message must have in order for a condition or exception to apply.
    maximumSize?: NullableOption<number>;
    // The minimum size (in kilobytes) that an incoming message must have in order for a condition or exception to apply.
    minimumSize?: NullableOption<number>;
}
export interface OnlineMeetingInfo {
    // The ID of the conference.
    conferenceId?: NullableOption<string>;
    /**
     * The external link that launches the online meeting. This is a URL that clients launch into a browser and will redirect
     * the user to join the meeting.
     */
    joinUrl?: NullableOption<string>;
    // All of the phone numbers associated with this conference.
    phones?: NullableOption<Phone[]>;
    // The preformatted quick dial for this call.
    quickDial?: NullableOption<string>;
    // The toll free numbers that can be used to join the conference.
    tollFreeNumbers?: NullableOption<string[]>;
    // The toll number that can be used to join the conference.
    tollNumber?: NullableOption<string>;
}
export interface PatternedRecurrence {
    /**
     * The frequency of an event. For access reviews: Do not specify this property for a one-time access review. Only
     * interval, dayOfMonth, and type (weekly, absoluteMonthly) properties of recurrencePattern are supported.
     */
    pattern?: NullableOption<RecurrencePattern>;
    // The duration of an event.
    range?: NullableOption<RecurrenceRange>;
}
export interface RecurrencePattern {
    // The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.
    dayOfMonth?: number;
    /**
     * A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday,
     * wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than
     * one day, the event falls on the first day that satisfies the pattern. Required if type is weekly, relativeMonthly, or
     * relativeYearly.
     */
    daysOfWeek?: NullableOption<DayOfWeek[]>;
    /**
     * The first day of the week. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday.
     * Default is sunday. Required if type is weekly.
     */
    firstDayOfWeek?: NullableOption<DayOfWeek>;
    /**
     * Specifies on which instance of the allowed days specified in daysOfWeek the event occurs, counted from the first
     * instance in the month. The possible values are: first, second, third, fourth, last. Default is first. Optional and used
     * if type is relativeMonthly or relativeYearly.
     */
    index?: NullableOption<WeekIndex>;
    /**
     * The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type.
     * Required.
     */
    interval?: number;
    // The month in which the event occurs. This is a number from 1 to 12.
    month?: number;
    /**
     * The recurrence pattern type: daily, weekly, absoluteMonthly, relativeMonthly, absoluteYearly, relativeYearly. Required.
     * For more information, see values of type property.
     */
    type?: NullableOption<RecurrencePatternType>;
}
export interface RecurrenceRange {
    /**
     * The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence
     * of the meeting may not be this date. Required if type is endDate.
     */
    endDate?: NullableOption<string>;
    // The number of times to repeat the event. Required and must be positive if type is numbered.
    numberOfOccurrences?: number;
    // Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.
    recurrenceTimeZone?: NullableOption<string>;
    /**
     * The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later,
     * depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event.
     * Required.
     */
    startDate?: NullableOption<string>;
    // The recurrence range. The possible values are: endDate, noEnd, numbered. Required.
    type?: NullableOption<RecurrenceRangeType>;
}
export interface PersonType {
    // The type of data source, such as Person.
    class?: NullableOption<string>;
    // The secondary type of data source, such as OrganizationUser.
    subclass?: NullableOption<string>;
}
export interface Reminder {
    /**
     * Identifies the version of the reminder. Every time the reminder is changed, changeKey changes as well. This allows
     * Exchange to apply changes to the correct version of the object.
     */
    changeKey?: NullableOption<string>;
    // The date, time and time zone that the event ends.
    eventEndTime?: NullableOption<DateTimeTimeZone>;
    // The unique ID of the event. Read only.
    eventId?: NullableOption<string>;
    // The location of the event.
    eventLocation?: NullableOption<Location>;
    // The date, time, and time zone that the event starts.
    eventStartTime?: NullableOption<DateTimeTimeZone>;
    // The text of the event's subject line.
    eventSubject?: NullableOption<string>;
    /**
     * The URL to open the event in Outlook on the web.The event opens in the browser if you're logged in to your mailbox via
     * Outlook on the web. You're prompted to log in if you aren't already logged in with the browser.This URL can't be
     * accessed from within an iFrame.
     */
    eventWebLink?: NullableOption<string>;
    // The date, time, and time zone that the reminder is set to occur.
    reminderFireTime?: NullableOption<DateTimeTimeZone>;
}
export interface ScheduleInformation {
    /**
     * Represents a merged view of availability of all the items in scheduleItems. The view consists of time slots.
     * Availability during each time slot is indicated with: 0= free, 1= tentative, 2= busy, 3= out of office, 4= working
     * elsewhere.
     */
    availabilityView?: NullableOption<string>;
    // Error information from attempting to get the availability of the user, distribution list, or resource.
    error?: NullableOption<FreeBusyError>;
    // An SMTP address of the user, distribution list, or resource, identifying an instance of scheduleInformation.
    scheduleId?: NullableOption<string>;
    // Contains the items that describe the availability of the user or resource.
    scheduleItems?: NullableOption<ScheduleItem[]>;
    /**
     * The days of the week and hours in a specific time zone that the user works. These are set as part of the user's
     * mailboxSettings.
     */
    workingHours?: NullableOption<WorkingHours>;
}
export interface ScheduleItem {
    // The date, time, and time zone that the corresponding event ends.
    end?: NullableOption<DateTimeTimeZone>;
    // The sensitivity of the corresponding event. True if the event is marked private, false otherwise. Optional.
    isPrivate?: NullableOption<boolean>;
    // The location where the corresponding event is held or attended from. Optional.
    location?: NullableOption<string>;
    // The date, time, and time zone that the corresponding event starts.
    start?: NullableOption<DateTimeTimeZone>;
    /**
     * The availability status of the user or resource during the corresponding event. The possible values are: free,
     * tentative, busy, oof, workingElsewhere, unknown.
     */
    status?: NullableOption<FreeBusyStatus>;
    // The corresponding event's subject line. Optional.
    subject?: NullableOption<string>;
}
export interface ScoredEmailAddress {
    // The email address.
    address?: NullableOption<string>;
    itemId?: NullableOption<string>;
    /**
     * The relevance score of the email address. A relevance score is used as a sort key, in relation to the other returned
     * results. A higher relevance score value corresponds to a more relevant result. Relevance is determined by the user’s
     * communication and collaboration patterns and business relationships.
     */
    relevanceScore?: NullableOption<number>;
    selectionLikelihood?: NullableOption<SelectionLikelihoodInfo>;
}
export interface TimeZoneInformation {
    // An identifier for the time zone.
    alias?: NullableOption<string>;
    // A display string that represents the time zone.
    displayName?: NullableOption<string>;
}
export interface UploadSession {
    /**
     * The date and time in UTC that the upload session will expire. The complete file must be uploaded before this expiration
     * time is reached.
     */
    expirationDateTime?: NullableOption<string>;
    /**
     * A collection of byte ranges that the server is missing for the file. These ranges are zero indexed and of the format
     * 'start-end' (for example '0-26' to indicate the first 27 bytes of the file). When uploading files as Outlook
     * attachments, instead of a collection of ranges, this property always indicates a single value '{start}', the location
     * in the file where the next upload should begin.
     */
    nextExpectedRanges?: NullableOption<string[]>;
    // The URL endpoint that accepts PUT requests for byte ranges of the file.
    uploadUrl?: NullableOption<string>;
}
export interface Website {
    // The URL of the website.
    address?: NullableOption<string>;
    // The display name of the web site.
    displayName?: NullableOption<string>;
    // The possible values are: other, home, work, blog, profile.
    type?: NullableOption<WebsiteType>;
}
// tslint:disable-next-line: interface-name
export interface IdleSessionSignOut {
    // Indicates whether the idle session sign-out policy is enabled.
    isEnabled?: NullableOption<boolean>;
    // Number of seconds of inactivity after which a user is signed out.
    signOutAfterInSeconds?: NullableOption<number>;
    // Number of seconds of inactivity after which a user is notified that they'll be signed out.
    warnAfterInSeconds?: NullableOption<number>;
}
// tslint:disable-next-line: no-empty-interface
export interface AccessAction {}
export interface Album {
    // Unique identifier of the [driveItem][] that is the cover of the album.
    coverImageItemId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface BooleanColumn {}
export interface CalculatedColumn {
    // For dateTime output types, the format of the value. Possible values are: dateOnly or dateTime.
    format?: NullableOption<string>;
    // The formula used to compute the value for this column.
    formula?: NullableOption<string>;
    /**
     * The output type used to format values in this column. Possible values are: boolean, currency, dateTime, number, or
     * text.
     */
    outputType?: NullableOption<string>;
}
export interface ChoiceColumn {
    // If true, allows custom values that aren't in the configured choices.
    allowTextEntry?: NullableOption<boolean>;
    // The list of values available for this column.
    choices?: NullableOption<string[]>;
    // How the choices are to be presented in the UX. Must be one of checkBoxes, dropDownMenu, or radioButtons
    displayAs?: NullableOption<string>;
}
export interface ColumnValidation {
    // Default BCP 47 language tag for the description.
    defaultLanguage?: NullableOption<string>;
    /**
     * Localized messages that explain what is needed for this column's value to be considered valid. User will be prompted
     * with this message if validation fails.
     */
    descriptions?: NullableOption<DisplayNameLocalization[]>;
    // The formula to validate column value. For examples, see Examples of common formulas in lists.
    formula?: NullableOption<string>;
}
export interface DisplayNameLocalization {
    /**
     * If present, the value of this field contains the displayName string that has been set for the language present in the
     * languageTag field.
     */
    displayName?: NullableOption<string>;
    // Provides the language culture-code and friendly name of the language that the displayName field has been provided in.
    languageTag?: NullableOption<string>;
}
export interface CommentAction {
    // If true, this activity was a reply to an existing comment thread.
    isReply?: NullableOption<boolean>;
    // The identity of the user who started the comment thread.
    parentAuthor?: NullableOption<IdentitySet>;
    // The identities of the users participating in this comment thread.
    participants?: NullableOption<IdentitySet[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface ContentApprovalStatusColumn {}
export interface ContentTypeInfo {
    // The ID of the content type.
    id?: NullableOption<string>;
    // The name of the content type.
    name?: NullableOption<string>;
}
export interface ContentTypeOrder {
    // Indicates whether this is the default content type
    default?: NullableOption<boolean>;
    // Specifies the position in which the content type appears in the selection UI.
    position?: NullableOption<number>;
}
// tslint:disable-next-line: no-empty-interface
export interface CreateAction {}
export interface CurrencyColumn {
    // Specifies the locale from which to infer the currency symbol.
    locale?: NullableOption<string>;
}
export interface DateTimeColumn {
    /**
     * How the value should be presented in the UX. Must be one of default, friendly, or standard. See below for more details.
     * If unspecified, treated as default.
     */
    displayAs?: NullableOption<string>;
    // Indicates whether the value should be presented as a date only or a date and time. Must be one of dateOnly or dateTime
    format?: NullableOption<string>;
}
export interface DefaultColumnValue {
    // The formula used to compute the default value for the column.
    formula?: NullableOption<string>;
    // The direct value to use as the default value for the column.
    value?: NullableOption<string>;
}
export interface DeleteAction {
    // The name of the item that was deleted.
    name?: NullableOption<string>;
    // File or Folder, depending on the type of the deleted item.
    objectType?: NullableOption<string>;
}
export interface DocumentSet {
    // Content types allowed in document set.
    allowedContentTypes?: NullableOption<ContentTypeInfo[]>;
    // Default contents of document set.
    defaultContents?: NullableOption<DocumentSetContent[]>;
    // Specifies whether to push welcome page changes to inherited content types.
    propagateWelcomePageChanges?: NullableOption<boolean>;
    // Indicates whether to add the name of the document set to each file name.
    shouldPrefixNameToFile?: NullableOption<boolean>;
    // Welcome page absolute URL.
    welcomePageUrl?: NullableOption<string>;
    sharedColumns?: NullableOption<ColumnDefinition[]>;
    welcomePageColumns?: NullableOption<ColumnDefinition[]>;
}
export interface DocumentSetContent {
    // Content type information of the file.
    contentType?: NullableOption<ContentTypeInfo>;
    // Name of the file in resource folder that should be added as a default content or a template in the document set.
    fileName?: NullableOption<string>;
    // Folder name in which the file will be placed when a new document set is created in the library.
    folderName?: NullableOption<string>;
}
export interface DocumentSetVersionItem {
    // The unique identifier for the item.
    itemId?: NullableOption<string>;
    // The title of the item.
    title?: NullableOption<string>;
    // The version ID of the item.
    versionId?: NullableOption<string>;
}
export interface DriveItemUploadableProperties {
    // Provides a user-visible description of the item. Read-write. Only on OneDrive Personal.
    description?: NullableOption<string>;
    // Provides an expected file size to perform a quota check prior to upload. Only on OneDrive Personal.
    fileSize?: NullableOption<number>;
    // File system information on client. Read-write.
    fileSystemInfo?: NullableOption<FileSystemInfo>;
    // The name of the item (filename and extension). Read-write.
    name?: NullableOption<string>;
}
export interface DriveRecipient {
    // The alias of the domain object, for cases where an email address is unavailable (e.g. security groups).
    alias?: NullableOption<string>;
    // The email address for the recipient, if the recipient has an associated email address.
    email?: NullableOption<string>;
    // The unique identifier for the recipient in the directory.
    objectId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface EditAction {}
export interface ExtractSensitivityLabelsResult {
    // List of sensitivity labels assigned to a file.
    labels?: NullableOption<SensitivityLabelAssignment[]>;
}
export interface SensitivityLabelAssignment {
    /**
     * Indicates whether the label assignment is done automatically, as a standard, or a privileged operation. The possible
     * values are: standard, privileged, auto, unknownFutureValue.
     */
    assignmentMethod?: SensitivityLabelAssignmentMethod;
    // The unique identifier for the sensitivity label assigned to the file.
    sensitivityLabelId?: string;
    // The unique identifier for the tenant that hosts the file when this label is applied.
    tenantId?: string;
}
export interface Hashes {
    // The CRC32 value of the file in little endian (if available). Read-only.
    crc32Hash?: NullableOption<string>;
    /**
     * A proprietary hash of the file that can be used to determine if the contents of the file have changed (if available).
     * Read-only.
     */
    quickXorHash?: NullableOption<string>;
    // SHA1 hash for the contents of the file (if available). Read-only.
    sha1Hash?: NullableOption<string>;
    // SHA256 hash for the contents of the file (if available). Read-only.
    sha256Hash?: NullableOption<string>;
}
export interface FolderView {
    // The method by which the folder should be sorted.
    sortBy?: NullableOption<string>;
    // If true, indicates that items should be sorted in descending order. Otherwise, items should be sorted ascending.
    sortOrder?: NullableOption<string>;
    // The type of view that should be used to represent the folder.
    viewType?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface GeolocationColumn {}
export interface HyperlinkOrPictureColumn {
    // Specifies whether the display format used for URL columns is an image or a hyperlink.
    isPicture?: NullableOption<boolean>;
}
// tslint:disable-next-line: interface-name
export interface IncompleteData {
    // The service does not have source data before the specified time.
    missingDataBeforeDateTime?: NullableOption<string>;
    // Some data was not recorded due to excessive activity.
    wasThrottled?: NullableOption<boolean>;
}
// tslint:disable-next-line: interface-name
export interface ItemActionStat {
    // The number of times the action took place. Read-only.
    actionCount?: NullableOption<number>;
    // The number of distinct actors that performed the action. Read-only.
    actorCount?: NullableOption<number>;
}
// tslint:disable-next-line: interface-name
export interface ItemPreviewInfo {
    getUrl?: NullableOption<string>;
    postParameters?: NullableOption<string>;
    postUrl?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface ItemReference {
    /**
     * Unique identifier of the drive instance that contains the driveItem. Only returned if the item is located in a
     * [drive][]. Read-only.
     */
    driveId?: NullableOption<string>;
    // Identifies the type of drive. Only returned if the item is located in a [drive][]. See [drive][] resource for values.
    driveType?: NullableOption<string>;
    // Unique identifier of the driveItem in the drive or a listItem in a list. Read-only.
    id?: NullableOption<string>;
    // The name of the item being referenced. Read-only.
    name?: NullableOption<string>;
    // Path that can be used to navigate to the item. Read-only.
    path?: NullableOption<string>;
    // A unique identifier for a shared resource that can be accessed via the [Shares][] API.
    shareId?: NullableOption<string>;
    // Returns identifiers useful for SharePoint REST compatibility. Read-only.
    sharepointIds?: NullableOption<SharepointIds>;
    /**
     * For OneDrive for Business and SharePoint, this property represents the ID of the site that contains the parent document
     * library of the driveItem resource or the parent list of the listItem resource. The value is the same as the id property
     * of that [site][] resource. It is an opaque string that consists of three identifiers of the site. For OneDrive, this
     * property is not populated.
     */
    siteId?: NullableOption<string>;
}
export interface LookupColumn {
    // Indicates whether multiple values can be selected from the source.
    allowMultipleValues?: NullableOption<boolean>;
    // Indicates whether values in the column should be able to exceed the standard limit of 255 characters.
    allowUnlimitedLength?: NullableOption<boolean>;
    // The name of the lookup source column.
    columnName?: NullableOption<string>;
    // The unique identifier of the lookup source list.
    listId?: NullableOption<string>;
    /**
     * If specified, this column is a secondary lookup, pulling an additional field from the list item looked up by the
     * primary lookup. Use the list item looked up by the primary as the source for the column named here.
     */
    primaryLookupColumnId?: NullableOption<string>;
}
export interface MentionAction {
    // The identities of the users mentioned in this action.
    mentionees?: NullableOption<IdentitySet[]>;
}
export interface MoveAction {
    // The name of the location the item was moved from.
    from?: NullableOption<string>;
    // The name of the location the item was moved to.
    to?: NullableOption<string>;
}
export interface NumberColumn {
    // How many decimal places to display. See below for information about the possible values.
    decimalPlaces?: NullableOption<string>;
    // How the value should be presented in the UX. Must be one of number or percentage. If unspecified, treated as number.
    displayAs?: NullableOption<string>;
    // The maximum permitted value.
    maximum?: NullableOption<number>;
    // The minimum permitted value.
    minimum?: NullableOption<number>;
}
export interface PendingContentUpdate {
    // Date and time the pending binary operation was queued in UTC time. Read-only.
    queuedDateTime?: NullableOption<string>;
}
export interface PersonOrGroupColumn {
    // Indicates whether multiple values can be selected from the source.
    allowMultipleSelection?: NullableOption<boolean>;
    // Whether to allow selection of people only, or people and groups. Must be one of peopleAndGroups or peopleOnly.
    chooseFromType?: NullableOption<string>;
    // How to display the information about the person or group chosen. See below.
    displayAs?: NullableOption<string>;
}
export interface StoragePlanInformation {
    // Indicates whether there are higher storage quota plans available. Read-only.
    upgradeAvailable?: NullableOption<boolean>;
}
export interface RenameAction {
    // The new name of the item.
    newName?: NullableOption<string>;
    // The previous name of the item.
    oldName?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface RestoreAction {}
export interface RetentionLabelSettings {
    /**
     * Describes the item behavior during retention period. Possible values are: doNotRetain, retain, retainAsRecord,
     * retainAsRegulatoryRecord, unknownFutureValue. Read-only.
     */
    behaviorDuringRetentionPeriod?: NullableOption<SecurityNamespace.BehaviorDuringRetentionPeriod>;
    // Specifies whether updates to document content are allowed. Read-only.
    isContentUpdateAllowed?: NullableOption<boolean>;
    // Specifies whether the document deletion is allowed. Read-only.
    isDeleteAllowed?: NullableOption<boolean>;
    // Specifies whether you're allowed to change the retention label on the document. Read-only.
    isLabelUpdateAllowed?: NullableOption<boolean>;
    // Specifies whether updates to the item metadata (for example, the Title field) are blocked. Read-only.
    isMetadataUpdateAllowed?: NullableOption<boolean>;
    // Specifies whether the item is locked. Read-write.
    isRecordLocked?: NullableOption<boolean>;
}
export interface ShareAction {
    // The identities the item was shared with in this action.
    recipients?: NullableOption<IdentitySet[]>;
}
export interface SharePointIdentity extends Identity {
    // The sign in name of the SharePoint identity.
    loginName?: NullableOption<string>;
}
export interface SharePointIdentitySet extends IdentitySet {
    // The group associated with this action. Optional.
    group?: NullableOption<Identity>;
    // The SharePoint group associated with this action. Optional.
    siteGroup?: NullableOption<SharePointIdentity>;
    // The SharePoint user associated with this action. Optional.
    siteUser?: NullableOption<SharePointIdentity>;
}
export interface SharingInvitation {
    // The email address provided for the recipient of the sharing invitation. Read-only.
    email?: NullableOption<string>;
    /**
     * Provides information about who sent the invitation that created this permission, if that information is available.
     * Read-only.
     */
    invitedBy?: NullableOption<IdentitySet>;
    redeemedBy?: NullableOption<string>;
    // If true the recipient of the invitation needs to sign in in order to access the shared item. Read-only.
    signInRequired?: NullableOption<boolean>;
}
export interface SharingLink {
    // The app the link is associated with.
    application?: NullableOption<Identity>;
    /**
     * If true then the user can only use this link to view the item on the web, and cannot use it to download the contents of
     * the item. Only for OneDrive for Business and SharePoint.
     */
    preventsDownload?: NullableOption<boolean>;
    /**
     * The scope of the link represented by this permission. Value anonymous indicates the link is usable by anyone,
     * organization indicates the link is only usable for users signed into the same tenant.
     */
    scope?: NullableOption<string>;
    // The type of the link created.
    type?: NullableOption<string>;
    /**
     * For embed links, this property contains the HTML code for an &amp;lt;iframe&amp;gt; element that will embed the item in
     * a webpage.
     */
    webHtml?: NullableOption<string>;
    // A URL that opens the item in the browser on the OneDrive website.
    webUrl?: NullableOption<string>;
}
export interface TermColumn {
    // Specifies whether the column allows more than one value.
    allowMultipleValues?: NullableOption<boolean>;
    // Specifies whether to display the entire term path or only the term label.
    showFullyQualifiedName?: NullableOption<boolean>;
    parentTerm?: NullableOption<TermStore.Term>;
    termSet?: NullableOption<TermStore.Set>;
}
export interface TextColumn {
    // Whether to allow multiple lines of text.
    allowMultipleLines?: NullableOption<boolean>;
    // Whether updates to this column should replace existing text, or append to it.
    appendChangesToExistingText?: NullableOption<boolean>;
    // The size of the text box.
    linesForEditing?: NullableOption<number>;
    // The maximum number of characters for the value.
    maxLength?: NullableOption<number>;
    // The type of text being stored. Must be one of plain or richText
    textType?: NullableOption<string>;
}
export interface Thumbnail {
    // The content stream for the thumbnail.
    content?: NullableOption<any>;
    // The height of the thumbnail, in pixels.
    height?: NullableOption<number>;
    /**
     * The unique identifier of the item that provided the thumbnail. This is only available when a folder thumbnail is
     * requested.
     */
    sourceItemId?: NullableOption<string>;
    // The URL used to fetch the thumbnail content.
    url?: NullableOption<string>;
    // The width of the thumbnail, in pixels.
    width?: NullableOption<number>;
}
// tslint:disable-next-line: no-empty-interface
export interface ThumbnailColumn {}
export interface VersionAction {
    // The name of the new version that was created by this action.
    newVersion?: NullableOption<string>;
}
export interface BroadcastMeetingSettings {
    // Defines who can join the Teams live event. Possible values are listed in the following table.
    allowedAudience?: NullableOption<BroadcastMeetingAudience>;
    // Caption settings of a Teams live event.
    captions?: NullableOption<BroadcastMeetingCaptionSettings>;
    // Indicates whether attendee report is enabled for this Teams live event. Default value is false.
    isAttendeeReportEnabled?: NullableOption<boolean>;
    // Indicates whether Q&amp;A is enabled for this Teams live event. Default value is false.
    isQuestionAndAnswerEnabled?: NullableOption<boolean>;
    // Indicates whether recording is enabled for this Teams live event. Default value is false.
    isRecordingEnabled?: NullableOption<boolean>;
    // Indicates whether video on demand is enabled for this Teams live event. Default value is false.
    isVideoOnDemandEnabled?: NullableOption<boolean>;
}
export interface MeetingParticipants {
    attendees?: NullableOption<MeetingParticipantInfo[]>;
    organizer?: NullableOption<MeetingParticipantInfo>;
}
export interface ExtensionSchemaProperty {
    // The name of the strongly typed property defined as part of a schema extension.
    name?: NullableOption<string>;
    /**
     * The type of the property that is defined as part of a schema extension. Allowed values are Binary, Boolean, DateTime,
     * Integer or String. See the table in the Supported property data types section for more details.
     */
    type?: NullableOption<string>;
}
export interface AttributeDefinition {
    /**
     * true if the attribute should be used as the anchor for the object. Anchor attributes must have a unique value
     * identifying an object, and must be immutable. Default is false. One, and only one, of the object's attributes must be
     * designated as the anchor to support synchronization.
     */
    anchor?: boolean;
    apiExpressions?: NullableOption<StringKeyStringValuePair[]>;
    /**
     * true if value of this attribute should be treated as case-sensitive. This setting affects how the synchronization
     * engine detects changes for the attribute.
     */
    caseExact?: boolean;
    defaultValue?: NullableOption<string>;
    // 'true' to allow null values for attributes.
    flowNullValues?: boolean;
    // Metadata for the given object.
    metadata?: NullableOption<AttributeDefinitionMetadataEntry[]>;
    // true if an attribute can have multiple values. Default is false.
    multivalued?: boolean;
    // An attribute's mutability. Possible values are: ReadWrite, ReadOnly, Immutable, WriteOnly. Default is ReadWrite.
    mutability?: Mutability;
    // Name of the attribute. Must be unique within the object definition. Not nullable.
    name?: NullableOption<string>;
    /**
     * For attributes with reference type, lists referenced objects (for example, the manager attribute would list User as the
     * referenced object).
     */
    referencedObjects?: NullableOption<ReferencedObject[]>;
    /**
     * true if attribute is required. Object can not be created if any of the required attributes are missing. If during
     * synchronization, the required attribute has no value, the default value will be used. If default the value was not set,
     * synchronization will record an error.
     */
    required?: boolean;
    // Attribute value type. Possible values are: String, Integer, Reference, Binary, Boolean,DateTime. Default is String.
    type?: AttributeType;
}
export interface StringKeyStringValuePair {
    // Key.
    key?: NullableOption<string>;
    // Value.
    value?: NullableOption<string>;
}
export interface AttributeDefinitionMetadataEntry {
    /**
     * Possible values are: BaseAttributeName, ComplexObjectDefinition, IsContainer, IsCustomerDefined, IsDomainQualified,
     * LinkPropertyNames, LinkTypeName, MaximumLength, ReferencedProperty.
     */
    key?: NullableOption<AttributeDefinitionMetadata>;
    // Value of the metadata property.
    value?: NullableOption<string>;
}
export interface ReferencedObject {
    // Name of the referenced object. Must match one of the objects in the directory definition.
    referencedObjectName?: NullableOption<string>;
    // Currently not supported. Name of the property in the referenced object, the value for which is used as the reference.
    referencedProperty?: NullableOption<string>;
}
export interface AttributeMapping {
    // Default value to be used in case the source property was evaluated to null. Optional.
    defaultValue?: NullableOption<string>;
    // For internal use only.
    exportMissingReferences?: boolean;
    /**
     * Defines when this attribute should be exported to the target directory. Possible values are: FlowWhenChanged and
     * FlowAlways. Default is FlowWhenChanged.
     */
    flowBehavior?: AttributeFlowBehavior;
    /**
     * Defines when this attribute should be updated in the target directory. Possible values are: Always (default)
     * ObjectAddOnly - only when new object is created MultiValueAddOnly - only when the change is adding new values to a
     * multi-valued attribute ValueAddOnly - If there is a current value, only flows 'Add' operations; will not flow 'Remove'
     * operations AttributeAddOnly - Only propagates changes if no current value exists at all
     */
    flowType?: AttributeFlowType;
    /**
     * If higher than 0, this attribute will be used to perform an initial match of the objects between source and target
     * directories. The synchronization engine will try to find the matching object using attribute with lowest value of
     * matching priority first. If not found, the attribute with the next matching priority will be used, and so on a until
     * match is found or no more matching attributes are left. Only attributes that are expected to have unique values, such
     * as email, should be used as matching attributes.
     */
    matchingPriority?: number;
    // Defines how a value should be extracted (or transformed) from the source object.
    source?: NullableOption<AttributeMappingSource>;
    // Name of the attribute on the target object.
    targetAttributeName?: NullableOption<string>;
}
export interface AttributeMappingSource {
    // Equivalent expression representation of this attributeMappingSource object.
    expression?: NullableOption<string>;
    /**
     * Name parameter of the mapping source. Depending on the type property value, this can be the name of the function, the
     * name of the source attribute, or a constant value to be used.
     */
    name?: NullableOption<string>;
    /**
     * If this object represents a function, lists function parameters. Parameters consist of attributeMappingSource objects
     * themselves, allowing for complex expressions. If type isn't Function, this property is null/empty array.
     */
    parameters?: NullableOption<StringKeyAttributeMappingSourceValuePair[]>;
    // The type of this attribute mapping source. Possible values are: Attribute, Constant, Function. Default is Attribute.
    type?: AttributeMappingSourceType;
}
export interface AttributeMappingParameterSchema {
    /**
     * The given parameter can be provided multiple times (for example, multiple input strings in the
     * Concatenate(string,string,...) function).
     */
    allowMultipleOccurrences?: boolean;
    // Parameter name.
    name?: NullableOption<string>;
    // true if the parameter is required; otherwise false.
    required?: boolean;
    // The possible values are: String, Integer, Reference, Binary, Boolean, DateTime. Default is String.
    type?: AttributeType;
}
export interface StringKeyAttributeMappingSourceValuePair {
    // The name of the parameter.
    key?: NullableOption<string>;
    // The value of the parameter.
    value?: NullableOption<AttributeMappingSource>;
}
export interface ContainerFilter {
    includedContainers?: NullableOption<string[]>;
}
export interface ExpressionInputObject {
    // Definition of the test object.
    definition?: NullableOption<ObjectDefinition>;
    // Property values of the test object.
    properties?: NullableOption<StringKeyObjectValuePair[]>;
}
export interface ObjectDefinition {
    // Defines attributes of the object.
    attributes?: NullableOption<AttributeDefinition[]>;
    // Metadata for the given object.
    metadata?: NullableOption<ObjectDefinitionMetadataEntry[]>;
    // Name of the object. Must be unique within a directory definition. Not nullable.
    name?: NullableOption<string>;
    // The API that the provisioning service queries to retrieve data for synchronization.
    supportedApis?: NullableOption<string[]>;
}
export interface StringKeyObjectValuePair {
    // Key.
    key?: NullableOption<string>;
}
export interface Filter {
    /**
     * *Experimental* Filter group set used to decide whether given object belongs and should be processed as part of this
     * object mapping. An object is considered in scope if ANY of the groups in the collection is evaluated to true.
     */
    categoryFilterGroups?: NullableOption<FilterGroup[]>;
    /**
     * Filter group set used to decide whether given object is in scope for provisioning. This is the filter which should be
     * used in most cases. If an object used to satisfy this filter at a given moment, and then the object or the filter was
     * changed so that filter isn't satisfied any longer, such object will get deprovisioned'. An object is considered in
     * scope if ANY of the groups in the collection is evaluated to true.
     */
    groups?: NullableOption<FilterGroup[]>;
    /**
     * *Experimental* Filter group set used to filter out objects at the early stage of reading them from the directory. If an
     * object doesn't satisfy this filter, then it will not be processed further. Important to understand is that if an object
     * used to satisfy this filter at a given moment, and then the object or the filter was changed so that filter is no
     * longer satisfied, such object will NOT get deprovisioned. An object is considered in scope if ANY of the groups in the
     * collection is evaluated to true.
     */
    inputFilterGroups?: NullableOption<FilterGroup[]>;
}
export interface FilterGroup {
    /**
     * Filter clauses (conditions) of this group. All clauses in a group must be satisfied in order for the filter group to
     * evaluate to true.
     */
    clauses?: NullableOption<FilterClause[]>;
    // Human-readable name of the filter group.
    name?: NullableOption<string>;
}
export interface FilterClause {
    /**
     * Name of the operator to be applied to the source and target operands. Must be one of the supported operators. Supported
     * operators can be discovered.
     */
    operatorName?: NullableOption<string>;
    /**
     * Name of source operand (the operand being tested). The source operand name must match one of the attribute names on the
     * source object.
     */
    sourceOperandName?: NullableOption<string>;
    // Values that the source operand will be tested against.
    targetOperand?: NullableOption<FilterOperand>;
}
export interface FilterOperand {
    // Collection of values.
    values?: NullableOption<string[]>;
}
export interface GroupFilter {
    includedGroups?: NullableOption<string[]>;
}
export interface ObjectDefinitionMetadataEntry {
    /**
     * Possible values are: PropertyNameAccountEnabled, PropertyNameSoftDeleted, IsSoftDeletionSupported,
     * IsSynchronizeAllSupported, ConnectorDataStorageRequired, Extensions, LinkTypeName.
     */
    key?: NullableOption<ObjectDefinitionMetadata>;
    // Value of the metadata property.
    value?: NullableOption<string>;
}
export interface ObjectMapping {
    /**
     * Attribute mappings define which attributes to map from the source object into the target object and how they should
     * flow. A number of functions are available to support the transformation of the original source values.
     */
    attributeMappings?: NullableOption<AttributeMapping[]>;
    /**
     * When true, this object mapping will be processed during synchronization. When false, this object mapping will be
     * skipped.
     */
    enabled?: boolean;
    /**
     * Which flow types are enabled for this object mapping. Add creates new objects in the target directory, Update modifies
     * existing objects, and Delete deprovisions existing users. The default is Add, Update, Delete.
     */
    flowTypes?: ObjectFlowTypes;
    // Additional extension properties. Unless mentioned explicitly, metadata values should not be changed.
    metadata?: NullableOption<ObjectMappingMetadataEntry[]>;
    // Human-friendly name of the object mapping.
    name?: NullableOption<string>;
    /**
     * Defines a filter to be used when deciding whether a given object should be provisioned. For example, you might want to
     * only provision users that are located in the US.
     */
    scope?: NullableOption<Filter>;
    // Name of the object in the source directory. Must match the object name from the source directory definition.
    sourceObjectName?: NullableOption<string>;
    // Name of the object in target directory. Must match the object name from the target directory definition.
    targetObjectName?: NullableOption<string>;
}
export interface ObjectMappingMetadataEntry {
    /**
     * Possible values are: EscrowBehavior, DisableMonitoringForChanges, OriginalJoiningProperty, Disposition,
     * IsCustomerDefined, ExcludeFromReporting, Unsynchronized.
     */
    key?: NullableOption<ObjectMappingMetadata>;
    // Value of the metadata property.
    value?: NullableOption<string>;
}
export interface ParseExpressionResponse {
    // Error details, if expression evaluation resulted in an error.
    error?: NullableOption<PublicError>;
    // A collection of values produced by the evaluation of the expression.
    evaluationResult?: NullableOption<string[]>;
    // true if the evaluation was successful.
    evaluationSucceeded?: boolean;
    // An attributeMappingSource object representing the parsed expression.
    parsedExpression?: NullableOption<AttributeMappingSource>;
    // true if the expression was parsed successfully.
    parsingSucceeded?: boolean;
}
export interface PublicErrorResponse {
    error?: NullableOption<PublicError>;
}
export interface StringKeyLongValuePair {
    /**
     * The mapping of the user type from the source system to the target system. For example:User to User - For Microsoft
     * Entra ID to Microsoft Entra ID synchronization worker to user - For Workday to Microsoft Entra synchronization.
     */
    key?: NullableOption<string>;
    // Total number of synchronized objects.
    value?: number;
}
export interface SynchronizationError {
    // The error code. For example, AzureDirectoryB2BManagementPolicyCheckFailure.
    code?: NullableOption<string>;
    // The error message. For example, Policy permitting auto-redemption of invitations not configured.
    message?: NullableOption<string>;
    // The action to take to resolve the error. For example, false.
    tenantActionable?: boolean;
}
export interface SynchronizationJobApplicationParameters {
    /**
     * The identifier of the synchronizationRule to be applied. This rule ID is defined in the schema for a given
     * synchronization job or template.
     */
    ruleId?: NullableOption<string>;
    // The identifiers of one or more objects to which a synchronizationJob is to be applied.
    subjects?: NullableOption<SynchronizationJobSubject[]>;
}
export interface SynchronizationJobSubject {
    // Principals that you would like to provision.
    links?: NullableOption<SynchronizationLinkedObjects>;
    /**
     * The identifier of an object to which a synchronizationJob is to be applied. Can be one of the following: An
     * onPremisesDistinguishedName for synchronization from Active Directory to Azure AD.The user ID for synchronization from
     * Microsoft Entra ID to a third-party.The Worker ID of the Workday worker for synchronization from Workday to either
     * Active Directory or Microsoft Entra ID.
     */
    objectId?: NullableOption<string>;
    /**
     * The type of the object to which a synchronizationJob is to be applied. Can be one of the following: user for
     * synchronizing between Active Directory and Azure AD.User for synchronizing a user between Microsoft Entra ID and a
     * third-party application. Worker for synchronization a user between Workday and either Active Directory or Microsoft
     * Entra ID.Group for synchronizing a group between Microsoft Entra ID and a third-party application.
     */
    objectTypeName?: NullableOption<string>;
}
export interface SynchronizationJobRestartCriteria {
    /**
     * Comma-separated combination of the following values: None, ConnectorDataStore, Escrows, Watermark, QuarantineState,
     * Full, ForceDeletes. The property can also be empty. None: Starts a paused or quarantined provisioning job. DO NOT USE.
     * Use the Start synchronizationJob API instead.ConnectorDataStore - Clears the underlying cache for all users. DO NOT
     * USE. Contact Microsoft Support for guidance.Escrows - Provisioning failures are marked as escrows and retried. Clearing
     * escrows will stop the service from retrying failures.Watermark - Removing the watermark causes the service to
     * reevaluate all the users again, rather than just processing changes.QuarantineState - Temporarily lifts the
     * quarantine.Use Full if you want all of the options.ForceDeletes - Forces the system to delete the pending deleted users
     * when using the accidental deletions prevention feature and the deletion threshold is exceeded. Leaving this property
     * empty emulates the Restart provisioning option in the Microsoft Entra admin center. It is similar to setting the
     * resetScope to include QuarantineState, Watermark, and Escrows. This option meets most customer needs.
     */
    resetScope?: NullableOption<SynchronizationJobRestartScope>;
}
export interface SynchronizationLinkedObjects {
    manager?: NullableOption<SynchronizationJobSubject>;
    // All group members that you would like to provision.
    members?: NullableOption<SynchronizationJobSubject[]>;
    owners?: NullableOption<SynchronizationJobSubject[]>;
}
export interface SynchronizationMetadataEntry {
    /**
     * Possible values are: GalleryApplicationIdentifier, GalleryApplicationKey, IsOAuthEnabled,
     * IsSynchronizationAgentAssignmentRequired, IsSynchronizationAgentRequired, IsSynchronizationInPreview, OAuthSettings,
     * SynchronizationLearnMoreIbizaFwLink, ConfigurationFields.
     */
    key?: NullableOption<SynchronizationMetadata>;
    // Value of the metadata property.
    value?: NullableOption<string>;
}
export interface SynchronizationProgress {
    // The numerator of a progress ratio; the number of units of changes already processed.
    completedUnits?: number;
    // The time of a progress observation as an offset in minutes from UTC.
    progressObservationDateTime?: string;
    // The denominator of a progress ratio; a number of units of changes to be processed to accomplish synchronization.
    totalUnits?: number;
    // An optional description of the units.
    units?: NullableOption<string>;
}
export interface SynchronizationQuarantine {
    /**
     * Date and time when the quarantine was last evaluated and imposed. The Timestamp type represents date and time
     * information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z.
     */
    currentBegan?: string;
    // Describes the error(s) that occurred when putting the synchronization job into quarantine.
    error?: NullableOption<SynchronizationError>;
    /**
     * Date and time when the next attempt to re-evaluate the quarantine will be made. The Timestamp type represents date and
     * time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z.
     */
    nextAttempt?: string;
    /**
     * A code that signifies why the quarantine was imposed. The possible values are: EncounteredBaseEscrowThreshold,
     * EncounteredTotalEscrowThreshold, EncounteredEscrowProportionThreshold, EncounteredQuarantineException, Unknown,
     * QuarantinedOnDemand, TooManyDeletes, IngestionInterrupted.
     */
    reason?: QuarantineReason;
    /**
     * Date and time when the quarantine was first imposed in this series (a series starts when a quarantine is first imposed,
     * and is reset as soon as the quarantine is lifted). The Timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    seriesBegan?: string;
    /**
     * Number of times in this series the quarantine was re-evaluated and left in effect (a series starts when quarantine is
     * first imposed, and is reset as soon as quarantine is lifted).
     */
    seriesCount?: number;
}
export interface SynchronizationRule {
    containerFilter?: NullableOption<ContainerFilter>;
    // true if the synchronization rule can be customized; false if this rule is read-only and shouldn't be changed.
    editable?: boolean;
    groupFilter?: NullableOption<GroupFilter>;
    /**
     * Synchronization rule identifier. Must be one of the identifiers recognized by the synchronization engine. Supported
     * rule identifiers can be found in the synchronization template returned by the API.
     */
    id?: NullableOption<string>;
    /**
     * Additional extension properties. Unless instructed explicitly by the support team, metadata values shouldn't be
     * changed.
     */
    metadata?: NullableOption<StringKeyStringValuePair[]>;
    // Human-readable name of the synchronization rule. Not nullable.
    name?: NullableOption<string>;
    /**
     * Collection of object mappings supported by the rule. Tells the synchronization engine which objects should be
     * synchronized.
     */
    objectMappings?: NullableOption<ObjectMapping[]>;
    /**
     * Priority relative to other rules in the synchronizationSchema. Rules with the lowest priority number will be processed
     * first.
     */
    priority?: number;
    // Name of the source directory. Must match one of the directory definitions in synchronizationSchema.
    sourceDirectoryName?: NullableOption<string>;
    // Name of the target directory. Must match one of the directory definitions in synchronizationSchema.
    targetDirectoryName?: NullableOption<string>;
}
export interface SynchronizationSchedule {
    /**
     * Date and time when this job expires. The Timestamp type represents date and time information using ISO 8601 format and
     * is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    expiration?: NullableOption<string>;
    /**
     * The interval between synchronization iterations. The value is represented in ISO 8601 format for durations. For
     * example, PT1M represents a period of one month.
     */
    interval?: string;
    // The possible values are: Active, Disabled, Paused.
    state?: SynchronizationScheduleState;
}
export interface SynchronizationSecretKeyStringValuePair {
    /**
     * Possible values are: None, UserName, Password, SecretToken, AppKey, BaseAddress, ClientIdentifier, ClientSecret,
     * SingleSignOnType, Sandbox, Url, Domain, ConsumerKey, ConsumerSecret, TokenKey, TokenExpiration, Oauth2AccessToken,
     * Oauth2AccessTokenCreationTime, Oauth2RefreshToken, SyncAll, InstanceName, Oauth2ClientId, Oauth2ClientSecret,
     * CompanyId, UpdateKeyOnSoftDelete, SynchronizationSchedule, SystemOfRecord, SandboxName, EnforceDomain,
     * SyncNotificationSettings, SkipOutOfScopeDeletions, Oauth2AuthorizationCode, Oauth2RedirectUri,
     * ApplicationTemplateIdentifier, Oauth2TokenExchangeUri, Oauth2AuthorizationUri, AuthenticationType, Server,
     * PerformInboundEntitlementGrants, HardDeletesEnabled, SyncAgentCompatibilityKey, SyncAgentADContainer, ValidateDomain,
     * TestReferences, ConnectionString.
     */
    key?: SynchronizationSecret;
    // The value of the secret.
    value?: NullableOption<string>;
}
export interface SynchronizationStatus {
    /**
     * High-level status code of the synchronization job. Possible values are: NotConfigured, NotRun, Active, Paused,
     * Quarantine.
     */
    code?: SynchronizationStatusCode;
    // Number of consecutive times this job failed.
    countSuccessiveCompleteFailures?: number;
    /**
     * true if the job's escrows (object-level errors) were pruned during initial synchronization. Escrows can be pruned if
     * during the initial synchronization, you reach the threshold of errors that would normally put the job in quarantine.
     * Instead of going into quarantine, the synchronization process clears the job's errors and continues until the initial
     * synchronization is completed. When the initial synchronization is completed, the job will pause and wait for the
     * customer to clean up the errors.
     */
    escrowsPruned?: boolean;
    // Details of the last execution of the job.
    lastExecution?: NullableOption<SynchronizationTaskExecution>;
    // Details of the last execution of this job, which didn't have any errors.
    lastSuccessfulExecution?: NullableOption<SynchronizationTaskExecution>;
    // Details of the last execution of the job, which exported objects into the target directory.
    lastSuccessfulExecutionWithExports?: NullableOption<SynchronizationTaskExecution>;
    // Details of the progress of a job toward completion.
    progress?: NullableOption<SynchronizationProgress[]>;
    // If job is in quarantine, quarantine details.
    quarantine?: NullableOption<SynchronizationQuarantine>;
    /**
     * The time when steady state (no more changes to the process) was first achieved. The Timestamp type represents date and
     * time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z.
     */
    steadyStateFirstAchievedTime?: string;
    /**
     * The time when steady state (no more changes to the process) was last achieved. The Timestamp type represents date and
     * time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z.
     */
    steadyStateLastAchievedTime?: string;
    // Count of synchronized objects, listed by object type.
    synchronizedEntryCountByType?: NullableOption<StringKeyLongValuePair[]>;
    // In the event of an error, the URL with the troubleshooting steps for the issue.
    troubleshootingUrl?: NullableOption<string>;
}
export interface SynchronizationTaskExecution {
    // Identifier of the job run.
    activityIdentifier?: NullableOption<string>;
    // Count of processed entries that were assigned for this application.
    countEntitled?: number;
    // Count of processed entries that were assigned for provisioning.
    countEntitledForProvisioning?: number;
    // Count of entries that were escrowed (errors).
    countEscrowed?: number;
    // Count of entries that were escrowed, including system-generated escrows.
    countEscrowedRaw?: number;
    // Count of exported entries.
    countExported?: number;
    // Count of entries that were expected to be exported.
    countExports?: number;
    // Count of imported entries.
    countImported?: number;
    // Count of imported delta-changes.
    countImportedDeltas?: number;
    // Count of imported delta-changes pertaining to reference changes.
    countImportedReferenceDeltas?: number;
    // If an error was encountered, contains a synchronizationError object with details.
    error?: NullableOption<SynchronizationError>;
    // Code summarizing the result of this run. Possible values are: Succeeded, Failed, EntryLevelErrors.
    state?: SynchronizationTaskExecutionResult;
    /**
     * Time when this job run began. The Timestamp type represents date and time information using ISO 8601 format and is
     * always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    timeBegan?: string;
    /**
     * Time when this job run ended. The Timestamp type represents date and time information using ISO 8601 format and is
     * always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    timeEnded?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface AccessReviewApplyAction {}
export interface AccessReviewHistoryScheduleSettings {
    /**
     * Detailed settings for recurrence using the standard Outlook recurrence object. Note: Only dayOfMonth, interval, and
     * type (weekly, absoluteMonthly) properties are supported. Use the property startDate on recurrenceRange to determine the
     * day the review starts. Required.
     */
    recurrence?: PatternedRecurrence;
    /**
     * A duration string in ISO 8601 duration format specifying the lookback period of the generated review history data. For
     * example, if a history definition is scheduled to run on the first of every month, the reportRange is P1M. In this case,
     * on the first of every month, access review history data is collected containing only the previous month's review data.
     * Note: Only years, months, and days ISO 8601 properties are supported. Required.
     */
    reportRange?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface AccessReviewScope {}
export interface AccessReviewQueryScope extends AccessReviewScope {
    // The query representing what will be reviewed in an access review.
    query?: NullableOption<string>;
    /**
     * In the scenario where reviewers need to be specified dynamically, this property is used to indicate the relative source
     * of the query. This property is only required if a relative query is specified. For example, ./manager.
     */
    queryRoot?: NullableOption<string>;
    // Indicates the type of query. Types include MicrosoftGraph and ARM.
    queryType?: NullableOption<string>;
}
export interface AccessReviewInactiveUsersQueryScope extends AccessReviewQueryScope {
    /**
     * Defines the duration of inactivity. Inactivity is based on the last sign in date of the user compared to the access
     * review instance's start date. If this property is not specified, it's assigned the default value PT0S.
     */
    inactiveDuration?: NullableOption<string>;
}
export interface AccessReviewInstanceDecisionItemResource {
    // Display name of the resource
    displayName?: NullableOption<string>;
    // Identifier of the resource
    id?: NullableOption<string>;
    // Type of resource. Types include: Group, ServicePrincipal, DirectoryRole, AzureRole, AccessPackageAssignmentPolicy.
    type?: NullableOption<string>;
}
export interface AccessReviewInstanceDecisionItemAccessPackageAssignmentPolicyResource extends AccessReviewInstanceDecisionItemResource {
    // Display name of the access package to which access has been granted.
    accessPackageDisplayName?: NullableOption<string>;
    // Identifier of the access package to which access has been granted.
    accessPackageId?: NullableOption<string>;
}
export interface AccessReviewInstanceDecisionItemAzureRoleResource extends AccessReviewInstanceDecisionItemResource {
    // Details of the scope this role is associated with.
    scope?: NullableOption<AccessReviewInstanceDecisionItemResource>;
}
export interface AccessReviewInstanceDecisionItemServicePrincipalResource extends AccessReviewInstanceDecisionItemResource {
    // The globally unique identifier of the application to which access has been granted.
    appId?: NullableOption<string>;
}
export interface AccessReviewNotificationRecipientItem {
    // Determines the recipient of the notification email.
    notificationRecipientScope?: NullableOption<AccessReviewNotificationRecipientScope>;
    /**
     * Indicates the type of access review email to be sent. Supported template type is CompletedAdditionalRecipients, which
     * sends review completion notifications to the recipients.
     */
    notificationTemplateType?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface AccessReviewNotificationRecipientScope {}
export interface AccessReviewNotificationRecipientQueryScope extends AccessReviewNotificationRecipientScope {
    /**
     * Represents the query for who the recipients are. For example, /groups/{group id}/members for group members and
     * /users/{user id} for a specific user.
     */
    query?: NullableOption<string>;
    /**
     * In the scenario where reviewers need to be specified dynamically, indicates the relative source of the query. This
     * property is only required if a relative query (that is, ./manager) is specified.
     */
    queryRoot?: NullableOption<string>;
    // Indicates the type of query. Allowed value is MicrosoftGraph.
    queryType?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface AccessReviewRecommendationInsightSetting {}
export interface AccessReviewReviewerScope {
    // The query specifying who will be the reviewer.
    query?: NullableOption<string>;
    /**
     * In the scenario where reviewers need to be specified dynamically, this property is used to indicate the relative source
     * of the query. This property is only required if a relative query, for example, ./manager, is specified. Possible value:
     * decisions.
     */
    queryRoot?: NullableOption<string>;
    // The type of query. Examples include MicrosoftGraph and ARM.
    queryType?: NullableOption<string>;
}
export interface AccessReviewScheduleSettings {
    /**
     * Optional field. Describes the actions to take once a review is complete. There are two types that are currently
     * supported: removeAccessApplyAction (default) and disableAndDeleteUserApplyAction. Field only needs to be specified in
     * the case of disableAndDeleteUserApplyAction.
     */
    applyActions?: NullableOption<AccessReviewApplyAction[]>;
    /**
     * Indicates whether decisions are automatically applied. When set to false, an admin must apply the decisions manually
     * once the reviewer completes the access review. When set to true, decisions are applied automatically after the access
     * review instance duration ends, whether or not the reviewers have responded. Default value is false. CAUTION: If both
     * autoApplyDecisionsEnabled and defaultDecisionEnabled are true, all access for the principals to the resource risks
     * being revoked if the reviewers fail to respond.
     */
    autoApplyDecisionsEnabled?: boolean;
    /**
     * Indicates whether decisions on previous access review stages are available for reviewers on an accessReviewInstance
     * with multiple subsequent stages. If not provided, the default is disabled (false).
     */
    decisionHistoriesForReviewersEnabled?: NullableOption<boolean>;
    // Decision chosen if defaultDecisionEnabled is enabled. Can be one of Approve, Deny, or Recommendation.
    defaultDecision?: NullableOption<string>;
    /**
     * Indicates whether the default decision is enabled or disabled when reviewers do not respond. Default value is false.
     * CAUTION: If both autoApplyDecisionsEnabled and defaultDecisionEnabled are true, all access for the principals to the
     * resource risks being revoked if the reviewers fail to respond.
     */
    defaultDecisionEnabled?: boolean;
    /**
     * Duration of an access review instance in days. NOTE: If the stageSettings of the accessReviewScheduleDefinition object
     * is defined, its durationInDays setting will be used instead of the value of this property.
     */
    instanceDurationInDays?: number;
    // Indicates whether reviewers are required to provide justification with their decision. Default value is false.
    justificationRequiredOnApproval?: boolean;
    // Indicates whether emails are enabled or disabled. Default value is false.
    mailNotificationsEnabled?: boolean;
    /**
     * Optional. Describes the types of insights that aid reviewers to make access review decisions. NOTE: If the
     * stageSettings of the accessReviewScheduleDefinition object is defined, its recommendationInsightSettings setting will
     * be used instead of the value of this property.
     */
    recommendationInsightSettings?: NullableOption<AccessReviewRecommendationInsightSetting[]>;
    /**
     * Optional field. Indicates the period of inactivity (with respect to the start date of the review instance) that
     * recommendations will be configured from. The recommendation will be to deny if the user is inactive during the
     * look-back duration. For reviews of groups and Microsoft Entra roles, any duration is accepted. For reviews of
     * applications, 30 days is the maximum duration. If not specified, the duration is 30 days. NOTE: If the stageSettings of
     * the accessReviewScheduleDefinition object is defined, its recommendationLookBackDuration setting will be used instead
     * of the value of this property.
     */
    recommendationLookBackDuration?: NullableOption<string>;
    /**
     * Indicates whether decision recommendations are enabled or disabled. NOTE: If the stageSettings of the
     * accessReviewScheduleDefinition object is defined, its recommendationsEnabled setting will be used instead of the value
     * of this property.
     */
    recommendationsEnabled?: boolean;
    /**
     * Detailed settings for recurrence using the standard Outlook recurrence object. Note: Only dayOfMonth, interval, and
     * type (weekly, absoluteMonthly) properties are supported. Use the property startDate on recurrenceRange to determine the
     * day the review starts.
     */
    recurrence?: NullableOption<PatternedRecurrence>;
    // Indicates whether reminders are enabled or disabled. Default value is false.
    reminderNotificationsEnabled?: boolean;
}
export interface AccessReviewStageSettings {
    /**
     * Indicate which decisions will go to the next stage. Can be a subset of Approve, Deny, Recommendation, or NotReviewed.
     * If not provided, all decisions will go to the next stage. Optional.
     */
    decisionsThatWillMoveToNextStage?: NullableOption<string[]>;
    /**
     * Defines the sequential or parallel order of the stages and depends on the stageId. Only sequential stages are currently
     * supported. For example, if stageId is 2, then dependsOn must be 1. If stageId is 1, don't specify dependsOn. Required
     * if stageId isn't 1.
     */
    dependsOn?: string[];
    /**
     * The duration of the stage. Required. NOTE: The cumulative value of this property across all stages 1. Will override the
     * instanceDurationInDays setting on the accessReviewScheduleDefinition object. 2. Can't exceed the length of one
     * recurrence. That is, if the review recurs weekly, the cumulative durationInDays can't exceed 7.
     */
    durationInDays?: number;
    /**
     * If provided, the fallback reviewers are asked to complete a review if the primary reviewers don't exist. For example,
     * if managers are selected as reviewers and a principal under review doesn't have a manager in Microsoft Entra ID, the
     * fallback reviewers are asked to review that principal. NOTE: The value of this property overrides the corresponding
     * setting on the accessReviewScheduleDefinition object.
     */
    fallbackReviewers?: NullableOption<AccessReviewReviewerScope[]>;
    recommendationInsightSettings?: NullableOption<AccessReviewRecommendationInsightSetting[]>;
    /**
     * Indicates whether showing recommendations to reviewers is enabled. Required. NOTE: The value of this property overrides
     * override the corresponding setting on the accessReviewScheduleDefinition object.
     */
    recommendationsEnabled?: boolean;
    /**
     * Defines who the reviewers are. If none is specified, the review is a self-review (users review their own access). For
     * examples of options for assigning reviewers, see Assign reviewers to your access review definition using the Microsoft
     * Graph API. NOTE: The value of this property overrides the corresponding setting on the accessReviewScheduleDefinition.
     */
    reviewers?: NullableOption<AccessReviewReviewerScope[]>;
    /**
     * Unique identifier of the accessReviewStageSettings object. The stageId is used by the dependsOn property to indicate
     * the order of the stages. Required.
     */
    stageId?: string;
}
export interface AppConsentRequestScope {
    // The name of the scope.
    displayName?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface DisableAndDeleteUserApplyAction extends AccessReviewApplyAction {}
// tslint:disable-next-line: no-empty-interface
export interface GroupPeerOutlierRecommendationInsightSettings extends AccessReviewRecommendationInsightSetting {}
export interface PrincipalResourceMembershipsScope extends AccessReviewScope {
    // Defines the scopes of the principals whose access to resources are reviewed in the access review.
    principalScopes?: NullableOption<AccessReviewScope[]>;
    // Defines the scopes of the resources for which access is reviewed.
    resourceScopes?: NullableOption<AccessReviewScope[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface RemoveAccessApplyAction extends AccessReviewApplyAction {}
export interface ServicePrincipalIdentity extends Identity {
    // The application identifier of the service principal.
    appId?: NullableOption<string>;
}
export interface UserLastSignInRecommendationInsightSetting extends AccessReviewRecommendationInsightSetting {
    /**
     * Optional. Indicates the time period of inactivity (with respect to the start date of the review instance) that
     * recommendations will be configured from. The recommendation will be to deny if the user is inactive during the
     * look-back duration. For reviews of groups and Microsoft Entra roles, any duration is accepted. For reviews of
     * applications, 30 days is the maximum duration. If not specified, the duration is 30 days.
     */
    recommendationLookBackDuration?: NullableOption<string>;
    /**
     * Indicates whether inactivity is calculated based on the user's inactivity in the tenant or in the application. The
     * possible values are tenant, application, unknownFutureValue. application is only relevant when the access review is a
     * review of an assignment to an application.
     */
    signInScope?: NullableOption<UserSignInRecommendationScope>;
}
export interface AgreementFileData {
    // Data that represents the terms of use PDF document. Read-only.
    data?: NullableOption<string>;
}
export interface TermsExpiration {
    /**
     * Represents the frequency at which the terms will expire, after its first expiration as set in startDateTime. The value
     * is represented in ISO 8601 format for durations. For example, PT1M represents a time period of one month.
     */
    frequency?: NullableOption<string>;
    /**
     * The DateTime when the agreement is set to expire for all users. The Timestamp type represents date and time information
     * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    startDateTime?: NullableOption<string>;
}
export interface ConditionalAccessSessionControl {
    // Specifies whether the session control is enabled.
    isEnabled?: NullableOption<boolean>;
}
// tslint:disable-next-line: no-empty-interface
export interface ApplicationEnforcedRestrictionsSessionControl extends ConditionalAccessSessionControl {}
export interface AuthenticationStrengthUsage {
    mfa?: NullableOption<ConditionalAccessPolicy[]>;
    none?: NullableOption<ConditionalAccessPolicy[]>;
}
export interface CloudAppSecuritySessionControl extends ConditionalAccessSessionControl {
    /**
     * Possible values are: mcasConfigured, monitorOnly, blockDownloads, unknownFutureValue. For more information, see Deploy
     * Conditional Access App Control for featured apps.
     */
    cloudAppSecurityType?: NullableOption<CloudAppSecuritySessionControlType>;
}
export interface ConditionalAccessExternalTenants {
    /**
     * The membership kind. Possible values are: all, enumerated, unknownFutureValue. The enumerated member references an
     * conditionalAccessEnumeratedExternalTenants object.
     */
    membershipKind?: NullableOption<ConditionalAccessExternalTenantsMembershipKind>;
}
// tslint:disable-next-line: no-empty-interface
export interface ConditionalAccessAllExternalTenants extends ConditionalAccessExternalTenants {}
export interface ConditionalAccessApplications {
    applicationFilter?: NullableOption<ConditionalAccessFilter>;
    /**
     * Can be one of the following: The list of client IDs (appId) explicitly excluded from the policy. Office365 - For the
     * list of apps included in Office365, see Conditional Access target apps: Office 365
     */
    excludeApplications?: string[];
    /**
     * Can be one of the following: The list of client IDs (appId) the policy applies to, unless explicitly excluded (in
     * excludeApplications) All Office365 - For the list of apps included in Office365, see Conditional Access target apps:
     * Office 365
     */
    includeApplications?: string[];
    includeAuthenticationContextClassReferences?: string[];
    // User actions to include. Supported values are urn:user:registersecurityinfo and urn:user:registerdevice
    includeUserActions?: string[];
}
export interface ConditionalAccessFilter {
    // Mode to use for the filter. Possible values are include or exclude.
    mode?: FilterMode;
    /**
     * Rule syntax is similar to that used for membership rules for groups in Microsoft Entra ID. For details, see rules with
     * multiple expressions
     */
    rule?: string;
}
export interface ConditionalAccessClientApplications {
    // Service principal IDs excluded from the policy scope.
    excludeServicePrincipals?: string[];
    // Service principal IDs included in the policy scope, or ServicePrincipalsInMyTenant.
    includeServicePrincipals?: string[];
    servicePrincipalFilter?: NullableOption<ConditionalAccessFilter>;
}
export interface ConditionalAccessConditionSet {
    // Applications and user actions included in and excluded from the policy. Required.
    applications?: NullableOption<ConditionalAccessApplications>;
    /**
     * Client applications (service principals and workload identities) included in and excluded from the policy. Either users
     * or clientApplications is required.
     */
    clientApplications?: NullableOption<ConditionalAccessClientApplications>;
    /**
     * Client application types included in the policy. Possible values are: all, browser, mobileAppsAndDesktopClients,
     * exchangeActiveSync, easSupported, other. Required. The easUnsupported enumeration member will be deprecated in favor of
     * exchangeActiveSync which includes EAS supported and unsupported platforms.
     */
    clientAppTypes?: ConditionalAccessClientApp[];
    // Devices in the policy.
    devices?: NullableOption<ConditionalAccessDevices>;
    // Locations included in and excluded from the policy.
    locations?: NullableOption<ConditionalAccessLocations>;
    // Platforms included in and excluded from the policy.
    platforms?: NullableOption<ConditionalAccessPlatforms>;
    // Service principal risk levels included in the policy. Possible values are: low, medium, high, none, unknownFutureValue.
    servicePrincipalRiskLevels?: RiskLevel[];
    /**
     * Sign-in risk levels included in the policy. Possible values are: low, medium, high, hidden, none, unknownFutureValue.
     * Required.
     */
    signInRiskLevels?: RiskLevel[];
    /**
     * User risk levels included in the policy. Possible values are: low, medium, high, hidden, none, unknownFutureValue.
     * Required.
     */
    userRiskLevels?: RiskLevel[];
    // Users, groups, and roles included in and excluded from the policy. Either users or clientApplications is required.
    users?: NullableOption<ConditionalAccessUsers>;
}
export interface ConditionalAccessDevices {
    /**
     * Filter that defines the dynamic-device-syntax rule to include/exclude devices. A filter can use device properties (such
     * as extension attributes) to include/exclude them.
     */
    deviceFilter?: NullableOption<ConditionalAccessFilter>;
}
export interface ConditionalAccessLocations {
    // Location IDs excluded from scope of policy.
    excludeLocations?: string[];
    // Location IDs in scope of policy unless explicitly excluded, All, or AllTrusted.
    includeLocations?: string[];
}
export interface ConditionalAccessPlatforms {
    // Possible values are: android, iOS, windows, windowsPhone, macOS, linux, all, unknownFutureValue.
    excludePlatforms?: ConditionalAccessDevicePlatform[];
    // Possible values are: android, iOS, windows, windowsPhone, macOS, linux, all, unknownFutureValue.
    includePlatforms?: ConditionalAccessDevicePlatform[];
}
export interface ConditionalAccessUsers {
    // Group IDs excluded from scope of policy.
    excludeGroups?: string[];
    // Internal guests or external users excluded from the policy scope. Optionally populated.
    excludeGuestsOrExternalUsers?: NullableOption<ConditionalAccessGuestsOrExternalUsers>;
    // Role IDs excluded from scope of policy.
    excludeRoles?: string[];
    // User IDs excluded from scope of policy and/or GuestsOrExternalUsers.
    excludeUsers?: string[];
    // Group IDs in scope of policy unless explicitly excluded.
    includeGroups?: string[];
    // Internal guests or external users included in the policy scope. Optionally populated.
    includeGuestsOrExternalUsers?: NullableOption<ConditionalAccessGuestsOrExternalUsers>;
    // Role IDs in scope of policy unless explicitly excluded.
    includeRoles?: string[];
    // User IDs in scope of policy unless explicitly excluded, None, All, or GuestsOrExternalUsers.
    includeUsers?: string[];
}
export interface ConditionalAccessEnumeratedExternalTenants extends ConditionalAccessExternalTenants {
    /**
     * A collection of tenant IDs that define the scope of a policy targeting conditional access for guests and external
     * users.
     */
    members?: string[];
}
export interface ConditionalAccessGrantControls {
    /**
     * List of values of built-in controls required by the policy. Possible values: block, mfa, compliantDevice,
     * domainJoinedDevice, approvedApplication, compliantApplication, passwordChange, unknownFutureValue.
     */
    builtInControls?: ConditionalAccessGrantControl[];
    // List of custom controls IDs required by the policy. For more information, see Custom controls.
    customAuthenticationFactors?: string[];
    // Defines the relationship of the grant controls. Possible values: AND, OR.
    operator?: NullableOption<string>;
    // List of terms of use IDs required by the policy.
    termsOfUse?: string[];
    authenticationStrength?: NullableOption<AuthenticationStrengthPolicy>;
}
export interface ConditionalAccessGuestsOrExternalUsers {
    /**
     * The tenant IDs of the selected types of external users. Either all B2B tenant or a collection of tenant IDs. External
     * tenants can be specified only when the property guestOrExternalUserTypes isn't null or an empty String.
     */
    externalTenants?: NullableOption<ConditionalAccessExternalTenants>;
    /**
     * Indicates internal guests or external user types, and is a multi-valued property. Possible values are: none,
     * internalGuest, b2bCollaborationGuest, b2bCollaborationMember, b2bDirectConnectUser, otherExternalUser, serviceProvider,
     * unknownFutureValue.
     */
    guestOrExternalUserTypes?: ConditionalAccessGuestOrExternalUserTypes;
}
export interface ConditionalAccessPolicyDetail {
    // Represents the type of conditions that govern when the policy applies.
    conditions?: ConditionalAccessConditionSet;
    // Represents grant controls that must be fulfilled for the policy.
    grantControls?: NullableOption<ConditionalAccessGrantControls>;
    // Represents a complex type of session controls that is enforced after sign-in.
    sessionControls?: NullableOption<ConditionalAccessSessionControls>;
}
export interface ConditionalAccessSessionControls {
    /**
     * Session control to enforce application restrictions. Only Exchange Online and Sharepoint Online support this session
     * control.
     */
    applicationEnforcedRestrictions?: NullableOption<ApplicationEnforcedRestrictionsSessionControl>;
    // Session control to apply cloud app security.
    cloudAppSecurity?: NullableOption<CloudAppSecuritySessionControl>;
    /**
     * Session control that determines whether it is acceptable for Microsoft Entra ID to extend existing sessions based on
     * information collected prior to an outage or not.
     */
    disableResilienceDefaults?: NullableOption<boolean>;
    /**
     * Session control to define whether to persist cookies or not. All apps should be selected for this session control to
     * work correctly.
     */
    persistentBrowser?: NullableOption<PersistentBrowserSessionControl>;
    // Session control to enforce signin frequency.
    signInFrequency?: NullableOption<SignInFrequencySessionControl>;
}
export interface PersistentBrowserSessionControl extends ConditionalAccessSessionControl {
    // Possible values are: always, never.
    mode?: NullableOption<PersistentBrowserSessionMode>;
}
export interface SignInFrequencySessionControl extends ConditionalAccessSessionControl {
    // The possible values are primaryAndSecondaryAuthentication, secondaryAuthentication, unknownFutureValue.
    authenticationType?: NullableOption<SignInFrequencyAuthenticationType>;
    // The possible values are timeBased, everyTime, unknownFutureValue.
    frequencyInterval?: NullableOption<SignInFrequencyInterval>;
    // Possible values are: days, hours.
    type?: NullableOption<SigninFrequencyType>;
    // The number of days or hours.
    value?: NullableOption<number>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IpRange {}
// tslint:disable-next-line: interface-name
export interface IPv4CidrRange extends IpRange {
    // IPv4 address in CIDR notation. Not nullable.
    cidrAddress?: string;
}
// tslint:disable-next-line: interface-name
export interface IPv6CidrRange extends IpRange {
    // IPv6 address in CIDR notation. Not nullable.
    cidrAddress?: string;
}
export interface RiskServicePrincipalActivity {
    /**
     * Details of the detected risk. Note: Details for this property are only available for Workload Identities Premium
     * customers. Events in tenants without this license will be returned hidden. The possible values are: none, hidden,
     * adminConfirmedServicePrincipalCompromised, adminDismissedAllRiskForServicePrincipal. Note that you must use the Prefer:
     * include-unknown-enum-members request header to get the following value(s) in this evolvable enum:
     * adminConfirmedServicePrincipalCompromised , adminDismissedAllRiskForServicePrincipal.
     */
    detail?: NullableOption<RiskDetail>;
    riskEventTypes?: NullableOption<string[]>;
}
export interface RiskUserActivity {
    /**
     * Details of the detected risk. Possible values are: none, adminGeneratedTemporaryPassword,
     * userPerformedSecuredPasswordChange, userPerformedSecuredPasswordReset, adminConfirmedSigninSafe, aiConfirmedSigninSafe,
     * userPassedMFADrivenByRiskBasedPolicy, adminDismissedAllRiskForUser, adminConfirmedSigninCompromised, hidden,
     * adminConfirmedUserCompromised, unknownFutureValue.
     */
    detail?: NullableOption<RiskDetail>;
    // The type of risk event detected.
    riskEventTypes?: NullableOption<string[]>;
}
export interface AccessPackageAnswer {
    // The localized display value shown to the requestor and approvers.
    displayValue?: NullableOption<string>;
    answeredQuestion?: NullableOption<AccessPackageQuestion>;
}
export interface AccessPackageAnswerChoice {
    /**
     * The actual value of the selected choice. This is typically a string value which is understandable by applications.
     * Required.
     */
    actualValue?: NullableOption<string>;
    // The text of the answer choice represented in a format for a specific locale.
    localizations?: NullableOption<AccessPackageLocalizedText[]>;
    text?: NullableOption<string>;
}
export interface AccessPackageLocalizedText {
    /**
     * The language code that text is in. For example, 'en-us'. The language component follows 2-letter codes as defined in
     * ISO 639-1, and the country component follows 2-letter codes as defined in ISO 3166-1 alpha-2. Required.
     */
    languageCode?: string;
    // The question in the specific language. Required.
    text?: NullableOption<string>;
}
export interface AccessPackageAnswerString extends AccessPackageAnswer {
    // The value stored on the requestor's user profile, if this answer is configured to be stored as a specific attribute.
    value?: NullableOption<string>;
}
export interface AccessPackageApprovalStage {
    // The number of days that a request can be pending a response before it is automatically denied.
    durationBeforeAutomaticDenial?: NullableOption<string>;
    // If escalation is required, the time a request can be pending a response from a primary approver.
    durationBeforeEscalation?: NullableOption<string>;
    /**
     * If escalation is enabled and the primary approvers do not respond before the escalation time, the escalationApprovers
     * are the users who will be asked to approve requests.
     */
    escalationApprovers?: NullableOption<SubjectSet[]>;
    // The subjects, typically users, who are the fallback escalation approvers.
    fallbackEscalationApprovers?: NullableOption<SubjectSet[]>;
    // The subjects, typically users, who are the fallback primary approvers.
    fallbackPrimaryApprovers?: NullableOption<SubjectSet[]>;
    // Indicates whether the approver is required to provide a justification for approving a request.
    isApproverJustificationRequired?: NullableOption<boolean>;
    // If true, then one or more escalationApprovers are configured in this approval stage.
    isEscalationEnabled?: NullableOption<boolean>;
    /**
     * The subjects, typically users, who will be asked to approve requests. A collection of singleUser, groupMembers,
     * requestorManager, internalSponsors or externalSponsors.
     */
    primaryApprovers?: NullableOption<SubjectSet[]>;
}
export interface AccessPackageAssignmentApprovalSettings {
    // If false, then approval isn't required for new requests in this policy.
    isApprovalRequiredForAdd?: NullableOption<boolean>;
    // If false, then approval isn't required for updates to requests in this policy.
    isApprovalRequiredForUpdate?: NullableOption<boolean>;
    /**
     * If approval is required, the one, two or three elements of this collection define each of the stages of approval. An
     * empty array is present if no approval is required.
     */
    stages?: NullableOption<AccessPackageApprovalStage[]>;
}
export interface AccessPackageAssignmentRequestCallbackData extends CustomExtensionData {
    // Details for the callback.
    customExtensionStageInstanceDetail?: NullableOption<string>;
    // Unique identifier of the callout to the custom extension.
    customExtensionStageInstanceId?: NullableOption<string>;
    /**
     * Indicates the stage at which the custom callout extension is executed. The possible values are:
     * assignmentRequestCreated, assignmentRequestApproved, assignmentRequestGranted, assignmentRequestRemoved,
     * assignmentFourteenDaysBeforeExpiration, assignmentOneDayBeforeExpiration, unknownFutureValue.
     */
    stage?: NullableOption<AccessPackageCustomExtensionStage>;
    /**
     * Allow the extension to be able to deny or cancel the request submitted by the requestor. The supported values are
     * Denied and Canceled. This property can only be set for an assignmentRequestCreated stage.
     */
    state?: NullableOption<string>;
}
export interface AccessPackageAssignmentRequestorSettings {
    // False indicates that the requestor isn't permitted to include a schedule in their request.
    allowCustomAssignmentSchedule?: NullableOption<boolean>;
    // True allows on-behalf-of requestors to create a request to add access for another principal.
    enableOnBehalfRequestorsToAddAccess?: NullableOption<boolean>;
    // True allows on-behalf-of requestors to create a request to remove access for another principal.
    enableOnBehalfRequestorsToRemoveAccess?: NullableOption<boolean>;
    // True allows on-behalf-of requestors to create a request to update access for another principal.
    enableOnBehalfRequestorsToUpdateAccess?: NullableOption<boolean>;
    // True allows requestors to create a request to add access for themselves.
    enableTargetsToSelfAddAccess?: NullableOption<boolean>;
    // True allows requestors to create a request to remove their access.
    enableTargetsToSelfRemoveAccess?: NullableOption<boolean>;
    // True allows requestors to create a request to update their access.
    enableTargetsToSelfUpdateAccess?: NullableOption<boolean>;
    // The principals who can request on-behalf-of others.
    onBehalfRequestors?: NullableOption<SubjectSet[]>;
}
export interface AccessPackageAssignmentRequestRequirements {
    // Indicates whether the requestor is allowed to set a custom schedule.
    allowCustomAssignmentSchedule?: NullableOption<boolean>;
    // Indicates whether a request to add must be approved by an approver.
    isApprovalRequiredForAdd?: NullableOption<boolean>;
    // Indicates whether a request to update must be approved by an approver.
    isApprovalRequiredForUpdate?: NullableOption<boolean>;
    // The description of the policy that the user is trying to request access using.
    policyDescription?: NullableOption<string>;
    // The display name of the policy that the user is trying to request access using.
    policyDisplayName?: NullableOption<string>;
    /**
     * The identifier of the policy that these requirements are associated with. This identifier can be used when creating a
     * new assignment request.
     */
    policyId?: NullableOption<string>;
    // Schedule restrictions enforced, if any.
    schedule?: NullableOption<EntitlementManagementSchedule>;
    questions?: NullableOption<AccessPackageQuestion[]>;
}
export interface EntitlementManagementSchedule {
    // When the access should expire.
    expiration?: NullableOption<ExpirationPattern>;
    // For recurring access reviews. Not used in access requests.
    recurrence?: NullableOption<PatternedRecurrence>;
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    startDateTime?: NullableOption<string>;
}
export interface AccessPackageAssignmentReviewSettings {
    /**
     * The default decision to apply if the access is not reviewed. The possible values are: keepAccess, removeAccess,
     * acceptAccessRecommendation, unknownFutureValue.
     */
    expirationBehavior?: NullableOption<AccessReviewExpirationBehavior>;
    // This collection specifies the users who will be the fallback reviewers when the primary reviewers don't respond.
    fallbackReviewers?: NullableOption<SubjectSet[]>;
    // If true, access reviews are required for assignments through this policy.
    isEnabled?: NullableOption<boolean>;
    // Specifies whether to display recommendations to the reviewer. The default value is true.
    isRecommendationEnabled?: NullableOption<boolean>;
    // Specifies whether the reviewer must provide justification for the approval. The default value is true.
    isReviewerJustificationRequired?: NullableOption<boolean>;
    // Specifies whether the principals can review their own assignments.
    isSelfReview?: NullableOption<boolean>;
    // This collection specifies the users or group of users who will review the access package assignments.
    primaryReviewers?: NullableOption<SubjectSet[]>;
    // When the first review should start and how often it should recur.
    schedule?: NullableOption<EntitlementManagementSchedule>;
}
export interface AccessPackageAutomaticRequestSettings {
    /**
     * The duration for which access must be retained before the target's access is revoked once they leave the allowed target
     * scope.
     */
    gracePeriodBeforeAccessRemoval?: NullableOption<string>;
    // Indicates whether automatic assignment must be removed for targets who move out of the allowed target scope.
    removeAccessWhenTargetLeavesAllowedTargets?: NullableOption<boolean>;
    // If set to true, automatic assignments will be created for targets in the allowed target scope.
    requestAccessForAllowedTargets?: NullableOption<boolean>;
}
export interface AttributeRuleMembers extends SubjectSet {
    // A description of the membership rule.
    description?: NullableOption<string>;
    /**
     * Determines the allowed target users for this policy. For more information about the syntax of the membership rule, see
     * Membership Rules syntax.
     */
    membershipRule?: NullableOption<string>;
}
export interface ConnectedOrganizationMembers extends SubjectSet {
    // The ID of the connected organization in entitlement management.
    connectedOrganizationId?: NullableOption<string>;
    // The name of the connected organization.
    description?: NullableOption<string>;
}
export interface ConnectionInfo {
    // The endpoint that is used by Entitlement Management to communicate with the access package resource.
    url?: NullableOption<string>;
}
export interface CustomExtensionCalloutInstance {
    // Identification of the custom extension that was triggered at this instance.
    customExtensionId?: NullableOption<string>;
    // Details provided by the logic app during the callback of the request instance.
    detail?: NullableOption<string>;
    // The unique run identifier for the logic app.
    externalCorrelationId?: NullableOption<string>;
    // Unique identifier for the callout instance. Read-only.
    id?: NullableOption<string>;
    /**
     * The status of the request to the custom extension. The possible values are: calloutSent, callbackReceived,
     * calloutFailed, callbackTimedOut, waitingForCallback, unknownFutureValue.
     */
    status?: NullableOption<CustomExtensionCalloutInstanceStatus>;
}
export interface ExpirationPattern {
    /**
     * The requestor's desired duration of access represented in ISO 8601 format for durations. For example, PT3H refers to
     * three hours. If specified in a request, endDateTime should not be present and the type property should be set to
     * afterDuration.
     */
    duration?: NullableOption<string>;
    /**
     * Timestamp of date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on
     * Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    endDateTime?: NullableOption<string>;
    /**
     * The requestor's desired expiration pattern type. The possible values are: notSpecified, noExpiration, afterDateTime,
     * afterDuration.
     */
    type?: NullableOption<ExpirationPatternType>;
}
// tslint:disable-next-line: no-empty-interface
export interface ExternalSponsors extends SubjectSet {}
export interface GroupMembers extends SubjectSet {
    // The name of the group in Microsoft Entra ID. Read only.
    description?: NullableOption<string>;
    // The ID of the group in Microsoft Entra ID.
    groupId?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface InternalSponsors extends SubjectSet {}
export interface RequestorManager extends SubjectSet {
    /**
     * The hierarchical level of the manager with respect to the requestor. For example, the direct manager of a requestor
     * would have a managerLevel of 1, while the manager of the requestor's manager would have a managerLevel of 2. Default
     * value for managerLevel is 1. Possible values for this property range from 1 to 2.
     */
    managerLevel?: NullableOption<number>;
}
export interface SingleServicePrincipal extends SubjectSet {
    // Description of this service principal.
    description?: NullableOption<string>;
    // ID of the servicePrincipal.
    servicePrincipalId?: NullableOption<string>;
}
export interface SingleUser extends SubjectSet {
    // The name of the user in Microsoft Entra ID. Read only.
    description?: NullableOption<string>;
    // The ID of the user in Microsoft Entra ID.
    userId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface TargetApplicationOwners extends SubjectSet {}
export interface TargetManager extends SubjectSet {
    // Manager level, between 1 and 4. The direct manager is 1.
    managerLevel?: NullableOption<number>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IdentitySource {}
export interface AzureActiveDirectoryTenant extends IdentitySource {
    // The name of the Microsoft Entra tenant. Read only.
    displayName?: NullableOption<string>;
    // The ID of the Microsoft Entra tenant. Read only.
    tenantId?: NullableOption<string>;
}
export interface CrossCloudAzureActiveDirectoryTenant extends IdentitySource {
    /**
     * The ID of the cloud where the tenant is located, one of microsoftonline.com, microsoftonline.us or
     * partner.microsoftonline.cn. Read only.
     */
    cloudInstance?: string;
    // The name of the Microsoft Entra tenant. Read only.
    displayName?: NullableOption<string>;
    // The ID of the Microsoft Entra tenant. Read only.
    tenantId?: NullableOption<string>;
}
export interface DomainIdentitySource extends IdentitySource {
    // The name of the identity source, typically also the domain name. Read only.
    displayName?: NullableOption<string>;
    // The domain name. Read only.
    domainName?: NullableOption<string>;
}
export interface ExternalDomainFederation extends IdentitySource {
    // The name of the identity source, typically also the domain name. Read only.
    displayName?: NullableOption<string>;
    // The domain name. Read only.
    domainName?: NullableOption<string>;
    // The issuerURI of the incoming federation. Read only.
    issuerUri?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceAndAppManagementAssignmentTarget {}
// tslint:disable-next-line: no-empty-interface
export interface AllDevicesAssignmentTarget extends DeviceAndAppManagementAssignmentTarget {}
// tslint:disable-next-line: no-empty-interface
export interface AllLicensedUsersAssignmentTarget extends DeviceAndAppManagementAssignmentTarget {}
export interface AndroidMinimumOperatingSystem {
    /**
     * When TRUE, only Version 10.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v10_0?: boolean;
    /**
     * When TRUE, only Version 11.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v11_0?: boolean;
    /**
     * When TRUE, only Version 4.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v4_0?: boolean;
    /**
     * When TRUE, only Version 4.0.3 or later is supported. Default value is FALSE. Exactly one of the minimum operating
     * system boolean values will be TRUE.
     */
    v4_0_3?: boolean;
    /**
     * When TRUE, only Version 4.1 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v4_1?: boolean;
    /**
     * When TRUE, only Version 4.2 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v4_2?: boolean;
    /**
     * When TRUE, only Version 4.3 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v4_3?: boolean;
    /**
     * When TRUE, only Version 4.4 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v4_4?: boolean;
    /**
     * When TRUE, only Version 5.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v5_0?: boolean;
    /**
     * When TRUE, only Version 5.1 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v5_1?: boolean;
    /**
     * When TRUE, only Version 6.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v6_0?: boolean;
    /**
     * When TRUE, only Version 7.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v7_0?: boolean;
    /**
     * When TRUE, only Version 7.1 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v7_1?: boolean;
    /**
     * When TRUE, only Version 8.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v8_0?: boolean;
    /**
     * When TRUE, only Version 8.1 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v8_1?: boolean;
    /**
     * When TRUE, only Version 9.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v9_0?: boolean;
}
export interface AppConfigurationSettingItem {
    // app configuration key.
    appConfigKey?: string;
    // app configuration key type. Possible values are: stringType, integerType, realType, booleanType, tokenType.
    appConfigKeyType?: MdmAppConfigKeyType;
    // app configuration key value.
    appConfigKeyValue?: string;
}
export interface ConfigurationManagerCollectionAssignmentTarget extends DeviceAndAppManagementAssignmentTarget {
    // The collection Id that is the target of the assignment.
    collectionId?: NullableOption<string>;
}
export interface GroupAssignmentTarget extends DeviceAndAppManagementAssignmentTarget {
    // The group Id that is the target of the assignment.
    groupId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface ExclusionGroupAssignmentTarget extends GroupAssignmentTarget {}
export interface FileEncryptionInfo {
    // The key used to encrypt the file content.
    encryptionKey?: NullableOption<string>;
    // The file digest prior to encryption. ProfileVersion1 requires a non-null FileDigest.
    fileDigest?: NullableOption<string>;
    // The file digest algorithm. ProfileVersion1 currently only supports SHA256 for the FileDigestAlgorithm.
    fileDigestAlgorithm?: NullableOption<string>;
    // The initialization vector (IV) used for the encryption algorithm. Must be 16 bytes.
    initializationVector?: NullableOption<string>;
    // The hash of the concatenation of the IV and encrypted file content. Must be 32 bytes.
    mac?: NullableOption<string>;
    /**
     * The key used to compute the message authentication code of the concatenation of the IV and encrypted file content. Must
     * be 32 bytes.
     */
    macKey?: NullableOption<string>;
    // The profile identifier. Maps to the strategy used to encrypt the file. Currently, only ProfileVersion1 is supported.
    profileIdentifier?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosDeviceType {
    // Whether the app should run on iPads.
    iPad?: boolean;
    // Whether the app should run on iPhones and iPods.
    iPhoneAndIPod?: boolean;
}
// tslint:disable-next-line: no-empty-interface
export interface MobileAppAssignmentSettings {}
// tslint:disable-next-line: interface-name
export interface IosLobAppAssignmentSettings extends MobileAppAssignmentSettings {
    /**
     * When TRUE, indicates that the app can be uninstalled by the user. When FALSE, indicates that the app cannot be
     * uninstalled by the user. By default, this property is set to null which internally is treated as TRUE.
     */
    isRemovable?: NullableOption<boolean>;
    /**
     * When TRUE, indicates that the app should be uninstalled when the device is removed from Intune. When FALSE, indicates
     * that the app will not be uninstalled when the device is removed from Intune. By default, property is set to null which
     * internally is treated as TRUE.
     */
    uninstallOnDeviceRemoval?: NullableOption<boolean>;
    // This is the unique identifier (Id) of the VPN Configuration to apply to the app.
    vpnConfigurationId?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosMinimumOperatingSystem {
    /**
     * When TRUE, only Version 10.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v10_0?: boolean;
    /**
     * When TRUE, only Version 11.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v11_0?: boolean;
    /**
     * When TRUE, only Version 12.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v12_0?: boolean;
    /**
     * When TRUE, only Version 13.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v13_0?: boolean;
    /**
     * When TRUE, only Version 14.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v14_0?: boolean;
    /**
     * When TRUE, only Version 15.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v15_0?: boolean;
    /**
     * When TRUE, only Version 8.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v8_0?: boolean;
    /**
     * When TRUE, only Version 9.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v9_0?: boolean;
}
// tslint:disable-next-line: interface-name
export interface IosStoreAppAssignmentSettings extends MobileAppAssignmentSettings {
    /**
     * When TRUE, indicates that the app can be uninstalled by the user. When FALSE, indicates that the app cannot be
     * uninstalled by the user. By default, this property is set to null which internally is treated as TRUE.
     */
    isRemovable?: NullableOption<boolean>;
    /**
     * When TRUE, indicates that the app should be uninstalled when the device is removed from Intune. When FALSE, indicates
     * that the app will not be uninstalled when the device is removed from Intune. By default, property is set to null which
     * internally is treated as TRUE.
     */
    uninstallOnDeviceRemoval?: NullableOption<boolean>;
    // This is the unique identifier (Id) of the VPN Configuration to apply to the app.
    vpnConfigurationId?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosVppAppAssignmentSettings extends MobileAppAssignmentSettings {
    // Whether or not to use device licensing.
    useDeviceLicensing?: boolean;
    // The VPN Configuration Id to apply for this app.
    vpnConfigurationId?: NullableOption<string>;
}
export interface MacOSIncludedApp {
    // The bundleId of the app. This maps to the CFBundleIdentifier in the app's bundle configuration.
    bundleId?: string;
    // The version of the app. This maps to the CFBundleShortVersion in the app's bundle configuration.
    bundleVersion?: string;
}
export interface MacOsLobAppAssignmentSettings extends MobileAppAssignmentSettings {
    /**
     * When TRUE, indicates that the app should be uninstalled when the device is removed from Intune. When FALSE, indicates
     * that the app will not be uninstalled when the device is removed from Intune.
     */
    uninstallOnDeviceRemoval?: NullableOption<boolean>;
}
export interface MacOSLobChildApp {
    // The build number of the app.
    buildNumber?: NullableOption<string>;
    // The bundleId of the app.
    bundleId?: NullableOption<string>;
    // The version number of the app.
    versionNumber?: NullableOption<string>;
}
export interface MacOSMinimumOperatingSystem {
    /**
     * When TRUE, indicates OS X 10.10 or later is required to install the app. When FALSE, indicates some other OS version is
     * the minimum OS to install the app. Default value is FALSE.
     */
    v10_10?: boolean;
    /**
     * When TRUE, indicates OS X 10.11 or later is required to install the app. When FALSE, indicates some other OS version is
     * the minimum OS to install the app. Default value is FALSE.
     */
    v10_11?: boolean;
    /**
     * When TRUE, indicates macOS 10.12 or later is required to install the app. When FALSE, indicates some other OS version
     * is the minimum OS to install the app. Default value is FALSE.
     */
    v10_12?: boolean;
    /**
     * When TRUE, indicates macOS 10.13 or later is required to install the app. When FALSE, indicates some other OS version
     * is the minimum OS to install the app. Default value is FALSE.
     */
    v10_13?: boolean;
    /**
     * When TRUE, indicates macOS 10.14 or later is required to install the app. When FALSE, indicates some other OS version
     * is the minimum OS to install the app. Default value is FALSE.
     */
    v10_14?: boolean;
    /**
     * When TRUE, indicates macOS 10.15 or later is required to install the app. When FALSE, indicates some other OS version
     * is the minimum OS to install the app. Default value is FALSE.
     */
    v10_15?: boolean;
    /**
     * When TRUE, indicates Mac OS X 10.7 or later is required to install the app. When FALSE, indicates some other OS version
     * is the minimum OS to install the app. Default value is FALSE.
     */
    v10_7?: boolean;
    /**
     * When TRUE, indicates OS X 10.8 or later is required to install the app. When FALSE, indicates some other OS version is
     * the minimum OS to install the app. Default value is FALSE.
     */
    v10_8?: boolean;
    /**
     * When TRUE, indicates OS X 10.9 or later is required to install the app. When FALSE, indicates some other OS version is
     * the minimum OS to install the app. Default value is FALSE.
     */
    v10_9?: boolean;
    /**
     * When TRUE, indicates macOS 11.0 or later is required to install the app. When FALSE, indicates some other OS version is
     * the minimum OS to install the app. Default value is FALSE.
     */
    v11_0?: boolean;
    /**
     * When TRUE, indicates macOS 12.0 or later is required to install the app. When FALSE, indicates some other OS version is
     * the minimum OS to install the app. Default value is FALSE.
     */
    v12_0?: boolean;
    /**
     * When TRUE, indicates macOS 13.0 or later is required to install the app. When FALSE, indicates some other OS version is
     * the minimum OS to install the app. Default value is FALSE.
     */
    v13_0?: boolean;
}
export interface MicrosoftStoreForBusinessAppAssignmentSettings extends MobileAppAssignmentSettings {
    // Whether or not to use device execution context for Microsoft Store for Business mobile app.
    useDeviceContext?: boolean;
}
export interface MimeContent {
    // Indicates the content mime type.
    type?: NullableOption<string>;
    // The byte array that contains the actual content.
    value?: NullableOption<string>;
}
export interface MobileAppInstallTimeSettings {
    // The time at which the app should be installed.
    deadlineDateTime?: NullableOption<string>;
    // The time at which the app should be available for installation.
    startDateTime?: NullableOption<string>;
    // Whether the local device time or UTC time should be used when determining the available and deadline times.
    useLocalTime?: boolean;
}
export interface VppLicensingType {
    // Whether the program supports the device licensing type.
    supportsDeviceLicensing?: boolean;
    // Whether the program supports the user licensing type.
    supportsUserLicensing?: boolean;
}
export interface Win32LobAppAssignmentSettings extends MobileAppAssignmentSettings {
    /**
     * The delivery optimization priority for this app assignment. This setting is not supported in National Cloud
     * environments. Possible values are: notConfigured, foreground.
     */
    deliveryOptimizationPriority?: Win32LobAppDeliveryOptimizationPriority;
    // The install time settings to apply for this app assignment.
    installTimeSettings?: NullableOption<MobileAppInstallTimeSettings>;
    // The notification status for this app assignment. Possible values are: showAll, showReboot, hideAll.
    notifications?: Win32LobAppNotification;
    // The reboot settings to apply for this app assignment.
    restartSettings?: NullableOption<Win32LobAppRestartSettings>;
}
export interface Win32LobAppRestartSettings {
    // The number of minutes before the restart time to display the countdown dialog for pending restarts.
    countdownDisplayBeforeRestartInMinutes?: number;
    // The number of minutes to wait before restarting the device after an app installation.
    gracePeriodInMinutes?: number;
    // The number of minutes to snooze the restart notification dialog when the snooze button is selected.
    restartNotificationSnoozeDurationInMinutes?: NullableOption<number>;
}
export interface Win32LobAppRule {
    // The rule type indicating the purpose of the rule. Possible values are: detection, requirement.
    ruleType?: Win32LobAppRuleType;
}
export interface Win32LobAppFileSystemRule extends Win32LobAppRule {
    // A value indicating whether to expand environment variables in the 32-bit context on 64-bit systems.
    check32BitOn64System?: boolean;
    // The file or folder comparison value.
    comparisonValue?: NullableOption<string>;
    // The file or folder name to look up.
    fileOrFolderName?: NullableOption<string>;
    /**
     * The file system operation type. Possible values are: notConfigured, exists, modifiedDate, createdDate, version,
     * sizeInMB.
     */
    operationType?: Win32LobAppFileSystemOperationType;
    /**
     * The operator for file or folder detection. Possible values are: notConfigured, equal, notEqual, greaterThan,
     * greaterThanOrEqual, lessThan, lessThanOrEqual.
     */
    operator?: Win32LobAppRuleOperator;
    // The file or folder path to look up.
    path?: NullableOption<string>;
}
export interface Win32LobAppInstallExperience {
    // Device restart behavior. Possible values are: basedOnReturnCode, allow, suppress, force.
    deviceRestartBehavior?: Win32LobAppRestartBehavior;
    // Indicates the type of execution context the app runs in. Possible values are: system, user.
    runAsAccount?: RunAsAccountType;
}
export interface Win32LobAppMsiInformation {
    // The MSI package type. Possible values are: perMachine, perUser, dualPurpose.
    packageType?: Win32LobAppMsiPackageType;
    // The MSI product code.
    productCode?: NullableOption<string>;
    // The MSI product name.
    productName?: NullableOption<string>;
    // The MSI product version.
    productVersion?: NullableOption<string>;
    // The MSI publisher.
    publisher?: NullableOption<string>;
    // Whether the MSI app requires the machine to reboot to complete installation.
    requiresReboot?: boolean;
    // The MSI upgrade code.
    upgradeCode?: NullableOption<string>;
}
export interface Win32LobAppPowerShellScriptRule extends Win32LobAppRule {
    // The script output comparison value. Do not specify a value if the rule is used for detection.
    comparisonValue?: NullableOption<string>;
    // The display name for the rule. Do not specify this value if the rule is used for detection.
    displayName?: NullableOption<string>;
    // A value indicating whether a signature check is enforced.
    enforceSignatureCheck?: boolean;
    /**
     * The script output comparison operation type. Use NotConfigured (the default value) if the rule is used for detection.
     * Possible values are: notConfigured, string, dateTime, integer, float, version, boolean.
     */
    operationType?: Win32LobAppPowerShellScriptRuleOperationType;
    /**
     * The script output operator. Use NotConfigured (the default value) if the rule is used for detection. Possible values
     * are: notConfigured, equal, notEqual, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual.
     */
    operator?: Win32LobAppRuleOperator;
    // A value indicating whether the script should run as 32-bit.
    runAs32Bit?: boolean;
    /**
     * The execution context of the script. Do not specify this value if the rule is used for detection. Script detection
     * rules will run in the same context as the associated app install context. Possible values are: system, user.
     */
    runAsAccount?: NullableOption<RunAsAccountType>;
    // The base64-encoded script content.
    scriptContent?: NullableOption<string>;
}
export interface Win32LobAppProductCodeRule extends Win32LobAppRule {
    // The product code of the app.
    productCode?: NullableOption<string>;
    // The product version comparison value.
    productVersion?: NullableOption<string>;
    /**
     * The product version comparison operator. Possible values are: notConfigured, equal, notEqual, greaterThan,
     * greaterThanOrEqual, lessThan, lessThanOrEqual.
     */
    productVersionOperator?: Win32LobAppRuleOperator;
}
export interface Win32LobAppRegistryRule extends Win32LobAppRule {
    // A value indicating whether to search the 32-bit registry on 64-bit systems.
    check32BitOn64System?: boolean;
    // The registry comparison value.
    comparisonValue?: NullableOption<string>;
    // The full path of the registry entry containing the value to detect.
    keyPath?: NullableOption<string>;
    // The registry operation type. Possible values are: notConfigured, exists, doesNotExist, string, integer, version.
    operationType?: Win32LobAppRegistryRuleOperationType;
    /**
     * The operator for registry detection. Possible values are: notConfigured, equal, notEqual, greaterThan,
     * greaterThanOrEqual, lessThan, lessThanOrEqual.
     */
    operator?: Win32LobAppRuleOperator;
    // The name of the registry value to detect.
    valueName?: NullableOption<string>;
}
export interface Win32LobAppReturnCode {
    // Return code.
    returnCode?: number;
    // The type of return code. Possible values are: failed, success, softReboot, hardReboot, retry.
    type?: Win32LobAppReturnCodeType;
}
export interface WindowsAppXAppAssignmentSettings extends MobileAppAssignmentSettings {
    /**
     * When TRUE, indicates that device execution context will be used for the AppX mobile app. When FALSE, indicates that
     * user context will be used for the AppX mobile app. By default, this property is set to FALSE. Once this property has
     * been set to TRUE it cannot be changed.
     */
    useDeviceContext?: boolean;
}
export interface WindowsMinimumOperatingSystem {
    // Windows version 10.0 or later.
    v10_0?: boolean;
    // Windows version 8.0 or later.
    v8_0?: boolean;
    // Windows version 8.1 or later.
    v8_1?: boolean;
}
export interface WindowsUniversalAppXAppAssignmentSettings extends MobileAppAssignmentSettings {
    /**
     * If true, uses device execution context for Windows Universal AppX mobile app. Device-context install is not allowed
     * when this type of app is targeted with Available intent. Defaults to false.
     */
    useDeviceContext?: boolean;
}
export interface AuditActor {
    // Name of the Application.
    applicationDisplayName?: NullableOption<string>;
    // AAD Application Id.
    applicationId?: NullableOption<string>;
    // Actor Type.
    auditActorType?: NullableOption<string>;
    // IPAddress.
    ipAddress?: NullableOption<string>;
    // Service Principal Name (SPN).
    servicePrincipalName?: NullableOption<string>;
    // User Id.
    userId?: NullableOption<string>;
    // List of user permissions when the audit was performed.
    userPermissions?: NullableOption<string[]>;
    // User Principal Name (UPN).
    userPrincipalName?: NullableOption<string>;
}
export interface AuditProperty {
    // Display name.
    displayName?: NullableOption<string>;
    // New value.
    newValue?: NullableOption<string>;
    // Old value.
    oldValue?: NullableOption<string>;
}
export interface AuditResource {
    // Audit resource's type.
    auditResourceType?: NullableOption<string>;
    // Display name.
    displayName?: NullableOption<string>;
    // List of modified properties.
    modifiedProperties?: NullableOption<AuditProperty[]>;
    // Audit resource's Id.
    resourceId?: NullableOption<string>;
}
export interface DeviceManagementSettings {
    // The number of days a device is allowed to go without checking in to remain compliant.
    deviceComplianceCheckinThresholdDays?: number;
    // Is feature enabled or not for scheduled action for rule.
    isScheduledActionEnabled?: boolean;
    // Device should be noncompliant when there is no compliance policy targeted when this is true
    secureByDefault?: boolean;
}
// tslint:disable-next-line: interface-name
export interface IntuneBrand {
    // Email address of the person/organization responsible for IT support.
    contactITEmailAddress?: NullableOption<string>;
    // Name of the person/organization responsible for IT support.
    contactITName?: NullableOption<string>;
    // Text comments regarding the person/organization responsible for IT support.
    contactITNotes?: NullableOption<string>;
    // Phone number of the person/organization responsible for IT support.
    contactITPhoneNumber?: NullableOption<string>;
    // Logo image displayed in Company Portal apps which have a dark background behind the logo.
    darkBackgroundLogo?: NullableOption<MimeContent>;
    // Company/organization name that is displayed to end users.
    displayName?: NullableOption<string>;
    // Logo image displayed in Company Portal apps which have a light background behind the logo.
    lightBackgroundLogo?: NullableOption<MimeContent>;
    // Display name of the company/organization’s IT helpdesk site.
    onlineSupportSiteName?: NullableOption<string>;
    // URL to the company/organization’s IT helpdesk site.
    onlineSupportSiteUrl?: NullableOption<string>;
    // URL to the company/organization’s privacy policy.
    privacyUrl?: NullableOption<string>;
    // Boolean that represents whether the administrator-supplied display name will be shown next to the logo image.
    showDisplayNameNextToLogo?: boolean;
    // Boolean that represents whether the administrator-supplied logo images are shown or not shown.
    showLogo?: boolean;
    // Boolean that represents whether the administrator-supplied display name will be shown next to the logo image.
    showNameNextToLogo?: boolean;
    // Primary theme color used in the Company Portal applications and web portal.
    themeColor?: NullableOption<RgbColor>;
}
export interface DeviceProtectionOverview {
    // Indicates number of devices reporting as clean
    cleanDeviceCount?: number;
    // Indicates number of devices with critical failures
    criticalFailuresDeviceCount?: number;
    // Indicates number of devices with inactive threat agent
    inactiveThreatAgentDeviceCount?: number;
    // Indicates number of devices pending full scan
    pendingFullScanDeviceCount?: number;
    // Indicates number of devices with pending manual steps
    pendingManualStepsDeviceCount?: number;
    // Indicates number of pending offline scan devices
    pendingOfflineScanDeviceCount?: number;
    // Indicates the number of devices that have a pending full scan. Valid values -2147483648 to 2147483647
    pendingQuickScanDeviceCount?: number;
    // Indicates number of devices pending restart
    pendingRestartDeviceCount?: number;
    // Indicates number of devices with an old signature
    pendingSignatureUpdateDeviceCount?: number;
    // Total device count.
    totalReportedDeviceCount?: number;
    // Indicates number of devices with threat agent state as unknown
    unknownStateThreatAgentDeviceCount?: number;
}
export interface UserExperienceAnalyticsSettings {
    /**
     * When TRUE, indicates Tenant attach is configured properly and System Center Configuration Manager (SCCM) tenant
     * attached devices will show up in endpoint analytics reporting. When FALSE, indicates Tenant attach is not configured.
     * FALSE by default.
     */
    configurationManagerDataConnectorConfigured?: boolean;
}
export interface WindowsMalwareOverview {
    // List of device counts per malware category
    malwareCategorySummary?: NullableOption<WindowsMalwareCategoryCount[]>;
    // Count of devices with malware detected in the last 30 days
    malwareDetectedDeviceCount?: number;
    // List of device counts per malware execution state
    malwareExecutionStateSummary?: NullableOption<WindowsMalwareExecutionStateCount[]>;
    // List of device counts per malware
    malwareNameSummary?: NullableOption<WindowsMalwareNameCount[]>;
    // List of active malware counts per malware severity
    malwareSeveritySummary?: NullableOption<WindowsMalwareSeverityCount[]>;
    // List of device counts per malware state
    malwareStateSummary?: NullableOption<WindowsMalwareStateCount[]>;
    // List of device counts with malware per windows OS version
    osVersionsSummary?: NullableOption<OsVersionCount[]>;
    // Count of all distinct malwares detected across all devices. Valid values -2147483648 to 2147483647
    totalDistinctMalwareCount?: number;
    // Count of all malware detections across all devices. Valid values -2147483648 to 2147483647
    totalMalwareCount?: number;
}
export interface AppListItem {
    // The application or bundle identifier of the application
    appId?: NullableOption<string>;
    // The Store URL of the application
    appStoreUrl?: NullableOption<string>;
    // The application name
    name?: string;
    // The publisher of the application
    publisher?: NullableOption<string>;
}
export interface BitLockerRemovableDrivePolicy {
    /**
     * This policy setting determines whether BitLocker protection is required for removable data drives to be writable on a
     * computer.
     */
    blockCrossOrganizationWriteAccess?: boolean;
    // Select the encryption method for removable drives. Possible values are: aesCbc128, aesCbc256, xtsAes128, xtsAes256.
    encryptionMethod?: NullableOption<BitLockerEncryptionMethod>;
    /**
     * Indicates whether to block write access to devices configured in another organization. If
     * requireEncryptionForWriteAccess is false, this value does not affect.
     */
    requireEncryptionForWriteAccess?: boolean;
}
export interface DefenderDetectedMalwareActions {
    /**
     * Indicates a Defender action to take for high severity Malware threat detected. Possible values are: deviceDefault,
     * clean, quarantine, remove, allow, userDefined, block.
     */
    highSeverity?: DefenderThreatAction;
    /**
     * Indicates a Defender action to take for low severity Malware threat detected. Possible values are: deviceDefault,
     * clean, quarantine, remove, allow, userDefined, block.
     */
    lowSeverity?: DefenderThreatAction;
    /**
     * Indicates a Defender action to take for moderate severity Malware threat detected. Possible values are: deviceDefault,
     * clean, quarantine, remove, allow, userDefined, block.
     */
    moderateSeverity?: DefenderThreatAction;
    /**
     * Indicates a Defender action to take for severe severity Malware threat detected. Possible values are: deviceDefault,
     * clean, quarantine, remove, allow, userDefined, block.
     */
    severeSeverity?: DefenderThreatAction;
}
export interface DeviceCompliancePolicySettingState {
    // Current value of setting on device
    currentValue?: NullableOption<string>;
    // Error code for the setting
    errorCode?: number;
    // Error description
    errorDescription?: NullableOption<string>;
    // Name of setting instance that is being reported.
    instanceDisplayName?: NullableOption<string>;
    // The setting that is being reported
    setting?: NullableOption<string>;
    // Localized/user friendly setting name that is being reported
    settingName?: NullableOption<string>;
    // Contributing policies
    sources?: NullableOption<SettingSource[]>;
    /**
     * The compliance state of the setting. Possible values are: unknown, notApplicable, compliant, remediated, nonCompliant,
     * error, conflict, notAssigned.
     */
    state?: ComplianceStatus;
    // UserEmail
    userEmail?: NullableOption<string>;
    // UserId
    userId?: NullableOption<string>;
    // UserName
    userName?: NullableOption<string>;
    // UserPrincipalName.
    userPrincipalName?: NullableOption<string>;
}
export interface SettingSource {
    // Not yet documented
    displayName?: NullableOption<string>;
    // Not yet documented
    id?: NullableOption<string>;
    // Not yet documented. Possible values are: deviceConfiguration, deviceIntent.
    sourceType?: SettingSourceType;
}
export interface DeviceConfigurationSettingState {
    // Current value of setting on device
    currentValue?: NullableOption<string>;
    // Error code for the setting
    errorCode?: number;
    // Error description
    errorDescription?: NullableOption<string>;
    // Name of setting instance that is being reported.
    instanceDisplayName?: NullableOption<string>;
    // The setting that is being reported
    setting?: NullableOption<string>;
    // Localized/user friendly setting name that is being reported
    settingName?: NullableOption<string>;
    // Contributing policies
    sources?: NullableOption<SettingSource[]>;
    /**
     * The compliance state of the setting. Possible values are: unknown, notApplicable, compliant, remediated, nonCompliant,
     * error, conflict, notAssigned.
     */
    state?: ComplianceStatus;
    // UserEmail
    userEmail?: NullableOption<string>;
    // UserId
    userId?: NullableOption<string>;
    // UserName
    userName?: NullableOption<string>;
    // UserPrincipalName.
    userPrincipalName?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface EdgeSearchEngineBase {}
export interface EdgeSearchEngine extends EdgeSearchEngineBase {
    /**
     * Allows IT admins to set a predefined default search engine for MDM-Controlled devices. Possible values are: default,
     * bing.
     */
    edgeSearchEngineType?: EdgeSearchEngineType;
}
export interface EdgeSearchEngineCustom extends EdgeSearchEngineBase {
    /**
     * Points to a https link containing the OpenSearch xml file that contains, at minimum, the short name and the URL to the
     * search Engine.
     */
    edgeSearchEngineOpenSearchXmlUrl?: string;
}
// tslint:disable-next-line: interface-name
export interface IosHomeScreenItem {
    // Name of the app
    displayName?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosHomeScreenApp extends IosHomeScreenItem {
    // BundleID of the app if isWebClip is false or the URL of a web clip if isWebClip is true.
    bundleID?: string;
}
// tslint:disable-next-line: interface-name
export interface IosHomeScreenFolder extends IosHomeScreenItem {
    /**
     * Pages of Home Screen Layout Icons which must be applications or web clips. This collection can contain a maximum of 500
     * elements.
     */
    pages?: IosHomeScreenFolderPage[];
}
// tslint:disable-next-line: interface-name
export interface IosHomeScreenFolderPage {
    /**
     * A list of apps and web clips to appear on a page within a folder. This collection can contain a maximum of 500
     * elements.
     */
    apps?: IosHomeScreenApp[];
    // Name of the folder page
    displayName?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosHomeScreenPage {
    // Name of the page
    displayName?: NullableOption<string>;
    // A list of apps, folders, and web clips to appear on a page. This collection can contain a maximum of 500 elements.
    icons?: IosHomeScreenItem[];
}
// tslint:disable-next-line: interface-name
export interface IosNetworkUsageRule {
    // If set to true, corresponding managed apps will not be allowed to use cellular data at any time.
    cellularDataBlocked?: boolean;
    // If set to true, corresponding managed apps will not be allowed to use cellular data when roaming.
    cellularDataBlockWhenRoaming?: boolean;
    /**
     * Information about the managed apps that this rule is going to apply to. This collection can contain a maximum of 500
     * elements.
     */
    managedApps?: NullableOption<AppListItem[]>;
}
// tslint:disable-next-line: interface-name
export interface IosNotificationSettings {
    // Indicates the type of alert for notifications for this app. Possible values are: deviceDefault, banner, modal, none.
    alertType?: IosNotificationAlertType;
    // Application name to be associated with the bundleID.
    appName?: NullableOption<string>;
    // Indicates whether badges are allowed for this app.
    badgesEnabled?: NullableOption<boolean>;
    // Bundle id of app to which to apply these notification settings.
    bundleID?: string;
    // Indicates whether notifications are allowed for this app.
    enabled?: NullableOption<boolean>;
    // Publisher to be associated with the bundleID.
    publisher?: NullableOption<string>;
    // Indicates whether notifications can be shown in notification center.
    showInNotificationCenter?: NullableOption<boolean>;
    // Indicates whether notifications can be shown on the lock screen.
    showOnLockScreen?: NullableOption<boolean>;
    // Indicates whether sounds are allowed for this app.
    soundsEnabled?: NullableOption<boolean>;
}
export interface MediaContentRatingAustralia {
    /**
     * Movies rating selected for Australia. Possible values are: allAllowed, allBlocked, general, parentalGuidance, mature,
     * agesAbove15, agesAbove18.
     */
    movieRating?: RatingAustraliaMoviesType;
    /**
     * TV rating selected for Australia. Possible values are: allAllowed, allBlocked, preschoolers, children, general,
     * parentalGuidance, mature, agesAbove15, agesAbove15AdultViolence.
     */
    tvRating?: RatingAustraliaTelevisionType;
}
export interface MediaContentRatingCanada {
    /**
     * Movies rating selected for Canada. Possible values are: allAllowed, allBlocked, general, parentalGuidance, agesAbove14,
     * agesAbove18, restricted.
     */
    movieRating?: RatingCanadaMoviesType;
    /**
     * TV rating selected for Canada. Possible values are: allAllowed, allBlocked, children, childrenAbove8, general,
     * parentalGuidance, agesAbove14, agesAbove18.
     */
    tvRating?: RatingCanadaTelevisionType;
}
export interface MediaContentRatingFrance {
    /**
     * Movies rating selected for France. Possible values are: allAllowed, allBlocked, agesAbove10, agesAbove12, agesAbove16,
     * agesAbove18.
     */
    movieRating?: RatingFranceMoviesType;
    /**
     * TV rating selected for France. Possible values are: allAllowed, allBlocked, agesAbove10, agesAbove12, agesAbove16,
     * agesAbove18.
     */
    tvRating?: RatingFranceTelevisionType;
}
export interface MediaContentRatingGermany {
    /**
     * Movies rating selected for Germany. Possible values are: allAllowed, allBlocked, general, agesAbove6, agesAbove12,
     * agesAbove16, adults.
     */
    movieRating?: RatingGermanyMoviesType;
    /**
     * TV rating selected for Germany. Possible values are: allAllowed, allBlocked, general, agesAbove6, agesAbove12,
     * agesAbove16, adults.
     */
    tvRating?: RatingGermanyTelevisionType;
}
export interface MediaContentRatingIreland {
    /**
     * Movies rating selected for Ireland. Possible values are: allAllowed, allBlocked, general, parentalGuidance,
     * agesAbove12, agesAbove15, agesAbove16, adults.
     */
    movieRating?: RatingIrelandMoviesType;
    /**
     * TV rating selected for Ireland. Possible values are: allAllowed, allBlocked, general, children, youngAdults,
     * parentalSupervision, mature.
     */
    tvRating?: RatingIrelandTelevisionType;
}
export interface MediaContentRatingJapan {
    /**
     * Movies rating selected for Japan. Possible values are: allAllowed, allBlocked, general, parentalGuidance, agesAbove15,
     * agesAbove18.
     */
    movieRating?: RatingJapanMoviesType;
    // TV rating selected for Japan. Possible values are: allAllowed, allBlocked, explicitAllowed.
    tvRating?: RatingJapanTelevisionType;
}
export interface MediaContentRatingNewZealand {
    /**
     * Movies rating selected for New Zealand. Possible values are: allAllowed, allBlocked, general, parentalGuidance, mature,
     * agesAbove13, agesAbove15, agesAbove16, agesAbove18, restricted, agesAbove16Restricted.
     */
    movieRating?: RatingNewZealandMoviesType;
    // TV rating selected for New Zealand. Possible values are: allAllowed, allBlocked, general, parentalGuidance, adults.
    tvRating?: RatingNewZealandTelevisionType;
}
export interface MediaContentRatingUnitedKingdom {
    /**
     * Movies rating selected for United Kingdom. Possible values are: allAllowed, allBlocked, general, universalChildren,
     * parentalGuidance, agesAbove12Video, agesAbove12Cinema, agesAbove15, adults.
     */
    movieRating?: RatingUnitedKingdomMoviesType;
    // TV rating selected for United Kingdom. Possible values are: allAllowed, allBlocked, caution.
    tvRating?: RatingUnitedKingdomTelevisionType;
}
export interface MediaContentRatingUnitedStates {
    /**
     * Movies rating selected for United States. Possible values are: allAllowed, allBlocked, general, parentalGuidance,
     * parentalGuidance13, restricted, adults.
     */
    movieRating?: RatingUnitedStatesMoviesType;
    /**
     * TV rating selected for United States. Possible values are: allAllowed, allBlocked, childrenAll, childrenAbove7,
     * general, parentalGuidance, childrenAbove14, adults.
     */
    tvRating?: RatingUnitedStatesTelevisionType;
}
export interface OmaSetting {
    // Description.
    description?: NullableOption<string>;
    // Display Name.
    displayName?: string;
    // OMA.
    omaUri?: string;
}
export interface OmaSettingBase64 extends OmaSetting {
    // File name associated with the Value property (.cer
    fileName?: NullableOption<string>;
    // Value. (Base64 encoded string)
    value?: string;
}
export interface OmaSettingBoolean extends OmaSetting {
    // Value.
    value?: boolean;
}
export interface OmaSettingDateTime extends OmaSetting {
    // Value.
    value?: string;
}
export interface OmaSettingFloatingPoint extends OmaSetting {
    // Value.
    value?: number;
}
export interface OmaSettingInteger extends OmaSetting {
    // Value.
    value?: number;
}
export interface OmaSettingString extends OmaSetting {
    // Value.
    value?: string;
}
export interface OmaSettingStringXml extends OmaSetting {
    // File name associated with the Value property (.xml).
    fileName?: NullableOption<string>;
    // Value. (UTF8 encoded byte array)
    value?: string;
}
export interface Report {
    // Not yet documented
    content?: NullableOption<any>;
}
export interface SharedPCAccountManagerPolicy {
    /**
     * Configures when accounts are deleted. Possible values are: immediate, diskSpaceThreshold,
     * diskSpaceThresholdOrInactiveThreshold.
     */
    accountDeletionPolicy?: SharedPCAccountDeletionPolicyType;
    /**
     * Sets the percentage of available disk space a PC should have before it stops deleting cached shared PC accounts. Only
     * applies when AccountDeletionPolicy is DiskSpaceThreshold or DiskSpaceThresholdOrInactiveThreshold. Valid values 0 to
     * 100
     */
    cacheAccountsAboveDiskFreePercentage?: NullableOption<number>;
    /**
     * Specifies when the accounts will start being deleted when they have not been logged on during the specified period,
     * given as number of days. Only applies when AccountDeletionPolicy is DiskSpaceThreshold or
     * DiskSpaceThresholdOrInactiveThreshold.
     */
    inactiveThresholdDays?: NullableOption<number>;
    /**
     * Sets the percentage of disk space remaining on a PC before cached accounts will be deleted to free disk space. Accounts
     * that have been inactive the longest will be deleted first. Only applies when AccountDeletionPolicy is
     * DiskSpaceThresholdOrInactiveThreshold. Valid values 0 to 100
     */
    removeAccountsBelowDiskFreePercentage?: NullableOption<number>;
}
export interface Windows10NetworkProxyServer {
    // Address to the proxy server. Specify an address in the format [':']
    address?: string;
    /**
     * Addresses that should not use the proxy server. The system will not use the proxy server for addresses beginning with
     * what is specified in this node.
     */
    exceptions?: NullableOption<string[]>;
    // Specifies whether the proxy server should be used for local (intranet) addresses.
    useForLocalAddresses?: boolean;
}
export interface WindowsFirewallNetworkProfile {
    /**
     * Configures the firewall to merge authorized application rules from group policy with those from local store instead of
     * ignoring the local store rules. When AuthorizedApplicationRulesFromGroupPolicyNotMerged and
     * AuthorizedApplicationRulesFromGroupPolicyMerged are both true, AuthorizedApplicationRulesFromGroupPolicyMerged takes
     * priority.
     */
    authorizedApplicationRulesFromGroupPolicyMerged?: boolean;
    /**
     * Configures the firewall to merge connection security rules from group policy with those from local store instead of
     * ignoring the local store rules. When ConnectionSecurityRulesFromGroupPolicyNotMerged and
     * ConnectionSecurityRulesFromGroupPolicyMerged are both true, ConnectionSecurityRulesFromGroupPolicyMerged takes
     * priority.
     */
    connectionSecurityRulesFromGroupPolicyMerged?: boolean;
    /**
     * Configures the host device to allow or block the firewall and advanced security enforcement for the network profile.
     * Possible values are: notConfigured, blocked, allowed.
     */
    firewallEnabled?: StateManagementSetting;
    /**
     * Configures the firewall to merge global port rules from group policy with those from local store instead of ignoring
     * the local store rules. When GlobalPortRulesFromGroupPolicyNotMerged and GlobalPortRulesFromGroupPolicyMerged are both
     * true, GlobalPortRulesFromGroupPolicyMerged takes priority.
     */
    globalPortRulesFromGroupPolicyMerged?: boolean;
    /**
     * Configures the firewall to block all incoming connections by default. When InboundConnectionsRequired and
     * InboundConnectionsBlocked are both true, InboundConnectionsBlocked takes priority.
     */
    inboundConnectionsBlocked?: boolean;
    /**
     * Prevents the firewall from displaying notifications when an application is blocked from listening on a port. When
     * InboundNotificationsRequired and InboundNotificationsBlocked are both true, InboundNotificationsBlocked takes priority.
     */
    inboundNotificationsBlocked?: boolean;
    /**
     * Configures the firewall to block all incoming traffic regardless of other policy settings. When IncomingTrafficRequired
     * and IncomingTrafficBlocked are both true, IncomingTrafficBlocked takes priority.
     */
    incomingTrafficBlocked?: boolean;
    /**
     * Configures the firewall to block all outgoing connections by default. When OutboundConnectionsRequired and
     * OutboundConnectionsBlocked are both true, OutboundConnectionsBlocked takes priority. This setting will get applied to
     * Windows releases version 1809 and above.
     */
    outboundConnectionsBlocked?: boolean;
    /**
     * Configures the firewall to merge Firewall Rule policies from group policy with those from local store instead of
     * ignoring the local store rules. When PolicyRulesFromGroupPolicyNotMerged and PolicyRulesFromGroupPolicyMerged are both
     * true, PolicyRulesFromGroupPolicyMerged takes priority.
     */
    policyRulesFromGroupPolicyMerged?: boolean;
    /**
     * Configures the firewall to allow the host computer to respond to unsolicited network traffic of that traffic is secured
     * by IPSec even when stealthModeBlocked is set to true. When SecuredPacketExemptionBlocked and
     * SecuredPacketExemptionAllowed are both true, SecuredPacketExemptionAllowed takes priority.
     */
    securedPacketExemptionAllowed?: boolean;
    /**
     * Prevent the server from operating in stealth mode. When StealthModeRequired and StealthModeBlocked are both true,
     * StealthModeBlocked takes priority.
     */
    stealthModeBlocked?: boolean;
    /**
     * Configures the firewall to block unicast responses to multicast broadcast traffic. When
     * UnicastResponsesToMulticastBroadcastsRequired and UnicastResponsesToMulticastBroadcastsBlocked are both true,
     * UnicastResponsesToMulticastBroadcastsBlocked takes priority.
     */
    unicastResponsesToMulticastBroadcastsBlocked?: boolean;
}
// tslint:disable-next-line: no-empty-interface
export interface WindowsUpdateInstallScheduleType {}
export interface WindowsUpdateActiveHoursInstall extends WindowsUpdateInstallScheduleType {
    // Active Hours End
    activeHoursEnd?: string;
    // Active Hours Start
    activeHoursStart?: string;
}
export interface WindowsUpdateScheduledInstall extends WindowsUpdateInstallScheduleType {
    /**
     * Scheduled Install Day in week. Possible values are: userDefined, everyday, sunday, monday, tuesday, wednesday,
     * thursday, friday, saturday.
     */
    scheduledInstallDay?: WeeklySchedule;
    // Scheduled Install Time during day
    scheduledInstallTime?: string;
}
export interface ConfigurationManagerClientEnabledFeatures {
    // Whether compliance policy is managed by Intune
    compliancePolicy?: boolean;
    // Whether device configuration is managed by Intune
    deviceConfiguration?: boolean;
    // Whether inventory is managed by Intune
    inventory?: boolean;
    // Whether modern application is managed by Intune
    modernApps?: boolean;
    // Whether resource access is managed by Intune
    resourceAccess?: boolean;
    // Whether Windows Update for Business is managed by Intune
    windowsUpdateForBusiness?: boolean;
}
export interface DeviceActionResult {
    // Action name
    actionName?: NullableOption<string>;
    // State of the action. Possible values are: none, pending, canceled, active, done, failed, notSupported.
    actionState?: ActionState;
    // Time the action state was last updated
    lastUpdatedDateTime?: string;
    // Time the action was initiated
    startDateTime?: string;
}
export interface DeviceHealthAttestationState {
    /**
     * TWhen an Attestation Identity Key (AIK) is present on a device, it indicates that the device has an endorsement key
     * (EK) certificate.
     */
    attestationIdentityKey?: NullableOption<string>;
    // On or Off of BitLocker Drive Encryption
    bitLockerStatus?: NullableOption<string>;
    // The security version number of the Boot Application
    bootAppSecurityVersion?: NullableOption<string>;
    // When bootDebugging is enabled, the device is used in development and testing
    bootDebugging?: NullableOption<string>;
    // The security version number of the Boot Application
    bootManagerSecurityVersion?: NullableOption<string>;
    // The version of the Boot Manager
    bootManagerVersion?: NullableOption<string>;
    // The Boot Revision List that was loaded during initial boot on the attested device
    bootRevisionListInfo?: NullableOption<string>;
    // When code integrity is enabled, code execution is restricted to integrity verified code
    codeIntegrity?: NullableOption<string>;
    // The version of the Boot Manager
    codeIntegrityCheckVersion?: NullableOption<string>;
    // The Code Integrity policy that is controlling the security of the boot environment
    codeIntegrityPolicy?: NullableOption<string>;
    // The DHA report version. (Namespace version)
    contentNamespaceUrl?: NullableOption<string>;
    // The HealthAttestation state schema version
    contentVersion?: NullableOption<string>;
    // DEP Policy defines a set of hardware and software technologies that perform additional checks on memory
    dataExcutionPolicy?: NullableOption<string>;
    // The DHA report version. (Namespace version)
    deviceHealthAttestationStatus?: NullableOption<string>;
    // ELAM provides protection for the computers in your network when they start up
    earlyLaunchAntiMalwareDriverProtection?: NullableOption<string>;
    // This attribute indicates if DHA is supported for the device
    healthAttestationSupportedStatus?: NullableOption<string>;
    // This attribute appears if DHA-Service detects an integrity issue
    healthStatusMismatchInfo?: NullableOption<string>;
    // The DateTime when device was evaluated or issued to MDM
    issuedDateTime?: string;
    // The Timestamp of the last update.
    lastUpdateDateTime?: NullableOption<string>;
    // When operatingSystemKernelDebugging is enabled, the device is used in development and testing
    operatingSystemKernelDebugging?: NullableOption<string>;
    // The Operating System Revision List that was loaded during initial boot on the attested device
    operatingSystemRevListInfo?: NullableOption<string>;
    // The measurement that is captured in PCR[0]
    pcr0?: NullableOption<string>;
    // Informational attribute that identifies the HASH algorithm that was used by TPM
    pcrHashAlgorithm?: NullableOption<string>;
    // The number of times a PC device has hibernated or resumed
    resetCount?: number;
    // The number of times a PC device has rebooted
    restartCount?: number;
    // Safe mode is a troubleshooting option for Windows that starts your computer in a limited state
    safeMode?: NullableOption<string>;
    // When Secure Boot is enabled, the core components must have the correct cryptographic signatures
    secureBoot?: NullableOption<string>;
    // Fingerprint of the Custom Secure Boot Configuration Policy
    secureBootConfigurationPolicyFingerPrint?: NullableOption<string>;
    // When test signing is allowed, the device does not enforce signature validation during boot
    testSigning?: NullableOption<string>;
    // The security version number of the Boot Application
    tpmVersion?: NullableOption<string>;
    // VSM is a container that protects high value assets from a compromised kernel
    virtualSecureMode?: NullableOption<string>;
    // Operating system running with limited services that is used to prepare a computer for Windows
    windowsPE?: NullableOption<string>;
}
export interface ComplianceManagementPartnerAssignment {
    // Group assignment target.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface DeviceAndAppManagementData {
    // Not yet documented
    content?: NullableOption<any>;
}
export interface DeviceEnrollmentPlatformRestriction {
    // Max OS version supported
    osMaximumVersion?: NullableOption<string>;
    // Min OS version supported
    osMinimumVersion?: NullableOption<string>;
    // Block personally owned devices from enrolling
    personalDeviceEnrollmentBlocked?: boolean;
    // Block the platform from enrolling
    platformBlocked?: boolean;
}
export interface DeviceManagementPartnerAssignment {
    // User groups targeting for devices to be enrolled through partner.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface RgbColor {
    // Blue value
    b?: number;
    // Green value
    g?: number;
    // Red value
    r?: number;
}
export interface AppLogCollectionDownloadDetails {
    // Decryption algorithm for Content. Default is ASE256. Possible values are: aes256, unknownFutureValue.
    appLogDecryptionAlgorithm?: AppLogDecryptionAlgorithm;
    // Decryption key that used to decrypt the log.
    decryptionKey?: NullableOption<string>;
    // Download SAS (Shared Access Signature) Url for completed app log request.
    downloadUrl?: NullableOption<string>;
}
export interface DeleteUserFromSharedAppleDeviceActionResult extends DeviceActionResult {
    // User principal name of the user to be deleted
    userPrincipalName?: NullableOption<string>;
}
export interface DeviceExchangeAccessStateSummary {
    // Total count of devices with Exchange Access State: Allowed.
    allowedDeviceCount?: number;
    // Total count of devices with Exchange Access State: Blocked.
    blockedDeviceCount?: number;
    // Total count of devices with Exchange Access State: Quarantined.
    quarantinedDeviceCount?: number;
    // Total count of devices for which no Exchange Access State could be found.
    unavailableDeviceCount?: number;
    // Total count of devices with Exchange Access State: Unknown.
    unknownDeviceCount?: number;
}
export interface DeviceGeoLocation {
    // Altitude, given in meters above sea level
    altitude?: number;
    // Heading in degrees from true north
    heading?: number;
    // Accuracy of longitude and latitude in meters
    horizontalAccuracy?: number;
    // Time at which location was recorded, relative to UTC
    lastCollectedDateTime?: string;
    // Latitude coordinate of the device's location
    latitude?: number;
    // Longitude coordinate of the device's location
    longitude?: number;
    // Speed the device is traveling in meters per second
    speed?: number;
    // Accuracy of altitude in meters
    verticalAccuracy?: number;
}
export interface DeviceOperatingSystemSummary {
    /**
     * The count of Corporate work profile Android devices. Also known as Corporate Owned Personally Enabled (COPE). Valid
     * values -1 to 2147483647
     */
    androidCorporateWorkProfileCount?: number;
    // Number of android device count.
    androidCount?: number;
    // Number of dedicated Android devices.
    androidDedicatedCount?: number;
    // Number of device admin Android devices.
    androidDeviceAdminCount?: number;
    // Number of fully managed Android devices.
    androidFullyManagedCount?: number;
    // Number of work profile Android devices.
    androidWorkProfileCount?: number;
    // Number of ConfigMgr managed devices.
    configMgrDeviceCount?: number;
    // Number of iOS device count.
    iosCount?: number;
    // Number of Mac OS X device count.
    macOSCount?: number;
    // Number of unknown device count.
    unknownCount?: number;
    // Number of Windows device count.
    windowsCount?: number;
    // Number of Windows mobile device count.
    windowsMobileCount?: number;
}
// tslint:disable-next-line: no-empty-interface
export interface UserExperienceAnalyticsInsightValue {}
// tslint:disable-next-line: interface-name
export interface InsightValueDouble extends UserExperienceAnalyticsInsightValue {
    // The double value of the user experience analytics insight.
    value?: number;
}
// tslint:disable-next-line: interface-name
export interface InsightValueInt extends UserExperienceAnalyticsInsightValue {
    // The int value of the user experience analytics insight.
    value?: number;
}
export interface LocateDeviceActionResult extends DeviceActionResult {
    // device location
    deviceLocation?: NullableOption<DeviceGeoLocation>;
}
export interface OsVersionCount {
    // Count of devices with malware for the OS version
    deviceCount?: number;
    // The Timestamp of the last update for the device count in UTC
    lastUpdateDateTime?: string;
    // OS version
    osVersion?: NullableOption<string>;
}
export interface RemoteLockActionResult extends DeviceActionResult {
    // Pin to unlock the client
    unlockPin?: NullableOption<string>;
}
export interface ResetPasscodeActionResult extends DeviceActionResult {
    // Newly generated passcode for the device
    passcode?: NullableOption<string>;
}
export interface RotateBitLockerKeysDeviceActionResult extends DeviceActionResult {
    // RotateBitLockerKeys action error code
    errorCode?: number;
}
export interface UpdateWindowsDeviceAccountActionParameter {
    // Not yet documented
    calendarSyncEnabled?: NullableOption<boolean>;
    // Not yet documented
    deviceAccount?: NullableOption<WindowsDeviceAccount>;
    // Not yet documented
    deviceAccountEmail?: NullableOption<string>;
    // Not yet documented
    exchangeServer?: NullableOption<string>;
    // Not yet documented
    passwordRotationEnabled?: NullableOption<boolean>;
    // Not yet documented
    sessionInitiationProtocalAddress?: NullableOption<string>;
}
export interface WindowsDeviceAccount {
    // Not yet documented
    password?: NullableOption<string>;
}
export interface UserExperienceAnalyticsAutopilotDevicesSummary {
    // The count of intune devices that are not autopilot registerd. Read-only.
    devicesNotAutopilotRegistered?: number;
    // The count of intune devices not autopilot profile assigned. Read-only.
    devicesWithoutAutopilotProfileAssigned?: number;
    // The count of windows 10 devices that are Intune and co-managed. Read-only.
    totalWindows10DevicesWithoutTenantAttached?: number;
}
export interface UserExperienceAnalyticsCloudIdentityDevicesSummary {
    // The count of devices that are not cloud identity. Read-only.
    deviceWithoutCloudIdentityCount?: number;
}
export interface UserExperienceAnalyticsCloudManagementDevicesSummary {
    // Total number of co-managed devices. Read-only.
    coManagedDeviceCount?: number;
    // The count of intune devices that are not autopilot registerd. Read-only.
    intuneDeviceCount?: number;
    // Total count of tenant attach devices. Read-only.
    tenantAttachDeviceCount?: number;
}
export interface UserExperienceAnalyticsInsight {
    // The unique identifier of the user experience analytics insight.
    insightId?: NullableOption<string>;
    /**
     * The severity of the user experience analytics insight. Possible values are: none, informational, warning, error. None
     * by default. Possible values are: none, informational, warning, error, unknownFutureValue.
     */
    severity?: UserExperienceAnalyticsInsightSeverity;
    // The unique identifier of the user experience analytics metric.
    userExperienceAnalyticsMetricId?: NullableOption<string>;
    // The value of the user experience analytics insight.
    values?: NullableOption<UserExperienceAnalyticsInsightValue[]>;
}
export interface UserExperienceAnalyticsWindows10DevicesSummary {
    // The count of Windows 10 devices that have unsupported OS versions. Read-only.
    unsupportedOSversionDeviceCount?: number;
}
export interface UserExperienceAnalyticsWorkFromAnywhereDevicesSummary {
    // The user experience analytics work from anywhere Autopilot devices summary. Read-only.
    autopilotDevicesSummary?: NullableOption<UserExperienceAnalyticsAutopilotDevicesSummary>;
    // The user experience analytics work from anywhere Cloud Identity devices summary. Read-only.
    cloudIdentityDevicesSummary?: NullableOption<UserExperienceAnalyticsCloudIdentityDevicesSummary>;
    // The user experience analytics work from anywhere Cloud management devices summary. Read-only.
    cloudManagementDevicesSummary?: NullableOption<UserExperienceAnalyticsCloudManagementDevicesSummary>;
    // Total number of co-managed devices. Read-only. Valid values -2147483648 to 2147483647
    coManagedDevices?: number;
    // The count of intune devices that are not autopilot registerd. Read-only. Valid values -2147483648 to 2147483647
    devicesNotAutopilotRegistered?: number;
    // The count of intune devices not autopilot profile assigned. Read-only. Valid values -2147483648 to 2147483647
    devicesWithoutAutopilotProfileAssigned?: number;
    // The count of devices that are not cloud identity. Read-only. Valid values -2147483648 to 2147483647
    devicesWithoutCloudIdentity?: number;
    // The count of intune devices that are not autopilot registerd. Read-only. Valid values -2147483648 to 2147483647
    intuneDevices?: number;
    // Total count of tenant attach devices. Read-only. Valid values -2147483648 to 2147483647
    tenantAttachDevices?: number;
    // The total count of devices. Read-only. Valid values -2147483648 to 2147483647
    totalDevices?: number;
    // The count of Windows 10 devices that have unsupported OS versions. Read-only. Valid values -2147483648 to 2147483647
    unsupportedOSversionDevices?: number;
    // The count of windows 10 devices. Read-only. Valid values -2147483648 to 2147483647
    windows10Devices?: number;
    // The user experience analytics work from anywhere Windows 10 devices summary. Read-only.
    windows10DevicesSummary?: NullableOption<UserExperienceAnalyticsWindows10DevicesSummary>;
    // The count of windows 10 devices that are Intune and co-managed. Read-only. Valid values -2147483648 to 2147483647
    windows10DevicesWithoutTenantAttach?: number;
}
export interface WindowsDefenderScanActionResult extends DeviceActionResult {
    // Scan type either full scan or quick scan
    scanType?: NullableOption<string>;
}
export interface WindowsDeviceADAccount extends WindowsDeviceAccount {
    // Not yet documented
    domainName?: NullableOption<string>;
    // Not yet documented
    userName?: NullableOption<string>;
}
export interface WindowsDeviceAzureADAccount extends WindowsDeviceAccount {
    // Not yet documented
    userPrincipalName?: NullableOption<string>;
}
export interface WindowsMalwareCategoryCount {
    // Count of active malware detections for this malware category. Valid values -2147483648 to 2147483647
    activeMalwareDetectionCount?: number;
    /**
     * Malware category. Possible values are: invalid, adware, spyware, passwordStealer, trojanDownloader, worm, backdoor,
     * remoteAccessTrojan, trojan, emailFlooder, keylogger, dialer, monitoringSoftware, browserModifier, cookie,
     * browserPlugin, aolExploit, nuker, securityDisabler, jokeProgram, hostileActiveXControl, softwareBundler,
     * stealthNotifier, settingsModifier, toolBar, remoteControlSoftware, trojanFtp, potentialUnwantedSoftware, icqExploit,
     * trojanTelnet, exploit, filesharingProgram, malwareCreationTool, remoteControlSoftware, tool, trojanDenialOfService,
     * trojanDropper, trojanMassMailer, trojanMonitoringSoftware, trojanProxyServer, virus, known, unknown, spp, behavior,
     * vulnerability, policy, enterpriseUnwantedSoftware, ransom, hipsRule. Computed. Possible values are: invalid, adware,
     * spyware, passwordStealer, trojanDownloader, worm, backdoor, remoteAccessTrojan, trojan, emailFlooder, keylogger,
     * dialer, monitoringSoftware, browserModifier, cookie, browserPlugin, aolExploit, nuker, securityDisabler, jokeProgram,
     * hostileActiveXControl, softwareBundler, stealthNotifier, settingsModifier, toolBar, remoteControlSoftware, trojanFtp,
     * potentialUnwantedSoftware, icqExploit, trojanTelnet, exploit, filesharingProgram, malwareCreationTool,
     * remoteControlSoftware, tool, trojanDenialOfService, trojanDropper, trojanMassMailer, trojanMonitoringSoftware,
     * trojanProxyServer, virus, known, unknown, spp, behavior, vulnerability, policy, enterpriseUnwantedSoftware, ransom,
     * hipsRule.
     */
    category?: WindowsMalwareCategory;
    // Count of devices with malware detections for this malware category
    deviceCount?: number;
    // Count of distinct active malwares for this malware category. Valid values -2147483648 to 2147483647
    distinctActiveMalwareCount?: number;
    // The Timestamp of the last update for the device count in UTC
    lastUpdateDateTime?: string;
}
export interface WindowsMalwareExecutionStateCount {
    // Count of devices with malware detections for this malware execution state
    deviceCount?: number;
    /**
     * Malware execution state. Possible values are: unknown, blocked, allowed, running, notRunning. Defaults to unkonwn.
     * Computed. Possible values are: unknown, blocked, allowed, running, notRunning.
     */
    executionState?: WindowsMalwareExecutionState;
    // The Timestamp of the last update for the device count in UTC
    lastUpdateDateTime?: string;
}
export interface WindowsMalwareNameCount {
    // Count of devices with malware dectected for this malware
    deviceCount?: number;
    // The Timestamp of the last update for the device count in UTC
    lastUpdateDateTime?: string;
    // The unique identifier. This is malware identifier
    malwareIdentifier?: NullableOption<string>;
    // Malware name
    name?: NullableOption<string>;
}
export interface WindowsMalwareSeverityCount {
    // Count of distinct malwares for this malware State. Valid values -2147483648 to 2147483647
    distinctMalwareCount?: number;
    // The Timestamp of the last update for the WindowsMalwareSeverityCount in UTC
    lastUpdateDateTime?: string;
    // Count of threats detections for this malware severity. Valid values -2147483648 to 2147483647
    malwareDetectionCount?: number;
    /**
     * Malware Threat Severity. computed. Possible values are: unknown, low, moderate, high, severe. Possible values are:
     * unknown, low, moderate, high, severe.
     */
    severity?: WindowsMalwareSeverity;
}
export interface WindowsMalwareStateCount {
    // Count of devices with malware detections for this malware State
    deviceCount?: number;
    // Count of distinct malwares for this malware State. Valid values -2147483648 to 2147483647
    distinctMalwareCount?: number;
    // The Timestamp of the last update for the device count in UTC
    lastUpdateDateTime?: string;
    // Count of total malware detections for this malware State. Valid values -2147483648 to 2147483647
    malwareDetectionCount?: number;
    /**
     * Malware Threat State. Possible values are: active, actionFailed, manualStepsRequired, fullScanRequired, rebootRequired,
     * remediatedWithNonCriticalFailures, quarantined, removed, cleaned, allowed, noStatusCleared. Defaults to
     * noStatusCleared. Computed. Possible values are: active, actionFailed, manualStepsRequired, fullScanRequired,
     * rebootRequired, remediatedWithNonCriticalFailures, quarantined, removed, cleaned, allowed, noStatusCleared.
     */
    state?: WindowsMalwareThreatState;
}
// tslint:disable-next-line: interface-name
export interface ImportedWindowsAutopilotDeviceIdentityState {
    // Device error code reported by Device Directory Service(DDS).
    deviceErrorCode?: number;
    // Device error name reported by Device Directory Service(DDS).
    deviceErrorName?: NullableOption<string>;
    /**
     * Device status reported by Device Directory Service(DDS). Possible values are: unknown, pending, partial, complete,
     * error.
     */
    deviceImportStatus?: ImportedWindowsAutopilotDeviceIdentityImportStatus;
    // Device Registration ID for successfully added device reported by Device Directory Service(DDS).
    deviceRegistrationId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface MobileAppIdentifier {}
export interface AndroidMobileAppIdentifier extends MobileAppIdentifier {
    // The identifier for an app, as specified in the play store.
    packageId?: string;
}
// tslint:disable-next-line: interface-name
export interface IosMobileAppIdentifier extends MobileAppIdentifier {
    // The identifier for an app, as specified in the app store.
    bundleId?: string;
}
// tslint:disable-next-line: interface-name
export interface IPv4Range extends IpRange {
    // Lower address.
    lowerAddress?: string;
    // Upper address.
    upperAddress?: string;
}
// tslint:disable-next-line: interface-name
export interface IPv6Range extends IpRange {
    // Lower address.
    lowerAddress?: string;
    // Upper address.
    upperAddress?: string;
}
export interface ManagedAppDiagnosticStatus {
    // Instruction on how to mitigate a failed validation
    mitigationInstruction?: NullableOption<string>;
    // The state of the operation
    state?: NullableOption<string>;
    // The validation friendly name
    validationName?: NullableOption<string>;
}
export interface ManagedAppPolicyDeploymentSummaryPerApp {
    // Number of users the policy is applied.
    configurationAppliedUserCount?: number;
    // Deployment of an app.
    mobileAppIdentifier?: NullableOption<MobileAppIdentifier>;
}
export interface ProxiedDomain {
    // The IP address or FQDN
    ipAddressOrFQDN?: string;
    // Proxy IP or FQDN
    proxy?: NullableOption<string>;
}
export interface WindowsInformationProtectionApp {
    // If true, app is denied protection or exemption.
    denied?: boolean;
    // The app's description.
    description?: NullableOption<string>;
    // App display name.
    displayName?: string;
    // The product name.
    productName?: NullableOption<string>;
    // The publisher name
    publisherName?: NullableOption<string>;
}
export interface WindowsInformationProtectionDataRecoveryCertificate {
    // Data recovery Certificate
    certificate?: NullableOption<string>;
    // Data recovery Certificate description
    description?: NullableOption<string>;
    // Data recovery Certificate expiration datetime
    expirationDateTime?: string;
    // Data recovery Certificate subject name
    subjectName?: NullableOption<string>;
}
export interface WindowsInformationProtectionDesktopApp extends WindowsInformationProtectionApp {
    // The binary name.
    binaryName?: string;
    // The high binary version.
    binaryVersionHigh?: NullableOption<string>;
    // The lower binary version.
    binaryVersionLow?: NullableOption<string>;
}
export interface WindowsInformationProtectionIPRangeCollection {
    // Display name
    displayName?: string;
    // Collection of ip ranges
    ranges?: IpRange[];
}
export interface WindowsInformationProtectionProxiedDomainCollection {
    // Display name
    displayName?: string;
    // Collection of proxied domains
    proxiedDomains?: ProxiedDomain[];
}
export interface WindowsInformationProtectionResourceCollection {
    // Display name
    displayName?: string;
    // Collection of resources
    resources?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface WindowsInformationProtectionStoreApp extends WindowsInformationProtectionApp {}
export interface ResourceAction {
    // Allowed Actions
    allowedResourceActions?: NullableOption<string[]>;
    // Not Allowed Actions.
    notAllowedResourceActions?: NullableOption<string[]>;
}
export interface RolePermission {
    // Resource Actions each containing a set of allowed and not allowed permissions.
    resourceActions?: NullableOption<ResourceAction[]>;
}
export interface ServiceHealthIssuePost {
    // The published time of the post.
    createdDateTime?: string;
    // The content of the service issue post. The supported value for the contentType property is html.
    description?: NullableOption<ItemBody>;
    // The post type of the service issue historical post. Possible values are: regular, quick, strategic, unknownFutureValue.
    postType?: NullableOption<PostType>;
}
export interface ServiceUpdateMessageViewpoint {
    // Indicates whether the user archived the message.
    isArchived?: NullableOption<boolean>;
    // Indicates whether the user marked the message as favorite.
    isFavorited?: NullableOption<boolean>;
    // Indicates whether the user read the message.
    isRead?: NullableOption<boolean>;
}
export interface AggregationOption {
    // Specifies the criteria to compute an aggregation. Optional.
    bucketDefinition?: BucketAggregationDefinition;
    // Computes aggregation on the field while the field exists in current entity type. Required.
    field?: string;
    /**
     * The number of searchBucket resources to be returned. This isn't required when the range is provided manually in the
     * search request. Optional.
     */
    size?: NullableOption<number>;
}
export interface BucketAggregationDefinition {
    // True to specify the sort order as descending. The default is false, with the sort order as ascending. Optional.
    isDescending?: NullableOption<boolean>;
    // The minimum number of items that should be present in the aggregation to be returned in a bucket. Optional.
    minimumCount?: NullableOption<number>;
    /**
     * A filter to define a matching criteria. The key should start with the specified prefix to be returned in the response.
     * Optional.
     */
    prefixFilter?: NullableOption<string>;
    /**
     * Specifies the manual ranges to compute the aggregations. This is only valid for nonstring refiners of date or numeric
     * type. Optional.
     */
    ranges?: NullableOption<BucketAggregationRange[]>;
    /**
     * The possible values are count to sort by the number of matches in the aggregation, keyAsStringto sort alphabetically
     * based on the key in the aggregation, keyAsNumber for numerical sorting based on the key in the aggregation. Required.
     */
    sortBy?: BucketAggregationSortProperty;
}
export interface AlterationResponse {
    // Defines the original user query string.
    originalQueryString?: NullableOption<string>;
    // Defines the details of the alteration information for the spelling correction.
    queryAlteration?: NullableOption<SearchAlteration>;
    // Defines the type of the spelling correction. Possible values are: suggestion, modification.
    queryAlterationType?: NullableOption<SearchAlterationType>;
}
export interface SearchAlteration {
    /**
     * Defines the altered highlighted query string with spelling correction. The annotation around the corrected segment is:
     * /ue000, /ue001.
     */
    alteredHighlightedQueryString?: NullableOption<string>;
    // Defines the altered query string with spelling correction.
    alteredQueryString?: NullableOption<string>;
    // Represents changed segments related to an original user query.
    alteredQueryTokens?: NullableOption<AlteredQueryToken[]>;
}
export interface AlteredQueryToken {
    // Defines the length of a changed segment.
    length?: NullableOption<number>;
    // Defines the offset of a changed segment.
    offset?: NullableOption<number>;
    // Represents the corrected segment string.
    suggestion?: NullableOption<string>;
}
export interface BucketAggregationRange {
    /**
     * Defines the lower bound from which to compute the aggregation. This can be a numeric value or a string representation
     * of a date using the YYYY-MM-DDTHH:mm:ss.sssZ format. Required.
     */
    from?: string;
    /**
     * Defines the upper bound up to which to compute the aggregation. This can be a numeric value or a string representation
     * of a date using the YYYY-MM-DDTHH:mm:ss.sssZ format. Required.
     */
    to?: string;
}
export interface CollapseProperty {
    /**
     * Defines the collapse group to trim results. The properties in this collection must be sortable/refinable properties.
     * Required.
     */
    fields?: string[];
    // Defines a maximum limit count for this field. This numeric value must be a positive integer. Required.
    limit?: number;
}
export interface ResultTemplate {
    // JSON schema of the result template.
    body?: NullableOption<any>;
    // Name of the result template.
    displayName?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface Dictionary {}
// tslint:disable-next-line: no-empty-interface
export interface ResultTemplateDictionary extends Dictionary {}
export interface ResultTemplateOption {
    /**
     * Indicates whether search display layouts are enabled. If enabled, the user will get the result template to render the
     * search results content in the resultTemplates property of the response. The result template is based on Adaptive Cards.
     * Optional.
     */
    enableResultTemplate?: NullableOption<boolean>;
}
export interface SearchAggregation {
    buckets?: NullableOption<SearchBucket[]>;
    field?: NullableOption<string>;
}
export interface SearchBucket {
    /**
     * A token containing the encoded filter to aggregate search matches by the specific key value. To use the filter, pass
     * the token as part of the aggregationFilter property in a searchRequest object, in the format
     * '{field}:/'{aggregationFilterToken}/''. See an example.
     */
    aggregationFilterToken?: NullableOption<string>;
    /**
     * The approximate number of search matches that share the same value specified in the key property. Note that this number
     * is not the exact number of matches.
     */
    count?: NullableOption<number>;
    // The discrete value of the field that an aggregation was computed on.
    key?: NullableOption<string>;
}
export interface SearchAlterationOptions {
    /**
     * Indicates whether spelling modifications are enabled. If enabled, the user gets the search results for the corrected
     * query if there were no results for the original query with typos. The response will also include the spelling
     * modification information in the queryAlterationResponse property. Optional.
     */
    enableModification?: NullableOption<boolean>;
    /**
     * Indicates whether spelling suggestions are enabled. If enabled, the user gets the search results for the original
     * search query and suggestions for spelling correction in the queryAlterationResponse property of the response for the
     * typos in the query. Optional.
     */
    enableSuggestion?: NullableOption<boolean>;
}
export interface SearchHit {
    // The name of the content source that the externalItem is part of.
    contentSource?: NullableOption<string>;
    /**
     * The internal identifier for the item. The format of the identifier varies based on the entity type. For details, see
     * hitId format.
     */
    hitId?: NullableOption<string>;
    // Indicates whether the current result is collapsed when the collapseProperties property in the searchRequest is used.
    isCollapsed?: NullableOption<boolean>;
    // The rank or the order of the result.
    rank?: NullableOption<number>;
    /**
     * ID of the result template used to render the search result. This ID must map to a display layout in the resultTemplates
     * dictionary that is also included in the searchResponse.
     */
    resultTemplateId?: NullableOption<string>;
    // A summary of the result, if a summary is available.
    summary?: NullableOption<string>;
    resource?: NullableOption<Entity>;
}
export interface SearchHitsContainer {
    aggregations?: NullableOption<SearchAggregation[]>;
    // A collection of the search results.
    hits?: NullableOption<SearchHit[]>;
    /**
     * Provides information if more results are available. Based on this information, you can adjust the from and size
     * properties of the searchRequest accordingly.
     */
    moreResultsAvailable?: NullableOption<boolean>;
    /**
     * The total number of results. Note this isn't the number of results on the page, but the total number of results
     * satisfying the query.
     */
    total?: NullableOption<number>;
}
export interface SearchQuery {
    // The search query containing the search terms. Required.
    queryString?: string;
    // Provides a way to decorate the query string. Supports both KQL and query variables. Optional.
    queryTemplate?: NullableOption<string>;
}
export interface SearchRequest {
    /**
     * Contains one or more filters to obtain search results aggregated and filtered to a specific value of a field.
     * Optional.Build this filter based on a prior search that aggregates by the same field. From the response of the prior
     * search, identify the searchBucket that filters results to the specific value of the field, use the string in its
     * aggregationFilterToken property, and build an aggregation filter string in the format
     * '{field}:/'{aggregationFilterToken}/''. If multiple values for the same field need to be provided, use the strings in
     * its aggregationFilterToken property and build an aggregation filter string in the format
     * '{field}:or(/'{aggregationFilterToken1}/',/'{aggregationFilterToken2}/')'. For example, searching and aggregating drive
     * items by file type returns a searchBucket for the file type docx in the response. You can conveniently use the
     * aggregationFilterToken returned for this searchBucket in a subsequent search query and filter matches down to drive
     * items of the docx file type. Example 1 and example 2 show the actual requests and responses.
     */
    aggregationFilters?: NullableOption<string[]>;
    // Specifies aggregations (also known as refiners) to be returned alongside search results. Optional.
    aggregations?: NullableOption<AggregationOption[]>;
    // Contains the ordered collection of fields and limit to collapse results. Optional.
    collapseProperties?: NullableOption<CollapseProperty[]>;
    // Contains the connection to be targeted.
    contentSources?: NullableOption<string[]>;
    /**
     * This triggers hybrid sort for messages : the first 3 messages are the most relevant. This property is only applicable
     * to entityType=message. Optional.
     */
    enableTopResults?: NullableOption<boolean>;
    /**
     * One or more types of resources expected in the response. Possible values are: event, message, driveItem, externalItem,
     * site, list, listItem, drive, chatMessage, person, acronym, bookmark. Note that you must use the Prefer:
     * include-unknown-enum-members request header to get the following value(s) in this evolvable enum:chatMessage, person,
     * acronym, bookmark. See known limitations for those combinations of two or more entity types that are supported in the
     * same search request. Required.
     */
    entityTypes?: NullableOption<EntityType[]>;
    /**
     * Contains the fields to be returned for each resource object specified in entityTypes, allowing customization of the
     * fields returned by default; otherwise, including additional fields such as custom managed properties from SharePoint
     * and OneDrive, or custom fields in externalItem from the content that Microsoft Graph connectors bring in. The fields
     * property can use the semantic labels applied to properties. For example, if a property is labeled as title, you can
     * retrieve it using the following syntax: label_title. Optional.
     */
    fields?: NullableOption<string[]>;
    // Specifies the offset for the search results. Offset 0 returns the very first result. Optional.
    from?: number;
    // Contains the query terms. Required.
    query?: SearchQuery;
    /**
     * Query alteration options formatted in a JSON blob that contains two optional flags related to spelling correction.
     * Optional.
     */
    queryAlterationOptions?: NullableOption<SearchAlterationOptions>;
    /**
     * The geographic location for the search. Required for searches that use application permissions. For details, see Get
     * the region value.
     */
    region?: NullableOption<string>;
    // Provides the search result template options to render search results from connectors.
    resultTemplateOptions?: NullableOption<ResultTemplateOption>;
    // Indicates the kind of contents to be searched when a search is performed using application permissions. Optional.
    sharePointOneDriveOptions?: NullableOption<SharePointOneDriveOptions>;
    // The size of the page to be retrieved. The maximum value is 500. Optional.
    size?: number;
    /**
     * Contains the ordered collection of fields and direction to sort results. There can be at most 5 sort properties in the
     * collection. Optional.
     */
    sortProperties?: NullableOption<SortProperty[]>;
}
export interface SharePointOneDriveOptions {
    // The type of search content. The possible values are: sharedContent, privateContent, unknownFutureValue. Read-only.
    includeContent?: NullableOption<SearchContent>;
}
export interface SortProperty {
    // True if the sort order is descending. Default is false, with the sort order as ascending. Optional.
    isDescending?: NullableOption<boolean>;
    // The name of the property to sort on. Required.
    name?: string;
}
export interface SearchResponse {
    // A collection of search results.
    hitsContainers?: NullableOption<SearchHitsContainer[]>;
    // Provides information related to spelling corrections in the alteration response.
    queryAlterationResponse?: NullableOption<AlterationResponse>;
    /**
     * A dictionary of resultTemplateIds and associated values, which include the name and JSON schema of the result
     * templates.
     */
    resultTemplates?: NullableOption<ResultTemplateDictionary>;
    // Contains the search terms sent in the initial search query.
    searchTerms?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerAppliedCategories {}
export interface PlannerAssignment {
    // The identity of the user that performed the assignment of the task, that is, the assignor.
    assignedBy?: NullableOption<IdentitySet>;
    /**
     * The time when the task was assigned. The Timestamp type represents date and time information using ISO 8601 format and
     * is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    assignedDateTime?: NullableOption<string>;
    // Hint used to order assignees in a task. The format is defined as outlined here.
    orderHint?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerAssignments {}
export interface PlannerCategoryDescriptions {
    // The label associated with Category 1
    category1?: NullableOption<string>;
    // The label associated with Category 10
    category10?: NullableOption<string>;
    // The label associated with Category 11
    category11?: NullableOption<string>;
    // The label associated with Category 12
    category12?: NullableOption<string>;
    // The label associated with Category 13
    category13?: NullableOption<string>;
    // The label associated with Category 14
    category14?: NullableOption<string>;
    // The label associated with Category 15
    category15?: NullableOption<string>;
    // The label associated with Category 16
    category16?: NullableOption<string>;
    // The label associated with Category 17
    category17?: NullableOption<string>;
    // The label associated with Category 18
    category18?: NullableOption<string>;
    // The label associated with Category 19
    category19?: NullableOption<string>;
    // The label associated with Category 2
    category2?: NullableOption<string>;
    // The label associated with Category 20
    category20?: NullableOption<string>;
    // The label associated with Category 21
    category21?: NullableOption<string>;
    // The label associated with Category 22
    category22?: NullableOption<string>;
    // The label associated with Category 23
    category23?: NullableOption<string>;
    // The label associated with Category 24
    category24?: NullableOption<string>;
    // The label associated with Category 25
    category25?: NullableOption<string>;
    // The label associated with Category 3
    category3?: NullableOption<string>;
    // The label associated with Category 4
    category4?: NullableOption<string>;
    // The label associated with Category 5
    category5?: NullableOption<string>;
    // The label associated with Category 6
    category6?: NullableOption<string>;
    // The label associated with Category 7
    category7?: NullableOption<string>;
    // The label associated with Category 8
    category8?: NullableOption<string>;
    // The label associated with Category 9
    category9?: NullableOption<string>;
}
export interface PlannerChecklistItem {
    // Value is true if the item is checked and false otherwise.
    isChecked?: NullableOption<boolean>;
    // Read-only. User ID by which this is last modified.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * Read-only. Date and time at which this is last modified. The Timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastModifiedDateTime?: NullableOption<string>;
    // Used to set the relative order of items in the checklist. The format is defined as outlined here.
    orderHint?: NullableOption<string>;
    // Title of the checklist item
    title?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerChecklistItems {}
export interface PlannerExternalReference {
    // A name alias to describe the reference.
    alias?: NullableOption<string>;
    // Read-only. User ID by which this is last modified.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * Read-only. Date and time at which this is last modified. The Timestamp type represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    lastModifiedDateTime?: NullableOption<string>;
    // Used to set the relative priority order in which the reference will be shown as a preview on the task.
    previewPriority?: NullableOption<string>;
    // Used to describe the type of the reference. Types include: PowerPoint, Word, Excel, Other.
    type?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerExternalReferences {}
// tslint:disable-next-line: no-empty-interface
export interface PlannerOrderHintsByAssignee {}
export interface PlannerPlanContainer {
    // The identifier of the resource that contains the plan. Optional.
    containerId?: NullableOption<string>;
    /**
     * The type of the resource that contains the plan. For supported types, see the previous table. Possible values are:
     * group, unknownFutureValue, roster. Note that you must use the Prefer: include-unknown-enum-members request header to
     * get the following value in this evolvable enum: roster. Optional.
     */
    type?: NullableOption<PlannerContainerType>;
    // The full canonical URL of the container. Optional.
    url?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerUserIds {}
// tslint:disable-next-line: interface-name
export interface InsightIdentity {
    // The email address of the user who shared the item.
    address?: NullableOption<string>;
    // The display name of the user who shared the item.
    displayName?: NullableOption<string>;
    // The ID of the user who shared the item.
    id?: NullableOption<string>;
}
export interface ResourceReference {
    // The item's unique identifier.
    id?: NullableOption<string>;
    // A string value that can be used to classify the item, such as 'microsoft.graph.driveItem'
    type?: NullableOption<string>;
    // A URL leading to the referenced item.
    webUrl?: NullableOption<string>;
}
export interface ResourceVisualization {
    /**
     * A string describing where the item is stored. For example, the name of a SharePoint site or the user name identifying
     * the owner of the OneDrive storing the item.
     */
    containerDisplayName?: NullableOption<string>;
    // Can be used for filtering by the type of container in which the file is stored. Such as Site or OneDriveBusiness.
    containerType?: NullableOption<string>;
    // A path leading to the folder in which the item is stored.
    containerWebUrl?: NullableOption<string>;
    /**
     * The item's media type. Can be used for filtering for a specific type of file based on supported IANA Media Mime Types.
     * Not all Media Mime Types are supported.
     */
    mediaType?: NullableOption<string>;
    // A URL leading to the preview image for the item.
    previewImageUrl?: NullableOption<string>;
    // A preview text for the item.
    previewText?: NullableOption<string>;
    // The item's title text.
    title?: NullableOption<string>;
    /**
     * The item's media type. Can be used for filtering for a specific file based on a specific type. See the section Type
     * property values for supported types.
     */
    type?: NullableOption<string>;
}
export interface SharingDetail {
    // The user who shared the document.
    sharedBy?: NullableOption<InsightIdentity>;
    /**
     * The date and time the file was last shared. The timestamp represents date and time information using ISO 8601 format
     * and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    sharedDateTime?: NullableOption<string>;
    sharingReference?: NullableOption<ResourceReference>;
    // The subject with which the document was shared.
    sharingSubject?: NullableOption<string>;
    // Determines the way the document was shared, can be by a 'Link', 'Attachment', 'Group', 'Site'.
    sharingType?: NullableOption<string>;
}
export interface UsageDetails {
    /**
     * The date and time the resource was last accessed by the user. The timestamp represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    lastAccessedDateTime?: NullableOption<string>;
    /**
     * The date and time the resource was last modified by the user. The timestamp represents date and time information using
     * ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    lastModifiedDateTime?: NullableOption<string>;
}
export interface CopyNotebookModel {
    createdBy?: NullableOption<string>;
    createdByIdentity?: NullableOption<IdentitySet>;
    createdTime?: NullableOption<string>;
    id?: NullableOption<string>;
    isDefault?: NullableOption<boolean>;
    isShared?: NullableOption<boolean>;
    lastModifiedBy?: NullableOption<string>;
    lastModifiedByIdentity?: NullableOption<IdentitySet>;
    lastModifiedTime?: NullableOption<string>;
    links?: NullableOption<NotebookLinks>;
    name?: NullableOption<string>;
    sectionGroupsUrl?: NullableOption<string>;
    sectionsUrl?: NullableOption<string>;
    self?: NullableOption<string>;
    userRole?: NullableOption<OnenoteUserRole>;
}
export interface NotebookLinks {
    // Opens the notebook in the OneNote native client if it's installed.
    oneNoteClientUrl?: NullableOption<ExternalLink>;
    // Opens the notebook in OneNote on the web.
    oneNoteWebUrl?: NullableOption<ExternalLink>;
}
export interface Diagnostic {
    message?: NullableOption<string>;
    url?: NullableOption<string>;
}
export interface ExternalLink {
    // The URL of the link.
    href?: NullableOption<string>;
}
export interface OnenoteOperationError {
    // The error code.
    code?: NullableOption<string>;
    // The error message.
    message?: NullableOption<string>;
}
export interface OnenotePagePreview {
    links?: NullableOption<OnenotePagePreviewLinks>;
    previewText?: NullableOption<string>;
}
export interface OnenotePagePreviewLinks {
    previewImageUrl?: NullableOption<ExternalLink>;
}
export interface OnenotePatchContentCommand {
    // The action to perform on the target element. The possible values are: replace, append, delete, insert, or prepend.
    action?: OnenotePatchActionType;
    /**
     * A string of well-formed HTML to add to the page, and any image or file binary data. If the content contains binary
     * data, the request must be sent using the multipart/form-data content type with a 'Commands' part.
     */
    content?: NullableOption<string>;
    /**
     * The location to add the supplied content, relative to the target element. The possible values are: after (default) or
     * before.
     */
    position?: NullableOption<OnenotePatchInsertPosition>;
    /**
     * The element to update. Must be the #&amp;lt;data-id&amp;gt; or the generated &amp;lt;id&amp;gt; of the element, or the
     * body or title keyword.
     */
    target?: string;
}
export interface PageLinks {
    // Opens the page in the OneNote native client if it's installed.
    oneNoteClientUrl?: NullableOption<ExternalLink>;
    // Opens the page in OneNote on the web.
    oneNoteWebUrl?: NullableOption<ExternalLink>;
}
export interface RecentNotebook {
    // The name of the notebook.
    displayName?: NullableOption<string>;
    /**
     * The date and time when the notebook was last modified. The timestamp represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    lastAccessedTime?: NullableOption<string>;
    /**
     * Links for opening the notebook. The oneNoteClientURL link opens the notebook in the OneNote client, if it's installed.
     * The oneNoteWebURL link opens the notebook in OneNote on the web.
     */
    links?: NullableOption<RecentNotebookLinks>;
    // The backend store where the Notebook resides, either OneDriveForBusiness or OneDrive.
    sourceService?: NullableOption<OnenoteSourceService>;
}
export interface RecentNotebookLinks {
    // Opens the notebook in the OneNote native client if it's installed.
    oneNoteClientUrl?: NullableOption<ExternalLink>;
    // Opens the notebook in OneNote on the web.
    oneNoteWebUrl?: NullableOption<ExternalLink>;
}
export interface SectionLinks {
    // Opens the section in the OneNote native client if it's installed.
    oneNoteClientUrl?: NullableOption<ExternalLink>;
    // Opens the section in OneNote on the web.
    oneNoteWebUrl?: NullableOption<ExternalLink>;
}
export interface DelegatedAdminAccessContainer {
    /**
     * The identifier of the access container (for example, a security group). For 'securityGroup' access containers, this
     * must be a valid ID of a Microsoft Entra security group in the Microsoft partner's tenant.
     */
    accessContainerId?: string;
    /**
     * The type of access container (for example, security group) that will be assigned one or more roles through a delegated
     * admin relationship. The possible values are: securityGroup, unknownFutureValue.
     */
    accessContainerType?: DelegatedAdminAccessContainerType;
}
export interface DelegatedAdminAccessDetails {
    // The directory roles that the Microsoft partner is assigned in the customer tenant.
    unifiedRoles?: UnifiedRole[];
}
export interface UnifiedRole {
    // The unified role definition ID of the directory role. Refer to unifiedRoleDefinition resource.
    roleDefinitionId?: string;
}
export interface DelegatedAdminRelationshipCustomerParticipant {
    // The display name of the customer tenant as set by Microsoft Entra ID. Read-only
    displayName?: NullableOption<string>;
    // The Microsoft Entra ID-assigned tenant ID of the customer tenant.
    tenantId?: string;
}
export interface ProfileCardAnnotation {
    /**
     * If present, the value of this field is used by the profile card as the default property label in the experience (for
     * example, 'Cost Center').
     */
    displayName?: NullableOption<string>;
    /**
     * Each resource in this collection represents the localized value of the attribute name for a given language, used as the
     * default label for that locale. For example, a user with a nb-NO client gets 'Kostnadssenter' as the attribute label,
     * rather than 'Cost Center.'
     */
    localizations?: NullableOption<DisplayNameLocalization[]>;
}
export interface ApprovalSettings {
    // One of SingleStage, Serial, Parallel, NoApproval (default). NoApproval is used when isApprovalRequired is false.
    approvalMode?: NullableOption<string>;
    /**
     * If approval is required, the one or two elements of this collection define each of the stages of approval. An empty
     * array if no approval is required.
     */
    approvalStages?: NullableOption<UnifiedApprovalStage[]>;
    // Indicates whether approval is required for requests in this policy.
    isApprovalRequired?: NullableOption<boolean>;
    // Indicates whether approval is required for a user to extend their assignment.
    isApprovalRequiredForExtension?: NullableOption<boolean>;
    // Indicates whether the requestor is required to supply a justification in their request.
    isRequestorJustificationRequired?: NullableOption<boolean>;
}
export interface UnifiedApprovalStage {
    // The number of days that a request can be pending a response before it is automatically denied.
    approvalStageTimeOutInDays?: NullableOption<number>;
    // The escalation approvers for this stage when the primary approvers don't respond.
    escalationApprovers?: NullableOption<SubjectSet[]>;
    /**
     * The time a request can be pending a response from a primary approver before it can be escalated to the escalation
     * approvers.
     */
    escalationTimeInMinutes?: NullableOption<number>;
    // Indicates whether the approver must provide justification for their reponse.
    isApproverJustificationRequired?: NullableOption<boolean>;
    // Indicates whether escalation if enabled.
    isEscalationEnabled?: NullableOption<boolean>;
    // The primary approvers of this stage.
    primaryApprovers?: NullableOption<SubjectSet[]>;
}
export interface RequestSchedule {
    // When the eligible or active assignment expires.
    expiration?: NullableOption<ExpirationPattern>;
    // The frequency of the eligible or active assignment. This property is currently unsupported in PIM.
    recurrence?: NullableOption<PatternedRecurrence>;
    // When the eligible or active assignment becomes active.
    startDateTime?: NullableOption<string>;
}
export interface TicketInfo {
    // The ticket number.
    ticketNumber?: NullableOption<string>;
    // The description of the ticket system.
    ticketSystem?: NullableOption<string>;
}
export interface UnifiedRoleManagementPolicyRuleTarget {
    // The type of caller that's the target of the policy rule. Allowed values are: None, Admin, EndUser.
    caller?: NullableOption<string>;
    // The list of role settings that are enforced and cannot be overridden by child scopes. Use All for all settings.
    enforcedSettings?: NullableOption<string[]>;
    // The list of role settings that can be inherited by child scopes. Use All for all settings.
    inheritableSettings?: NullableOption<string[]>;
    // The role assignment type that's the target of policy rule. Allowed values are: Eligibility, Assignment.
    level?: NullableOption<string>;
    /**
     * The role management operations that are the target of the policy rule. Allowed values are: All, Activate, Deactivate,
     * Assign, Update, Remove, Extend, Renew.
     */
    operations?: NullableOption<UnifiedRoleManagementPolicyRuleTargetOperations[]>;
    targetObjects?: NullableOption<DirectoryObject[]>;
}
export interface ArchivedPrintJob {
    // True if the job was acquired by a printer; false otherwise. Read-only.
    acquiredByPrinter?: boolean;
    // The dateTimeOffset when the job was acquired by the printer, if any. Read-only.
    acquiredDateTime?: NullableOption<string>;
    // The dateTimeOffset when the job was completed, canceled or aborted. Read-only.
    completionDateTime?: NullableOption<string>;
    // The number of copies that were printed. Read-only.
    copiesPrinted?: number;
    // The user who created the print job. Read-only.
    createdBy?: NullableOption<UserIdentity>;
    // The dateTimeOffset when the job was created. Read-only.
    createdDateTime?: string;
    // The archived print job's GUID. Read-only.
    id?: string;
    // The printer ID that the job was queued for. Read-only.
    printerId?: NullableOption<string>;
    // The printer name that the job was queued for. Read-only.
    printerName?: NullableOption<string>;
    // The print job's final processing state. Read-only.
    processingState?: PrintJobProcessingState;
}
// tslint:disable-next-line: interface-name
export interface IntegerRange {
    // The inclusive upper bound of the integer range.
    end?: NullableOption<number>;
    // The inclusive lower bound of the integer range.
    start?: NullableOption<number>;
}
export interface PrintCertificateSigningRequest {
    // A base64-encoded pkcs10 certificate request. Read-only.
    content?: string;
    // The base64-encoded public portion of an asymmetric key that is generated by the client. Read-only.
    transportKey?: string;
}
export interface PrintDocumentUploadProperties {
    // The document's content (MIME) type.
    contentType?: string;
    // The document's name.
    documentName?: string;
    // The document's size in bytes.
    size?: number;
}
export interface PrinterCapabilities {
    // A list of supported bottom margins(in microns) for the printer.
    bottomMargins?: NullableOption<number[]>;
    // True if the printer supports collating when printing muliple copies of a multi-page document; false otherwise.
    collation?: NullableOption<boolean>;
    // The color modes supported by the printer. Valid values are described in the following table.
    colorModes?: NullableOption<PrintColorMode[]>;
    /**
     * A list of supported content (MIME) types that the printer supports. It is not guaranteed that the Universal Print
     * service supports printing all of these MIME types.
     */
    contentTypes?: NullableOption<string[]>;
    // The range of copies per job supported by the printer.
    copiesPerJob?: NullableOption<IntegerRange>;
    // The list of print resolutions in DPI that are supported by the printer.
    dpis?: NullableOption<number[]>;
    // The list of duplex modes that are supported by the printer. Valid values are described in the following table.
    duplexModes?: NullableOption<PrintDuplexMode[]>;
    // The list of feed orientations that are supported by the printer.
    feedOrientations?: NullableOption<PrinterFeedOrientation[]>;
    // Finishing processes the printer supports for a printed document.
    finishings?: NullableOption<PrintFinishing[]>;
    // Supported input bins for the printer.
    inputBins?: NullableOption<string[]>;
    // True if color printing is supported by the printer; false otherwise. Read-only.
    isColorPrintingSupported?: NullableOption<boolean>;
    // True if the printer supports printing by page ranges; false otherwise.
    isPageRangeSupported?: NullableOption<boolean>;
    // A list of supported left margins(in microns) for the printer.
    leftMargins?: NullableOption<number[]>;
    // The media (i.e., paper) colors supported by the printer.
    mediaColors?: NullableOption<string[]>;
    /**
     * The media sizes supported by the printer. Supports standard size names for ISO and ANSI media sizes. Valid values are
     * in the following table.
     */
    mediaSizes?: NullableOption<string[]>;
    // The media types supported by the printer.
    mediaTypes?: NullableOption<string[]>;
    // The presentation directions supported by the printer. Supported values are described in the following table.
    multipageLayouts?: NullableOption<PrintMultipageLayout[]>;
    // The print orientations supported by the printer. Valid values are described in the following table.
    orientations?: NullableOption<PrintOrientation[]>;
    // The printer's supported output bins (trays).
    outputBins?: NullableOption<string[]>;
    // Supported number of Input Pages to impose upon a single Impression.
    pagesPerSheet?: NullableOption<number[]>;
    // The print qualities supported by the printer.
    qualities?: NullableOption<PrintQuality[]>;
    // A list of supported right margins(in microns) for the printer.
    rightMargins?: NullableOption<number[]>;
    // Supported print scalings.
    scalings?: NullableOption<PrintScaling[]>;
    // True if the printer supports scaling PDF pages to match the print media size; false otherwise.
    supportsFitPdfToPage?: NullableOption<boolean>;
    // A list of supported top margins(in microns) for the printer.
    topMargins?: NullableOption<number[]>;
}
export interface PrinterDefaults {
    // The default color mode to use when printing the document. Valid values are described in the following table.
    colorMode?: NullableOption<PrintColorMode>;
    // The default content (MIME) type to use when processing documents.
    contentType?: NullableOption<string>;
    // The default number of copies printed per job.
    copiesPerJob?: NullableOption<number>;
    // The default resolution in DPI to use when printing the job.
    dpi?: NullableOption<number>;
    /**
     * The default duplex (double-sided) configuration to use when printing a document. Valid values are described in the
     * following table.
     */
    duplexMode?: NullableOption<PrintDuplexMode>;
    // The default set of finishings to apply to print jobs. Valid values are described in the following table.
    finishings?: NullableOption<PrintFinishing[]>;
    /**
     * The default fitPdfToPage setting. True to fit each page of a PDF document to a physical sheet of media; false to let
     * the printer decide how to lay out impressions.
     */
    fitPdfToPage?: NullableOption<boolean>;
    inputBin?: NullableOption<string>;
    // The default media (such as paper) color to print the document on.
    mediaColor?: NullableOption<string>;
    /**
     * The default media size to use. Supports standard size names for ISO and ANSI media sizes. Valid values are listed in
     * the printerCapabilities topic.
     */
    mediaSize?: NullableOption<string>;
    // The default media (such as paper) type to print the document on.
    mediaType?: NullableOption<string>;
    /**
     * The default direction to lay out pages when multiple pages are being printed per sheet. Valid values are described in
     * the following table.
     */
    multipageLayout?: NullableOption<PrintMultipageLayout>;
    // The default orientation to use when printing the document. Valid values are described in the following table.
    orientation?: NullableOption<PrintOrientation>;
    /**
     * The default output bin to place completed prints into. See the printer's capabilities for a list of supported output
     * bins.
     */
    outputBin?: NullableOption<string>;
    // The default number of document pages to print on each sheet.
    pagesPerSheet?: NullableOption<number>;
    // The default quality to use when printing the document. Valid values are described in the following table.
    quality?: NullableOption<PrintQuality>;
    /**
     * Specifies how the printer scales the document data to fit the requested media. Valid values are described in the
     * following table.
     */
    scaling?: NullableOption<PrintScaling>;
}
export interface PrinterLocation {
    // The altitude, in meters, that the printer is located at.
    altitudeInMeters?: NullableOption<number>;
    // The building that the printer is located in.
    building?: NullableOption<string>;
    // The city that the printer is located in.
    city?: NullableOption<string>;
    // The country or region that the printer is located in.
    countryOrRegion?: NullableOption<string>;
    // The floor that the printer is located on. Only numerical values are supported right now.
    floor?: NullableOption<string>;
    // The description of the floor that the printer is located on.
    floorDescription?: NullableOption<string>;
    // The latitude that the printer is located at.
    latitude?: NullableOption<number>;
    // The longitude that the printer is located at.
    longitude?: NullableOption<number>;
    // The organizational hierarchy that the printer belongs to. The elements should be in hierarchical order.
    organization?: NullableOption<string[]>;
    // The postal code that the printer is located in.
    postalCode?: NullableOption<string>;
    // The description of the room that the printer is located in.
    roomDescription?: NullableOption<string>;
    // The room that the printer is located in. Only numerical values are supported right now.
    roomName?: NullableOption<string>;
    // The site that the printer is located in.
    site?: NullableOption<string>;
    // The state or province that the printer is located in.
    stateOrProvince?: NullableOption<string>;
    // The street address where the printer is located.
    streetAddress?: NullableOption<string>;
    // The subdivision that the printer is located in. The elements should be in hierarchical order.
    subdivision?: NullableOption<string[]>;
    subunit?: NullableOption<string[]>;
}
export interface PrinterShareViewpoint {
    /**
     * Date and time when the printer was last used by the signed-in user. The timestamp type represents date and time
     * information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
     * 2014-01-01T00:00:00Z.
     */
    lastUsedDateTime?: NullableOption<string>;
}
export interface PrinterStatus {
    // A human-readable description of the printer's current processing state. Read-only.
    description?: NullableOption<string>;
    /**
     * The list of details describing why the printer is in the current state. Valid values are described in the following
     * table. Read-only.
     */
    details?: PrinterProcessingStateDetail[];
    // The current processing state. Valid values are described in the following table. Read-only.
    state?: PrinterProcessingState;
}
export interface PrintJobConfiguration {
    // Whether the printer should collate pages wehen printing multiple copies of a multi-page document.
    collate?: NullableOption<boolean>;
    // The color mode the printer should use to print the job. Valid values are described in the table below. Read-only.
    colorMode?: NullableOption<PrintColorMode>;
    // The number of copies that should be printed. Read-only.
    copies?: NullableOption<number>;
    // The resolution to use when printing the job, expressed in dots per inch (DPI). Read-only.
    dpi?: NullableOption<number>;
    // The duplex mode the printer should use when printing the job. Valid values are described in the table below. Read-only.
    duplexMode?: NullableOption<PrintDuplexMode>;
    /**
     * The orientation to use when feeding media into the printer. Valid values are described in the following table.
     * Read-only.
     */
    feedOrientation?: NullableOption<PrinterFeedOrientation>;
    // Finishing processes to use when printing.
    finishings?: NullableOption<PrintFinishing[]>;
    fitPdfToPage?: NullableOption<boolean>;
    // The input bin (tray) to use when printing. See the printer's capabilities for a list of supported input bins.
    inputBin?: NullableOption<string>;
    // The margin settings to use when printing.
    margin?: NullableOption<PrintMargin>;
    // The media size to use when printing. Supports standard size names for ISO and ANSI media sizes.
    mediaSize?: NullableOption<string>;
    mediaType?: NullableOption<string>;
    multipageLayout?: NullableOption<PrintMultipageLayout>;
    orientation?: NullableOption<PrintOrientation>;
    outputBin?: NullableOption<string>;
    pageRanges?: NullableOption<IntegerRange[]>;
    pagesPerSheet?: NullableOption<number>;
    quality?: NullableOption<PrintQuality>;
    scaling?: NullableOption<PrintScaling>;
}
export interface PrintMargin {
    // The margin in microns from the bottom edge.
    bottom?: NullableOption<number>;
    // The margin in microns from the left edge.
    left?: NullableOption<number>;
    // The margin in microns from the right edge.
    right?: NullableOption<number>;
    // The margin in microns from the top edge.
    top?: NullableOption<number>;
}
export interface PrintJobStatus {
    // A human-readable description of the print job's current processing state. Read-only.
    description?: string;
    // Additional details for print job state. Valid values are described in the following table. Read-only.
    details?: PrintJobStateDetail[];
    // True if the job was acknowledged by a printer; false otherwise. Read-only.
    isAcquiredByPrinter?: boolean;
    // The print job's current processing state. Valid values are described in the following table. Read-only.
    state?: PrintJobProcessingState;
}
export interface PrintOperationStatus {
    // A human-readable description of the printOperation's current processing state. Read-only.
    description?: string;
    // The printOperation's current processing state. Valid values are described in the following table. Read-only.
    state?: PrintOperationProcessingState;
}
export interface PrintSettings {
    /**
     * Specifies whether document conversion is enabled for the tenant. If document conversion is enabled, Universal Print
     * service will automatically convert documents into a format compatible with the printer (xps to pdf) when needed.
     */
    documentConversionEnabled?: boolean;
}
export interface PrintTaskStatus {
    // A human-readable description of the current processing state of the printTask.
    description?: string;
    // The current processing state of the printTask. Valid values are described in the following table.
    state?: PrintTaskProcessingState;
}
// tslint:disable-next-line: interface-name
export interface ImageInfo {
    /**
     * Optional; parameter used to indicate the server is able to render image dynamically in response to parameterization.
     * For example – a high contrast image
     */
    addImageQuery?: NullableOption<boolean>;
    // Optional; alt-text accessible content for the image
    alternateText?: NullableOption<string>;
    alternativeText?: NullableOption<string>;
    // Optional; URI that points to an icon which represents the application used to generate the activity
    iconUrl?: NullableOption<string>;
}
export interface VisualInfo {
    // Optional. JSON object used to represent an icon which represents the application used to generate the activity
    attribution?: NullableOption<ImageInfo>;
    /**
     * Optional. Background color used to render the activity in the UI - brand color for the application source of the
     * activity. Must be a valid hex color
     */
    backgroundColor?: NullableOption<string>;
    /**
     * Optional. Custom piece of data - JSON object used to provide custom content to render the activity in the Windows Shell
     * UI
     */
    content?: NullableOption<any>;
    /**
     * Optional. Longer text description of the user's unique activity (example: document name, first sentence, and/or
     * metadata)
     */
    description?: NullableOption<string>;
    /**
     * Required. Short text description of the user's unique activity (for example, document name in cases where an activity
     * refers to document creation)
     */
    displayText?: string;
}
export interface AccountTargetContent {
    // The type of account target content. Possible values are: unknown, includeAll, addressBook, unknownFutureValue.
    type?: NullableOption<AccountTargetContentType>;
}
export interface AddressBookAccountTargetContent extends AccountTargetContent {
    // List of user emails targeted for an attack simulation training campaign.
    accountTargetEmails?: NullableOption<string[]>;
}
export interface AssignedTrainingInfo {
    // Number of users who were assigned the training in an attack simulation and training campaign.
    assignedUserCount?: NullableOption<number>;
    // Number of users who completed the training in an attack simulation and training campaign.
    completedUserCount?: NullableOption<number>;
    // Display name of the training in an attack simulation and training campaign.
    displayName?: NullableOption<string>;
}
export interface AttackSimulationRepeatOffender {
    // The user in an attack simulation and training campaign.
    attackSimulationUser?: NullableOption<AttackSimulationUser>;
    // Number of repeat offences of the user in attack simulation and training campaigns.
    repeatOffenceCount?: NullableOption<number>;
}
export interface AttackSimulationUser {
    // Display name of the user.
    displayName?: NullableOption<string>;
    // Email address of the user.
    email?: NullableOption<string>;
    // This is the id property value of the user resource that represents the user in the Microsoft Entra tenant.
    userId?: NullableOption<string>;
}
export interface AttackSimulationSimulationUserCoverage {
    // User in an attack simulation and training campaign.
    attackSimulationUser?: NullableOption<AttackSimulationUser>;
    // Number of link clicks in the received payloads by the user in attack simulation and training campaigns.
    clickCount?: NullableOption<number>;
    // Number of compromising actions by the user in attack simulation and training campaigns.
    compromisedCount?: NullableOption<number>;
    // Date and time of the latest attack simulation and training campaign that the user was included in.
    latestSimulationDateTime?: NullableOption<string>;
    // Number of attack simulation and training campaigns that the user was included in.
    simulationCount?: NullableOption<number>;
}
export interface AttackSimulationTrainingUserCoverage {
    // User in an attack simulation and training campaign.
    attackSimulationUser?: NullableOption<AttackSimulationUser>;
    // List of assigned trainings and their statuses for the user.
    userTrainings?: NullableOption<UserTrainingStatusInfo[]>;
}
export interface UserTrainingStatusInfo {
    // Date and time of assignment of the training to the user.
    assignedDateTime?: NullableOption<string>;
    // Date and time of completion of the training by the user.
    completionDateTime?: NullableOption<string>;
    // Display name of the assigned training.
    displayName?: NullableOption<string>;
    /**
     * The status of the training assigned to the user. Possible values are: unknown, assigned, inProgress, completed,
     * overdue, unknownFutureValue.
     */
    trainingStatus?: NullableOption<TrainingStatus>;
}
export interface BaseEndUserNotification {
    // The default language for the end user notification.
    defaultLanguage?: NullableOption<string>;
    endUserNotification?: NullableOption<EndUserNotification>;
}
export interface CoachmarkLocation {
    // Length of coachmark.
    length?: NullableOption<number>;
    // Offset of coachmark.
    offset?: NullableOption<number>;
    /**
     * Type of coachmark location. The possible values are: unknown, fromEmail, subject, externalTag, displayName,
     * messageBody, unknownFutureValue.
     */
    type?: NullableOption<CoachmarkLocationType>;
}
export interface TrainingSetting {
    // Type of setting. Possible values are: microsoftCustom, microsoftManaged, noTraining, custom, unknownFutureValue.
    settingType?: NullableOption<TrainingSettingType>;
}
export interface CustomTrainingSetting extends TrainingSetting {
    /**
     * A user collection that specifies to whom the training should be assigned. Possible values are: none, allUsers,
     * clickedPayload, compromised, reportedPhish, readButNotClicked, didNothing, unknownFutureValue.
     */
    assignedTo?: NullableOption<TrainingAssignedTo[]>;
    // The description of the custom training setting.
    description?: NullableOption<string>;
    // The display name of the custom training setting.
    displayName?: NullableOption<string>;
    // Training duration.
    durationInMinutes?: NullableOption<number>;
    // The training URL.
    url?: NullableOption<string>;
}
export interface EmailIdentity extends Identity {
    // Email address of the user.
    email?: NullableOption<string>;
}
export interface PayloadDetail {
    // Payload coachmark details.
    coachmarks?: NullableOption<PayloadCoachmark[]>;
    // Payload content details.
    content?: NullableOption<string>;
    // The phishing URL used to target a user.
    phishingUrl?: NullableOption<string>;
}
export interface EmailPayloadDetail extends PayloadDetail {
    // Email address of the user.
    fromEmail?: NullableOption<string>;
    // Display name of the user.
    fromName?: NullableOption<string>;
    // Indicates whether the sender isn't from the user's organization.
    isExternalSender?: NullableOption<boolean>;
    // The subject of the email address sent to the user.
    subject?: NullableOption<string>;
}
export interface EndUserNotificationSetting {
    // Notification preference. Possible values are: unknown, microsoft, custom, unknownFutureValue.
    notificationPreference?: NullableOption<EndUserNotificationPreference>;
    // Positive reinforcement detail.
    positiveReinforcement?: NullableOption<PositiveReinforcementNotification>;
    /**
     * End user notification type. Possible values are: unknown, noTraining, trainingSelected, noNotification,
     * unknownFutureValue.
     */
    settingType?: NullableOption<EndUserNotificationSettingType>;
}
export interface PositiveReinforcementNotification extends BaseEndUserNotification {
    // Delivery preference. Possible values are: unknown, deliverImmedietly, deliverAfterCampaignEnd, unknownFutureValue.
    deliveryPreference?: NullableOption<NotificationDeliveryPreference>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IncludeAllAccountTargetContent extends AccountTargetContent {}
export interface MicrosoftCustomTrainingSetting extends TrainingSetting {
    /**
     * The completion date and time of the training. The timestamp type represents date and time information using ISO 8601
     * format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    completionDateTime?: NullableOption<string>;
    // The mapping details of the associated training.
    trainingAssignmentMappings?: NullableOption<MicrosoftTrainingAssignmentMapping[]>;
    /**
     * The training completion duration that needs to be provided before scheduling the training. Possible values are: week,
     * fortnite, month, unknownFutureValue.
     */
    trainingCompletionDuration?: NullableOption<TrainingCompletionDuration>;
}
export interface MicrosoftTrainingAssignmentMapping extends TrainingSetting {
    /**
     * A user collection that specifies to whom the training should be assigned. Possible values are: none, allUsers,
     * clickedPayload, compromised, reportedPhish, readButNotClicked, didNothing, unknownFutureValue.
     */
    assignedTo?: NullableOption<TrainingAssignedTo[]>;
    training?: NullableOption<Training>;
}
export interface MicrosoftManagedTrainingSetting extends TrainingSetting {
    /**
     * The completion date for the training. The timestamp type represents date and time information using ISO 8601 format and
     * is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    completionDateTime?: NullableOption<string>;
    /**
     * The training completion duration that needs to be provided before scheduling the training. The possible values are:
     * week, fortnite, month, unknownFutureValue.
     */
    trainingCompletionDuration?: NullableOption<TrainingCompletionDuration>;
}
export interface NoTrainingNotificationSetting extends EndUserNotificationSetting {
    // The notification for the user who is part of the simulation.
    simulationNotification?: NullableOption<SimulationNotification>;
}
export interface SimulationNotification extends BaseEndUserNotification {
    // Target user type. Possible values are: unknown, clicked, compromised, allUsers, unknownFutureValue.
    targettedUserType?: NullableOption<TargettedUserType>;
}
// tslint:disable-next-line: no-empty-interface
export interface NoTrainingSetting extends TrainingSetting {}
export interface OAuthConsentAppDetail {
    /**
     * App scope. Possible values are: unknown, readCalendar, readContact, readMail, readAllChat, readAllFile,
     * readAndWriteMail, sendMail, unknownFutureValue.
     */
    appScope?: NullableOption<OAuthAppScope>;
    // App display logo.
    displayLogo?: NullableOption<string>;
    // App name.
    displayName?: NullableOption<string>;
}
export interface PayloadCoachmark {
    // The coachmark location.
    coachmarkLocation?: NullableOption<CoachmarkLocation>;
    // The description about the coachmark.
    description?: NullableOption<string>;
    // The coachmark indicator.
    indicator?: NullableOption<string>;
    // Indicates whether the coachmark is valid or not.
    isValid?: NullableOption<boolean>;
    // The coachmark language.
    language?: NullableOption<string>;
    // The coachmark order.
    order?: NullableOption<string>;
}
export interface RecommendedAction {
    // Web URL to the recommended action.
    actionWebUrl?: NullableOption<string>;
    // Potential improvement in the tenant security score from the recommended action.
    potentialScoreImpact?: NullableOption<number>;
    // Title of the recommended action.
    title?: NullableOption<string>;
}
export interface SimulationEvent {
    // Count of the simulation event occurrence in an attack simulation and training campaign.
    count?: NullableOption<number>;
    // Name of the simulation event in an attack simulation and training campaign.
    eventName?: NullableOption<string>;
}
export interface SimulationEventsContent {
    // Actual percentage of users who fell for the simulated attack in an attack simulation and training campaign.
    compromisedRate?: NullableOption<number>;
    // List of simulation events in an attack simulation and training campaign.
    events?: NullableOption<SimulationEvent[]>;
}
export interface SimulationReport {
    // Overview of an attack simulation and training campaign.
    overview?: NullableOption<SimulationReportOverview>;
    // The tenant users and their online actions in an attack simulation and training campaign.
    simulationUsers?: NullableOption<UserSimulationDetails[]>;
}
export interface SimulationReportOverview {
    /**
     * List of recommended actions for a tenant to improve its security posture based on the attack simulation and training
     * campaign attack type.
     */
    recommendedActions?: NullableOption<RecommendedAction[]>;
    // Number of valid users in the attack simulation and training campaign.
    resolvedTargetsCount?: NullableOption<number>;
    // Summary of simulation events in the attack simulation and training campaign.
    simulationEventsContent?: NullableOption<SimulationEventsContent>;
    // Summary of assigned trainings in the attack simulation and training campaign.
    trainingEventsContent?: NullableOption<TrainingEventsContent>;
}
export interface UserSimulationDetails {
    // Number of trainings assigned to a user in an attack simulation and training campaign.
    assignedTrainingsCount?: NullableOption<number>;
    // Number of trainings completed by a user in an attack simulation and training campaign.
    completedTrainingsCount?: NullableOption<number>;
    // Date and time of the compromising online action by a user in an attack simulation and training campaign.
    compromisedDateTime?: NullableOption<string>;
    // Number of trainings in progress by a user in an attack simulation and training campaign.
    inProgressTrainingsCount?: NullableOption<number>;
    // Indicates whether a user was compromised in an attack simulation and training campaign.
    isCompromised?: NullableOption<boolean>;
    // Date and time when a user reported the delivered payload as phishing in the attack simulation and training campaign.
    reportedPhishDateTime?: NullableOption<string>;
    // List of simulation events of a user in the attack simulation and training campaign.
    simulationEvents?: NullableOption<UserSimulationEventInfo[]>;
    // User in an attack simulation and training campaign.
    simulationUser?: NullableOption<AttackSimulationUser>;
    // List of training events of a user in the attack simulation and training campaign.
    trainingEvents?: NullableOption<UserTrainingEventInfo[]>;
}
export interface TrainingEventsContent {
    // List of assigned trainings and their information in an attack simulation and training campaign.
    assignedTrainingsInfos?: NullableOption<AssignedTrainingInfo[]>;
    // Number of users who were assigned trainings in an attack simulation and training campaign.
    trainingsAssignedUserCount?: NullableOption<number>;
}
export interface TrainingNotificationSetting extends EndUserNotificationSetting {
    // Training assignment details.
    trainingAssignment?: NullableOption<BaseEndUserNotification>;
    // Training reminder details.
    trainingReminder?: NullableOption<TrainingReminderNotification>;
}
export interface TrainingReminderNotification extends BaseEndUserNotification {
    /**
     * Configurable frequency for the reminder email introduced during simulation creation. Possible values are: unknown,
     * weekly, biWeekly, unknownFutureValue.
     */
    deliveryFrequency?: NullableOption<NotificationDeliveryFrequency>;
}
export interface UserSimulationEventInfo {
    /**
     * Browser information from where the simulation event was initiated by a user in an attack simulation and training
     * campaign.
     */
    browser?: NullableOption<string>;
    // Date and time of the simulation event by a user in an attack simulation and training campaign.
    eventDateTime?: NullableOption<string>;
    // Name of the simulation event by a user in an attack simulation and training campaign.
    eventName?: NullableOption<string>;
    // IP address from where the simulation event was initiated by a user in an attack simulation and training campaign.
    ipAddress?: NullableOption<string>;
    /**
     * The operating system, platform, and device details from where the simulation event was initiated by a user in an attack
     * simulation and training campaign.
     */
    osPlatformDeviceDetails?: NullableOption<string>;
}
export interface UserTrainingEventInfo {
    // Display name of the training.
    displayName?: NullableOption<string>;
    /**
     * Latest status of the training assigned to the user. Possible values are: unknown, assigned, inProgress, completed,
     * overdue, unknownFutureValue.
     */
    latestTrainingStatus?: NullableOption<TrainingStatus>;
    // Event details of the training when it was assigned to the user.
    trainingAssignedProperties?: NullableOption<UserTrainingContentEventInfo>;
    // Event details of the training when it was completed by the user.
    trainingCompletedProperties?: NullableOption<UserTrainingContentEventInfo>;
    // Event details of the training when it was updated/in-progress by the user.
    trainingUpdatedProperties?: NullableOption<UserTrainingContentEventInfo>;
}
export interface UserTrainingContentEventInfo {
    // Browser of the user from where the training event was generated.
    browser?: NullableOption<string>;
    // Date and time of the training content playback by the user.
    contentDateTime?: NullableOption<string>;
    // IP address of the user for the training event.
    ipAddress?: NullableOption<string>;
    // The operating system, platform, and device details of the user for the training event.
    osPlatformDeviceDetails?: NullableOption<string>;
    // Potential improvement in the tenant security posture after completion of the training by the user.
    potentialScoreImpact?: NullableOption<number>;
}
export interface AlertDetection {
    detectionType?: NullableOption<string>;
    method?: NullableOption<string>;
    name?: NullableOption<string>;
}
export interface AlertHistoryState {
    appId?: NullableOption<string>;
    assignedTo?: NullableOption<string>;
    comments?: NullableOption<string[]>;
    feedback?: NullableOption<AlertFeedback>;
    status?: NullableOption<AlertStatus>;
    updatedDateTime?: NullableOption<string>;
    user?: NullableOption<string>;
}
export interface AlertTrigger {
    // Name of the property serving as a detection trigger.
    name?: NullableOption<string>;
    // Type of the property in the key:value pair for interpretation. For example, String, Boolean etc.
    type?: NullableOption<string>;
    // Value of the property serving as a detection trigger.
    value?: NullableOption<string>;
}
export interface AverageComparativeScore {
    // Average score within specified basis.
    averageScore?: NullableOption<number>;
    // Scope type. The possible values are: AllTenants, TotalSeats, IndustryTypes.
    basis?: NullableOption<string>;
}
export interface CertificationControl {
    // Certification control name
    name?: NullableOption<string>;
    // URL for the Microsoft Service Trust Portal
    url?: NullableOption<string>;
}
export interface CloudAppSecurityState {
    // Destination IP Address of the connection to the cloud application/service.
    destinationServiceIp?: NullableOption<string>;
    // Cloud application/service name (for example 'Salesforce', 'DropBox', etc.).
    destinationServiceName?: NullableOption<string>;
    /**
     * Provider-generated/calculated risk score of the Cloud Application/Service. Recommended value range of 0-1, which
     * equates to a percentage.
     */
    riskScore?: NullableOption<string>;
}
export interface ComplianceInformation {
    // Collection of the certification controls associated with the certification.
    certificationControls?: NullableOption<CertificationControl[]>;
    // The name of the compliance certification, for example, ISO 27018:2014, GDPR, FedRAMP, and NIST 800-171.
    certificationName?: NullableOption<string>;
}
export interface ControlScore {
    // Control action category (Identity, Data, Device, Apps, Infrastructure).
    controlCategory?: NullableOption<string>;
    // Control unique name.
    controlName?: NullableOption<string>;
    // Description of the control.
    description?: NullableOption<string>;
    // Tenant achieved score for the control (it varies day by day depending on tenant operations on the control).
    score?: NullableOption<number>;
}
export interface FileHash {
    // File hash type. Possible values are: unknown, sha1, sha256, md5, authenticodeHash256, lsHash, ctph, peSha1, peSha256.
    hashType?: NullableOption<FileHashType>;
    // Value of the file hash.
    hashValue?: NullableOption<string>;
}
export interface FileSecurityState {
    // Complex type containing file hashes (cryptographic and location-sensitive).
    fileHash?: NullableOption<FileHash>;
    // File name (without path).
    name?: NullableOption<string>;
    // Full file path of the file/imageFile.
    path?: NullableOption<string>;
    /**
     * Provider generated/calculated risk score of the alert file. Recommended value range of 0-1, which equates to a
     * percentage.
     */
    riskScore?: NullableOption<string>;
}
export interface HostSecurityState {
    // Host FQDN (Fully Qualified Domain Name) (for example, machine.company.com).
    fqdn?: NullableOption<string>;
    isAzureAdJoined?: NullableOption<boolean>;
    isAzureAdRegistered?: NullableOption<boolean>;
    // True if the host is domain joined to an on-premises Active Directory domain.
    isHybridAzureDomainJoined?: NullableOption<boolean>;
    // The local host name, without the DNS domain name.
    netBiosName?: NullableOption<string>;
    // Host Operating System. (For example, Windows 10, macOS, RHEL, etc.).
    os?: NullableOption<string>;
    // Private (not routable) IPv4 or IPv6 address (see RFC 1918) at the time of the alert.
    privateIpAddress?: NullableOption<string>;
    // Publicly routable IPv4 or IPv6 address (see RFC 1918) at time of the alert.
    publicIpAddress?: NullableOption<string>;
    // Provider-generated/calculated risk score of the host. Recommended value range of 0-1, which equates to a percentage.
    riskScore?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InvestigationSecurityState {
    name?: NullableOption<string>;
    status?: NullableOption<string>;
}
export interface MalwareState {
    // Provider-generated malware category (for example, trojan, ransomware, etc.).
    category?: NullableOption<string>;
    // Provider-generated malware family (for example, 'wannacry,' 'notpetya,' etc.).
    family?: NullableOption<string>;
    // Provider-generated malware variant name (for example, Trojan:Win32/Powessere.H).
    name?: NullableOption<string>;
    // Provider-determined severity of this malware.
    severity?: NullableOption<string>;
    /**
     * Indicates whether the detected file (malware/vulnerability) was running at the time of detection or was detected at
     * rest on the disk.
     */
    wasRunning?: NullableOption<boolean>;
}
export interface MessageSecurityState {
    connectingIP?: NullableOption<string>;
    deliveryAction?: NullableOption<string>;
    deliveryLocation?: NullableOption<string>;
    directionality?: NullableOption<string>;
    internetMessageId?: NullableOption<string>;
    messageFingerprint?: NullableOption<string>;
    messageReceivedDateTime?: NullableOption<string>;
    messageSubject?: NullableOption<string>;
    networkMessageId?: NullableOption<string>;
}
export interface NetworkConnection {
    // Name of the application managing the network connection (for example, Facebook or SMTP).
    applicationName?: NullableOption<string>;
    // Destination IP address (of the network connection).
    destinationAddress?: NullableOption<string>;
    // Destination domain portion of the destination URL. (for example 'www.contoso.com').
    destinationDomain?: NullableOption<string>;
    // Location (by IP address mapping) associated with the destination of a network connection.
    destinationLocation?: NullableOption<string>;
    // Destination port (of the network connection).
    destinationPort?: NullableOption<string>;
    // Network connection URL/URI string - excluding parameters. (for example 'www.contoso.com/products/default.html')
    destinationUrl?: NullableOption<string>;
    // Network connection direction. Possible values are: unknown, inbound, outbound.
    direction?: NullableOption<ConnectionDirection>;
    /**
     * Date when the destination domain was registered. The Timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    domainRegisteredDateTime?: NullableOption<string>;
    /**
     * The local DNS name resolution as it appears in the host's local DNS cache (for example, in case the 'hosts' file was
     * tampered with).
     */
    localDnsName?: NullableOption<string>;
    // Network Address Translation destination IP address.
    natDestinationAddress?: NullableOption<string>;
    // Network Address Translation destination port.
    natDestinationPort?: NullableOption<string>;
    // Network Address Translation source IP address.
    natSourceAddress?: NullableOption<string>;
    // Network Address Translation source port.
    natSourcePort?: NullableOption<string>;
    /**
     * Network protocol. Possible values are: unknown, ip, icmp, igmp, ggp, ipv4, tcp, pup, udp, idp, ipv6, ipv6RoutingHeader,
     * ipv6FragmentHeader, ipSecEncapsulatingSecurityPayload, ipSecAuthenticationHeader, icmpV6, ipv6NoNextHeader,
     * ipv6DestinationOptions, nd, raw, ipx, spx, spxII.
     */
    protocol?: NullableOption<SecurityNetworkProtocol>;
    /**
     * Provider generated/calculated risk score of the network connection. Recommended value range of 0-1, which equates to a
     * percentage.
     */
    riskScore?: NullableOption<string>;
    // Source (i.e. origin) IP address (of the network connection).
    sourceAddress?: NullableOption<string>;
    // Location (by IP address mapping) associated with the source of a network connection.
    sourceLocation?: NullableOption<string>;
    // Source (i.e. origin) IP port (of the network connection).
    sourcePort?: NullableOption<string>;
    // Network connection status. Possible values are: unknown, attempted, succeeded, blocked, failed.
    status?: NullableOption<ConnectionStatus>;
    // Parameters (suffix) of the destination URL.
    urlParameters?: NullableOption<string>;
}
export interface Process {
    // User account identifier (user account context the process ran under) for example, AccountName, SID, and so on.
    accountName?: NullableOption<string>;
    // The full process invocation commandline including all parameters.
    commandLine?: NullableOption<string>;
    /**
     * Time at which the process was started. The Timestamp type represents date and time information using ISO 8601 format
     * and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    // Complex type containing file hashes (cryptographic and location-sensitive).
    fileHash?: NullableOption<FileHash>;
    // The integrity level of the process. Possible values are: unknown, untrusted, low, medium, high, system.
    integrityLevel?: NullableOption<ProcessIntegrityLevel>;
    // True if the process is elevated.
    isElevated?: NullableOption<boolean>;
    // The name of the process' Image file.
    name?: NullableOption<string>;
    /**
     * DateTime at which the parent process was started. The Timestamp type represents date and time information using ISO
     * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    parentProcessCreatedDateTime?: NullableOption<string>;
    // The Process ID (PID) of the parent process.
    parentProcessId?: NullableOption<number>;
    // The name of the image file of the parent process.
    parentProcessName?: NullableOption<string>;
    // Full path, including filename.
    path?: NullableOption<string>;
    // The Process ID (PID) of the process.
    processId?: NullableOption<number>;
}
export interface RegistryKeyState {
    /**
     * A Windows registry hive : HKEYCURRENTCONFIG HKEYCURRENTUSER HKEYLOCALMACHINE/SAM HKEYLOCALMACHINE/Security
     * HKEYLOCALMACHINE/Software HKEYLOCALMACHINE/System HKEY_USERS/.Default. Possible values are: unknown, currentConfig,
     * currentUser, localMachineSam, localMachineSecurity, localMachineSoftware, localMachineSystem, usersDefault.
     */
    hive?: NullableOption<RegistryHive>;
    // Current (i.e. changed) registry key (excludes HIVE).
    key?: NullableOption<string>;
    // Previous (i.e. before changed) registry key (excludes HIVE).
    oldKey?: NullableOption<string>;
    // Previous (i.e. before changed) registry key value data (contents).
    oldValueData?: NullableOption<string>;
    // Previous (i.e. before changed) registry key value name.
    oldValueName?: NullableOption<string>;
    // Operation that changed the registry key name and/or value. Possible values are: unknown, create, modify, delete.
    operation?: NullableOption<RegistryOperation>;
    /**
     * Process ID (PID) of the process that modified the registry key (process details will appear in the alert 'processes'
     * collection).
     */
    processId?: NullableOption<number>;
    // Current (i.e. changed) registry key value data (contents).
    valueData?: NullableOption<string>;
    // Current (i.e. changed) registry key value name
    valueName?: NullableOption<string>;
    /**
     * Registry key value type REGBINARY REGDWORD REGDWORDLITTLEENDIAN REGDWORDBIGENDIANREGEXPANDSZ REGLINK REGMULTISZ REGNONE
     * REGQWORD REGQWORDLITTLEENDIAN REG_SZ Possible values are: unknown, binary, dword, dwordLittleEndian, dwordBigEndian,
     * expandSz, link, multiSz, none, qword, qwordlittleEndian, sz.
     */
    valueType?: NullableOption<RegistryValueType>;
}
export interface SecureScoreControlStateUpdate {
    // Assigns the control to the user who will take the action.
    assignedTo?: NullableOption<string>;
    // Provides optional comment about the control.
    comment?: NullableOption<string>;
    // State of the control, which can be modified via a PATCH command (for example, ignored, thirdParty).
    state?: NullableOption<string>;
    // ID of the user who updated tenant state.
    updatedBy?: NullableOption<string>;
    // Time at which the control state was updated.
    updatedDateTime?: NullableOption<string>;
}
export interface SecurityResource {
    // Name of the resource that is related to current alert. Required.
    resource?: NullableOption<string>;
    // Represents type of security resources related to an alert. Possible values are: attacked, related.
    resourceType?: NullableOption<SecurityResourceType>;
}
export interface SecurityVendorInformation {
    // Specific provider (product/service - not vendor company); for example, WindowsDefenderATP.
    provider?: NullableOption<string>;
    // Version of the provider or subprovider, if it exists, that generated the alert. Required
    providerVersion?: NullableOption<string>;
    // Specific subprovider (under aggregating provider); for example, WindowsDefenderATP.SmartScreen.
    subProvider?: NullableOption<string>;
    // Name of the alert vendor (for example, Microsoft, Dell, FireEye). Required
    vendor?: NullableOption<string>;
}
export interface UriClickSecurityState {
    clickAction?: NullableOption<string>;
    clickDateTime?: NullableOption<string>;
    id?: NullableOption<string>;
    sourceId?: NullableOption<string>;
    uriDomain?: NullableOption<string>;
    verdict?: NullableOption<string>;
}
export interface UserSecurityState {
    // AAD User object identifier (GUID) - represents the physical/multi-account user entity.
    aadUserId?: NullableOption<string>;
    // Account name of user account (without Active Directory domain or DNS domain) - (also called mailNickName).
    accountName?: NullableOption<string>;
    // NetBIOS/Active Directory domain of user account (that is, domain/account format).
    domainName?: NullableOption<string>;
    // For email-related alerts - user account's email 'role'. Possible values are: unknown, sender, recipient.
    emailRole?: NullableOption<EmailRole>;
    // Indicates whether the user logged on through a VPN.
    isVpn?: NullableOption<boolean>;
    /**
     * Time at which the sign-in occurred. The Timestamp type represents date and time information using ISO 8601 format and
     * is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    logonDateTime?: NullableOption<string>;
    // User sign-in ID.
    logonId?: NullableOption<string>;
    // IP Address the sign-in request originated from.
    logonIp?: NullableOption<string>;
    // Location (by IP address mapping) associated with a user sign-in event by this user.
    logonLocation?: NullableOption<string>;
    // Method of user sign in. Possible values are: unknown, interactive, remoteInteractive, network, batch, service.
    logonType?: NullableOption<LogonType>;
    // Active Directory (on-premises) Security Identifier (SID) of the user.
    onPremisesSecurityIdentifier?: NullableOption<string>;
    /**
     * Provider-generated/calculated risk score of the user account. Recommended value range of 0-1, which equates to a
     * percentage.
     */
    riskScore?: NullableOption<string>;
    /**
     * User account type (group membership), per Windows definition. Possible values are: unknown, standard, power,
     * administrator.
     */
    userAccountType?: NullableOption<UserAccountSecurityType>;
    // User sign-in name - internet format: (user account name)@(user account DNS domain name).
    userPrincipalName?: NullableOption<string>;
}
export interface VulnerabilityState {
    // Common Vulnerabilities and Exposures (CVE) for the vulnerability.
    cve?: NullableOption<string>;
    // Base Common Vulnerability Scoring System (CVSS) severity score for this vulnerability.
    severity?: NullableOption<string>;
    /**
     * Indicates whether the detected vulnerability (file) was running at the time of detection or was the file detected at
     * rest on the disk.
     */
    wasRunning?: NullableOption<boolean>;
}
// tslint:disable-next-line: no-empty-interface
export interface ParticipantJoiningResponse {}
// tslint:disable-next-line: no-empty-interface
export interface AcceptJoinResponse extends ParticipantJoiningResponse {}
// tslint:disable-next-line: no-empty-interface
export interface MediaConfig {}
export interface AppHostedMediaConfig extends MediaConfig {
    // The media configuration blob generated by smart media agent.
    blob?: NullableOption<string>;
}
export interface AttendanceInterval {
    // Duration of the meeting interval in seconds; that is, the difference between joinDateTime and leaveDateTime.
    durationInSeconds?: NullableOption<number>;
    // The time the attendee joined in UTC.
    joinDateTime?: NullableOption<string>;
    // The time the attendee left in UTC.
    leaveDateTime?: NullableOption<string>;
}
export interface AudioConferencing {
    // The conference id of the online meeting.
    conferenceId?: NullableOption<string>;
    // A URL to the externally-accessible web page that contains dial-in information.
    dialinUrl?: NullableOption<string>;
    tollFreeNumber?: NullableOption<string>;
    // List of toll-free numbers that are displayed in the meeting invite.
    tollFreeNumbers?: NullableOption<string[]>;
    tollNumber?: NullableOption<string>;
    // List of toll numbers that are displayed in the meeting invite.
    tollNumbers?: NullableOption<string[]>;
}
export interface AzureCommunicationServicesUserIdentity extends Identity {
    // The Azure Communication Services resource ID associated with the user.
    azureCommunicationServicesResourceId?: NullableOption<string>;
}
export interface BroadcastMeetingCaptionSettings {
    // Indicates whether captions are enabled for this Teams live event.
    isCaptionEnabled?: NullableOption<boolean>;
    // The spoken language.
    spokenLanguage?: NullableOption<string>;
    // The translation languages (choose up to 6).
    translationLanguages?: NullableOption<string[]>;
}
export interface CallMediaState {
    // The audio media state. Possible values are: active, inactive, unknownFutureValue.
    audio?: NullableOption<MediaState>;
}
export interface CallOptions {
    // Indicates whether to hide the app after the call is escalated.
    hideBotAfterEscalation?: NullableOption<boolean>;
    // Indicates whether content sharing notifications should be enabled for the call.
    isContentSharingNotificationEnabled?: NullableOption<boolean>;
}
export interface CallRoute {
    // The identity that was resolved to in the call.
    final?: IdentitySet;
    // The identity that was originally used in the call.
    original?: IdentitySet;
    // Possible values are: forwarded, lookup, selfFork.
    routingType?: RoutingType;
}
export interface CallTranscriptionInfo {
    // The state modified time in UTC.
    lastModifiedDateTime?: NullableOption<string>;
    // Possible values are: notStarted, active, inactive.
    state?: CallTranscriptionState;
}
export interface ChatInfo {
    // The unique identifier of a message in a Microsoft Teams channel.
    messageId?: NullableOption<string>;
    // The ID of the reply message.
    replyChainMessageId?: NullableOption<string>;
    // The unique identifier for a thread in Microsoft Teams.
    threadId?: NullableOption<string>;
}
export interface CommsNotification {
    // Possible values are: created, updated, deleted.
    changeType?: ChangeType;
    // URI of the resource that was changed.
    resourceUrl?: string;
}
export interface CommsNotifications {
    // The notification of a change in the resource.
    value?: NullableOption<CommsNotification[]>;
}
export interface CommunicationsApplicationIdentity extends Identity {
    // First-party Microsoft application that presents this identity.
    applicationType?: NullableOption<string>;
    // True if the participant shouldn't be shown in other participants' rosters.
    hidden?: NullableOption<boolean>;
}
export interface CommunicationsApplicationInstanceIdentity extends Identity {
    // True if the participant shouldn't be shown in other participants' rosters.
    hidden?: NullableOption<boolean>;
    // The tenant ID of the application.
    tenantId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface CommunicationsEncryptedIdentity extends Identity {}
// tslint:disable-next-line: no-empty-interface
export interface CommunicationsGuestIdentity extends Identity {}
export interface CommunicationsIdentitySet extends IdentitySet {
    // The application instance associated with this action.
    applicationInstance?: NullableOption<Identity>;
    // An identity the participant would like to present itself as to the other participants in the call.
    assertedIdentity?: NullableOption<Identity>;
    // The Azure Communication Services user associated with this action.
    azureCommunicationServicesUser?: NullableOption<Identity>;
    // The encrypted user associated with this action.
    encrypted?: NullableOption<Identity>;
    /**
     * Type of endpoint that the participant uses. Possible values are: default, voicemail, skypeForBusiness,
     * skypeForBusinessVoipPhone, unknownFutureValue.
     */
    endpointType?: NullableOption<EndpointType>;
    // The guest user associated with this action.
    guest?: NullableOption<Identity>;
    // The Skype for Business on-premises user associated with this action.
    onPremises?: NullableOption<Identity>;
    // The phone user associated with this action.
    phone?: NullableOption<Identity>;
}
// tslint:disable-next-line: no-empty-interface
export interface CommunicationsPhoneIdentity extends Identity {}
export interface CommunicationsUserIdentity extends Identity {
    // The user's tenant ID.
    tenantId?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IncomingCallOptions extends CallOptions {}
// tslint:disable-next-line: interface-name
export interface IncomingContext {
    // The ID of the participant that is under observation. Read-only.
    observedParticipantId?: NullableOption<string>;
    // The identity that the call is happening on behalf of.
    onBehalfOf?: NullableOption<IdentitySet>;
    // The ID of the participant that triggered the incoming call. Read-only.
    sourceParticipantId?: NullableOption<string>;
    // The identity that transferred the call.
    transferor?: NullableOption<IdentitySet>;
}
// tslint:disable-next-line: interface-name
export interface InvitationParticipantInfo {
    // Optional. Whether to hide the participant from the roster.
    hidden?: NullableOption<boolean>;
    // The identitySet associated with this invitation.
    identity?: IdentitySet;
    // Optional. The ID of the target participant.
    participantId?: NullableOption<string>;
    // Optional. Whether to remove them from the main mixer.
    removeFromDefaultAudioRoutingGroup?: NullableOption<boolean>;
    /**
     * Optional. The call which the target identity is currently a part of. For peer-to-peer case, the call will be dropped
     * once the participant is added successfully.
     */
    replacesCallId?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InviteNewBotResponse extends ParticipantJoiningResponse {
    // URI to receive new incoming call notification.
    inviteUri?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface MeetingInfo {}
export interface JoinMeetingIdMeetingInfo extends MeetingInfo {
    // The ID used to join the meeting.
    joinMeetingId?: string;
    // The passcode used to join the meeting. Optional.
    passcode?: NullableOption<string>;
}
export interface JoinMeetingIdSettings {
    // Indicates whether a passcode is required to join a meeting when using joinMeetingId. Optional.
    isPasscodeRequired?: NullableOption<boolean>;
    // The meeting ID to be used to join a meeting. Optional. Read-only.
    joinMeetingId?: NullableOption<string>;
    // The passcode to join a meeting. Optional. Read-only.
    passcode?: NullableOption<string>;
}
export interface MediaInfo {
    // Optional. Used to uniquely identity the resource. If passed in, the prompt uri is against this resourceId as a key.
    resourceId?: NullableOption<string>;
    /**
     * Path to the prompt that will be played. Currently supports only Wave file (.wav) format, single-channel, 16-bit samples
     * with a 16,000 (16 KHz) sampling rate.
     */
    uri?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface Prompt {}
export interface MediaPrompt extends Prompt {
    // The media information
    mediaInfo?: MediaInfo;
}
export interface MediaStream {
    // The direction. The possible values are inactive, sendOnly, receiveOnly, sendReceive.
    direction?: MediaDirection;
    // The media stream label.
    label?: NullableOption<string>;
    // The media type. The possible values are unknown, audio, video, videoBasedScreenSharing, data.
    mediaType?: Modality;
    // If the media is muted by the server.
    serverMuted?: boolean;
    // The source ID.
    sourceId?: string;
}
export interface MeetingParticipantInfo {
    // Identity information of the participant.
    identity?: NullableOption<IdentitySet>;
    // Specifies the participant's role in the meeting.
    role?: NullableOption<OnlineMeetingRole>;
    // User principal name of the participant.
    upn?: NullableOption<string>;
}
export interface OnlineMeetingRestricted {
    /**
     * Specifies the reason shared content from this participant is disabled. Possible values are: watermarkProtection,
     * unknownFutureValue.
     */
    contentSharingDisabled?: NullableOption<OnlineMeetingContentSharingDisabledReason>;
    /**
     * Specifies the reason video from this participant is disabled. Possible values are: watermarkProtection,
     * unknownFutureValue.
     */
    videoDisabled?: NullableOption<OnlineMeetingVideoDisabledReason>;
}
export interface OrganizerMeetingInfo extends MeetingInfo {
    // The organizer Microsoft Entra identity.
    organizer?: IdentitySet;
}
// tslint:disable-next-line: no-empty-interface
export interface OutgoingCallOptions extends CallOptions {}
export interface ParticipantInfo {
    /**
     * The ISO 3166-1 Alpha-2 country code of the participant's best estimated physical location at the start of the call.
     * Read-only.
     */
    countryCode?: NullableOption<string>;
    /**
     * The type of endpoint the participant is using. Possible values are: default, skypeForBusiness, or
     * skypeForBusinessVoipPhone. Read-only.
     */
    endpointType?: NullableOption<EndpointType>;
    // The identitySet associated with this participant. Read-only.
    identity?: IdentitySet;
    // The language culture string. Read-only.
    languageId?: NullableOption<string>;
    // The participant ID of the participant. Read-only.
    participantId?: NullableOption<string>;
    /**
     * The home region of the participant. This can be a country, a continent, or a larger geographic region. This doesn't
     * change based on the participant's current physical location. Read-only.
     */
    region?: NullableOption<string>;
}
export interface PresenceStatusMessage {
    /**
     * Time in which the status message expires.If not provided, the status message doesn't expire.expiryDateTime.dateTime
     * shouldn't include time zone.expiryDateTime isn't available when you request the presence of another user.
     */
    expiryDateTime?: NullableOption<DateTimeTimeZone>;
    // Status message item. The only supported format currently is message.contentType = 'text'.
    message?: NullableOption<ItemBody>;
    /**
     * Time in which the status message was published.Read-only.publishedDateTime isn't available when you request the
     * presence of another user.
     */
    publishedDateTime?: NullableOption<string>;
}
export interface RecordingInfo {
    // The identities of the recording initiator.
    initiator?: NullableOption<IdentitySet>;
    // Possible values are: unknown, notRecording, recording, or failed.
    recordingStatus?: RecordingStatus;
}
export interface RejectJoinResponse extends ParticipantJoiningResponse {
    // The rejection reason. Possible values are None, Busy, and Forbidden.
    reason?: RejectReason;
}
export interface RemovedState {
    reason?: NullableOption<string>;
}
export interface ServiceHostedMediaConfig extends MediaConfig {
    // The list of media to pre-fetch.
    preFetchMedia?: NullableOption<MediaInfo[]>;
}
export interface TeleconferenceDeviceMediaQuality {
    // The average inbound stream network jitter.
    averageInboundJitter?: NullableOption<string>;
    // The average inbound stream packet loss rate in percentage (0-100). For example, 0.01 means 0.01%.
    averageInboundPacketLossRateInPercentage?: NullableOption<number>;
    // The average inbound stream network round trip delay.
    averageInboundRoundTripDelay?: NullableOption<string>;
    // The average outbound stream network jitter.
    averageOutboundJitter?: NullableOption<string>;
    // The average outbound stream packet loss rate in percentage (0-100). For example, 0.01 means 0.01%.
    averageOutboundPacketLossRateInPercentage?: NullableOption<number>;
    // The average outbound stream network round trip delay.
    averageOutboundRoundTripDelay?: NullableOption<string>;
    /**
     * The channel index of media. Indexing begins with 1. If a media session contains 3 video modalities, channel indexes
     * will be 1, 2, and 3.
     */
    channelIndex?: number;
    // The total number of the inbound packets.
    inboundPackets?: NullableOption<number>;
    // the local IP address for the media session.
    localIPAddress?: NullableOption<string>;
    // The local media port.
    localPort?: NullableOption<number>;
    // The maximum inbound stream network jitter.
    maximumInboundJitter?: NullableOption<string>;
    // The maximum inbound stream packet loss rate in percentage (0-100). For example, 0.01 means 0.01%.
    maximumInboundPacketLossRateInPercentage?: NullableOption<number>;
    // The maximum inbound stream network round trip delay.
    maximumInboundRoundTripDelay?: NullableOption<string>;
    // The maximum outbound stream network jitter.
    maximumOutboundJitter?: NullableOption<string>;
    // The maximum outbound stream packet loss rate in percentage (0-100). For example, 0.01 means 0.01%.
    maximumOutboundPacketLossRateInPercentage?: NullableOption<number>;
    // The maximum outbound stream network round trip delay.
    maximumOutboundRoundTripDelay?: NullableOption<string>;
    /**
     * The total modality duration. If the media enabled and disabled multiple times, MediaDuration will the summation of all
     * of the durations.
     */
    mediaDuration?: NullableOption<string>;
    // The network link speed in bytes
    networkLinkSpeedInBytes?: NullableOption<number>;
    // The total number of the outbound packets.
    outboundPackets?: NullableOption<number>;
    // The remote IP address for the media session.
    remoteIPAddress?: NullableOption<string>;
    // The remote media port.
    remotePort?: NullableOption<number>;
}
// tslint:disable-next-line: no-empty-interface
export interface TeleconferenceDeviceAudioQuality extends TeleconferenceDeviceMediaQuality {}
export interface TeleconferenceDeviceQuality {
    /**
     * A unique identifier for all the participant calls in a conference or a unique identifier for two participant calls in
     * P2P call. This needs to be copied over from Microsoft.Graph.Call.CallChainId.
     */
    callChainId?: string;
    // A geo-region where the service is deployed, such as ProdNoam.
    cloudServiceDeploymentEnvironment?: NullableOption<string>;
    // A unique deployment identifier assigned by Azure.
    cloudServiceDeploymentId?: NullableOption<string>;
    // The Azure deployed cloud service instance name, such as FrontEndIN3.
    cloudServiceInstanceName?: NullableOption<string>;
    // The Azure deployed cloud service name, such as contoso.cloudapp.net.
    cloudServiceName?: NullableOption<string>;
    // Any additional description, such as VTC Bldg 30/21.
    deviceDescription?: string;
    // The user media agent name, such as Cisco SX80.
    deviceName?: string;
    /**
     * A unique identifier for a specific media leg of a participant in a conference. One participant can have multiple media
     * leg identifiers if retargeting happens. CVI partner assigns this value.
     */
    mediaLegId?: string;
    /**
     * The list of media qualities in a media session (call), such as audio quality, video quality, and/or screen sharing
     * quality.
     */
    mediaQualityList?: TeleconferenceDeviceMediaQuality[];
    /**
     * A unique identifier for a specific participant in a conference. The CVI partner needs to copy over Call.MyParticipantId
     * to this property.
     */
    participantId?: string;
}
export interface TeleconferenceDeviceVideoQuality extends TeleconferenceDeviceMediaQuality {
    // The average inbound stream video bit rate per second.
    averageInboundBitRate?: NullableOption<number>;
    // The average inbound stream video frame rate per second.
    averageInboundFrameRate?: NullableOption<number>;
    // The average outbound stream video bit rate per second.
    averageOutboundBitRate?: NullableOption<number>;
    // The average outbound stream video frame rate per second.
    averageOutboundFrameRate?: NullableOption<number>;
}
// tslint:disable-next-line: no-empty-interface
export interface TeleconferenceDeviceScreenSharingQuality extends TeleconferenceDeviceVideoQuality {}
export interface TokenMeetingInfo extends MeetingInfo {
    // The token used to join the call.
    token?: string;
}
export interface ToneInfo {
    // An incremental identifier used for ordering DTMF events.
    sequenceId?: number;
    /**
     * Possible values are: tone0, tone1, tone2, tone3, tone4, tone5, tone6, tone7, tone8, tone9, star, pound, a, b, c, d,
     * flash.
     */
    tone?: Tone;
}
export interface VirtualEventRegistrationQuestionAnswer {
    booleanValue?: NullableOption<boolean>;
    displayName?: NullableOption<string>;
    multiChoiceValues?: NullableOption<string[]>;
    questionId?: NullableOption<string>;
    value?: NullableOption<string>;
}
export interface PasswordResetResponse {
    // The Microsoft Entra ID-generated password.
    newPassword?: NullableOption<string>;
}
export interface ChangeNotification {
    /**
     * Indicates the type of change that will raise the change notification. The supported values are: created, updated,
     * deleted. Required.
     */
    changeType?: ChangeType;
    /**
     * Value of the clientState property sent in the subscription request (if any). The maximum length is 255 characters. The
     * client can check whether the change notification came from the service by comparing the values of the clientState
     * property. The value of the clientState property sent with the subscription is compared with the value of the
     * clientState property received with each change notification. Optional.
     */
    clientState?: NullableOption<string>;
    /**
     * (Preview) Encrypted content attached with the change notification. Only provided if encryptionCertificate and
     * includeResourceData were defined during the subscription request and if the resource supports it. Optional.
     */
    encryptedContent?: NullableOption<ChangeNotificationEncryptedContent>;
    // Unique ID for the notification. Optional.
    id?: NullableOption<string>;
    /**
     * The type of lifecycle notification if the current notification is a lifecycle notification. Optional. Supported values
     * are missed, subscriptionRemoved, reauthorizationRequired. Optional.
     */
    lifecycleEvent?: NullableOption<LifecycleEventType>;
    // The URI of the resource that emitted the change notification relative to https://graph.microsoft.com. Required.
    resource?: string;
    // The content of this property depends on the type of resource being subscribed to. Optional.
    resourceData?: NullableOption<ResourceData>;
    // The expiration time for the subscription. Required.
    subscriptionExpirationDateTime?: string;
    // The unique identifier of the subscription that generated the notification.Required.
    subscriptionId?: string;
    // The unique identifier of the tenant from which the change notification originated. Required.
    tenantId?: string;
}
export interface ChangeNotificationEncryptedContent {
    /**
     * Base64-encoded encrypted data that produces a full resource respresented as JSON. The data has been encrypted with the
     * provided dataKey using an AES/CBC/PKCS5PADDING cipher suite.
     */
    data?: string;
    /**
     * Base64-encoded symmetric key generated by Microsoft Graph to encrypt the data value and to generate the data signature.
     * This key is encrypted with the certificate public key that was provided during the subscription. It must be decrypted
     * with the certificate private key before it can be used to decrypt the data or verify the signature. This key has been
     * encrypted with the following cipher suite: RSA/ECB/OAEPWithSHA1AndMGF1Padding.
     */
    dataKey?: string;
    // Base64-encoded HMAC-SHA256 hash of the data for validation purposes.
    dataSignature?: string;
    // ID of the certificate used to encrypt the dataKey.
    encryptionCertificateId?: string;
    // Hexadecimal representation of the thumbprint of the certificate used to encrypt the dataKey.
    encryptionCertificateThumbprint?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface ResourceData {}
export interface ChangeNotificationCollection {
    /**
     * Contains an array of JSON web tokens (JWT) generated by Microsoft Graph for the application to validate the origin of
     * the notifications. Microsoft Graph generates a single token for each distinct app and tenant pair for an item if it
     * exists in the value array. Keep in mind that notifications can contain a mix of items for various apps and tenants that
     * subscribed using the same notification URL. Only provided for change notifications with resource data. Optional.
     */
    validationTokens?: NullableOption<string[]>;
    // The set of notifications being sent to the notification URL. Required.
    value?: ChangeNotification[];
}
export interface ActionResultPart {
    // The error that occurred, if any, during the course of the bulk operation.
    error?: NullableOption<PublicError>;
}
export interface AadUserConversationMemberResult extends ActionResultPart {
    userId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface TeamworkNotificationRecipient {}
export interface AadUserNotificationRecipient extends TeamworkNotificationRecipient {
    // Microsoft Entra user identifier. Use the List users method to get this ID.
    userId?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface EventMessageDetail {}
export interface CallEndedEventMessageDetail extends EventMessageDetail {
    // Duration of the call.
    callDuration?: NullableOption<string>;
    // Represents the call event type. Possible values are: call, meeting, screenShare, unknownFutureValue.
    callEventType?: NullableOption<TeamworkCallEventType>;
    // Unique identifier of the call.
    callId?: NullableOption<string>;
    // List of call participants.
    callParticipants?: NullableOption<CallParticipantInfo[]>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface CallParticipantInfo {
    // Identity of the call participant.
    participant?: NullableOption<IdentitySet>;
}
export interface CallRecordingEventMessageDetail extends EventMessageDetail {
    // Unique identifier of the call.
    callId?: NullableOption<string>;
    // Display name for the call recording.
    callRecordingDisplayName?: NullableOption<string>;
    // Duration of the call recording.
    callRecordingDuration?: NullableOption<string>;
    // Status of the call recording. Possible values are: success, failure, initial, chunkFinished, unknownFutureValue.
    callRecordingStatus?: NullableOption<CallRecordingStatus>;
    // Call recording URL.
    callRecordingUrl?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Organizer of the meeting.
    meetingOrganizer?: NullableOption<IdentitySet>;
}
export interface CallStartedEventMessageDetail extends EventMessageDetail {
    // Represents the call event type. Possible values are: call, meeting, screenShare, unknownFutureValue.
    callEventType?: NullableOption<TeamworkCallEventType>;
    // Unique identifier of the call.
    callId?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface CallTranscriptEventMessageDetail extends EventMessageDetail {
    // Unique identifier of the call.
    callId?: NullableOption<string>;
    // Unique identifier for a call transcript.
    callTranscriptICalUid?: NullableOption<string>;
    // The organizer of the meeting.
    meetingOrganizer?: NullableOption<IdentitySet>;
}
export interface ChannelAddedEventMessageDetail extends EventMessageDetail {
    // Display name of the channel.
    channelDisplayName?: NullableOption<string>;
    // Unique identifier of the channel.
    channelId?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface ChannelDeletedEventMessageDetail extends EventMessageDetail {
    // Display name of the channel.
    channelDisplayName?: NullableOption<string>;
    // Unique identifier of the channel.
    channelId?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface ChannelDescriptionUpdatedEventMessageDetail extends EventMessageDetail {
    // The updated description of the channel.
    channelDescription?: NullableOption<string>;
    // Unique identifier of the channel.
    channelId?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface ChannelIdentity {
    // The identity of the channel in which the message was posted.
    channelId?: NullableOption<string>;
    // The identity of the team in which the message was posted.
    teamId?: NullableOption<string>;
}
export interface ChannelMembersNotificationRecipient extends TeamworkNotificationRecipient {
    // The unique identifier for the channel whose members should receive the notification.
    channelId?: string;
    // The unique identifier for the team under which the channel resides.
    teamId?: string;
}
export interface ChannelRenamedEventMessageDetail extends EventMessageDetail {
    // The updated name of the channel.
    channelDisplayName?: NullableOption<string>;
    // Unique identifier of the channel.
    channelId?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface ChannelSetAsFavoriteByDefaultEventMessageDetail extends EventMessageDetail {
    // Unique identifier of the channel.
    channelId?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface ChannelSummary {
    // Count of guests in a channel.
    guestsCount?: NullableOption<number>;
    // Indicates whether external members are included on the channel.
    hasMembersFromOtherTenants?: NullableOption<boolean>;
    // Count of members in a channel.
    membersCount?: NullableOption<number>;
    // Count of owners in a channel.
    ownersCount?: NullableOption<number>;
}
export interface ChannelUnsetAsFavoriteByDefaultEventMessageDetail extends EventMessageDetail {
    // Unique identifier of the channel.
    channelId?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface ChatMembersNotificationRecipient extends TeamworkNotificationRecipient {
    // The unique identifier for the chat whose members should receive the notifications.
    chatId?: string;
}
export interface ChatMessageAttachment {
    /**
     * The content of the attachment. If the attachment is a rich card, set the property to the rich card object. This
     * property and contentUrl are mutually exclusive.
     */
    content?: NullableOption<string>;
    /**
     * The media type of the content attachment. It can have the following values: reference: Attachment is a link to another
     * file. Populate the contentURL with the link to the object.Any contentTypes supported by the Bot Framework's Attachment
     * objectapplication/vnd.microsoft.card.codesnippet: A code snippet. application/vnd.microsoft.card.announcement: An
     * announcement header.
     */
    contentType?: NullableOption<string>;
    // URL for the content of the attachment. Supported protocols: http, https, file and data.
    contentUrl?: NullableOption<string>;
    // Read-only. Unique id of the attachment.
    id?: NullableOption<string>;
    // Name of the attachment.
    name?: NullableOption<string>;
    /**
     * The ID of the Teams app that is associated with the attachment. The property is specifically used to attribute a Teams
     * message card to the specified app.
     */
    teamsAppId?: NullableOption<string>;
    /**
     * URL to a thumbnail image that the channel can use if it supports using an alternative, smaller form of content or
     * contentUrl. For example, if you set contentType to application/word and set contentUrl to the location of the Word
     * document, you might include a thumbnail image that represents the document. The channel could display the thumbnail
     * image instead of the document. When the user clicks the image, the channel would open the document.
     */
    thumbnailUrl?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface ChatMessageFromIdentitySet extends IdentitySet {}
export interface ChatMessageHistoryItem {
    /**
     * The modification actions of a message item.The possible values are: reactionAdded, reactionRemoved, actionUndefined,
     * unknownFutureValue.
     */
    actions?: ChatMessageActions;
    // The date and time when the message was modified.
    modifiedDateTime?: string;
    // The reaction in the modified message.
    reaction?: NullableOption<ChatMessageReaction>;
}
export interface ChatMessageReaction {
    /**
     * The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example,
     * midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
     */
    createdDateTime?: string;
    // Supported values are like, angry, sad, laugh, heart, surprised.
    reactionType?: string;
    // The user who reacted to the message.
    user?: ChatMessageReactionIdentitySet;
}
export interface ChatMessageMention {
    /**
     * Index of an entity being mentioned in the specified chatMessage. Matches the {index} value in the corresponding
     * &amp;lt;at id='{index}'&amp;gt; tag in the message body.
     */
    id?: NullableOption<number>;
    // The entity (user, application, team, or channel) that was @mentioned.
    mentioned?: NullableOption<ChatMessageMentionedIdentitySet>;
    // String used to represent the mention. For example, a user's display name, a team name.
    mentionText?: NullableOption<string>;
}
export interface ChatMessageMentionedIdentitySet extends IdentitySet {
    // If present, represents a conversation (for example, team or channel) @mentioned in a message.
    conversation?: NullableOption<TeamworkConversationIdentity>;
}
export interface TeamworkConversationIdentity extends Identity {
    // Type of conversation. Possible values are: team, channel, chat, and unknownFutureValue.
    conversationIdentityType?: NullableOption<TeamworkConversationIdentityType>;
}
export interface ChatMessagePolicyViolation {
    /**
     * The action taken by the DLP provider on the message with sensitive content. Supported values are: NoneNotifySender --
     * Inform the sender of the violation but allow readers to read the message.BlockAccess -- Block readers from reading the
     * message.BlockAccessExternal -- Block users outside the organization from reading the message, while allowing users
     * within the organization to read the message.
     */
    dlpAction?: NullableOption<ChatMessagePolicyViolationDlpActionTypes>;
    // Justification text provided by the sender of the message when overriding a policy violation.
    justificationText?: NullableOption<string>;
    // Information to display to the message sender about why the message was flagged as a violation.
    policyTip?: NullableOption<ChatMessagePolicyViolationPolicyTip>;
    /**
     * Indicates the action taken by the user on a message blocked by the DLP provider. Supported values are:
     * NoneOverrideReportFalsePositiveWhen the DLP provider is updating the message for blocking sensitive content, userAction
     * isn't required.
     */
    userAction?: NullableOption<ChatMessagePolicyViolationUserActionTypes>;
    /**
     * Indicates what actions the sender may take in response to the policy violation. Supported values are:
     * NoneAllowFalsePositiveOverride -- Allows the sender to declare the policyViolation to be an error in the DLP app and
     * its rules, and allow readers to see the message again if the dlpAction hides it.AllowOverrideWithoutJustification --
     * Allows the sender to override the DLP violation and allow readers to see the message again if the dlpAction hides it,
     * without needing to provide an explanation for doing so. AllowOverrideWithJustification -- Allows the sender to override
     * the DLP violation and allow readers to see the message again if the dlpAction hides it, after providing an explanation
     * for doing so.AllowOverrideWithoutJustification and AllowOverrideWithJustification are mutually exclusive.
     */
    verdictDetails?: NullableOption<ChatMessagePolicyViolationVerdictDetailsTypes>;
}
export interface ChatMessagePolicyViolationPolicyTip {
    /**
     * The URL a user can visit to read about the data loss prevention policies for the organization. (ie, policies about what
     * users shouldn't say in chats)
     */
    complianceUrl?: NullableOption<string>;
    // Explanatory text shown to the sender of the message.
    generalText?: NullableOption<string>;
    /**
     * The list of improper data in the message that was detected by the data loss prevention app. Each DLP app defines its
     * own conditions, examples include 'Credit Card Number' and 'Social Security Number'.
     */
    matchedConditionDescriptions?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface ChatMessageReactionIdentitySet extends IdentitySet {}
export interface ChatRenamedEventMessageDetail extends EventMessageDetail {
    // The updated name of the chat.
    chatDisplayName?: NullableOption<string>;
    // Unique identifier of the chat.
    chatId?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface ChatViewpoint {
    // Indicates whether the chat is hidden for the current user.
    isHidden?: NullableOption<boolean>;
    // Represents the dateTime up until which the current user has read chatMessages in a specific chat.
    lastMessageReadDateTime?: NullableOption<string>;
}
export interface ConversationMemberRoleUpdatedEventMessageDetail extends EventMessageDetail {
    // Roles for the coversation member user.
    conversationMemberRoles?: NullableOption<string[]>;
    // Identity of the conversation member user.
    conversationMemberUser?: NullableOption<TeamworkUserIdentity>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface TeamworkUserIdentity extends Identity {
    /**
     * Type of user. Possible values are: aadUser, onPremiseAadUser, anonymousGuest, federatedUser,
     * personalMicrosoftAccountUser, skypeUser, phoneUser, unknownFutureValue and emailUser.
     */
    userIdentityType?: NullableOption<TeamworkUserIdentityType>;
}
export interface MeetingPolicyUpdatedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Represents whether the meeting chat is enabled or not.
    meetingChatEnabled?: NullableOption<boolean>;
    // Unique identifier of the meeting chat.
    meetingChatId?: NullableOption<string>;
}
export interface MembersAddedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // List of members added.
    members?: NullableOption<TeamworkUserIdentity[]>;
    // The timestamp that denotes how far back a conversation's history is shared with the conversation members.
    visibleHistoryStartDateTime?: NullableOption<string>;
}
export interface MembersDeletedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // List of members deleted.
    members?: NullableOption<TeamworkUserIdentity[]>;
}
export interface MembersJoinedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // List of members who joined the chat.
    members?: NullableOption<TeamworkUserIdentity[]>;
}
export interface MembersLeftEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // List of members who left the chat.
    members?: NullableOption<TeamworkUserIdentity[]>;
}
export interface MessagePinnedEventMessageDetail extends EventMessageDetail {
    // Date and time when the event occurred.
    eventDateTime?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface MessageUnpinnedEventMessageDetail extends EventMessageDetail {
    // Date and time when the event occurred.
    eventDateTime?: NullableOption<string>;
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
}
export interface OperationError {
    // Operation error code.
    code?: NullableOption<string>;
    // Operation error message.
    message?: NullableOption<string>;
}
export interface ProvisionChannelEmailResult {
    // Represents the provisioned email address.
    email?: NullableOption<string>;
}
export interface TabUpdatedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Unique identifier of the tab.
    tabId?: NullableOption<string>;
}
export interface TeamArchivedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Unique identifier of the team.
    teamId?: NullableOption<string>;
}
export interface TeamClassSettings {
    /**
     * If set to true, enables sending of weekly assignments digest emails to parents/guardians, provided the tenant admin has
     * enabled the setting globally.
     */
    notifyGuardiansAboutAssignments?: NullableOption<boolean>;
}
export interface TeamCreatedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Description for the team.
    teamDescription?: NullableOption<string>;
    // Display name of the team.
    teamDisplayName?: NullableOption<string>;
    // Unique identifier of the team.
    teamId?: NullableOption<string>;
}
export interface TeamDescriptionUpdatedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // The updated description for the team.
    teamDescription?: NullableOption<string>;
    // Unique identifier of the team.
    teamId?: NullableOption<string>;
}
export interface TeamJoiningDisabledEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Unique identifier of the team.
    teamId?: NullableOption<string>;
}
export interface TeamJoiningEnabledEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Unique identifier of the team.
    teamId?: NullableOption<string>;
}
export interface TeamMembersNotificationRecipient extends TeamworkNotificationRecipient {
    // The unique identifier for the team whose members should receive the notification.
    teamId?: string;
}
export interface TeamRenamedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // The updated name of the team.
    teamDisplayName?: NullableOption<string>;
    // Unique identifier of the team.
    teamId?: NullableOption<string>;
}
export interface TeamsAppAuthorization {
    // Set of permissions required by the teamsApp.
    requiredPermissionSet?: NullableOption<TeamsAppPermissionSet>;
}
export interface TeamsAppPermissionSet {
    // A collection of resource-specific permissions.
    resourceSpecificPermissions?: NullableOption<TeamsAppResourceSpecificPermission[]>;
}
export interface TeamsAppInstalledEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Display name of the teamsApp.
    teamsAppDisplayName?: NullableOption<string>;
    // Unique identifier of the teamsApp.
    teamsAppId?: NullableOption<string>;
}
export interface TeamsAppResourceSpecificPermission {
    // The type of resource-specific permission.
    permissionType?: NullableOption<TeamsAppResourceSpecificPermissionType>;
    // The name of the resource-specific permission.
    permissionValue?: NullableOption<string>;
}
export interface TeamsAppRemovedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Display name of the teamsApp.
    teamsAppDisplayName?: NullableOption<string>;
    // Unique identifier of the teamsApp.
    teamsAppId?: NullableOption<string>;
}
export interface TeamsAppUpgradedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Display name of the teamsApp.
    teamsAppDisplayName?: NullableOption<string>;
    // Unique identifier of the teamsApp.
    teamsAppId?: NullableOption<string>;
}
export interface TeamsTabConfiguration {
    // Url used for rendering tab contents in Teams. Required.
    contentUrl?: NullableOption<string>;
    // Identifier for the entity hosted by the tab provider.
    entityId?: NullableOption<string>;
    // Url called by Teams client when a Tab is removed using the Teams Client.
    removeUrl?: NullableOption<string>;
    // Url for showing tab contents outside of Teams.
    websiteUrl?: NullableOption<string>;
}
export interface TeamUnarchivedEventMessageDetail extends EventMessageDetail {
    // Initiator of the event.
    initiator?: NullableOption<IdentitySet>;
    // Unique identifier of the team.
    teamId?: NullableOption<string>;
}
export interface TeamworkActivityTopic {
    /**
     * Type of source. Possible values are: entityUrl, text. For supported Microsoft Graph URLs, use entityUrl. For custom
     * text, use text.
     */
    source?: NullableOption<TeamworkActivityTopicSource>;
    /**
     * The topic value. If the value of the source property is entityUrl, this must be a Microsoft Graph URL. If the value is
     * text, this must be a plain text value.
     */
    value?: string;
    /**
     * The link the user clicks when they select the notification. Optional when source is entityUrl; required when source is
     * text.
     */
    webUrl?: NullableOption<string>;
}
export interface TeamworkApplicationIdentity extends Identity {
    /**
     * Type of application that is referenced. Possible values are: aadApplication, bot, tenantBot, office365Connector,
     * outgoingWebhook, and unknownFutureValue.
     */
    applicationIdentityType?: NullableOption<TeamworkApplicationIdentityType>;
}
export interface TeamworkOnlineMeetingInfo {
    // The identifier of the calendar event associated with the meeting.
    calendarEventId?: NullableOption<string>;
    // The URL that users click to join or uniquely identify the meeting.
    joinWebUrl?: NullableOption<string>;
    // The organizer of the meeting.
    organizer?: NullableOption<TeamworkUserIdentity>;
}
// tslint:disable-next-line: no-empty-interface
export interface TeamworkTagIdentity extends Identity {}
export interface ScheduleEntity {
    endDateTime?: NullableOption<string>;
    startDateTime?: NullableOption<string>;
    theme?: ScheduleEntityTheme;
}
export interface ShiftItem extends ScheduleEntity {
    /**
     * An incremental part of a shift which can cover details of when and where an employee is during their shift. For
     * example, an assignment or a scheduled break or lunch. Required.
     */
    activities?: NullableOption<ShiftActivity[]>;
    // The shift label of the shiftItem.
    displayName?: NullableOption<string>;
    // The shift notes for the shiftItem.
    notes?: NullableOption<string>;
}
export interface OpenShiftItem extends ShiftItem {
    // Count of the number of slots for the given open shift.
    openSlotCount?: number;
}
export interface ShiftActivity {
    // Customer defined code for the shiftActivity. Required.
    code?: NullableOption<string>;
    // The name of the shiftActivity. Required.
    displayName?: NullableOption<string>;
    /**
     * The end date and time for the shiftActivity. The Timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Required.
     */
    endDateTime?: NullableOption<string>;
    // Indicates whether the microsoft.graph.user should be paid for the activity during their shift. Required.
    isPaid?: NullableOption<boolean>;
    /**
     * The start date and time for the shiftActivity. The Timestamp type represents date and time information using ISO 8601
     * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Required.
     */
    startDateTime?: NullableOption<string>;
    theme?: ScheduleEntityTheme;
}
export interface ShiftAvailability {
    // Specifies the pattern for recurrence
    recurrence?: NullableOption<PatternedRecurrence>;
    // The time slot(s) preferred by the user.
    timeSlots?: NullableOption<TimeRange[]>;
    // Specifies the time zone for the indicated time.
    timeZone?: NullableOption<string>;
}
export interface TimeRange {
    // End time for the time range.
    endTime?: NullableOption<string>;
    // Start time for the time range.
    startTime?: NullableOption<string>;
}
export interface TimeOffItem extends ScheduleEntity {
    // ID of the timeOffReason for this timeOffItem. Required.
    timeOffReasonId?: NullableOption<string>;
}
export interface WorkforceIntegrationEncryption {
    // Possible values are: sharedSecret, unknownFutureValue.
    protocol?: NullableOption<WorkforceIntegrationEncryptionProtocol>;
    // Encryption shared secret.
    secret?: NullableOption<string>;
}
export interface AttachmentInfo {
    // The type of the attachment. The possible values are: file, item, reference. Required.
    attachmentType?: NullableOption<AttachmentType>;
    // The nature of the data in the attachment. Optional.
    contentType?: NullableOption<string>;
    /**
     * The display name of the attachment. This can be a descriptive string and doesn't have to be the actual file name.
     * Required.
     */
    name?: NullableOption<string>;
    // The length of the attachment in bytes. Required.
    size?: NullableOption<number>;
}

export namespace CallRecords {
    type AudioCodec =
        | "unknown"
        | "invalid"
        | "cn"
        | "pcma"
        | "pcmu"
        | "amrWide"
        | "g722"
        | "g7221"
        | "g7221c"
        | "g729"
        | "multiChannelAudio"
        | "muchv2"
        | "opus"
        | "satin"
        | "satinFullband"
        | "rtAudio8"
        | "rtAudio16"
        | "silk"
        | "silkNarrow"
        | "silkWide"
        | "siren"
        | "xmsRta"
        | "unknownFutureValue";
    type CallType = "unknown" | "groupCall" | "peerToPeer" | "unknownFutureValue";
    type ClientPlatform =
        | "unknown"
        | "windows"
        | "macOS"
        | "iOS"
        | "android"
        | "web"
        | "ipPhone"
        | "roomSystem"
        | "surfaceHub"
        | "holoLens"
        | "unknownFutureValue";
    type FailureStage = "unknown" | "callSetup" | "midcall" | "unknownFutureValue";
    type MediaStreamDirection = "callerToCallee" | "calleeToCaller";
    type Modality = "audio" | "video" | "videoBasedScreenSharing" | "data" | "screenSharing" | "unknownFutureValue";
    type NetworkConnectionType = "unknown" | "wired" | "wifi" | "mobile" | "tunnel" | "unknownFutureValue";
    type NetworkTransportProtocol = "unknown" | "udp" | "tcp" | "unknownFutureValue";
    type ProductFamily =
        | "unknown"
        | "teams"
        | "skypeForBusiness"
        | "lync"
        | "unknownFutureValue"
        | "azureCommunicationServices";
    type PstnCallDurationSource = "microsoft" | "operator";
    type ServiceRole =
        | "unknown"
        | "customBot"
        | "skypeForBusinessMicrosoftTeamsGateway"
        | "skypeForBusinessAudioVideoMcu"
        | "skypeForBusinessApplicationSharingMcu"
        | "skypeForBusinessCallQueues"
        | "skypeForBusinessAutoAttendant"
        | "mediationServer"
        | "mediationServerCloudConnectorEdition"
        | "exchangeUnifiedMessagingService"
        | "mediaController"
        | "conferencingAnnouncementService"
        | "conferencingAttendant"
        | "audioTeleconferencerController"
        | "skypeForBusinessUnifiedCommunicationApplicationPlatform"
        | "responseGroupServiceAnnouncementService"
        | "gateway"
        | "skypeTranslator"
        | "skypeForBusinessAttendant"
        | "responseGroupService"
        | "voicemail"
        | "unknownFutureValue";
    type UserFeedbackRating = "notRated" | "bad" | "poor" | "fair" | "good" | "excellent" | "unknownFutureValue";
    type VideoCodec =
        | "unknown"
        | "invalid"
        | "av1"
        | "h263"
        | "h264"
        | "h264s"
        | "h264uc"
        | "h265"
        | "rtvc1"
        | "rtVideo"
        | "xrtvc1"
        | "unknownFutureValue";
    type WifiBand = "unknown" | "frequency24GHz" | "frequency50GHz" | "frequency60GHz" | "unknownFutureValue";
    type WifiRadioType =
        | "unknown"
        | "wifi80211a"
        | "wifi80211b"
        | "wifi80211g"
        | "wifi80211n"
        | "wifi80211ac"
        | "wifi80211ax"
        | "unknownFutureValue";
    interface CallRecord extends microsoftgraph.Entity {
        /**
         * UTC time when the last user left the call. The DateTimeOffset type represents date and time information using ISO 8601
         * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
         */
        endDateTime?: string;
        // Meeting URL associated to the call. May not be available for a peerToPeer call record type.
        joinWebUrl?: NullableOption<string>;
        /**
         * UTC time when the call record was created. The DatetimeOffset type represents date and time information using ISO 8601
         * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
         */
        lastModifiedDateTime?: string;
        /**
         * List of all the modalities used in the call. Possible values are: unknown, audio, video, videoBasedScreenSharing, data,
         * screenSharing, unknownFutureValue.
         */
        modalities?: Modality[];
        // The organizing party's identity.
        organizer?: NullableOption<microsoftgraph.IdentitySet>;
        // List of distinct identities involved in the call.
        participants?: NullableOption<microsoftgraph.IdentitySet[]>;
        /**
         * UTC time when the first user joined the call. The DatetimeOffset type represents date and time information using ISO
         * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        startDateTime?: string;
        // Indicates the type of the call. Possible values are: unknown, groupCall, peerToPeer, unknownFutureValue.
        type?: CallType;
        /**
         * Monotonically increasing version of the call record. Higher version call records with the same id includes additional
         * data compared to the lower version.
         */
        version?: number;
        /**
         * List of sessions involved in the call. Peer-to-peer calls typically only have one session, whereas group calls
         * typically have at least one session per participant. Read-only. Nullable.
         */
        sessions?: NullableOption<Session[]>;
    }
    interface Session extends microsoftgraph.Entity {
        // Endpoint that answered the session.
        callee?: NullableOption<Endpoint>;
        // Endpoint that initiated the session.
        caller?: NullableOption<Endpoint>;
        /**
         * UTC time when the last user left the session. The DateTimeOffset type represents date and time information using ISO
         * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
         */
        endDateTime?: string;
        // Failure information associated with the session if the session failed.
        failureInfo?: NullableOption<FailureInfo>;
        // Specifies whether the session is a test.
        isTest?: NullableOption<boolean>;
        /**
         * List of modalities present in the session. Possible values are: unknown, audio, video, videoBasedScreenSharing, data,
         * screenSharing, unknownFutureValue.
         */
        modalities?: Modality[];
        /**
         * UTC time when the first user joined the session. The DateTimeOffset type represents date and time information using ISO
         * 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
         */
        startDateTime?: string;
        // The list of segments involved in the session. Read-only. Nullable.
        segments?: NullableOption<Segment[]>;
    }
    interface Segment extends microsoftgraph.Entity {
        // Endpoint that answered this segment.
        callee?: NullableOption<Endpoint>;
        // Endpoint that initiated this segment.
        caller?: NullableOption<Endpoint>;
        /**
         * UTC time when the segment ended. The DateTimeOffset type represents date and time information using ISO 8601 format and
         * is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
         */
        endDateTime?: string;
        // Failure information associated with the segment if it failed.
        failureInfo?: NullableOption<FailureInfo>;
        // Media associated with this segment.
        media?: NullableOption<Media[]>;
        /**
         * UTC time when the segment started. The DateTimeOffset type represents date and time information using ISO 8601 format
         * and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
         */
        startDateTime?: string;
    }
    interface UserAgent {
        // Identifies the version of application software used by this endpoint.
        applicationVersion?: NullableOption<string>;
        // User-agent header value reported by this endpoint.
        headerValue?: NullableOption<string>;
    }
    interface ClientUserAgent extends UserAgent {
        // The unique identifier of the Microsoft Entra application used by this endpoint.
        azureADAppId?: NullableOption<string>;
        /**
         * Immutable resource identifier of the Azure Communication Service associated with this endpoint based on Communication
         * Services APIs.
         */
        communicationServiceId?: NullableOption<string>;
        /**
         * Identifies the platform used by this endpoint. Possible values are: unknown, windows, macOS, iOS, android, web,
         * ipPhone, roomSystem, surfaceHub, holoLens, unknownFutureValue.
         */
        platform?: ClientPlatform;
        /**
         * Identifies the family of application software used by this endpoint. Possible values are: unknown, teams,
         * skypeForBusiness, lync, unknownFutureValue, azureCommunicationServices. Note that you must use the Prefer:
         * include-unknown-enum-members request header to get the following value(s) in this evolvable enum:
         * azureCommunicationServices.
         */
        productFamily?: ProductFamily;
    }
    interface DeviceInfo {
        // Name of the capture device driver used by the media endpoint.
        captureDeviceDriver?: NullableOption<string>;
        // Name of the capture device used by the media endpoint.
        captureDeviceName?: NullableOption<string>;
        // Fraction of the call that the media endpoint detected the capture device was not working properly.
        captureNotFunctioningEventRatio?: NullableOption<number>;
        /**
         * Fraction of the call that the media endpoint detected the CPU resources available were insufficient and caused poor
         * quality of the audio sent and received.
         */
        cpuInsufficentEventRatio?: NullableOption<number>;
        /**
         * Fraction of the call that the media endpoint detected clipping in the captured audio that caused poor quality of the
         * audio being sent.
         */
        deviceClippingEventRatio?: NullableOption<number>;
        /**
         * Fraction of the call that the media endpoint detected glitches or gaps in the audio played or captured that caused poor
         * quality of the audio being sent or received.
         */
        deviceGlitchEventRatio?: NullableOption<number>;
        // Number of times during the call that the media endpoint detected howling or screeching audio.
        howlingEventCount?: NullableOption<number>;
        // The root mean square (RMS) of the incoming signal of up to the first 30 seconds of the call.
        initialSignalLevelRootMeanSquare?: NullableOption<number>;
        /**
         * Fraction of the call that the media endpoint detected low speech level that caused poor quality of the audio being
         * sent.
         */
        lowSpeechLevelEventRatio?: NullableOption<number>;
        /**
         * Fraction of the call that the media endpoint detected low speech to noise level that caused poor quality of the audio
         * being sent.
         */
        lowSpeechToNoiseEventRatio?: NullableOption<number>;
        // Glitches per 5 minute interval for the media endpoint's microphone.
        micGlitchRate?: NullableOption<number>;
        /**
         * Average energy level of received audio for audio classified as mono noise or left channel of stereo noise by the media
         * endpoint.
         */
        receivedNoiseLevel?: NullableOption<number>;
        /**
         * Average energy level of received audio for audio classified as mono speech, or left channel of stereo speech by the
         * media endpoint.
         */
        receivedSignalLevel?: NullableOption<number>;
        // Name of the render device driver used by the media endpoint.
        renderDeviceDriver?: NullableOption<string>;
        // Name of the render device used by the media endpoint.
        renderDeviceName?: NullableOption<string>;
        // Fraction of the call that media endpoint detected device render is muted.
        renderMuteEventRatio?: NullableOption<number>;
        // Fraction of the call that the media endpoint detected the render device was not working properly.
        renderNotFunctioningEventRatio?: NullableOption<number>;
        // Fraction of the call that media endpoint detected device render volume is set to 0.
        renderZeroVolumeEventRatio?: NullableOption<number>;
        /**
         * Average energy level of sent audio for audio classified as mono noise or left channel of stereo noise by the media
         * endpoint.
         */
        sentNoiseLevel?: NullableOption<number>;
        /**
         * Average energy level of sent audio for audio classified as mono speech, or left channel of stereo speech by the media
         * endpoint.
         */
        sentSignalLevel?: NullableOption<number>;
        // Glitches per 5 minute internal for the media endpoint's loudspeaker.
        speakerGlitchRate?: NullableOption<number>;
    }
    interface DirectRoutingLogRow {
        // Number of the user or bot who received the call. E.164 format, but might include other data.
        calleeNumber?: NullableOption<string>;
        // In addition to the SIP codes, Microsoft has subcodes that indicate the specific issue.
        callEndSubReason?: NullableOption<number>;
        // Number of the user or bot who made the call. E.164 format, but might include other data.
        callerNumber?: NullableOption<string>;
        // Call type and direction.
        callType?: NullableOption<string>;
        // Identifier for the call that you can use when calling Microsoft Support. GUID.
        correlationId?: NullableOption<string>;
        // Duration of the call in seconds.
        duration?: NullableOption<number>;
        // Only exists for successful (fully established) calls. Time when call ended.
        endDateTime?: NullableOption<string>;
        // Only exists for failed (not fully established) calls.
        failureDateTime?: NullableOption<string>;
        // The code with which the call ended. For more information, see RFC 3261.
        finalSipCode?: NullableOption<number>;
        // Description of the SIP code and Microsoft subcode.
        finalSipCodePhrase?: NullableOption<string>;
        // Unique call identifier. GUID.
        id?: NullableOption<string>;
        // When the initial invite was sent.
        inviteDateTime?: NullableOption<string>;
        // Indicates whether the trunk was enabled for media bypass.
        mediaBypassEnabled?: NullableOption<boolean>;
        // The datacenter used for media path in a nonbypass call.
        mediaPathLocation?: NullableOption<string>;
        // The datacenter used for signaling for both bypass and nonbypass calls.
        signalingLocation?: NullableOption<string>;
        // Call start time.For failed and unanswered calls, this can be equal to the invite or failure time.
        startDateTime?: NullableOption<string>;
        // Success or attempt.
        successfulCall?: NullableOption<boolean>;
        // Fully qualified domain name of the session border controller.
        trunkFullyQualifiedDomainName?: NullableOption<string>;
        // Display name of the user.
        userDisplayName?: NullableOption<string>;
        // Calling user's ID in Microsoft Graph. This and other user information is null/empty for bot call types. GUID.
        userId?: NullableOption<string>;
        /**
         * UserPrincipalName (sign-in name) in Microsoft Entra ID. This is usually the same as the user's SIP Address, and can be
         * the same as the user's email address.
         */
        userPrincipalName?: NullableOption<string>;
    }
    interface Endpoint {
        // User-agent reported by this endpoint.
        userAgent?: NullableOption<UserAgent>;
    }
    interface FailureInfo {
        // Classification of why a call or portion of a call failed.
        reason?: NullableOption<string>;
        // The stage when the failure occurred. Possible values are: unknown, callSetup, midcall, unknownFutureValue.
        stage?: FailureStage;
    }
// tslint:disable-next-line: no-empty-interface
    interface FeedbackTokenSet {}
    interface Media {
        // Device information associated with the callee endpoint of this media.
        calleeDevice?: NullableOption<DeviceInfo>;
        // Network information associated with the callee endpoint of this media.
        calleeNetwork?: NullableOption<NetworkInfo>;
        // Device information associated with the caller endpoint of this media.
        callerDevice?: NullableOption<DeviceInfo>;
        // Network information associated with the caller endpoint of this media.
        callerNetwork?: NullableOption<NetworkInfo>;
        // How the media was identified during media negotiation stage.
        label?: NullableOption<string>;
        // Network streams associated with this media.
        streams?: NullableOption<MediaStream[]>;
    }
    interface NetworkInfo {
        /**
         * Fraction of the call that the media endpoint detected the available bandwidth or bandwidth policy was low enough to
         * cause poor quality of the audio sent.
         */
        bandwidthLowEventRatio?: NullableOption<number>;
        // The wireless LAN basic service set identifier of the media endpoint used to connect to the network.
        basicServiceSetIdentifier?: NullableOption<string>;
        /**
         * Type of network used by the media endpoint. Possible values are: unknown, wired, wifi, mobile, tunnel,
         * unknownFutureValue.
         */
        connectionType?: NetworkConnectionType;
        /**
         * Fraction of the call that the media endpoint detected the network delay was significant enough to impact the ability to
         * have real-time two-way communication.
         */
        delayEventRatio?: NullableOption<number>;
        // DNS suffix associated with the network adapter of the media endpoint.
        dnsSuffix?: NullableOption<string>;
        // IP address of the media endpoint.
        ipAddress?: NullableOption<string>;
        // Link speed in bits per second reported by the network adapter used by the media endpoint.
        linkSpeed?: NullableOption<number>;
        /**
         * The media access control (MAC) address of the media endpoint's network device. This value may be missing or shown as
         * 02:00:00:00:00:00 due to operating system privacy policies.
         */
        macAddress?: NullableOption<string>;
        // Network protocol used for the transmission of stream. Possible values are: unknown, udp, tcp, unknownFutureValue.
        networkTransportProtocol?: NetworkTransportProtocol;
        // Network port number used by media endpoint.
        port?: NullableOption<number>;
        // Fraction of the call that the media endpoint detected the network was causing poor quality of the audio received.
        receivedQualityEventRatio?: NullableOption<number>;
        /**
         * IP address of the media endpoint as seen by the media relay server. This is typically the public internet IP address
         * associated to the endpoint.
         */
        reflexiveIPAddress?: NullableOption<string>;
        // IP address of the media relay server allocated by the media endpoint.
        relayIPAddress?: NullableOption<string>;
        // Network port number allocated on the media relay server by the media endpoint.
        relayPort?: NullableOption<number>;
        // Fraction of the call that the media endpoint detected the network was causing poor quality of the audio sent.
        sentQualityEventRatio?: NullableOption<number>;
        // Subnet used for media stream by the media endpoint.
        subnet?: NullableOption<string>;
        // List of network trace route hops collected for this media stream.*
        traceRouteHops?: TraceRouteHop[];
        /**
         * WiFi band used by the media endpoint. Possible values are: unknown, frequency24GHz, frequency50GHz, frequency60GHz,
         * unknownFutureValue.
         */
        wifiBand?: WifiBand;
        // Estimated remaining battery charge in percentage reported by the media endpoint.
        wifiBatteryCharge?: NullableOption<number>;
        // WiFi channel used by the media endpoint.
        wifiChannel?: NullableOption<number>;
        /**
         * Name of the Microsoft WiFi driver used by the media endpoint. Value may be localized based on the language used by
         * endpoint.
         */
        wifiMicrosoftDriver?: NullableOption<string>;
        // Version of the Microsoft WiFi driver used by the media endpoint.
        wifiMicrosoftDriverVersion?: NullableOption<string>;
        /**
         * Type of WiFi radio used by the media endpoint. Possible values are: unknown, wifi80211a, wifi80211b, wifi80211g,
         * wifi80211n, wifi80211ac, wifi80211ax, unknownFutureValue.
         */
        wifiRadioType?: WifiRadioType;
        // WiFi signal strength in percentage reported by the media endpoint.
        wifiSignalStrength?: NullableOption<number>;
        // Name of the WiFi driver used by the media endpoint. Value may be localized based on the language used by endpoint.
        wifiVendorDriver?: NullableOption<string>;
        // Version of the WiFi driver used by the media endpoint.
        wifiVendorDriverVersion?: NullableOption<string>;
    }
    interface MediaStream {
        /**
         * Codec name used to encode audio for transmission on the network. Possible values are: unknown, invalid, cn, pcma, pcmu,
         * amrWide, g722, g7221, g7221c, g729, multiChannelAudio, muchv2, opus, satin, satinFullband, rtAudio8, rtAudio16, silk,
         * silkNarrow, silkWide, siren, xmsRta, unknownFutureValue.
         */
        audioCodec?: NullableOption<AudioCodec>;
        /**
         * Average Network Mean Opinion Score degradation for stream. Represents how much the network loss and jitter has impacted
         * the quality of received audio.
         */
        averageAudioDegradation?: NullableOption<number>;
        /**
         * Average jitter for the stream computed as specified in [RFC 3550][], denoted in [ISO 8601][] format. For example, 1
         * second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second
         * designator.
         */
        averageAudioNetworkJitter?: NullableOption<string>;
        // Average estimated bandwidth available between two endpoints in bits per second.
        averageBandwidthEstimate?: NullableOption<number>;
        // Average duration of the received freezing time in the video stream.
        averageFreezeDuration?: NullableOption<string>;
        /**
         * Average jitter for the stream computed as specified in [RFC 3550][], denoted in [ISO 8601][] format. For example, 1
         * second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second
         * designator.
         */
        averageJitter?: NullableOption<string>;
        // Average packet loss rate for stream.
        averagePacketLossRate?: NullableOption<number>;
        /**
         * Ratio of the number of audio frames with samples generated by packet loss concealment to the total number of audio
         * frames.
         */
        averageRatioOfConcealedSamples?: NullableOption<number>;
        // Average frames per second received for all video streams computed over the duration of the session.
        averageReceivedFrameRate?: NullableOption<number>;
        /**
         * Average network propagation round-trip time computed as specified in [RFC 3550][], denoted in [ISO 8601][] format. For
         * example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is
         * the second designator.
         */
        averageRoundTripTime?: NullableOption<string>;
        // Average percentage of video frames lost as displayed to the user.
        averageVideoFrameLossPercentage?: NullableOption<number>;
        // Average frames per second received for a video stream, computed over the duration of the session.
        averageVideoFrameRate?: NullableOption<number>;
        // Average fraction of packets lost, as specified in [RFC 3550][], computed over the duration of the session.
        averageVideoPacketLossRate?: NullableOption<number>;
        /**
         * UTC time when the stream ended. The DateTimeOffset type represents date and time information using ISO 8601 format and
         * is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. This field is only available
         * for streams that use the SIP protocol.
         */
        endDateTime?: NullableOption<string>;
        /**
         * Indicates whether the forward error correction (FEC) was used at some point during the session. The default value is
         * null.
         */
        isAudioForwardErrorCorrectionUsed?: NullableOption<boolean>;
        // Fraction of the call where frame rate is less than 7.5 frames per second.
        lowFrameRateRatio?: NullableOption<number>;
        // Fraction of the call that the client is running less than 70% expected video processing capability.
        lowVideoProcessingCapabilityRatio?: NullableOption<number>;
        /**
         * Maximum of audio network jitter computed over each of the 20 second windows during the session, denoted in [ISO 8601][]
         * format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator,
         * and 'S' is the second designator.
         */
        maxAudioNetworkJitter?: NullableOption<string>;
        /**
         * Maximum jitter for the stream computed as specified in RFC 3550, denoted in [ISO 8601][] format. For example, 1 second
         * is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second
         * designator.
         */
        maxJitter?: NullableOption<string>;
        // Maximum packet loss rate for the stream.
        maxPacketLossRate?: NullableOption<number>;
        // Maximum ratio of packets concealed by the healer.
        maxRatioOfConcealedSamples?: NullableOption<number>;
        /**
         * Maximum network propagation round-trip time computed as specified in [RFC 3550][], denoted in [ISO 8601][] format. For
         * example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is
         * the second designator.
         */
        maxRoundTripTime?: NullableOption<string>;
        // Packet count for the stream.
        packetUtilization?: NullableOption<number>;
        // Packet loss rate after FEC has been applied aggregated across all video streams and codecs.
        postForwardErrorCorrectionPacketLossRate?: NullableOption<number>;
        // Average duration of the received freezing time in the video stream represented in root mean square.
        rmsFreezeDuration?: NullableOption<string>;
        /**
         * UTC time when the stream started. The DateTimeOffset type represents date and time information using ISO 8601 format
         * and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. This field is only
         * available for streams that use the SIP protocol.
         */
        startDateTime?: NullableOption<string>;
        // Indicates the direction of the media stream. Possible values are: callerToCallee, calleeToCaller.
        streamDirection?: MediaStreamDirection;
        // Unique identifier for the stream.
        streamId?: NullableOption<string>;
        /**
         * Codec name used to encode video for transmission on the network. Possible values are: unknown, invalid, av1, h263,
         * h264, h264s, h264uc, h265, rtvc1, rtVideo, xrtvc1, unknownFutureValue.
         */
        videoCodec?: NullableOption<VideoCodec>;
        /**
         * True if the media stream bypassed the Mediation Server and went straight between client and PSTN Gateway/PBX, false
         * otherwise.
         */
        wasMediaBypassed?: NullableOption<boolean>;
    }
    interface TraceRouteHop {
        // The network path count of this hop that was used to compute the RTT.
        hopCount?: NullableOption<number>;
        // IP address used for this hop in the network trace.
        ipAddress?: NullableOption<string>;
        /**
         * The time from when the trace route packet was sent from the client to this hop and back to the client, denoted in [ISO
         * 8601][] format. For example, 1 second is denoted as PT1S, where P is the duration designator, T is the time designator,
         * and S is the second designator.
         */
        roundTripTime?: NullableOption<string>;
    }
    interface ParticipantEndpoint extends Endpoint {
        // CPU number of cores used by the media endpoint.
        cpuCoresCount?: NullableOption<number>;
        // CPU name used by the media endpoint.
        cpuName?: NullableOption<string>;
        // CPU processor speed used by the media endpoint.
        cpuProcessorSpeedInMhz?: NullableOption<number>;
        // The feedback provided by the user of this endpoint about the quality of the session.
        feedback?: NullableOption<UserFeedback>;
        // Identity associated with the endpoint.
        identity?: NullableOption<microsoftgraph.IdentitySet>;
        // Name of the device used by the media endpoint.
        name?: NullableOption<string>;
    }
    interface UserFeedback {
        /**
         * The rating provided by the user of this endpoint about the quality of this Session. Possible values are: notRated, bad,
         * poor, fair, good, excellent, unknownFutureValue.
         */
        rating?: UserFeedbackRating;
        // The feedback text provided by the user of this endpoint for the session.
        text?: NullableOption<string>;
        /**
         * The set of feedback tokens provided by the user of this endpoint for the session. This is a set of Boolean properties.
         * The property names should not be relied upon since they may change depending on what tokens are offered to the user.
         */
        tokens?: NullableOption<FeedbackTokenSet>;
    }
    interface PstnCallLogRow {
        /**
         * The source of the call duration data. If the call uses a third-party telecommunications operator via the Operator
         * Connect Program, the operator can provide their own call duration data. In this case, the property value is operator.
         * Otherwise, the value is microsoft.
         */
        callDurationSource?: NullableOption<PstnCallDurationSource>;
        // Number dialed in E.164 format.
        calleeNumber?: NullableOption<string>;
        // Number that received the call for inbound calls or the number dialed for outbound calls. E.164 format.
        callerNumber?: NullableOption<string>;
        // Call identifier. Not guaranteed to be unique.
        callId?: NullableOption<string>;
        /**
         * Indicates whether the call was a PSTN outbound or inbound call and the type of call, such as a call placed by a user or
         * an audio conference.
         */
        callType?: NullableOption<string>;
        // Amount of money or cost of the call that is charged to your account.
        charge?: NullableOption<number>;
        // ID of the audio conference.
        conferenceId?: NullableOption<string>;
        // Connection fee price.
        connectionCharge?: NullableOption<number>;
        // Type of currency used to calculate the cost of the call. For details, see (ISO 4217.
        currency?: NullableOption<string>;
        /**
         * Whether the call was domestic (within a country or region) or international (outside a country or region), based on the
         * user's location.
         */
        destinationContext?: NullableOption<string>;
        // Country or region dialed.
        destinationName?: NullableOption<string>;
        // How long the call was connected, in seconds.
        duration?: NullableOption<number>;
        // Call end time.
        endDateTime?: NullableOption<string>;
        // Unique call identifier. GUID.
        id?: NullableOption<string>;
        // User's phone number type, such as a service of toll-free number.
        inventoryType?: NullableOption<string>;
        // The license used for the call.
        licenseCapability?: NullableOption<string>;
        /**
         * The telecommunications operator which provided PSTN services for this call. This might be Microsoft, or it might be a
         * third-party operator via the Operator Connect Program.
         */
        operator?: NullableOption<string>;
        // Call start time.
        startDateTime?: NullableOption<string>;
        // Country code of the tenant. For details, see ISO 3166-1 alpha-2.
        tenantCountryCode?: NullableOption<string>;
        // Country code of the user. For details, see ISO 3166-1 alpha-2.
        usageCountryCode?: NullableOption<string>;
        // Display name of the user.
        userDisplayName?: NullableOption<string>;
        /**
         * Calling user's ID in Microsoft Graph. GUID. This and other user info will be null/empty for bot call types (ucapin,
         * ucapout).
         */
        userId?: NullableOption<string>;
        /**
         * The user principal name (sign-in name) in Microsoft Entra ID. This is usually the same as the user's SIP address, and
         * can be the same as the user's email address.
         */
        userPrincipalName?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface ServiceEndpoint extends Endpoint {}
    interface ServiceUserAgent extends UserAgent {
        /**
         * Identifies the role of the service used by this endpoint. Possible values are: unknown, customBot,
         * skypeForBusinessMicrosoftTeamsGateway, skypeForBusinessAudioVideoMcu, skypeForBusinessApplicationSharingMcu,
         * skypeForBusinessCallQueues, skypeForBusinessAutoAttendant, mediationServer, mediationServerCloudConnectorEdition,
         * exchangeUnifiedMessagingService, mediaController, conferencingAnnouncementService, conferencingAttendant,
         * audioTeleconferencerController, skypeForBusinessUnifiedCommunicationApplicationPlatform,
         * responseGroupServiceAnnouncementService, gateway, skypeTranslator, skypeForBusinessAttendant, responseGroupService,
         * voicemail, unknownFutureValue.
         */
        role?: ServiceRole;
    }
}
export namespace ExternalConnectors {
    type AccessType = "grant" | "deny" | "unknownFutureValue";
    type AclType = "user" | "group" | "everyone" | "everyoneExceptGuests" | "externalGroup" | "unknownFutureValue";
    type ConnectionOperationStatus = "unspecified" | "inprogress" | "completed" | "failed" | "unknownFutureValue";
    type ConnectionState = "draft" | "ready" | "obsolete" | "limitExceeded" | "unknownFutureValue";
    type ExternalActivityType = "viewed" | "modified" | "created" | "commented" | "unknownFutureValue";
    type ExternalItemContentType = "text" | "html" | "unknownFutureValue";
    type IdentityType = "user" | "group" | "externalGroup" | "unknownFutureValue";
    type Label =
        | "title"
        | "url"
        | "createdBy"
        | "lastModifiedBy"
        | "authors"
        | "createdDateTime"
        | "lastModifiedDateTime"
        | "fileName"
        | "fileExtension"
        | "unknownFutureValue"
        | "iconUrl";
    type PropertyType =
        | "string"
        | "int64"
        | "double"
        | "dateTime"
        | "boolean"
        | "stringCollection"
        | "int64Collection"
        | "doubleCollection"
        | "dateTimeCollection"
        | "unknownFutureValue";
    type RuleOperation =
        | "null"
        | "equals"
        | "notEquals"
        | "contains"
        | "notContains"
        | "lessThan"
        | "greaterThan"
        | "startsWith"
        | "unknownFutureValue";
    interface ConnectionOperation extends microsoftgraph.Entity {
        // If status is failed, provides more information about the error that caused the failure.
        error?: NullableOption<microsoftgraph.PublicError>;
        /**
         * Indicates the status of the asynchronous operation. Possible values are: unspecified, inprogress, completed, failed,
         * unknownFutureValue.
         */
        status?: NullableOption<ConnectionOperationStatus>;
    }
    interface External {
        connections?: NullableOption<ExternalConnection[]>;
    }
    interface ExternalConnection extends microsoftgraph.Entity {
        // Collects configurable settings related to activities involving connector content.
        activitySettings?: NullableOption<ActivitySettings>;
        /**
         * Specifies additional application IDs that are allowed to manage the connection and to index content in the connection.
         * Optional.
         */
        configuration?: NullableOption<Configuration>;
        // The Teams app ID. Optional.
        connectorId?: NullableOption<string>;
        // Description of the connection displayed in the Microsoft 365 admin center. Optional.
        description?: NullableOption<string>;
        /**
         * The display name of the connection to be displayed in the Microsoft 365 admin center. Maximum length of 128 characters.
         * Required.
         */
        name?: NullableOption<string>;
        /**
         * The settings configuring the search experience for content in this connection, such as the display templates for search
         * results.
         */
        searchSettings?: NullableOption<SearchSettings>;
        /**
         * Indicates the current state of the connection. Possible values are: draft, ready, obsolete, limitExceeded,
         * unknownFutureValue.
         */
        state?: NullableOption<ConnectionState>;
        groups?: NullableOption<ExternalGroup[]>;
        items?: NullableOption<ExternalItem[]>;
        operations?: NullableOption<ConnectionOperation[]>;
        schema?: NullableOption<Schema>;
    }
    interface ExternalActivity extends microsoftgraph.Entity {
        /**
         * The date and time when the particular activity occurred. The DateTimeOffset type represents date and time information
         * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        startDateTime?: string;
        // The type of activity performed. The possible values are: viewed, modified, created, commented, unknownFutureValue.
        type?: ExternalActivityType;
        // Represents an identity used to identify who is responsible for the activity.
        performedBy?: NullableOption<Identity>;
    }
// tslint:disable-next-line: interface-name
    interface Identity extends microsoftgraph.Entity {
        /**
         * The type of identity. Possible values are: user or group for Microsoft Entra identities and externalgroup for groups in
         * an external system.
         */
        type?: NullableOption<IdentityType>;
    }
    interface ExternalActivityResult extends ExternalActivity {
        // Error information that explains the failure to process an external activity.
        error?: NullableOption<microsoftgraph.PublicError>;
    }
    interface ExternalGroup extends microsoftgraph.Entity {
        // The description of the external group. Optional.
        description?: NullableOption<string>;
        // The friendly name of the external group. Optional.
        displayName?: NullableOption<string>;
        /**
         * A member added to an externalGroup. You can add Microsoft Entra users, Microsoft Entra groups, or an externalGroup as
         * members.
         */
        members?: NullableOption<Identity[]>;
    }
    interface ExternalItem extends microsoftgraph.Entity {
        // An array of access control entries. Each entry specifies the access granted to a user or group. Required.
        acl?: NullableOption<Acl[]>;
        // A plain-text representation of the contents of the item. The text in this property is full-text indexed. Optional.
        content?: NullableOption<ExternalItemContent>;
        /**
         * A property bag with the properties of the item. The properties MUST conform to the schema defined for the
         * externalConnection. Required.
         */
        properties?: NullableOption<Properties>;
        // Returns a list of activities performed on the item. Write-only.
        activities?: NullableOption<ExternalActivity[]>;
    }
    interface Schema extends microsoftgraph.Entity {
        // Must be set to microsoft.graph.externalConnector.externalItem. Required.
        baseType?: string;
        // The properties defined for the items in the connection. The minimum number of properties is one, the maximum is 128.
        properties?: NullableOption<Property[]>;
    }
    interface Acl {
        // The access granted to the identity. Possible values are: grant, deny, unknownFutureValue.
        accessType?: AccessType;
        /**
         * The type of identity. Possible values are: user, group, everyone, everyoneExceptGuests, externalGroup,
         * unknownFutureValue.
         */
        type?: AclType;
        /**
         * The unique identifer of the identity. For Microsoft Entra identities, value is set to the object identifier of the
         * user, group or tenant for types user, group and everyone (and everyoneExceptGuests) respectively. For external groups
         * value is set to the ID of the externalGroup
         */
        value?: string;
    }
    interface ActivitySettings {
        // Specifies configurations to identify an externalItem based on a shared URL.
        urlToItemResolvers?: NullableOption<UrlToItemResolverBase[]>;
    }
    interface UrlToItemResolverBase {
        // The priority which defines the sequence in which the urlToItemResolverBase instances are evaluated.
        priority?: NullableOption<number>;
    }
    interface Configuration {
        /**
         * A collection of application IDs for registered Microsoft Entra apps that are allowed to manage the externalConnection
         * and to index content in the externalConnection.
         */
        authorizedAppIds?: NullableOption<string[]>;
    }
    interface DisplayTemplate {
        /**
         * The text identifier for the display template; for example, contosoTickets. Maximum 16 characters. Only alphanumeric
         * characters allowed.
         */
        id?: string;
        /**
         * The definition of the content's appearance, represented by an Adaptive Card, which is a JSON-serialized card object
         * model.
         */
        layout?: any;
        /**
         * Defines the priority of a display template. A display template with priority 1 is evaluated before a template with
         * priority 4. Gaps in priority values are supported. Must be positive value.
         */
        priority?: number;
        // Specifies additional rules for selecting this display template based on the item schema. Optional.
        rules?: NullableOption<PropertyRule[]>;
    }
    interface PropertyRule {
        /**
         * Specifies the operations to be performed during evaluation of a single propertyRule, where property and a string from
         * the values collection are the respective operands. Possible values are: null, equals, notEquals, contains, notContains,
         * lessThan, greaterThan, startsWith. Required.
         */
        operation?: RuleOperation;
        // The property from the externalItem schema. Required.
        property?: string;
        /**
         * A collection with one or many strings. The specified string(s) will be matched with the specified property using the
         * specified operation. Required.
         */
        values?: string[];
        /**
         * The join operator for evaluating multiple propertyRules. For example, if and is specified, then all propertyRules must
         * be true for the propertyRule to be true. Possible values are: or, and. Required.
         */
        valuesJoinedBy?: microsoftgraph.BinaryOperator;
    }
    interface ExternalItemContent {
        /**
         * The type of content in the value property. Possible values are: text, html, unknownFutureValue. These are the content
         * types that the indexer supports, and not the file extension types allowed.
         */
        type?: ExternalItemContentType;
        // The content for the externalItem. Required.
        value?: NullableOption<string>;
    }
// tslint:disable-next-line: interface-name
    interface ItemIdResolver extends UrlToItemResolverBase {
        /**
         * Pattern that specifies how to form the ID of the external item that the URL represents. The named groups from the
         * regular expression in urlPattern within the urlMatchInfo can be referenced by inserting the group name inside curly
         * brackets.
         */
        itemId?: string;
        // Configurations to match and resolve URL.
        urlMatchInfo?: NullableOption<UrlMatchInfo>;
    }
    interface UrlMatchInfo {
        // A list of the URL prefixes that must match URLs to be processed by this URL-to-item-resolver.
        baseUrls?: NullableOption<string[]>;
        /**
         * A regular expression that will be matched towards the URL that is processed by this URL-to-item-resolver. The
         * ECMAScript specification for regular expressions (ECMA-262) is used for the evaluation. The named groups defined by the
         * regular expression will be used later to extract values from the URL.
         */
        urlPattern?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface Properties {}
    interface Property {
        /**
         * A set of aliases or a friendly name for the property. Maximum 32 characters. Only alphanumeric characters allowed. For
         * example, each string may not contain control characters, whitespace, or any of the following: :, ;, ,, (, ), [, ], {,
         * }, %, $, +, !, *, =, &amp;, ?, @, #, /, ~, ', ', &amp;lt;, &amp;gt;, `, ^. Optional.
         */
        aliases?: NullableOption<string[]>;
        /**
         * Specifies if the property is queryable. Queryable properties can be used in Keyword Query Language (KQL) queries.
         * Optional.
         */
        isQueryable?: NullableOption<boolean>;
        /**
         * Specifies if the property is refinable. Refinable properties can be used to filter search results in the Search API and
         * add a refiner control in the Microsoft Search user experience. Optional.
         */
        isRefinable?: NullableOption<boolean>;
        /**
         * Specifies if the property is retrievable. Retrievable properties are returned in the result set when items are returned
         * by the search API. Retrievable properties are also available to add to the display template used to render search
         * results. Optional.
         */
        isRetrievable?: NullableOption<boolean>;
        /**
         * Specifies if the property is searchable. Only properties of type String or StringCollection can be searchable.
         * Nonsearchable properties aren't added to the search index. Optional.
         */
        isSearchable?: NullableOption<boolean>;
        /**
         * Specifies one or more well-known tags added against a property. Labels help Microsoft Search understand the semantics
         * of the data in the connection. Adding appropriate labels would result in an enhanced search experience (for example,
         * better relevance). Optional.The possible values are: title, url, createdBy, lastModifiedBy, authors, createdDateTime,
         * lastModifiedDateTime, fileName, fileExtension, unknownFutureValue, iconUrl. You must use the Prefer:
         * include-unknown-enum-members request header to get the following value in this evolvable enum: iconUrl.
         */
        labels?: NullableOption<Label[]>;
        /**
         * The name of the property. Maximum 32 characters. Only alphanumeric characters allowed. For example, each string may not
         * contain control characters, whitespace, or any of the following: :, ;, ,, (, ), [, ], {, }, %, $, +, !, *, =, &amp;, ?,
         * @, #, /, ~, ', ', &amp;lt;, &amp;gt;, `, ^. Required.
         */
        name?: string;
        /**
         * The data type of the property. Possible values are: string, int64, double, dateTime, boolean, stringCollection,
         * int64Collection, doubleCollection, dateTimeCollection, unknownFutureValue.
         */
        type?: PropertyType;
    }
    interface SearchSettings {
        /**
         * Enables the developer to define the appearance of the content and configure conditions that dictate when the template
         * should be displayed. Maximum of 2 search result templates per connection.
         */
        searchResultTemplates?: NullableOption<DisplayTemplate[]>;
    }
}
export namespace IdentityGovernanceNamespace {
    type CustomTaskExtensionOperationStatus = "completed" | "failed" | "unknownFutureValue";
    type LifecycleTaskCategory = "joiner" | "leaver" | "unknownFutureValue" | "mover";
    type LifecycleWorkflowCategory = "joiner" | "leaver" | "unknownFutureValue" | "mover";
    type LifecycleWorkflowProcessingStatus =
        | "queued"
        | "inProgress"
        | "completed"
        | "completedWithErrors"
        | "canceled"
        | "failed"
        | "unknownFutureValue";
    type ValueType = "enum" | "string" | "int" | "bool" | "unknownFutureValue";
    type WorkflowExecutionType = "scheduled" | "onDemand" | "unknownFutureValue";
    type WorkflowTriggerTimeBasedAttribute =
        | "employeeHireDate"
        | "employeeLeaveDateTime"
        | "unknownFutureValue"
        | "createdDateTime";
    interface WorkflowBase {
        // The category of the workflow. The possible values are: joiner, leaver, unknownFutureValue.
        category?: LifecycleWorkflowCategory;
        // When a workflow was created.
        createdDateTime?: NullableOption<string>;
        // A string that describes the purpose of the workflow.
        description?: NullableOption<string>;
        // A string to identify the workflow.
        displayName?: string;
        // Defines when and for who the workflow will run.
        executionConditions?: NullableOption<WorkflowExecutionConditions>;
        /**
         * Whether the workflow is enabled or disabled. If this setting is true, the workflow can be run on demand or on schedule
         * when isSchedulingEnabled is true.
         */
        isEnabled?: boolean;
        /**
         * If true, the Lifecycle Workflow engine executes the workflow based on the schedule defined by tenant settings. Can't be
         * true for a disabled workflow (where isEnabled is false).
         */
        isSchedulingEnabled?: boolean;
        // When the workflow was last modified.
        lastModifiedDateTime?: NullableOption<string>;
        // The user who created the workflow.
        createdBy?: NullableOption<microsoftgraph.User>;
        // The unique identifier of the Microsoft Entra identity that last modified the workflow.
        lastModifiedBy?: NullableOption<microsoftgraph.User>;
        // The tasks in the workflow.
        tasks?: NullableOption<Task[]>;
    }
    interface Workflow extends WorkflowBase {
        // When the workflow was deleted.Supports $filter(lt, le, gt, ge, eq, ne) and $orderby.
        deletedDateTime?: NullableOption<string>;
        // Identifier used for individually addressing a specific workflow.Supports $filter(eq, ne) and $orderby.
        id?: string;
        /**
         * The date time when the workflow is expected to run next based on the schedule interval, if there are any users matching
         * the execution conditions. Supports $filter(lt,gt) and $orderby.
         */
        nextScheduleRunDateTime?: NullableOption<string>;
        /**
         * The current version number of the workflow. Value is 1 when the workflow is first created.Supports $filter(lt, le, gt,
         * ge, eq, ne) and $orderby.
         */
        version?: NullableOption<number>;
        // The unique identifier of the Microsoft Entra identity that last modified the workflow object.
        executionScope?: NullableOption<UserProcessingResult[]>;
        // Workflow runs.
        runs?: NullableOption<Run[]>;
        // Represents the aggregation of task execution data for tasks within a workflow object.
        taskReports?: NullableOption<TaskReport[]>;
        // Per-user workflow execution results.
        userProcessingResults?: NullableOption<UserProcessingResult[]>;
        // The workflow versions that are available.
        versions?: NullableOption<WorkflowVersion[]>;
    }
    interface LifecycleWorkflowsContainer extends microsoftgraph.Entity {
        // The customTaskExtension instance.
        customTaskExtensions?: NullableOption<CustomTaskExtension[]>;
        // Deleted workflows in your lifecycle workflows instance.
        deletedItems?: NullableOption<microsoftgraph.DeletedItemContainer>;
        // The settings of the lifecycle workflows instance.
        settings?: LifecycleManagementSettings;
        // The definition of tasks within the lifecycle workflows instance.
        taskDefinitions?: NullableOption<TaskDefinition[]>;
        // The workflows in the lifecycle workflows instance.
        workflows?: NullableOption<Workflow[]>;
        // The workflow templates in the lifecycle workflow instance.
        workflowTemplates?: NullableOption<WorkflowTemplate[]>;
    }
    interface Task extends microsoftgraph.Entity {
        /**
         * Arguments included within the task. For guidance to configure this property, see Configure the arguments for built-in
         * Lifecycle Workflow tasks. Required.
         */
        arguments?: microsoftgraph.KeyValuePair[];
        /**
         * The category of the task. The possible values are: joiner, leaver, unknownFutureValue. This property is multi-valued
         * and the same task can apply to both joiner and leaver categories.Supports $filter(eq, ne).
         */
        category?: LifecycleTaskCategory;
        /**
         * A boolean value that specifies whether, if this task fails, the workflow will stop, and subsequent tasks will not run.
         * Optional.
         */
        continueOnError?: boolean;
        // A string that describes the purpose of the task for administrative use. Optional.
        description?: NullableOption<string>;
        // A unique string that identifies the task. Required.Supports $filter(eq, ne) and orderBy.
        displayName?: string;
        // An integer that states in what order the task will run in a workflow.Supports $orderby.
        executionSequence?: number;
        // A boolean value that denotes whether the task is set to run or not. Optional.Supports $filter(eq, ne) and orderBy.
        isEnabled?: boolean;
        /**
         * A unique template identifier for the task. For more information about the tasks that Lifecycle Workflows currently
         * supports and their unique identifiers, see supported tasks. Required.Supports $filter(eq, ne).
         */
        taskDefinitionId?: string;
        // The result of processing the task.
        taskProcessingResults?: NullableOption<TaskProcessingResult[]>;
    }
    interface TaskProcessingResult extends microsoftgraph.Entity {
        /**
         * The date time when taskProcessingResult execution ended. Value is null if task execution is still in progress.Supports
         * $filter(lt, le, gt, ge, eq, ne) and $orderby.
         */
        completedDateTime?: NullableOption<string>;
        // The date time when the taskProcessingResult was created.Supports $filter(lt, le, gt, ge, eq, ne) and $orderby.
        createdDateTime?: string;
        // Describes why the taskProcessingResult has failed.
        failureReason?: NullableOption<string>;
        /**
         * Describes the execution status of the taskProcessingResult. The possible values are: queued, inProgress, completed,
         * completedWithErrors, canceled, failed, unknownFutureValue.Supports $filter(eq, ne) and $orderby.
         */
        processingStatus?: LifecycleWorkflowProcessingStatus;
        /**
         * The date time when taskProcessingResult execution started. Value is null if task execution has not yet started.Supports
         * $filter(lt, le, gt, ge, eq, ne) and $orderby.
         */
        startedDateTime?: NullableOption<string>;
        // The unique identifier of the Microsoft Entra user targeted for the task execution.Supports $filter(eq, ne) and $expand.
        subject?: microsoftgraph.User;
        // The related workflow task
        task?: Task;
    }
    interface CustomTaskExtension extends microsoftgraph.CustomCalloutExtension {
        // The callback configuration for a custom task extension.
        callbackConfiguration?: NullableOption<microsoftgraph.CustomExtensionCallbackConfiguration>;
        // When the custom task extension was created.Supports $filter(lt, le, gt, ge, eq, ne) and $orderby.
        createdDateTime?: NullableOption<string>;
        // When the custom extension was last modified.Supports $filter(lt, le, gt, ge, eq, ne) and $orderby.
        lastModifiedDateTime?: NullableOption<string>;
        /**
         * The unique identifier of the Microsoft Entra user that created the custom task extension.Supports $filter(eq, ne) and
         * $expand.
         */
        createdBy?: NullableOption<microsoftgraph.User>;
        /**
         * The unique identifier of the Microsoft Entra user that modified the custom task extension last.Supports $filter(eq, ne)
         * and $expand.
         */
        lastModifiedBy?: NullableOption<microsoftgraph.User>;
    }
    interface LifecycleManagementSettings extends microsoftgraph.Entity {
        /**
         * Defines the settings for emails sent out from email-specific tasks within workflows. Accepts 2 parameterssenderDomain-
         * Defines the domain of who is sending the email. useCompanyBranding- A boolean value that defines if company branding is
         * to be used with the email.
         */
        emailSettings?: microsoftgraph.EmailSettings;
        /**
         * The interval in hours at which all workflows running in the tenant should be scheduled for execution. This interval has
         * a minimum value of 1 and a maximum value of 24. The default value is 3 hours.
         */
        workflowScheduleIntervalInHours?: number;
    }
    interface TaskDefinition extends microsoftgraph.Entity {
        /**
         * The category of the HR function that the tasks created using this definition can be used with. The possible values are:
         * joiner, mover, leaver, unknownFutureValue. This is a multi-valued enumeration whose allowed combinations are joiner,
         * joiner,leaver, or leaver.Supports $filter(eq, ne, has) and $orderby.
         */
        category?: LifecycleTaskCategory;
        continueOnError?: boolean;
        // The description of the taskDefinition.
        description?: NullableOption<string>;
        // The display name of the taskDefinition.Supports $filter(eq, ne) and $orderby.
        displayName?: string;
        // The parameters that must be supplied when creating a workflow task object.Supports $filter(any).
        parameters?: Parameter[];
        /**
         * The version number of the taskDefinition. New records are pushed when we add support for new parameters.Supports
         * $filter(ge, gt, le, lt, eq, ne) and $orderby.
         */
        version?: number;
    }
    interface WorkflowTemplate extends microsoftgraph.Entity {
        /**
         * The category of the workflow template. The possible values are: joiner, mover, leaver,unknownFutureValue.Supports
         * $filter(eq, ne) and $orderby.
         */
        category?: LifecycleWorkflowCategory;
        // The description of the workflowTemplate.
        description?: NullableOption<string>;
        // The display name of the workflowTemplate.Supports $filter(eq, ne) and $orderby.
        displayName?: string;
        // Conditions describing when to execute the workflow and the criteria to identify in-scope subject set.
        executionConditions?: NullableOption<WorkflowExecutionConditions>;
        /**
         * Represents the configured tasks to execute and their execution sequence within a workflow. This relationship is
         * expanded by default.
         */
        tasks?: NullableOption<Task[]>;
    }
    interface Run extends microsoftgraph.Entity {
        /**
         * The date time that the run completed. Value is null if the workflow hasn't completed.Supports $filter(lt, le, gt, ge,
         * eq, ne) and $orderby.
         */
        completedDateTime?: NullableOption<string>;
        // The number of tasks that failed in the run execution.
        failedTasksCount?: number;
        // The number of users that failed in the run execution.
        failedUsersCount?: number;
        // The datetime that the run was last updated.Supports $filter(lt, le, gt, ge, eq, ne) and $orderby.
        lastUpdatedDateTime?: NullableOption<string>;
        /**
         * The run execution status. The possible values are: queued, inProgress, completed, completedWithErrors, canceled,
         * failed, unknownFutureValue.Supports $filter(eq, ne) and $orderby.
         */
        processingStatus?: LifecycleWorkflowProcessingStatus;
        /**
         * The date time that the run is scheduled to be executed for a workflow.Supports $filter(lt, le, gt, ge, eq, ne) and
         * $orderby.
         */
        scheduledDateTime?: string;
        // The date time that the run execution started.Supports $filter(lt, le, gt, ge, eq, ne) and $orderby.
        startedDateTime?: NullableOption<string>;
        // The number of successfully completed users in the run.
        successfulUsersCount?: number;
        totalTasksCount?: number;
        // The total number of unprocessed tasks in the run execution.
        totalUnprocessedTasksCount?: number;
        // The total number of users in the workflow execution.
        totalUsersCount?: number;
        /**
         * The execution type of the workflows associated with the run. The possible values are: scheduled, onDemand,
         * unknownFutureValue.Supports $filter(eq, ne) and $orderby.
         */
        workflowExecutionType?: WorkflowExecutionType;
        // The related taskProcessingResults.
        taskProcessingResults?: NullableOption<TaskProcessingResult[]>;
        // The associated individual user execution.
        userProcessingResults?: NullableOption<UserProcessingResult[]>;
    }
    interface UserProcessingResult extends microsoftgraph.Entity {
        /**
         * The date time that the workflow execution for a user completed. Value is null if the workflow hasn't completed.Supports
         * $filter(lt, le, gt, ge, eq, ne) and $orderby.
         */
        completedDateTime?: NullableOption<string>;
        // The number of tasks that failed in the workflow execution.
        failedTasksCount?: number;
        /**
         * The workflow execution status. The possible values are: queued, inProgress, completed, completedWithErrors, canceled,
         * failed, unknownFutureValue.Supports $filter(eq, ne) and $orderby.
         */
        processingStatus?: LifecycleWorkflowProcessingStatus;
        /**
         * The date time that the workflow is scheduled to be executed for a user.Supports $filter(lt, le, gt, ge, eq, ne) and
         * $orderby.
         */
        scheduledDateTime?: string;
        /**
         * The date time that the workflow execution started. Value is null if the workflow execution has not started.Supports
         * $filter(lt, le, gt, ge, eq, ne) and $orderby.
         */
        startedDateTime?: NullableOption<string>;
        // The total number of tasks that in the workflow execution.
        totalTasksCount?: number;
        // The total number of unprocessed tasks for the workflow.
        totalUnprocessedTasksCount?: number;
        /**
         * Describes the execution type of the workflow. The possible values are: scheduled, onDemand, unknownFutureValue.Supports
         * $filter(lt, le, gt, ge, eq, ne) and $orderby.
         */
        workflowExecutionType?: WorkflowExecutionType;
        // The version of the workflow that was executed.
        workflowVersion?: number;
        // The unique identifier of the AAD user targeted for the taskProcessingResult.Supports $filter(eq, ne) and $expand.
        subject?: microsoftgraph.User;
        // The associated individual task execution.
        taskProcessingResults?: NullableOption<TaskProcessingResult[]>;
    }
    interface TaskReport extends microsoftgraph.Entity {
        /**
         * The date time that the associated run completed. Value is null if the run has not completed.Supports $filter(lt, le,
         * gt, ge, eq, ne) and $orderby.
         */
        completedDateTime?: NullableOption<string>;
        /**
         * The number of users in the run execution for which the associated task failed.Supports $filter(lt, le, gt, ge, eq, ne)
         * and $orderby.
         */
        failedUsersCount?: number;
        // The date and time that the task report was last updated.
        lastUpdatedDateTime?: string;
        /**
         * The processing status of the associated task based on the taskProcessingResults. The possible values are based on the
         * number of queued, inProgress, completed, completedWithErrors, canceled, failed, and unknownFutureValue.Supports
         * $filter(eq, ne) and $orderby.
         */
        processingStatus?: LifecycleWorkflowProcessingStatus;
        // The unique identifier of the associated run.
        runId?: NullableOption<string>;
        // The date time that the associated run started. Value is null if the run has not started.
        startedDateTime?: NullableOption<string>;
        /**
         * The number of users in the run execution for which the associated task succeeded.Supports $filter(lt, le, gt, ge, eq,
         * ne) and $orderby.
         */
        successfulUsersCount?: number;
        /**
         * The total number of users in the run execution for which the associated task was scheduled to execute.Supports
         * $filter(lt, le, gt, ge, eq, ne) and $orderby.
         */
        totalUsersCount?: number;
        /**
         * The number of users in the run execution for which the associated task is queued, in progress, or canceled.Supports
         * $filter(lt, le, gt, ge, eq, ne) and $orderby.
         */
        unprocessedUsersCount?: number;
        // The related lifecycle workflow task.Supports $filter(eq, ne) and $expand.
        task?: Task;
        // The taskDefinition associated with the related lifecycle workflow task.Supports $filter(eq, ne) and $expand.
        taskDefinition?: TaskDefinition;
        // The related lifecycle workflow taskProcessingResults.
        taskProcessingResults?: NullableOption<TaskProcessingResult[]>;
    }
    interface WorkflowVersion extends WorkflowBase {
        // The version of the workflow.Supports $filter(lt, le, gt, ge, eq, ne) and $orderby.
        versionNumber?: number;
    }
    interface CustomTaskExtensionCallbackConfiguration extends microsoftgraph.CustomExtensionCallbackConfiguration {
        authorizedApps?: NullableOption<microsoftgraph.Application[]>;
    }
    interface CustomTaskExtensionCallbackData extends microsoftgraph.CustomExtensionData {
        /**
         * Operation status that's provided by the Azure Logic App indicating whenever the Azure Logic App has run successfully or
         * not. Supported values: completed, failed, unknownFutureValue.
         */
        operationStatus?: NullableOption<CustomTaskExtensionOperationStatus>;
    }
    interface CustomTaskExtensionCalloutData extends microsoftgraph.CustomExtensionData {
        subject?: NullableOption<microsoftgraph.User>;
        task?: NullableOption<Task>;
        taskProcessingresult?: NullableOption<TaskProcessingResult>;
        workflow?: NullableOption<Workflow>;
    }
// tslint:disable-next-line: no-empty-interface
    interface WorkflowExecutionConditions {}
// tslint:disable-next-line: no-empty-interface
    interface OnDemandExecutionOnly extends WorkflowExecutionConditions {}
    interface Parameter {
        // The name of the parameter.
        name?: string;
        // The values of the parameter.
        values?: NullableOption<string[]>;
        // The value type of the parameter. The possible values are: enum, string, int, bool, unknownFutureValue.
        valueType?: ValueType;
    }
    interface RuleBasedSubjectSet extends microsoftgraph.SubjectSet {
        /**
         * The rule for the subject set. Lifecycle Workflows supports a rich set of user properties for configuring the rules
         * using $filter query expressions. For more information, see supported user and query parameters.
         */
        rule?: string;
    }
    interface RunSummary {
        // The number of failed workflow runs.
        failedRuns?: number;
        // The number of failed tasks of a workflow.
        failedTasks?: number;
        // The number of successful workflow runs.
        successfulRuns?: number;
        // The total number of runs for a workflow.
        totalRuns?: number;
        // The total number of tasks processed by a workflow.
        totalTasks?: number;
        // The total number of users processed by a workflow.
        totalUsers?: number;
    }
    interface TaskReportSummary {
        // The number of failed tasks in a report.
        failedTasks?: number;
        // The total number of successful tasks in a report.
        successfulTasks?: number;
        // The total number of tasks in a report.
        totalTasks?: number;
        // The number of unprocessed tasks in a report.
        unprocessedTasks?: number;
    }
// tslint:disable-next-line: no-empty-interface
    interface WorkflowExecutionTrigger {}
    interface TimeBasedAttributeTrigger extends WorkflowExecutionTrigger {
        /**
         * How many days before or after the time-based attribute specified the workflow should trigger. For example, if the
         * attribute is employeeHireDate and offsetInDays is -1, then the workflow should trigger one day before the employee hire
         * date. The value can range between -180 and 180 days.
         */
        offsetInDays?: number;
        /**
         * Determines which time-based identity property to reference. The possible values are: employeeHireDate,
         * employeeLeaveDateTime, createdDateTime, unknownFutureValue.
         */
        timeBasedAttribute?: WorkflowTriggerTimeBasedAttribute;
    }
    interface TriggerAndScopeBasedConditions extends WorkflowExecutionConditions {
        // Defines who the workflow runs for.
        scope?: NullableOption<microsoftgraph.SubjectSet>;
        // What triggers a workflow to run.
        trigger?: NullableOption<WorkflowExecutionTrigger>;
    }
    interface UsersProcessingSummary {
        failedTasks?: number;
        failedUsers?: number;
        successfulUsers?: number;
        totalTasks?: number;
        totalUsers?: number;
    }
    interface UserSummary {
        // The number of failed tasks for users in a user summary.
        failedTasks?: number;
        // The number of failed users in a user summary.
        failedUsers?: number;
        // The number of successful users in a user summary.
        successfulUsers?: number;
        // The total tasks of users in a user summary.
        totalTasks?: number;
        // The total number of users in a user summary
        totalUsers?: number;
    }
}
export namespace SecurityNamespace {
    type AdditionalDataOptions = "allVersions" | "linkedFiles" | "unknownFutureValue";
    type CaseAction =
        | "contentExport"
        | "applyTags"
        | "convertToPdf"
        | "index"
        | "estimateStatistics"
        | "addToReviewSet"
        | "holdUpdate"
        | "unknownFutureValue"
        | "purgeData";
    type CaseOperationStatus =
        | "notStarted"
        | "submissionFailed"
        | "running"
        | "succeeded"
        | "partiallySucceeded"
        | "failed"
        | "unknownFutureValue";
    type CaseStatus =
        | "unknown"
        | "active"
        | "pendingDelete"
        | "closing"
        | "closed"
        | "closedWithError"
        | "unknownFutureValue";
    type ChildSelectability = "One" | "Many" | "unknownFutureValue";
    type DataSourceContainerStatus = "active" | "released" | "unknownFutureValue";
    type DataSourceHoldStatus = "notApplied" | "applied" | "applying" | "removing" | "partial" | "unknownFutureValue";
    type DataSourceScopes =
        | "none"
        | "allTenantMailboxes"
        | "allTenantSites"
        | "allCaseCustodians"
        | "allCaseNoncustodialDataSources"
        | "unknownFutureValue";
    type ExportFileStructure = "none" | "directory" | "pst" | "unknownFutureValue";
    type ExportOptions = "originalFiles" | "text" | "pdfReplacement" | "tags" | "unknownFutureValue";
    type PurgeAreas = "mailboxes" | "teamsMessages" | "unknownFutureValue";
    type PurgeType = "recoverable" | "permanentlyDeleted" | "unknownFutureValue";
    type SourceType = "mailbox" | "site" | "unknownFutureValue";
    type BehaviorDuringRetentionPeriod =
        | "doNotRetain"
        | "retain"
        | "retainAsRecord"
        | "retainAsRegulatoryRecord"
        | "unknownFutureValue";
    type AlertClassification =
        | "unknown"
        | "falsePositive"
        | "truePositive"
        | "informationalExpectedActivity"
        | "unknownFutureValue";
    type AlertDetermination =
        | "unknown"
        | "apt"
        | "malware"
        | "securityPersonnel"
        | "securityTesting"
        | "unwantedSoftware"
        | "other"
        | "multiStagedAttack"
        | "compromisedAccount"
        | "phishing"
        | "maliciousUserActivity"
        | "notMalicious"
        | "notEnoughDataToValidate"
        | "confirmedActivity"
        | "lineOfBusinessApplication"
        | "unknownFutureValue";
    type AlertSeverity = "unknown" | "informational" | "low" | "medium" | "high" | "unknownFutureValue";
    type AlertStatus = "unknown" | "new" | "inProgress" | "resolved" | "unknownFutureValue";
    type ContainerPortProtocol = "udp" | "tcp" | "sctp" | "unknownFutureValue";
    type DefenderAvStatus =
        | "notReporting"
        | "disabled"
        | "notUpdated"
        | "updated"
        | "unknown"
        | "notSupported"
        | "unknownFutureValue";
    type DetectionSource =
        | "unknown"
        | "microsoftDefenderForEndpoint"
        | "antivirus"
        | "smartScreen"
        | "customTi"
        | "microsoftDefenderForOffice365"
        | "automatedInvestigation"
        | "microsoftThreatExperts"
        | "customDetection"
        | "microsoftDefenderForIdentity"
        | "cloudAppSecurity"
        | "microsoft365Defender"
        | "azureAdIdentityProtection"
        | "manual"
        | "microsoftDataLossPrevention"
        | "appGovernancePolicy"
        | "appGovernanceDetection"
        | "unknownFutureValue"
        | "microsoftDefenderForCloud"
        | "microsoftDefenderForIoT"
        | "microsoftDefenderForServers"
        | "microsoftDefenderForStorage"
        | "microsoftDefenderForDNS"
        | "microsoftDefenderForDatabases"
        | "microsoftDefenderForContainers"
        | "microsoftDefenderForNetwork"
        | "microsoftDefenderForAppService"
        | "microsoftDefenderForKeyVault"
        | "microsoftDefenderForResourceManager"
        | "microsoftDefenderForApiManagement"
        | "nrtAlerts"
        | "scheduledAlerts"
        | "microsoftDefenderThreatIntelligenceAnalytics"
        | "builtInMl"
        | "microsoftSentinel";
    type DetectionStatus = "detected" | "blocked" | "prevented" | "unknownFutureValue";
    type DeviceHealthStatus =
        | "active"
        | "inactive"
        | "impairedCommunication"
        | "noSensorData"
        | "noSensorDataImpairedCommunication"
        | "unknown"
        | "unknownFutureValue";
    type DeviceRiskScore = "none" | "informational" | "low" | "medium" | "high" | "unknownFutureValue";
    type EvidenceRemediationStatus = "none" | "remediated" | "prevented" | "blocked" | "notFound" | "unknownFutureValue";
    type EvidenceRole =
        | "unknown"
        | "contextual"
        | "scanned"
        | "source"
        | "destination"
        | "created"
        | "added"
        | "compromised"
        | "edited"
        | "attacked"
        | "attacker"
        | "commandAndControl"
        | "loaded"
        | "suspicious"
        | "policyViolator"
        | "unknownFutureValue";
    type EvidenceVerdict = "unknown" | "suspicious" | "malicious" | "noThreatsFound" | "unknownFutureValue";
    type FileHashAlgorithm = "unknown" | "md5" | "sha1" | "sha256" | "sha256ac" | "unknownFutureValue";
    type GoogleCloudLocationType = "unknown" | "regional" | "zonal" | "global" | "unknownFutureValue";
    type IncidentStatus = "active" | "resolved" | "inProgress" | "redirected" | "unknownFutureValue" | "awaitingAction";
    type KubernetesPlatform = "unknown" | "aks" | "eks" | "gke" | "arc" | "unknownFutureValue";
    type KubernetesServiceType =
        | "unknown"
        | "clusterIP"
        | "externalName"
        | "nodePort"
        | "loadBalancer"
        | "unknownFutureValue";
    type OnboardingStatus = "insufficientInfo" | "onboarded" | "canBeOnboarded" | "unsupported" | "unknownFutureValue";
    type ServiceSource =
        | "unknown"
        | "microsoftDefenderForEndpoint"
        | "microsoftDefenderForIdentity"
        | "microsoftDefenderForCloudApps"
        | "microsoftDefenderForOffice365"
        | "microsoft365Defender"
        | "azureAdIdentityProtection"
        | "microsoftAppGovernance"
        | "dataLossPrevention"
        | "unknownFutureValue"
        | "microsoftDefenderForCloud"
        | "microsoftSentinel";
    type VmCloudProvider = "unknown" | "azure" | "unknownFutureValue";
    type EventPropagationStatus = "none" | "inProcessing" | "failed" | "success" | "unknownFutureValue";
    type EventStatusType = "pending" | "error" | "success" | "notAvaliable" | "unknownFutureValue";
    type QueryType = "files" | "messages" | "unknownFutureValue";
    type RetentionTrigger = "dateLabeled" | "dateCreated" | "dateModified" | "dateOfEvent" | "unknownFutureValue";
    type ContentFormat = "text" | "html" | "markdown" | "unknownFutureValue";
    type HostPortProtocol = "tcp" | "udp" | "unknownFutureValue";
    type HostPortStatus = "open" | "filtered" | "closed" | "unknownFutureValue";
    type HostReputationClassification = "unknown" | "neutral" | "suspicious" | "malicious" | "unknownFutureValue";
    type HostReputationRuleSeverity = "unknown" | "low" | "medium" | "high" | "unknownFutureValue";
    type IndicatorSource = "microsoft" | "osint" | "public" | "unknownFutureValue";
    type IntelligenceProfileKind = "actor" | "tool" | "unknownFutureValue";
    type VulnerabilitySeverity = "none" | "low" | "medium" | "high" | "critical" | "unknownFutureValue";
    type WhoisDomainStatus =
        | "clientDeleteProhibited"
        | "clientHold"
        | "clientRenewProhibited"
        | "clientTransferProhibited"
        | "clientUpdateProhibited"
        | "unknownFutureValue";
    interface CasesRoot extends microsoftgraph.Entity {
        ediscoveryCases?: NullableOption<EdiscoveryCase[]>;
    }
    interface Alert extends microsoftgraph.Entity {
        // The adversary or activity group that is associated with this alert.
        actorDisplayName?: NullableOption<string>;
        additionalData?: NullableOption<Dictionary>;
        alertPolicyId?: NullableOption<string>;
        // URL for the alert page in the Microsoft 365 Defender portal.
        alertWebUrl?: NullableOption<string>;
        // Owner of the alert, or null if no owner is assigned.
        assignedTo?: NullableOption<string>;
        // The attack kill-chain category that the alert belongs to. Aligned with the MITRE ATT&amp;CK framework.
        category?: NullableOption<string>;
        /**
         * Specifies whether the alert represents a true threat. Possible values are: unknown, falsePositive, truePositive,
         * informationalExpectedActivity, unknownFutureValue.
         */
        classification?: NullableOption<AlertClassification>;
        // Array of comments created by the Security Operations (SecOps) team during the alert management process.
        comments?: NullableOption<AlertComment[]>;
        // Time when Microsoft 365 Defender created the alert.
        createdDateTime?: NullableOption<string>;
        // String value describing each alert.
        description?: NullableOption<string>;
        /**
         * Detection technology or sensor that identified the notable component or activity. Possible values are: unknown,
         * microsoftDefenderForEndpoint, antivirus, smartScreen, customTi, microsoftDefenderForOffice365, automatedInvestigation,
         * microsoftThreatExperts, customDetection, microsoftDefenderForIdentity, cloudAppSecurity, microsoft365Defender,
         * azureAdIdentityProtection, manual, microsoftDataLossPrevention, appGovernancePolicy, appGovernanceDetection,
         * unknownFutureValue, microsoftDefenderForCloud, microsoftDefenderForIoT, microsoftDefenderForServers,
         * microsoftDefenderForStorage, microsoftDefenderForDNS, microsoftDefenderForDatabases, microsoftDefenderForContainers,
         * microsoftDefenderForNetwork, microsoftDefenderForAppService, microsoftDefenderForKeyVault,
         * microsoftDefenderForResourceManager, microsoftDefenderForApiManagement. You must use the Prefer:
         * include-unknown-enum-members request header to get the following value(s) in this evolvable enum:
         * microsoftDefenderForCloud, microsoftDefenderForIoT, microsoftDefenderForServers, microsoftDefenderForStorage,
         * microsoftDefenderForDNS, microsoftDefenderForDatabases, microsoftDefenderForContainers, microsoftDefenderForNetwork,
         * microsoftDefenderForAppService, microsoftDefenderForKeyVault, microsoftDefenderForResourceManager,
         * microsoftDefenderForApiManagement.
         */
        detectionSource?: NullableOption<DetectionSource>;
        // The ID of the detector that triggered the alert.
        detectorId?: NullableOption<string>;
        /**
         * Specifies the result of the investigation, whether the alert represents a true attack and if so, the nature of the
         * attack. Possible values are: unknown, apt, malware, securityPersonnel, securityTesting, unwantedSoftware, other,
         * multiStagedAttack, compromisedUser, phishing, maliciousUserActivity, clean, insufficientData, confirmedUserActivity,
         * lineOfBusinessApplication, unknownFutureValue.
         */
        determination?: NullableOption<AlertDetermination>;
        // Collection of evidence related to the alert.
        evidence?: NullableOption<AlertEvidence[]>;
        // The earliest activity associated with the alert.
        firstActivityDateTime?: NullableOption<string>;
        // Unique identifier to represent the incident this alert resource is associated with.
        incidentId?: NullableOption<string>;
        // URL for the incident page in the Microsoft 365 Defender portal.
        incidentWebUrl?: NullableOption<string>;
        // The oldest activity associated with the alert.
        lastActivityDateTime?: NullableOption<string>;
        // Time when the alert was last updated at Microsoft 365 Defender.
        lastUpdateDateTime?: NullableOption<string>;
        // The attack techniques, as aligned with the MITRE ATT&amp;CK framework.
        mitreTechniques?: NullableOption<string[]>;
        productName?: NullableOption<string>;
        // The ID of the alert as it appears in the security provider product that generated the alert.
        providerAlertId?: NullableOption<string>;
        // Recommended response and remediation actions to take in the event this alert was generated.
        recommendedActions?: NullableOption<string>;
        // Time when the alert was resolved.
        resolvedDateTime?: NullableOption<string>;
        /**
         * The service or product that created this alert. Possible values are: unknown, microsoftDefenderForEndpoint,
         * microsoftDefenderForIdentity, microsoftDefenderForCloudApps, microsoftDefenderForOffice365, microsoft365Defender,
         * azureAdIdentityProtection, microsoftAppGovernance, dataLossPrevention, unknownFutureValue, microsoftDefenderForCloud.
         * You must use the Prefer: include-unknown-enum-members request header to get the following value(s) in this evolvable
         * enum: microsoftDefenderForCloud.
         */
        serviceSource?: ServiceSource;
        /**
         * Indicates the possible impact on assets. The higher the severity the bigger the impact. Typically higher severity items
         * require the most immediate attention. Possible values are: unknown, informational, low, medium, high,
         * unknownFutureValue.
         */
        severity?: AlertSeverity;
        // The status of the alert. Possible values are: new, inProgress, resolved, unknownFutureValue.
        status?: AlertStatus;
        // The Microsoft Entra tenant the alert was created in.
        tenantId?: NullableOption<string>;
        // The threat associated with this alert.
        threatDisplayName?: NullableOption<string>;
        // Threat family associated with this alert.
        threatFamilyName?: NullableOption<string>;
        // Brief identifying string value describing the alert.
        title?: NullableOption<string>;
    }
// tslint:disable-next-line: interface-name
    interface Incident extends microsoftgraph.Entity {
        // Owner of the incident, or null if no owner is assigned. Free editable text.
        assignedTo?: NullableOption<string>;
        /**
         * The specification for the incident. Possible values are: unknown, falsePositive, truePositive,
         * informationalExpectedActivity, unknownFutureValue.
         */
        classification?: NullableOption<AlertClassification>;
        // Array of comments created by the Security Operations (SecOps) team when the incident is managed.
        comments?: NullableOption<AlertComment[]>;
        // Time when the incident was first created.
        createdDateTime?: string;
        // Array of custom tags associated with an incident.
        customTags?: NullableOption<string[]>;
        description?: NullableOption<string>;
        /**
         * Specifies the determination of the incident. Possible values are: unknown, apt, malware, securityPersonnel,
         * securityTesting, unwantedSoftware, other, multiStagedAttack, compromisedUser, phishing, maliciousUserActivity, clean,
         * insufficientData, confirmedUserActivity, lineOfBusinessApplication, unknownFutureValue.
         */
        determination?: NullableOption<AlertDetermination>;
        // The incident name.
        displayName?: NullableOption<string>;
        // The URL for the incident page in the Microsoft 365 Defender portal.
        incidentWebUrl?: NullableOption<string>;
        lastModifiedBy?: NullableOption<string>;
        // Time when the incident was last updated.
        lastUpdateDateTime?: string;
        /**
         * Only populated in case an incident is grouped together with another incident, as part of the logic that processes
         * incidents. In such a case, the status property is redirected.
         */
        redirectIncidentId?: NullableOption<string>;
        /**
         * Indicates the possible impact on assets. The higher the severity, the bigger the impact. Typically higher severity
         * items require the most immediate attention. Possible values are: unknown, informational, low, medium, high,
         * unknownFutureValue.
         */
        severity?: AlertSeverity;
        /**
         * The status of the incident. Possible values are: active, resolved, inProgress, redirected, unknownFutureValue, and
         * awaitingAction.
         */
        status?: IncidentStatus;
        systemTags?: NullableOption<string[]>;
        // The Microsoft Entra tenant in which the alert was created.
        tenantId?: NullableOption<string>;
        // The list of related alerts. Supports $expand.
        alerts?: NullableOption<Alert[]>;
    }
    interface TriggersRoot extends microsoftgraph.Entity {
        retentionEvents?: NullableOption<RetentionEvent[]>;
    }
    interface TriggerTypesRoot extends microsoftgraph.Entity {
        retentionEventTypes?: NullableOption<RetentionEventType[]>;
    }
    interface ThreatIntelligence extends microsoftgraph.Entity {
        // Refers to indicators of threat or compromise highlighted in an article.Note: List retrieval is not yet supported.
        articleIndicators?: NullableOption<ArticleIndicator[]>;
        // A list of article objects.
        articles?: NullableOption<Article[]>;
        // Retrieve details about hostComponent objects.Note: List retrieval is not yet supported.
        hostComponents?: NullableOption<HostComponent[]>;
        // Retrieve details about hostCookie objects.Note: List retrieval is not yet supported.
        hostCookies?: NullableOption<HostCookie[]>;
        // Retrieve details about hostTracker objects.Note: List retrieval is not yet supported.
        hostPairs?: NullableOption<HostPair[]>;
        // Retrieve details about hostPort objects.Note: List retrieval is not yet supported.
        hostPorts?: NullableOption<HostPort[]>;
        // Refers to host objects that Microsoft Threat Intelligence has observed.Note: List retrieval is not yet supported.
        hosts?: NullableOption<Host[]>;
        // Retrieve details about hostSslCertificate objects.Note: List retrieval is not yet supported.
        hostSslCertificates?: NullableOption<HostSslCertificate[]>;
        // Retrieve details about hostTracker objects.Note: List retrieval is not yet supported.
        hostTrackers?: NullableOption<HostTracker[]>;
        intelligenceProfileIndicators?: NullableOption<IntelligenceProfileIndicator[]>;
        // A list of intelligenceProfile objects.
        intelProfiles?: NullableOption<IntelligenceProfile[]>;
        // Retrieve details about passiveDnsRecord objects.Note: List retrieval is not yet supported.
        passiveDnsRecords?: NullableOption<PassiveDnsRecord[]>;
        // Retrieve details about sslCertificate objects.Note: List retrieval is not yet supported.
        sslCertificates?: NullableOption<SslCertificate[]>;
        // Retrieve details about the subdomain.Note: List retrieval is not yet supported.
        subdomains?: NullableOption<Subdomain[]>;
        // Retrieve details about vulnerabilities.Note: List retrieval is not yet supported.
        vulnerabilities?: NullableOption<Vulnerability[]>;
        // Retrieve details about whoisHistoryRecord objects.Note: List retrieval is not yet supported.
        whoisHistoryRecords?: NullableOption<WhoisHistoryRecord[]>;
        // A list of whoisRecord objects.
        whoisRecords?: NullableOption<WhoisRecord[]>;
    }
    interface Case extends microsoftgraph.Entity {
        createdDateTime?: NullableOption<string>;
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        lastModifiedBy?: NullableOption<microsoftgraph.IdentitySet>;
        lastModifiedDateTime?: NullableOption<string>;
        status?: NullableOption<CaseStatus>;
    }
    interface CaseOperation extends microsoftgraph.Entity {
        /**
         * The type of action the operation represents. Possible values are:
         * addToReviewSet,applyTags,contentExport,convertToPdf,estimateStatistics, purgeData
         */
        action?: NullableOption<CaseAction>;
        // The date and time the operation was completed.
        completedDateTime?: NullableOption<string>;
        // The user that created the operation.
        createdBy?: NullableOption<microsoftgraph.IdentitySet>;
        // The date and time the operation was created.
        createdDateTime?: NullableOption<string>;
        // The progress of the operation.
        percentProgress?: NullableOption<number>;
        // Contains success and failure-specific result information.
        resultInfo?: NullableOption<microsoftgraph.ResultInfo>;
        /**
         * The status of the case operation. Possible values are: notStarted, submissionFailed, running, succeeded,
         * partiallySucceeded, failed.
         */
        status?: NullableOption<CaseOperationStatus>;
    }
    interface EdiscoveryCase extends Case {
        // The user who closed the case.
        closedBy?: NullableOption<microsoftgraph.IdentitySet>;
        /**
         * The date and time when the case was closed. The Timestamp type represents date and time information using ISO 8601
         * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
         */
        closedDateTime?: NullableOption<string>;
        // The external case number for customer reference.
        externalId?: NullableOption<string>;
        // Returns a list of case ediscoveryCustodian objects for this case.
        custodians?: NullableOption<EdiscoveryCustodian[]>;
        // Returns a list of case ediscoveryNoncustodialDataSource objects for this case.
        noncustodialDataSources?: NullableOption<EdiscoveryNoncustodialDataSource[]>;
        // Returns a list of case caseOperation objects for this case.
        operations?: NullableOption<CaseOperation[]>;
        // Returns a list of eDiscoveryReviewSet objects in the case.
        reviewSets?: NullableOption<EdiscoveryReviewSet[]>;
        // Returns a list of eDiscoverySearch objects associated with this case.
        searches?: NullableOption<EdiscoverySearch[]>;
        // Returns a list of eDIscoverySettings objects in the case.
        settings?: NullableOption<EdiscoveryCaseSettings>;
        // Returns a list of ediscoveryReviewTag objects associated to this case.
        tags?: NullableOption<EdiscoveryReviewTag[]>;
    }
    interface DataSet extends microsoftgraph.Entity {
        createdBy?: NullableOption<microsoftgraph.IdentitySet>;
        createdDateTime?: NullableOption<string>;
        displayName?: NullableOption<string>;
    }
    interface DataSource extends microsoftgraph.Entity {
        // The user who created the dataSource.
        createdBy?: NullableOption<microsoftgraph.IdentitySet>;
        // The date and time the dataSource was created.
        createdDateTime?: NullableOption<string>;
        // The display name of the dataSource and is the name of the SharePoint site.
        displayName?: NullableOption<string>;
        // The hold status of the dataSource.The possible values are: notApplied, applied, applying, removing, partial
        holdStatus?: NullableOption<DataSourceHoldStatus>;
    }
    interface DataSourceContainer extends microsoftgraph.Entity {
        // Created date and time of the dataSourceContainer entity.
        createdDateTime?: NullableOption<string>;
        // Display name of the dataSourceContainer entity.
        displayName?: NullableOption<string>;
        // The hold status of the dataSourceContainer. The possible values are: notApplied, applied, applying, removing, partial
        holdStatus?: NullableOption<DataSourceHoldStatus>;
        // Last modified date and time of the dataSourceContainer.
        lastModifiedDateTime?: NullableOption<string>;
        // Date and time that the dataSourceContainer was released from the case.
        releasedDateTime?: NullableOption<string>;
        // Latest status of the dataSourceContainer. Possible values are: Active, Released.
        status?: NullableOption<DataSourceContainerStatus>;
    }
    interface EdiscoveryAddToReviewSetOperation extends CaseOperation {
        // eDiscovery review set to which items matching source collection query gets added.
        reviewSet?: NullableOption<EdiscoveryReviewSet>;
        // eDiscovery search that gets added to review set.
        search?: NullableOption<EdiscoverySearch>;
    }
    interface EdiscoveryReviewSet extends DataSet {
        // Represents queries within the review set.
        queries?: NullableOption<EdiscoveryReviewSetQuery[]>;
    }
    interface Search extends microsoftgraph.Entity {
        contentQuery?: NullableOption<string>;
        createdBy?: NullableOption<microsoftgraph.IdentitySet>;
        createdDateTime?: NullableOption<string>;
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        lastModifiedBy?: NullableOption<microsoftgraph.IdentitySet>;
        lastModifiedDateTime?: NullableOption<string>;
    }
    interface EdiscoverySearch extends Search {
        /**
         * When specified, the collection will span across a service for an entire workload. Possible values are: none,
         * allTenantMailboxes, allTenantSites, allCaseCustodians, allCaseNoncustodialDataSources.
         */
        dataSourceScopes?: NullableOption<DataSourceScopes>;
        // Adds an additional source to the eDiscovery search.
        additionalSources?: NullableOption<DataSource[]>;
        // Adds the results of the eDiscovery search to the specified reviewSet.
        addToReviewSetOperation?: NullableOption<EdiscoveryAddToReviewSetOperation>;
        // Custodian sources that are included in the eDiscovery search.
        custodianSources?: NullableOption<DataSource[]>;
        // The last estimate operation associated with the eDiscovery search.
        lastEstimateStatisticsOperation?: NullableOption<EdiscoveryEstimateOperation>;
        // noncustodialDataSource sources that are included in the eDiscovery search
        noncustodialSources?: NullableOption<EdiscoveryNoncustodialDataSource[]>;
    }
    interface EdiscoveryCustodian extends DataSourceContainer {
        // Date and time the custodian acknowledged a hold notification.
        acknowledgedDateTime?: NullableOption<string>;
        // Email address of the custodian.
        email?: NullableOption<string>;
        // Operation entity that represents the latest indexing for the custodian.
        lastIndexOperation?: NullableOption<EdiscoveryIndexOperation>;
        // Data source entity for SharePoint sites associated with the custodian.
        siteSources?: NullableOption<SiteSource[]>;
        // Data source entity for groups associated with the custodian.
        unifiedGroupSources?: NullableOption<UnifiedGroupSource[]>;
        // Data source entity for a the custodian. This is the container for a custodian's mailbox and OneDrive for Business site.
        userSources?: NullableOption<UserSource[]>;
    }
    interface EdiscoveryNoncustodialDataSource extends DataSourceContainer {
        // User source or SharePoint site data source as noncustodial data source.
        dataSource?: NullableOption<DataSource>;
        // Operation entity that represents the latest indexing for the noncustodial data source.
        lastIndexOperation?: NullableOption<EdiscoveryIndexOperation>;
    }
    interface EdiscoveryCaseSettings extends microsoftgraph.Entity {
        // The OCR (Optical Character Recognition) settings for the case.
        ocr?: NullableOption<OcrSettings>;
        // The redundancy (near duplicate and email threading) detection settings for the case.
        redundancyDetection?: NullableOption<RedundancyDetectionSettings>;
        // The Topic Modeling (Themes) settings for the case.
        topicModeling?: NullableOption<TopicModelingSettings>;
    }
    interface Tag extends microsoftgraph.Entity {
        createdBy?: NullableOption<microsoftgraph.IdentitySet>;
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        lastModifiedDateTime?: NullableOption<string>;
    }
    interface EdiscoveryReviewTag extends Tag {
        /**
         * Indicates whether a single or multiple child tags can be associated with a document. Possible values are: One, Many.
         * This value controls whether the UX presents the tags as checkboxes or a radio button group.
         */
        childSelectability?: NullableOption<ChildSelectability>;
        // Returns the tags that are a child of a tag.
        childTags?: NullableOption<EdiscoveryReviewTag[]>;
        // Returns the parent tag of the specified tag.
        parent?: NullableOption<EdiscoveryReviewTag>;
    }
// tslint:disable-next-line: no-empty-interface
    interface EdiscoveryIndexOperation extends CaseOperation {}
    interface SiteSource extends DataSource {
        // The SharePoint site associated with the siteSource.
        site?: microsoftgraph.Site;
    }
    interface UnifiedGroupSource extends DataSource {
        // Specifies which sources are included in this group. Possible values are: mailbox, site.
        includedSources?: NullableOption<SourceType>;
        // Represents a group.
        group?: microsoftgraph.Group;
    }
    interface UserSource extends DataSource {
        // Email address of the user's mailbox.
        email?: string;
        // Specifies which sources are included in this group. Possible values are: mailbox, site.
        includedSources?: NullableOption<SourceType>;
        // The URL of the user's OneDrive for Business site. Read-only.
        siteWebUrl?: NullableOption<string>;
    }
    interface EdiscoveryEstimateOperation extends CaseOperation {
        // The estimated count of items for the search that matched the content query.
        indexedItemCount?: NullableOption<number>;
        // The estimated size of items for the search that matched the content query.
        indexedItemsSize?: NullableOption<number>;
        // The number of mailboxes that had search hits.
        mailboxCount?: NullableOption<number>;
        // The number of mailboxes that had search hits.
        siteCount?: NullableOption<number>;
        // The estimated count of unindexed items for the collection.
        unindexedItemCount?: NullableOption<number>;
        // The estimated size of unindexed items for the collection.
        unindexedItemsSize?: NullableOption<number>;
        // eDiscovery search.
        search?: NullableOption<EdiscoverySearch>;
    }
    interface EdiscoveryExportOperation extends CaseOperation {
        // The description provided for the export.
        description?: NullableOption<string>;
        exportFileMetadata?: NullableOption<ExportFileMetadata[]>;
        /**
         * The options provided for the export. For more information, see reviewSet: export. Possible values are: originalFiles,
         * text, pdfReplacement, tags.
         */
        exportOptions?: NullableOption<ExportOptions>;
        /**
         * The options that specify the structure of the export. For more information, see reviewSet: export. Possible values are:
         * none, directory, pst.
         */
        exportStructure?: NullableOption<ExportFileStructure>;
        // The name provided for the export.
        outputName?: NullableOption<string>;
        // Review set from where documents are exported.
        reviewSet?: NullableOption<EdiscoveryReviewSet>;
        // The review set query that is used to filter the documents for export.
        reviewSetQuery?: NullableOption<EdiscoveryReviewSetQuery>;
    }
// tslint:disable-next-line: no-empty-interface
    interface EdiscoveryReviewSetQuery extends Search {}
// tslint:disable-next-line: no-empty-interface
    interface EdiscoveryHoldOperation extends CaseOperation {}
// tslint:disable-next-line: no-empty-interface
    interface EdiscoveryPurgeDataOperation extends CaseOperation {}
// tslint:disable-next-line: no-empty-interface
    interface EdiscoveryTagOperation extends CaseOperation {}
    interface RetentionEvent extends microsoftgraph.Entity {
        // The user who created the retentionEvent.
        createdBy?: NullableOption<microsoftgraph.IdentitySet>;
        // The date time when the retentionEvent was created.
        createdDateTime?: NullableOption<string>;
        // Optional information about the event.
        description?: NullableOption<string>;
        // Name of the event.
        displayName?: NullableOption<string>;
        eventPropagationResults?: NullableOption<EventPropagationResult[]>;
        /**
         * Represents the workload (SharePoint Online, OneDrive for Business, Exchange Online) and identification information
         * associated with a retention event.
         */
        eventQueries?: NullableOption<EventQuery[]>;
        eventStatus?: NullableOption<RetentionEventStatus>;
        // Optional time when the event should be triggered.
        eventTriggerDateTime?: NullableOption<string>;
        // The user who last modified the retentionEvent.
        lastModifiedBy?: NullableOption<microsoftgraph.IdentitySet>;
        // The latest date time when the retentionEvent was modified.
        lastModifiedDateTime?: NullableOption<string>;
        // Last time the status of the event was updated.
        lastStatusUpdateDateTime?: NullableOption<string>;
        // Specifies the event that will start the retention period for labels that use this event type when an event is created.
        retentionEventType?: NullableOption<RetentionEventType>;
    }
    interface RetentionEventType extends microsoftgraph.Entity {
        // The user who created the retentionEventType.
        createdBy?: NullableOption<microsoftgraph.IdentitySet>;
        // The date time when the retentionEventType was created.
        createdDateTime?: NullableOption<string>;
        // Optional information about the event type.
        description?: NullableOption<string>;
        // Name of the event type.
        displayName?: NullableOption<string>;
        // The user who last modified the retentionEventType.
        lastModifiedBy?: NullableOption<microsoftgraph.IdentitySet>;
        // The latest date time when the retentionEventType was modified.
        lastModifiedDateTime?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface Artifact extends microsoftgraph.Entity {}
    interface HostComponent extends Artifact {
        // The type of component that was detected (for example, Operating System, Framework, Remote Access, or Server).
        category?: NullableOption<string>;
        /**
         * The first date and time when Microsoft Defender Threat Intelligence observed this web component. The timestamp type
         * represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1,
         * 2014, is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: string;
        /**
         * The most recent date and time when Microsoft Defender Threat Intelligence observed this web component. The timestamp
         * type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan
         * 1, 2014, is 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: string;
        // A name running on the artifact, for example, Microsoft IIS.
        name?: string;
        // The component version running on the artifact, for example, v8.5. This shouldn't be assumed to be strictly numerical.
        version?: NullableOption<string>;
        /**
         * The host related to this component. This is a reverse navigation property. When navigating to components from a host,
         * this should be assumed to be a return reference.
         */
        host?: Host;
    }
    interface Host extends Artifact {
        /**
         * The first date and time when this host was observed. The timestamp type represents date and time information using ISO
         * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        /**
         * The most recent date and time when this host was observed. The timestamp type represents date and time information
         * using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: NullableOption<string>;
        /**
         * The hostPairs that are resources associated with a host, where that host is the parentHost and has an outgoing pairing
         * to a childHost.
         */
        childHostPairs?: NullableOption<HostPair[]>;
        // The hostComponents that are associated with this host.
        components?: NullableOption<HostComponent[]>;
        // The hostCookies that are associated with this host.
        cookies?: NullableOption<HostCookie[]>;
        // The hostPairs that are associated with this host, where this host is either the parentHost or childHost.
        hostPairs?: NullableOption<HostPair[]>;
        /**
         * The hostPairs that are associated with a host, where that host is the childHost and has an incoming pairing with a
         * parentHost.
         */
        parentHostPairs?: NullableOption<HostPair[]>;
        // Passive DNS retrieval about this host.
        passiveDns?: NullableOption<PassiveDnsRecord[]>;
        // Reverse passive DNS retrieval about this host.
        passiveDnsReverse?: NullableOption<PassiveDnsRecord[]>;
        // The hostPorts associated with a host.
        ports?: NullableOption<HostPort[]>;
        // Represents a calculated reputation of this host.
        reputation?: NullableOption<HostReputation>;
        // The hostSslCertificates that are associated with this host.
        sslCertificates?: NullableOption<HostSslCertificate[]>;
        // The subdomains that are associated with this host.
        subdomains?: NullableOption<Subdomain[]>;
        // The hostTrackers that are associated with this host.
        trackers?: NullableOption<HostTracker[]>;
        // The most recent whoisRecord for this host.
        whois?: NullableOption<WhoisRecord>;
    }
    interface Article extends microsoftgraph.Entity {
        // Formatted article contents.
        body?: FormattedContent;
        /**
         * The date and time when this article was created. The Timestamp type represents date and time information using ISO 8601
         * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        createdDateTime?: string;
        // URL of the header image for this article, used for display purposes.
        imageUrl?: NullableOption<string>;
        // Indicates whether this article is currently featured by Microsoft.
        isFeatured?: boolean;
        /**
         * The most recent date and time when this article was updated. The Timestamp type represents date and time information
         * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        lastUpdatedDateTime?: string;
        // A quick summary of this article.
        summary?: FormattedContent;
        // Tags for this article, communicating keywords, or key concepts.
        tags?: NullableOption<string[]>;
        // The title of this article.
        title?: string;
        // Indicators related to this article.
        indicators?: NullableOption<ArticleIndicator[]>;
    }
// tslint:disable-next-line: interface-name
    interface Indicator extends microsoftgraph.Entity {
        /**
         * The source that provides this indicator. The possible values are: microsoftDefenderThreatIntelligence,
         * openSourceIntelligence, public, unknownFutureValue.
         */
        source?: IndicatorSource;
        // The artifact related to this indicator.
        artifact?: Artifact;
    }
// tslint:disable-next-line: no-empty-interface
    interface ArticleIndicator extends Indicator {}
    interface HostPair extends microsoftgraph.Entity {
        /**
         * The date and time when Microsoft Defender Threat Intelligence first observed the hostPair. The timestamp type
         * represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1,
         * 2014 is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        /**
         * The date and time when Microsoft Defender Threat Intelligence last observed the hostPair. The timestamp type represents
         * date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: NullableOption<string>;
        // The reason that two hosts are identified as hostPair.
        linkKind?: NullableOption<string>;
        // Host reached via the parentHost.
        childHost?: Host;
        // Host used to reach the childHost.
        parentHost?: Host;
    }
    interface HostCookie extends Artifact {
        // The URI for which the cookie is valid.
        domain?: string;
        /**
         * The first date and time when this hostCookie was observed by Microsoft Defender Threat Intelligence. The timestamp type
         * represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1,
         * 2014, is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: string;
        /**
         * The most recent date and time when this hostCookie was observed by Microsoft Defender Threat Intelligence. The
         * timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight
         * UTC on Jan 1, 2014, is 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: string;
        // The name of the cookie, for example, JSESSIONID or SEARCH_NAMESITE.
        name?: string;
        // Indicates that a cookie of this name and domain was found related to this host.
        host?: Host;
    }
    interface PassiveDnsRecord extends Artifact {
        /**
         * The date and time that this passiveDnsRecord entry was collected by Microsoft. The Timestamp type represents date and
         * time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        collectedDateTime?: string;
        /**
         * The date and time when this passiveDnsRecord entry was first seen. The Timestamp type represents date and time
         * information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: string;
        /**
         * The date and time when this passiveDnsRecord entry was most recently seen. The Timestamp type represents date and time
         * information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: string;
        // The DNS record type for this passiveDnsRecord entry.
        recordType?: string;
        // The artifact related to this passiveDnsRecord entry.
        artifact?: Artifact;
        /**
         * The parent host related to this passiveDnsRecord entry. Generally, this is the value that you can search to discover
         * this passiveDnsRecord value.
         */
        parentHost?: Host;
    }
    interface HostPort extends microsoftgraph.Entity {
        // The hostPortBanners retrieved from scanning the port.
        banners?: NullableOption<HostPortBanner[]>;
        /**
         * The first date and time when Microsoft Defender Threat Intelligence observed the hostPort. The timestamp type
         * represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1,
         * 2014, is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        /**
         * The last date and time when Microsoft Defender Threat Intelligence scanned the hostPort. The timestamp type represents
         * date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014, is
         * 2014-01-01T00:00:00Z.
         */
        lastScanDateTime?: NullableOption<string>;
        /**
         * The last date and time when Microsoft Defender Threat Intelligence observed the hostPort. The timestamp type represents
         * date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014, is
         * 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: NullableOption<string>;
        // The numerical identifier of the port which is standardized across the internet.
        port?: number;
        // The general protocol used to scan the port. The possible values are: tcp, udp, unknownFutureValue.
        protocol?: NullableOption<HostPortProtocol>;
        // The hostPortComponents retrieved from scanning the port.
        services?: NullableOption<HostPortComponent[]>;
        // The status of the port. The possible values are: open, filtered, closed, unknownFutureValue.
        status?: NullableOption<HostPortStatus>;
        // The total amount of times that Microsoft Defender Threat Intelligence has observed the hostPort in all its scans.
        timesObserved?: NullableOption<number>;
        /**
         * The host related to this hostPort. This is a reverse navigation property. When you navigate to hostPorts from a host,
         * assume that this is a return reference.
         */
        host?: Host;
        // The most recent sslCertificate used to communicate on the port.
        mostRecentSslCertificate?: NullableOption<SslCertificate>;
    }
    interface HostReputation extends microsoftgraph.Entity {
        /**
         * The calculated reputation of the host. The possible values are: unknown, neutral, suspicious, malicious,
         * unknownFutureValue.
         */
        classification?: HostReputationClassification;
        // A collection of rules that have been used to calculate the classification and score.
        rules?: NullableOption<HostReputationRule[]>;
        /**
         * The calculated score (0-100) of the requested host. A higher value indicates that this host is more likely to be
         * suspicious or malicious.
         */
        score?: number;
    }
    interface HostSslCertificate extends Artifact {
        /**
         * The first date and time when this hostSslCertificate was observed. The timestamp type represents date and time
         * information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        /**
         * The most recent date and time when this hostSslCertificate was observed. The timestamp type represents date and time
         * information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: NullableOption<string>;
        // The ports related with this hostSslCertificate.
        ports?: NullableOption<HostSslCertificatePort[]>;
        // The host for this hostSslCertificate.
        host?: NullableOption<Host>;
        // The sslCertificate for this hostSslCertificate.
        sslCertificate?: NullableOption<SslCertificate>;
    }
    interface Subdomain extends microsoftgraph.Entity {
        /**
         * The date and time when Microsoft Defender Threat Intelligence first observed the subdomain. The timestamp type
         * represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1,
         * 2014 is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        // The host of the subdomain.
        host?: Host;
    }
    interface HostTracker extends Artifact {
        /**
         * The first date and time when this hostTracker was observed by Microsoft Defender Threat Intelligence. The timestamp
         * type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan
         * 1, 2014, is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: string;
        // The kind of hostTracker that was detected. For example, GoogleAnalyticsID or JarmHash.
        kind?: string;
        /**
         * The most recent date and time when this hostTracker was observed by Microsoft Defender Threat Intelligence. The
         * timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight
         * UTC on Jan 1, 2014, is 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: string;
        // The identification value for the hostTracker.
        value?: string;
        /**
         * The host related to this hostTracker. When navigating to a hostTracker from a host, this should be assumed to be a
         * return reference.
         */
        host?: Host;
    }
    interface WhoisBaseRecord extends microsoftgraph.Entity {
        // The contact information for the abuse contact.
        abuse?: NullableOption<WhoisContact>;
        // The contact information for the admin contact.
        admin?: NullableOption<WhoisContact>;
        // The contact information for the billing contact.
        billing?: NullableOption<WhoisContact>;
        // The domain status for this WHOIS object.
        domainStatus?: NullableOption<string>;
        /**
         * The date and time when this WHOIS record expires with the registrar. The timestamp type represents date and time
         * information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        expirationDateTime?: NullableOption<string>;
        /**
         * The first seen date and time of this WHOIS record. The timestamp type represents date and time information using ISO
         * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        /**
         * The last seen date and time of this WHOIS record. The timestamp type represents date and time information using ISO
         * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: NullableOption<string>;
        /**
         * The date and time when this WHOIS record was last modified. The timestamp type represents date and time information
         * using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        lastUpdateDateTime?: NullableOption<string>;
        // The nameservers for this WHOIS object.
        nameservers?: NullableOption<WhoisNameserver[]>;
        // The contact information for the noc contact.
        noc?: NullableOption<WhoisContact>;
        // The raw WHOIS details for this WHOIS object.
        rawWhoisText?: NullableOption<string>;
        // The contact information for the registrant contact.
        registrant?: NullableOption<WhoisContact>;
        // The contact information for the registrar contact.
        registrar?: NullableOption<WhoisContact>;
        /**
         * The date and time when this WHOIS record was registered with a registrar. The timestamp type represents date and time
         * information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        registrationDateTime?: NullableOption<string>;
        // The contact information for the technical contact.
        technical?: NullableOption<WhoisContact>;
        // The WHOIS server that provides the details.
        whoisServer?: NullableOption<string>;
        // The contact information for the zone contact.
        zone?: NullableOption<WhoisContact>;
        // The host associated to this WHOIS object.
        host?: Host;
    }
    interface WhoisRecord extends WhoisBaseRecord {
        // The collection of historical records associated to this WHOIS object.
        history?: NullableOption<WhoisHistoryRecord[]>;
    }
    interface Hostname extends Host {
        // The company or individual who registered this hostname, from WHOIS data.
        registrant?: NullableOption<string>;
        // The registrar for this hostname, from WHOIS data.
        registrar?: NullableOption<string>;
    }
    interface SslCertificate extends Artifact {
        /**
         * The date and time when a certificate expires. The timestamp type represents date and time information using ISO 8601
         * format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        expirationDateTime?: NullableOption<string>;
        // A hash of the certificate calculated on the data and signature.
        fingerprint?: NullableOption<string>;
        /**
         * The first date and time when this sslCertificate was observed. The timestamp type represents date and time information
         * using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        /**
         * The date and time when a certificate was issued. The timestamp type represents date and time information using ISO 8601
         * format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        issueDateTime?: NullableOption<string>;
        // The entity that grants this certificate.
        issuer?: NullableOption<SslCertificateEntity>;
        /**
         * The most recent date and time when this sslCertificate was observed. The timestamp type represents date and time
         * information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: NullableOption<string>;
        // The serial number associated with an SSL certificate.
        serialNumber?: NullableOption<string>;
        // A SHA-1 hash of the certificate. Note: This is not the signature.
        sha1?: NullableOption<string>;
        // The person, site, machine, and so on, this certificate is for.
        subject?: NullableOption<SslCertificateEntity>;
        // The hosts related with this sslCertificate.
        relatedHosts?: NullableOption<Host[]>;
    }
// tslint:disable-next-line: interface-name
    interface IntelligenceProfile extends microsoftgraph.Entity {
        // A list of commonly-known aliases for the threat intelligence included in the intelligenceProfile.
        aliases?: NullableOption<string[]>;
        // The country/region of origin for the given actor or threat associated with this intelligenceProfile.
        countriesOrRegionsOfOrigin?: NullableOption<IntelligenceProfileCountryOrRegionOfOrigin[]>;
        /**
         * A synopsis of the threat actor. This property places the threat actor in wider context, tracing its discovery, history,
         * significant campaigns, targeting, techniques of note, affiliations with governments, law enforcement countermeasures,
         * and any areas of dispute among the security community regarding attribution.
         */
        description?: FormattedContent;
        /**
         * The date and time when this intelligenceProfile was first active. The timestamp type represents date and time
         * information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        firstActiveDateTime?: string;
        // A categorization of the type of this intelligenceProfile. The possible values are: actor, tool, unknownFutureValue.
        kind?: IntelligenceProfileKind;
        // A short summary of this intelligenceProfile.
        summary?: FormattedContent;
        // Known targets related to this intelligenceProfile.
        targets?: NullableOption<string[]>;
        // The title of this intelligenceProfile.
        title?: string;
        /**
         * Formatted information featuring a description of the distinctive tactics, techniques, and procedures (TTP) of the
         * group, followed by a list of all known custom, commodity, and publicly available implants used by the group.
         */
        tradecraft?: NullableOption<FormattedContent>;
        // Includes an assemblage of high-fidelity network indicators of compromise.
        indicators?: NullableOption<IntelligenceProfileIndicator[]>;
    }
// tslint:disable-next-line: interface-name
    interface IntelligenceProfileIndicator extends Indicator {
        /**
         * Designate when an artifact was first used actively in an attack, when a particular sample was compiled, or if neither
         * of those could be ascertained when the file was first seen in public repositories (for example, VirusTotal, ANY.RUN,
         * Hybrid Analysis) or reported publicly.
         */
        firstSeenDateTime?: string;
        /**
         * Designate when an artifact was most recently used actively in an attack, when a particular sample was compiled, or if
         * neither of those could be ascertained when the file was first seen in public repositories (for example, VirusTotal,
         * ANY.RUN, Hybrid Analysis) or reported publicly.
         */
        lastSeenDateTime?: NullableOption<string>;
    }
// tslint:disable-next-line: interface-name
    interface IpAddress extends Host {
        // The details about the autonomous system to which this IP address belongs.
        autonomousSystem?: NullableOption<AutonomousSystem>;
        // The country/region for this IP address.
        countryOrRegion?: NullableOption<string>;
        // The hosting company listed for this host.
        hostingProvider?: NullableOption<string>;
        // The block of IP addresses this IP address belongs to.
        netblock?: NullableOption<string>;
    }
    interface Vulnerability extends microsoftgraph.Entity {
        // Indicates whether this vulnerability has any known exploits associated to known bad actors.
        activeExploitsObserved?: boolean;
        // Community-defined common weakness enumerations (CWE).
        commonWeaknessEnumerationIds?: string[];
        // The date and time when this vulnerability article was first created.
        createdDateTime?: string;
        // A summary of the common vulnerability scoring system (v2) findings about this vulnerability.
        cvss2Summary?: CvssSummary;
        // A summary of the common vulnerability scoring system (v3) findings about this vulnerability.
        cvss3Summary?: CvssSummary;
        // The vulnerability article contents, describing the vulnerability.
        description?: FormattedContent;
        // Known exploits for this vulnerability.
        exploits?: NullableOption<Hyperlink[]>;
        // Indicates whether this vulnerability has exploits in public sources (such as Packetstorm or Exploit-DB) online.
        exploitsAvailable?: boolean;
        // Indicates whether chatter about this vulnerability has been discovered online.
        hasChatter?: boolean;
        // The date and time when this vulnerability article was most recently updated.
        lastModifiedDateTime?: string;
        /**
         * A unique algorithm that reflects the priority of a vulnerability based on the CVSS score, exploits, chatter, and
         * linkage to malware. This property also evaluates the recency of these components so users can understand which
         * vulnerability should be remediated first.
         */
        priorityScore?: number;
        // The date and time when this vulnerability article was published.
        publishedDateTime?: string;
        // Reference links where further information can be learned about this vulnerability.
        references?: NullableOption<Hyperlink[]>;
        // Any known remediation steps.
        remediation?: NullableOption<FormattedContent>;
        /**
         * Indicates the severity of this vulnerability. The possible values are: none, low, medium, high, critical,
         * unknownFutureValue.
         */
        severity?: VulnerabilitySeverity;
        // Articles related to this vulnerability.
        articles?: NullableOption<Article[]>;
        // Components related to this vulnerability article.
        components?: NullableOption<VulnerabilityComponent[]>;
    }
// tslint:disable-next-line: no-empty-interface
    interface WhoisHistoryRecord extends WhoisBaseRecord {}
    interface UnclassifiedArtifact extends Artifact {
        // The kind for this unclassifiedArtifact resource, describing what this value means.
        kind?: string;
        // The value for this unclassifiedArtifact.
        value?: string;
    }
    interface VulnerabilityComponent extends microsoftgraph.Entity {
        // The name of this vulnerability component.
        name?: string;
    }
    interface ExportFileMetadata {
        downloadUrl?: NullableOption<string>;
        fileName?: NullableOption<string>;
        size?: NullableOption<number>;
    }
    interface OcrSettings {
        // Indicates whether or not OCR is enabled for the case.
        isEnabled?: NullableOption<boolean>;
        // Maximum image size that will be processed in KB).
        maxImageSize?: NullableOption<number>;
        /**
         * The timeout duration for the OCR engine. A longer timeout might increase success of OCR, but might add to the total
         * processing time.
         */
        timeout?: NullableOption<string>;
    }
    interface RedundancyDetectionSettings {
        // Indicates whether email threading and near duplicate detection are enabled.
        isEnabled?: NullableOption<boolean>;
        /**
         * Specifies the maximum number of words used for email threading and near duplicate detection. To learn more, see
         * Minimum/maximum number of words.
         */
        maxWords?: NullableOption<number>;
        /**
         * Specifies the minimum number of words used for email threading and near duplicate detection. To learn more, see
         * Minimum/maximum number of words.
         */
        minWords?: NullableOption<number>;
        /**
         * Specifies the similarity level for documents to be put in the same near duplicate set. To learn more, see Document and
         * email similarity threshold.
         */
        similarityThreshold?: NullableOption<number>;
    }
// tslint:disable-next-line: no-empty-interface
    interface StringValueDictionary {}
    interface TopicModelingSettings {
        /**
         * Indicates whether the themes model should dynamically optimize the number of generated topics. To learn more, see
         * Adjust maximum number of themes dynamically.
         */
        dynamicallyAdjustTopicCount?: NullableOption<boolean>;
        /**
         * Indicates whether the themes model should exclude numbers while parsing document texts. To learn more, see Include
         * numbers in themes.
         */
        ignoreNumbers?: NullableOption<boolean>;
        // Indicates whether themes model is enabled for the case.
        isEnabled?: NullableOption<boolean>;
        /**
         * The total number of topics that the themes model will generate for a review set. To learn more, see Maximum number of
         * themes.
         */
        topicCount?: NullableOption<number>;
    }
    interface AlertComment {
        // The comment text.
        comment?: NullableOption<string>;
        // The person or app name that submitted the comment.
        createdByDisplayName?: NullableOption<string>;
        // The time when the comment was submitted.
        createdDateTime?: string;
    }
    interface AlertEvidence {
        /**
         * The date and time when the evidence was created and added to the alert. The Timestamp type represents date and time
         * information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is
         * 2014-01-01T00:00:00Z.
         */
        createdDateTime?: string;
        // Detailed description of the entity role/s in an alert. Values are free-form.
        detailedRoles?: NullableOption<string[]>;
        /**
         * Status of the remediation action taken. The possible values are: none, remediated, prevented, blocked, notFound,
         * unknownFutureValue.
         */
        remediationStatus?: EvidenceRemediationStatus;
        // Details about the remediation status.
        remediationStatusDetails?: NullableOption<string>;
        /**
         * The role/s that an evidence entity represents in an alert, for example, an IP address that is associated with an
         * attacker has the evidence role Attacker.
         */
        roles?: EvidenceRole[];
        /**
         * Array of custom tags associated with an evidence instance, for example, to denote a group of devices, high-value
         * assets, etc.
         */
        tags?: NullableOption<string[]>;
        /**
         * The decision reached by automated investigation. The possible values are: unknown, suspicious, malicious,
         * noThreatsFound, unknownFutureValue.
         */
        verdict?: EvidenceVerdict;
    }
    interface AmazonResourceEvidence extends AlertEvidence {
        // The unique identifier for the Amazon account.
        amazonAccountId?: NullableOption<string>;
        // The Amazon resource identifier (ARN) for the cloud resource.
        amazonResourceId?: NullableOption<string>;
        // The name of the resource.
        resourceName?: NullableOption<string>;
        // The type of the resource.
        resourceType?: NullableOption<string>;
    }
    interface AnalyzedMessageEvidence extends AlertEvidence {
        // Direction of the email relative to your network. The possible values are: inbound, outbound or intraorg.
        antiSpamDirection?: NullableOption<string>;
        // Number of attachments in the email.
        attachmentsCount?: NullableOption<number>;
        // Delivery action of the email. The possible values are: delivered, deliveredAsSpam, junked, blocked, or replaced.
        deliveryAction?: NullableOption<string>;
        /**
         * Location where the email was delivered. The possible values are: inbox, external, junkFolder, quarantine, failed,
         * dropped, deletedFolder or forwarded.
         */
        deliveryLocation?: NullableOption<string>;
        // Public-facing identifier for the email that is set by the sending email system.
        internetMessageId?: NullableOption<string>;
        // Detected language of the email content.
        language?: NullableOption<string>;
        // Unique identifier for the email, generated by Microsoft 365.
        networkMessageId?: NullableOption<string>;
        // The P1 sender.
        p1Sender?: NullableOption<EmailSender>;
        // The P2 sender.
        p2Sender?: NullableOption<EmailSender>;
        // Date and time when the email was received.
        receivedDateTime?: NullableOption<string>;
        // Email address of the recipient, or email address of the recipient after distribution list expansion.
        recipientEmailAddress?: NullableOption<string>;
        // IP address of the last detected mail server that relayed the message.
        senderIp?: NullableOption<string>;
        // Subject of the email.
        subject?: NullableOption<string>;
        // Collection of methods used to detect malware, phishing, or other threats found in the email.
        threatDetectionMethods?: NullableOption<string[]>;
        // Collection of detection names for malware or other threats found.
        threats?: NullableOption<string[]>;
        // Number of embedded URLs in the email.
        urlCount?: NullableOption<number>;
        // Collection of the URLs contained in this email.
        urls?: NullableOption<string[]>;
        // Uniform resource name (URN) of the automated investigation where the cluster was identified.
        urn?: NullableOption<string>;
    }
    interface EmailSender {
        // The name of the sender.
        displayName?: NullableOption<string>;
        // Sender domain.
        domainName?: NullableOption<string>;
        // Sender email address.
        emailAddress?: NullableOption<string>;
    }
    interface AzureResourceEvidence extends AlertEvidence {
        // The unique identifier for the Azure resource.
        resourceId?: NullableOption<string>;
        // The name of the resource.
        resourceName?: NullableOption<string>;
        // The type of the resource.
        resourceType?: NullableOption<string>;
    }
    interface BlobContainerEvidence extends AlertEvidence {
        // The name of the blob container.
        name?: NullableOption<string>;
        // The storage which the blob container belongs to.
        storageResource?: NullableOption<AzureResourceEvidence>;
        // The full URL representation of the blob container.
        url?: NullableOption<string>;
    }
    interface BlobEvidence extends AlertEvidence {
        // The container which the blob belongs to.
        blobContainer?: NullableOption<BlobContainerEvidence>;
        // The Etag associated with this blob.
        etag?: NullableOption<string>;
        // The file hashes associated with this blob.
        fileHashes?: NullableOption<FileHash[]>;
        // The name of the blob.
        name?: NullableOption<string>;
        // The full URL representation of the blob.
        url?: NullableOption<string>;
    }
    interface FileHash {
        // The hash algorithm type. Possible values are: unknown, md5, sha1, sha256, sha256ac, unknownFutureValue.
        algorithm?: FileHashAlgorithm;
        // The hash value.
        value?: NullableOption<string>;
    }
    interface CloudApplicationEvidence extends AlertEvidence {
        // Unique identifier of the application.
        appId?: NullableOption<number>;
        // Name of the application.
        displayName?: NullableOption<string>;
        // Identifier of the instance of the Software as a Service (SaaS) application.
        instanceId?: NullableOption<number>;
        // Name of the instance of the SaaS application.
        instanceName?: NullableOption<string>;
        // The identifier of the SaaS application.
        saasAppId?: NullableOption<number>;
    }
    interface ContainerEvidence extends AlertEvidence {
        // The list of arguments.
        args?: NullableOption<string[]>;
        // The list of commands.
        command?: NullableOption<string[]>;
        // The container ID.
        containerId?: NullableOption<string>;
        // The image used to run the container.
        image?: NullableOption<ContainerImageEvidence>;
        // The privileged status.
        isPrivileged?: boolean;
        // The container name.
        name?: NullableOption<string>;
        // The pod this container belongs to.
        pod?: NullableOption<KubernetesPodEvidence>;
    }
    interface ContainerImageEvidence extends AlertEvidence {
        // The digest image entity, in case this is a tag image.
        digestImage?: NullableOption<ContainerImageEvidence>;
        // The unique identifier for the container image entity.
        imageId?: NullableOption<string>;
        // The container registry for this image.
        registry?: NullableOption<ContainerRegistryEvidence>;
    }
    interface KubernetesPodEvidence extends AlertEvidence {
        // The list of pod containers which are not init or ephemeral containers.
        containers?: NullableOption<ContainerEvidence[]>;
        // The pod controller.
        controller?: NullableOption<KubernetesControllerEvidence>;
        // The list of pod ephemeral containers.
        ephemeralContainers?: NullableOption<ContainerEvidence[]>;
        // The list of pod init containers.
        initContainers?: NullableOption<ContainerEvidence[]>;
        // The pod labels.
        labels?: NullableOption<Dictionary>;
        // The pod name.
        name?: NullableOption<string>;
        // The pod namespace.
        namespace?: NullableOption<KubernetesNamespaceEvidence>;
        // The pod IP.
        podIp?: NullableOption<IpEvidence>;
        // The pod service account.
        serviceAccount?: NullableOption<KubernetesServiceAccountEvidence>;
    }
    interface ContainerRegistryEvidence extends AlertEvidence {
        // The registry URI.
        registry?: NullableOption<string>;
    }
    interface DeviceEvidence extends AlertEvidence {
        // A unique identifier assigned to a device by Microsoft Entra ID when device is Microsoft Entra joined.
        azureAdDeviceId?: NullableOption<string>;
        /**
         * State of the Defender AntiMalware engine. The possible values are: notReporting, disabled, notUpdated, updated,
         * unknown, notSupported, unknownFutureValue.
         */
        defenderAvStatus?: NullableOption<DefenderAvStatus>;
        // The fully qualified domain name (FQDN) for the device.
        deviceDnsName?: NullableOption<string>;
        // The date and time when the device was first seen.
        firstSeenDateTime?: NullableOption<string>;
        /**
         * The health state of the device. The possible values are: active, inactive, impairedCommunication, noSensorData,
         * noSensorDataImpairedCommunication, unknown, unknownFutureValue.
         */
        healthStatus?: NullableOption<DeviceHealthStatus>;
        // Ip interfaces of the device during the time of the alert.
        ipInterfaces?: NullableOption<string[]>;
        // Users that were logged on the machine during the time of the alert.
        loggedOnUsers?: NullableOption<LoggedOnUser[]>;
        // A unique identifier assigned to a device by Microsoft Defender for Endpoint.
        mdeDeviceId?: NullableOption<string>;
        /**
         * The status of the machine onboarding to Microsoft Defender for Endpoint. The possible values are: insufficientInfo,
         * onboarded, canBeOnboarded, unsupported, unknownFutureValue.
         */
        onboardingStatus?: NullableOption<OnboardingStatus>;
        // The build version for the operating system the device is running.
        osBuild?: NullableOption<number>;
        // The operating system platform the device is running.
        osPlatform?: NullableOption<string>;
        // The ID of the role-based access control (RBAC) device group.
        rbacGroupId?: NullableOption<number>;
        // The name of the RBAC device group.
        rbacGroupName?: NullableOption<string>;
        /**
         * Risk score as evaluated by Microsoft Defender for Endpoint. The possible values are: none, informational, low, medium,
         * high, unknownFutureValue.
         */
        riskScore?: NullableOption<DeviceRiskScore>;
        // The version of the operating system platform.
        version?: NullableOption<string>;
        // Metadata of the virtual machine (VM) on which Microsoft Defender for Endpoint is running.
        vmMetadata?: NullableOption<VmMetadata>;
    }
    interface LoggedOnUser {
        // User account name of the logged-on user.
        accountName?: NullableOption<string>;
        // User account domain of the logged-on user.
        domainName?: NullableOption<string>;
    }
    interface VmMetadata {
        // The cloud provider hosting the virtual machine. The possible values are: unknown, azure, unknownFutureValue.
        cloudProvider?: VmCloudProvider;
        // Unique identifier of the Azure resource.
        resourceId?: NullableOption<string>;
        // Unique identifier of the Azure subscription the customer tenant belongs to.
        subscriptionId?: NullableOption<string>;
        // Unique identifier of the virtual machine instance.
        vmId?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface Dictionary {}
// tslint:disable-next-line: no-empty-interface
    interface DynamicColumnValue {}
    interface FileDetails {
        // The name of the file.
        fileName?: NullableOption<string>;
        // The file path (location) of the file instance.
        filePath?: NullableOption<string>;
        // The publisher of the file.
        filePublisher?: NullableOption<string>;
        // The size of the file in bytes.
        fileSize?: NullableOption<number>;
        // The certificate authority (CA) that issued the certificate.
        issuer?: NullableOption<string>;
        // The Sha1 cryptographic hash of the file content.
        sha1?: NullableOption<string>;
        // The Sha256 cryptographic hash of the file content.
        sha256?: NullableOption<string>;
        // The signer of the signed file.
        signer?: NullableOption<string>;
    }
    interface FileEvidence extends AlertEvidence {
        // The status of the detection.The possible values are: detected, blocked, prevented, unknownFutureValue.
        detectionStatus?: NullableOption<DetectionStatus>;
        // The file details.
        fileDetails?: NullableOption<FileDetails>;
        // A unique identifier assigned to a device by Microsoft Defender for Endpoint.
        mdeDeviceId?: NullableOption<string>;
    }
    interface GoogleCloudResourceEvidence extends AlertEvidence {
        // The zone or region where the resource is located.
        location?: NullableOption<string>;
        // The type of location. Possible values are: unknown, regional, zonal, global, unknownFutureValue.
        locationType?: NullableOption<GoogleCloudLocationType>;
        // The Google project ID as defined by the user.
        projectId?: NullableOption<string>;
        // The project number assigned by Google.
        projectNumber?: NullableOption<number>;
        // The name of the resource.
        resourceName?: NullableOption<string>;
        // The type of the resource.
        resourceType?: NullableOption<string>;
    }
    interface HuntingQueryResults {
        // The results of the hunting query.
        results?: NullableOption<HuntingRowResult[]>;
        // The schema for the response.
        schema?: NullableOption<SinglePropertySchema[]>;
    }
// tslint:disable-next-line: no-empty-interface
    interface HuntingRowResult {}
    interface SinglePropertySchema {
        // The name of the property.
        name?: NullableOption<string>;
        // The type of the property.
        type?: NullableOption<string>;
    }
// tslint:disable-next-line: interface-name
    interface IpEvidence extends AlertEvidence {
        // The two-letter country code according to ISO 3166 format, for example: US, UK, CA, etc.
        countryLetterCode?: NullableOption<string>;
        // The value of the IP Address, can be either in V4 address or V6 address format.
        ipAddress?: NullableOption<string>;
    }
    interface KubernetesClusterEvidence extends AlertEvidence {
        /**
         * The cloud identifier of the cluster. Can be either an amazonResourceEvidence, azureResourceEvidence, or
         * googleCloudResourceEvidence object.
         */
        cloudResource?: NullableOption<AlertEvidence>;
        // The distribution type of the cluster.
        distribution?: NullableOption<string>;
        // The cluster name.
        name?: NullableOption<string>;
        // The platform the cluster runs on. Possible values are: unknown, aks, eks, gke, arc, unknownFutureValue.
        platform?: NullableOption<KubernetesPlatform>;
        // The kubernetes version of the cluster.
        version?: NullableOption<string>;
    }
    interface KubernetesControllerEvidence extends AlertEvidence {
        // The labels for the Kubernetes pod.
        labels?: NullableOption<Dictionary>;
        // The controller name.
        name?: NullableOption<string>;
        // The service account namespace.
        namespace?: NullableOption<KubernetesNamespaceEvidence>;
        // The controller type.
        type?: NullableOption<string>;
    }
    interface KubernetesNamespaceEvidence extends AlertEvidence {
        // The namespace cluster.
        cluster?: NullableOption<KubernetesClusterEvidence>;
        // The labels for the Kubernetes pod.
        labels?: NullableOption<Dictionary>;
        // The namespace name.
        name?: NullableOption<string>;
    }
    interface KubernetesServiceAccountEvidence extends AlertEvidence {
        // The service account name.
        name?: NullableOption<string>;
        // The service account namespace.
        namespace?: NullableOption<KubernetesNamespaceEvidence>;
    }
    interface KubernetesSecretEvidence extends AlertEvidence {
        // The secret name.
        name?: NullableOption<string>;
        // The secret namespace.
        namespace?: NullableOption<KubernetesNamespaceEvidence>;
        /**
         * The secret type can include both built-in types and custom ones. Examples of built-in types are: Opaque,
         * kubernetes.io/service-account-token, kubernetes.io/dockercfg, kubernetes.io/dockerconfigjson, kubernetes.io/basic-auth,
         * kubernetes.io/ssh-auth, kubernetes.io/tls, bootstrap.kubernetes.io/token.
         */
        secretType?: NullableOption<string>;
    }
    interface KubernetesServiceEvidence extends AlertEvidence {
        // The service cluster IP.
        clusterIP?: NullableOption<IpEvidence>;
        // The service external IPs.
        externalIPs?: NullableOption<IpEvidence[]>;
        // The service labels.
        labels?: NullableOption<Dictionary>;
        // The service name.
        name?: NullableOption<string>;
        // The service namespace.
        namespace?: NullableOption<KubernetesNamespaceEvidence>;
        // The service selector.
        selector?: NullableOption<Dictionary>;
        // The list of service ports.
        servicePorts?: NullableOption<KubernetesServicePort[]>;
        // The service type. Possible values are: unknown, clusterIP, externalName, nodePort, loadBalancer, unknownFutureValue.
        serviceType?: KubernetesServiceType;
    }
    interface KubernetesServicePort {
        // The application protocol for this port.
        appProtocol?: NullableOption<string>;
        // The name of this port within the service.
        name?: NullableOption<string>;
        // The port on each node on which this service is exposed when the type is either NodePort or LoadBalancer.
        nodePort?: number;
        // The port that this service exposes.
        port?: number;
        // The protocol name. Possible values are: udp, tcp, sctp, unknownFutureValue.
        protocol?: NullableOption<ContainerPortProtocol>;
        /**
         * The name or number of the port to access on the pods targeted by the service. The port number must be in the range 1 to
         * 65535. The name must be an IANASVCNAME.
         */
        targetPort?: NullableOption<string>;
    }
    interface MailboxEvidence extends AlertEvidence {
        // The name associated with the mailbox.
        displayName?: NullableOption<string>;
        // The primary email address of the mailbox.
        primaryAddress?: NullableOption<string>;
        // The user account of the mailbox.
        userAccount?: NullableOption<UserAccount>;
    }
    interface UserAccount {
        // The displayed name of the user account.
        accountName?: NullableOption<string>;
        // The user object identifier in Microsoft Entra ID.
        azureAdUserId?: NullableOption<string>;
        // The user display name in Microsoft Entra ID.
        displayName?: NullableOption<string>;
        // The name of the Active Directory domain of which the user is a member.
        domainName?: NullableOption<string>;
        // The user principal name of the account in Microsoft Entra ID.
        userPrincipalName?: NullableOption<string>;
        // The local security identifier of the user account.
        userSid?: NullableOption<string>;
    }
    interface MailClusterEvidence extends AlertEvidence {
        // The clustering logic of the emails inside the cluster.
        clusterBy?: NullableOption<string>;
        // The value utilized to cluster the similar emails.
        clusterByValue?: NullableOption<string>;
        // Count of emails in the email cluster.
        emailCount?: NullableOption<number>;
        // Unique identifiers for the emails in the cluster, generated by Microsoft 365.
        networkMessageIds?: NullableOption<string[]>;
        // The query used to identify the email cluster.
        query?: NullableOption<string>;
        // Uniform resource name (URN) of the automated investigation where the cluster was identified.
        urn?: NullableOption<string>;
    }
    interface OauthApplicationEvidence extends AlertEvidence {
        // Unique identifier of the application.
        appId?: NullableOption<string>;
        // Name of the application.
        displayName?: NullableOption<string>;
        // The unique identifier of the application object in Azure AD.
        objectId?: NullableOption<string>;
        // The name of the application publisher.
        publisher?: NullableOption<string>;
    }
    interface ProcessEvidence extends AlertEvidence {
        // The status of the detection.The possible values are: detected, blocked, prevented, unknownFutureValue.
        detectionStatus?: NullableOption<DetectionStatus>;
        // Image file details.
        imageFile?: NullableOption<FileDetails>;
        // A unique identifier assigned to a device by Microsoft Defender for Endpoint.
        mdeDeviceId?: NullableOption<string>;
        /**
         * Date and time when the parent of the process was created. The DateTimeOffset type represents date and time information
         * using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        parentProcessCreationDateTime?: NullableOption<string>;
        // Process ID (PID) of the parent process that spawned the process.
        parentProcessId?: NullableOption<number>;
        // Parent process image file details.
        parentProcessImageFile?: NullableOption<FileDetails>;
        // Command line used to create the new process.
        processCommandLine?: NullableOption<string>;
        /**
         * Date and time when the process was created. The DateTimeOffset type represents date and time information using ISO 8601
         * format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        processCreationDateTime?: NullableOption<string>;
        // Process ID (PID) of the newly created process.
        processId?: NullableOption<number>;
        // User details of the user that ran the process.
        userAccount?: NullableOption<UserAccount>;
    }
    interface RegistryKeyEvidence extends AlertEvidence {
        // Registry hive of the key that the recorded action was applied to.
        registryHive?: NullableOption<string>;
        // Registry key that the recorded action was applied to.
        registryKey?: NullableOption<string>;
    }
    interface RegistryValueEvidence extends AlertEvidence {
        // A unique identifier assigned to a device by Microsoft Defender for Endpoint.
        mdeDeviceId?: NullableOption<string>;
        // Registry hive of the key that the recorded action was applied to.
        registryHive?: NullableOption<string>;
        // Registry key that the recorded action was applied to.
        registryKey?: NullableOption<string>;
        // Data of the registry value that the recorded action was applied to.
        registryValue?: NullableOption<string>;
        // Name of the registry value that the recorded action was applied to.
        registryValueName?: NullableOption<string>;
        // Data type, such as binary or string, of the registry value that the recorded action was applied to.
        registryValueType?: NullableOption<string>;
    }
    interface SecurityGroupEvidence extends AlertEvidence {
        // The name of the security group.
        displayName?: NullableOption<string>;
        // Unique identifier of the security group.
        securityGroupId?: NullableOption<string>;
    }
    interface UrlEvidence extends AlertEvidence {
        // The Unique Resource Locator (URL).
        url?: NullableOption<string>;
    }
    interface UserEvidence extends AlertEvidence {
        // The user account details.
        userAccount?: NullableOption<UserAccount>;
    }
    interface EventPropagationResult {
        // The name of the specific location in the workload associated with the event.
        location?: NullableOption<string>;
        // The name of the workload associated with the event.
        serviceName?: NullableOption<string>;
        /**
         * Indicates the status of the event creation request. The possible values are: none, inProcessing, failed, success,
         * unknownFutureValue.
         */
        status?: NullableOption<EventPropagationStatus>;
        // Additional information about the status of the event creation request.
        statusInformation?: NullableOption<string>;
    }
    interface EventQuery {
        /**
         * Represents unique identification for the query. 'Asset ID' for SharePoint Online and OneDrive for Business, 'keywords'
         * for Exchange Online.
         */
        query?: string;
        /**
         * Represents the type of query associated with an event. 'files' for SPO and ODB and 'messages' for EXO.The possible
         * values are: files, messages, unknownFutureValue.
         */
        queryType?: NullableOption<QueryType>;
    }
    interface RetentionEventStatus {
        // The error if the status isn't successful.
        error?: NullableOption<microsoftgraph.PublicError>;
        // The status of the distribution. The possible values are: pending, error, success, notAvaliable.
        status?: NullableOption<EventStatusType>;
    }
    interface AutonomousSystem {
        // The name of the autonomous system.
        name?: string;
        // The autonomous system number, assigned by IANA.
        number?: number;
        // The name of the autonomous system organization.
        organization?: string;
        // A displayable value for these autonomous system details.
        value?: string;
    }
    interface CvssSummary {
        // The CVSS score about this vulnerability.
        score?: number;
        /**
         * The CVSS severity rating for this vulnerability. The possible values are: none, low, medium, high, critical,
         * unknownFutureValue.
         */
        severity?: NullableOption<VulnerabilitySeverity>;
        // The CVSS vector string for this vulnerability.
        vectorString?: NullableOption<string>;
    }
    interface FormattedContent {
        // The content of this formattedContent.
        content?: NullableOption<string>;
        // The format of the content. The possible values are: text, html, markdown, unknownFutureValue.
        format?: NullableOption<ContentFormat>;
    }
    interface HostPortBanner {
        // The text response received from a web component when scanning a hostPort.
        banner?: string;
        /**
         * The first date and time when Microsoft Defender Threat Intelligence observed the hostPortBanner. The timestamp type
         * represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1,
         * 2014, is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        /**
         * The last date and time when Microsoft Defender Threat Intelligence observed the hostPortBanner. The timestamp type
         * represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1,
         * 2014, is 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: NullableOption<string>;
        // The specific protocol used to scan the hostPort.
        scanProtocol?: NullableOption<string>;
        // The total amount of times that Microsoft Defender Threat Intelligence has observed the hostPortBanner in all its scans.
        timesObserved?: NullableOption<number>;
    }
    interface HostPortComponent {
        /**
         * The first date and time when Microsoft Defender Threat Intelligence observed the hostPortComponent. The timestamp type
         * represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1,
         * 2014, is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        /**
         * Indicates whether this hostPortComponent is recent, which is determined by whether the hostPortComponent was observed
         * either at the same time or after the latest hostPortBanner in the scan history, or within two days of the latest scan
         * of the hostPort when there are no hostPortBanners in the scan history.
         */
        isRecent?: NullableOption<boolean>;
        /**
         * The last date and time when Microsoft Defender Threat Intelligence observed the hostPortComponent. The timestamp type
         * represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1,
         * 2014, is 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: NullableOption<string>;
        component?: NullableOption<HostComponent>;
    }
    interface HostReputationRule {
        // The description of the rule that gives more context.
        description?: string;
        // The name of the rule.
        name?: string;
        // Link to a web page with details related to this rule.
        relatedDetailsUrl?: NullableOption<string>;
        /**
         * Indicates the severity that this rule has against the reputation score. The possible values are: unknown, low, medium,
         * high, unknownFutureValue.
         */
        severity?: HostReputationRuleSeverity;
    }
    interface HostSslCertificatePort {
        /**
         * The first date and time when this port was observed. The timestamp type represents date and time information using ISO
         * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        /**
         * The most recent date and time when this port was observed. The timestamp type represents date and time information
         * using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: NullableOption<string>;
        // The port number.
        port?: NullableOption<number>;
    }
    interface Hyperlink {
        // The name for this hyperlink.
        name?: string;
        // The URL for this hyperlink.
        url?: string;
    }
// tslint:disable-next-line: interface-name
    interface IntelligenceProfileCountryOrRegionOfOrigin {
        // A codified representation for this country/region of origin.
        code?: string;
        // A display label for this ountry/region of origin.
        label?: string;
    }
    interface SslCertificateEntity {
        // A physical address of the entity.
        address?: NullableOption<microsoftgraph.PhysicalAddress>;
        // Alternate names for this entity that are part of the certificate.
        alternateNames?: NullableOption<string[]>;
        // A common name for this entity.
        commonName?: NullableOption<string>;
        // An email for this entity.
        email?: NullableOption<string>;
        // If the entity is a person, this is the person's given name (first name).
        givenName?: NullableOption<string>;
        // If the entity is an organization, this is the name of the organization.
        organizationName?: NullableOption<string>;
        // If the entity is an organization, this communicates if a unit in the organization is named on the entity.
        organizationUnitName?: NullableOption<string>;
        // A serial number assigned to the entity; usually only available if the entity is the issuer.
        serialNumber?: NullableOption<string>;
        // If the entity is a person, this is the person's surname (last name).
        surname?: NullableOption<string>;
    }
    interface WhoisContact {
        // The physical address of the entity.
        address?: NullableOption<microsoftgraph.PhysicalAddress>;
        // The email of this WHOIS contact.
        email?: NullableOption<string>;
        // The fax of this WHOIS contact. No format is guaranteed.
        fax?: NullableOption<string>;
        // The name of this WHOIS contact.
        name?: NullableOption<string>;
        // The organization of this WHOIS contact.
        organization?: NullableOption<string>;
        // The telephone of this WHOIS contact. No format is guaranteed.
        telephone?: NullableOption<string>;
    }
    interface WhoisNameserver {
        /**
         * The first seen date and time of this WHOIS contact. The timestamp type represents date and time information using ISO
         * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        firstSeenDateTime?: NullableOption<string>;
        /**
         * The last seen date and time of this WHOIS contact. The timestamp type represents date and time information using ISO
         * 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        lastSeenDateTime?: NullableOption<string>;
        host?: Host;
    }
}
export namespace TermStore {
    type RelationType = "pin" | "reuse" | "unknownFutureValue";
    type TermGroupScope = "global" | "system" | "siteCollection" | "unknownFutureValue";
    interface Store extends microsoftgraph.Entity {
        // Default language of the term store.
        defaultLanguageTag?: string;
        // List of languages for the term store.
        languageTags?: string[];
        // Collection of all groups available in the term store.
        groups?: NullableOption<Group[]>;
        // Collection of all sets available in the term store. This relationship can only be used to load a specific term set.
        sets?: NullableOption<Set[]>;
    }
    interface Group extends microsoftgraph.Entity {
        // Date and time of the group creation. Read-only.
        createdDateTime?: NullableOption<string>;
        // Description that gives details on the term usage.
        description?: NullableOption<string>;
        // Name of the group.
        displayName?: NullableOption<string>;
        // ID of the parent site of this group.
        parentSiteId?: NullableOption<string>;
        // Returns the type of the group. Possible values are: global, system, and siteCollection.
        scope?: NullableOption<TermGroupScope>;
        // All sets under the group in a term [store].
        sets?: NullableOption<Set[]>;
    }
    interface Set extends microsoftgraph.Entity {
        // Date and time of set creation. Read-only.
        createdDateTime?: NullableOption<string>;
        // Description that gives details on the term usage.
        description?: NullableOption<string>;
        // Name of the set for each languageTag.
        localizedNames?: NullableOption<LocalizedName[]>;
        // Custom properties for the set.
        properties?: NullableOption<microsoftgraph.KeyValue[]>;
        // Children terms of set in term [store].
        children?: NullableOption<Term[]>;
        // The parent [group] that contains the set.
        parentGroup?: Group;
        // Indicates which terms have been pinned or reused directly under the set.
        relations?: NullableOption<Relation[]>;
        // All the terms under the set.
        terms?: NullableOption<Term[]>;
    }
    interface Relation extends microsoftgraph.Entity {
        // The type of relation. Possible values are: pin, reuse.
        relationship?: NullableOption<RelationType>;
        /**
         * The from [term] of the relation. The term from which the relationship is defined. A null value would indicate the
         * relation is directly with the [set].
         */
        fromTerm?: NullableOption<Term>;
        // The [set] in which the relation is relevant.
        set?: NullableOption<Set>;
        // The to [term] of the relation. The term to which the relationship is defined.
        toTerm?: NullableOption<Term>;
    }
    interface Term extends microsoftgraph.Entity {
        // Date and time of term creation. Read-only.
        createdDateTime?: NullableOption<string>;
        // Description about term that is dependent on the languageTag.
        descriptions?: NullableOption<LocalizedDescription[]>;
        // Label metadata for a term.
        labels?: NullableOption<LocalizedLabel[]>;
        // Last date and time of term modification. Read-only.
        lastModifiedDateTime?: NullableOption<string>;
        // Collection of properties on the term.
        properties?: NullableOption<microsoftgraph.KeyValue[]>;
        // Children of current term.
        children?: NullableOption<Term[]>;
        // To indicate which terms are related to the current term as either pinned or reused.
        relations?: NullableOption<Relation[]>;
        // The [set] in which the term is created.
        set?: NullableOption<Set>;
    }
    interface LocalizedDescription {
        // The description in the localized language.
        description?: NullableOption<string>;
        // The language tag for the label.
        languageTag?: NullableOption<string>;
    }
    interface LocalizedLabel {
        // Indicates whether the label is the default label.
        isDefault?: NullableOption<boolean>;
        // The language tag for the label.
        languageTag?: NullableOption<string>;
        // The name of the label.
        name?: NullableOption<string>;
    }
    interface LocalizedName {
        // The language tag for the label.
        languageTag?: NullableOption<string>;
        // The name in the localized language.
        name?: NullableOption<string>;
    }
}
