// Project: https://github.com/microsoftgraph/msgraph-beta-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>
// TypeScript Version: 2.1

export as namespace microsoftgraphbeta;

export type NullableOption<T> = T | null;

export type ApplicationKeyOrigin = "application" | "servicePrincipal" | "unknownFutureValue";
export type ApplicationKeyType = "clientSecret" | "certificate" | "unknownFutureValue";
export type ApplicationKeyUsage = "sign" | "verify" | "unknownFutureValue";
export type AppliedConditionalAccessPolicyResult =
    | "success"
    | "failure"
    | "notApplied"
    | "notEnabled"
    | "unknown"
    | "unknownFutureValue"
    | "reportOnlySuccess"
    | "reportOnlyFailure"
    | "reportOnlyNotApplied"
    | "reportOnlyInterrupted";
export type AuthenticationAppAdminConfiguration = "notApplicable" | "enabled" | "disabled" | "unknownFutureValue";
export type AuthenticationAppEvaluation = "success" | "failure" | "unknownFutureValue";
export type AuthenticationAppPolicyStatus =
    | "unknown"
    | "appLockOutOfDate"
    | "appLockEnabled"
    | "appLockDisabled"
    | "appContextOutOfDate"
    | "appContextShown"
    | "appContextNotShown"
    | "locationContextOutOfDate"
    | "locationContextShown"
    | "locationContextNotShown"
    | "numberMatchOutOfDate"
    | "numberMatchCorrectNumberEntered"
    | "numberMatchIncorrectNumberEntered"
    | "numberMatchDeny"
    | "tamperResistantHardwareOutOfDate"
    | "tamperResistantHardwareUsed"
    | "tamperResistantHardwareNotUsed"
    | "unknownFutureValue";
export type AuthenticationContextDetail = "required" | "previouslySatisfied" | "notApplicable" | "unknownFutureValue";
export type AuthenticationEventType = "tokenIssuanceStart" | "pageRenderStart" | "unknownFutureValue";
export type AuthenticationMethodFeature =
    | "ssprRegistered"
    | "ssprEnabled"
    | "ssprCapable"
    | "passwordlessCapable"
    | "mfaCapable"
    | "unknownFutureValue";
export type AuthenticationStrengthResult =
    | "notSet"
    | "skippedForProofUp"
    | "satisfied"
    | "singleChallengeRequired"
    | "multipleChallengesRequired"
    | "singleRegistrationRequired"
    | "multipleRegistrationsRequired"
    | "cannotSatisfyDueToCombinationConfiguration"
    | "cannotSatisfy"
    | "unknownFutureValue";
export type AuthMethodsType =
    | "email"
    | "mobileSMS"
    | "mobilePhone"
    | "officePhone"
    | "securityQuestion"
    | "appNotification"
    | "appNotificationCode"
    | "appNotificationAndCode"
    | "appPassword"
    | "fido"
    | "alternateMobilePhone"
    | "mobilePhoneAndSMS"
    | "unknownFutureValue";
export type ClientCredentialType =
    | "none"
    | "clientSecret"
    | "clientAssertion"
    | "federatedIdentityCredential"
    | "managedIdentity"
    | "certificate"
    | "unknownFutureValue";
export type ConditionalAccessConditions =
    | "none"
    | "application"
    | "users"
    | "devicePlatform"
    | "location"
    | "clientType"
    | "signInRisk"
    | "userRisk"
    | "time"
    | "deviceState"
    | "client"
    | "ipAddressSeenByAzureAD"
    | "ipAddressSeenByResourceProvider"
    | "unknownFutureValue"
    | "servicePrincipals"
    | "servicePrincipalRisk"
    | "authenticationFlows"
    | "insiderRisk";
export type ConditionalAccessRule =
    | "allApps"
    | "firstPartyApps"
    | "office365"
    | "appId"
    | "acr"
    | "appFilter"
    | "allUsers"
    | "guest"
    | "groupId"
    | "roleId"
    | "userId"
    | "allDevicePlatforms"
    | "devicePlatform"
    | "allLocations"
    | "insideCorpnet"
    | "allTrustedLocations"
    | "locationId"
    | "allDevices"
    | "deviceFilter"
    | "deviceState"
    | "unknownFutureValue"
    | "deviceFilterIncludeRuleNotMatched"
    | "allDeviceStates"
    | "anonymizedIPAddress"
    | "unfamiliarFeatures"
    | "nationStateIPAddress"
    | "realTimeThreatIntelligence"
    | "internalGuest"
    | "b2bCollaborationGuest"
    | "b2bCollaborationMember"
    | "b2bDirectConnectUser"
    | "otherExternalUser"
    | "serviceProvider"
    | "microsoftAdminPortals"
    | "deviceCodeFlow"
    | "authenticationTransfer"
    | "insiderRisk";
export type ConditionalAccessStatus = "success" | "failure" | "notApplied" | "unknownFutureValue";
export type DefaultMfaMethodType =
    | "none"
    | "mobilePhone"
    | "alternateMobilePhone"
    | "officePhone"
    | "microsoftAuthenticatorPush"
    | "softwareOneTimePasscode"
    | "unknownFutureValue";
export type ExpirationRequirement =
    | "rememberMultifactorAuthenticationOnTrustedDevices"
    | "tenantTokenLifetimePolicy"
    | "audienceTokenLifetimePolicy"
    | "signInFrequencyPeriodicReauthentication"
    | "ngcMfa"
    | "signInFrequencyEveryTime"
    | "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 IncomingTokenType =
    | "none"
    | "primaryRefreshToken"
    | "saml11"
    | "saml20"
    | "unknownFutureValue"
    | "remoteDesktopToken";
export type InitiatorType = "user" | "application" | "system" | "unknownFutureValue";
export type MigrationStatus = "ready" | "needsReview" | "additionalStepsRequired" | "unknownFutureValue";
export type MsiType = "none" | "userAssigned" | "systemAssigned" | "unknownFutureValue";
export type NetworkType =
    | "intranet"
    | "extranet"
    | "namedNetwork"
    | "trusted"
    | "trustedNamedLocation"
    | "unknownFutureValue";
export type OperationResult = "success" | "failure" | "timeout" | "unknownFutureValue";
export type OriginalTransferMethods = "none" | "deviceCodeFlow" | "authenticationTransfer" | "unknownFutureValue";
export type OutlierContainerType = "group" | "unknownFutureValue";
export type OutlierMemberType = "user" | "unknownFutureValue";
export type ProtocolType =
    | "none"
    | "oAuth2"
    | "ropc"
    | "wsFederation"
    | "saml20"
    | "deviceCode"
    | "unknownFutureValue"
    | "authenticationTransfer";
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 RecommendationCategory = "identityBestPractice" | "identitySecureScore" | "unknownFutureValue";
export type RecommendationFeatureAreas =
    | "users"
    | "groups"
    | "devices"
    | "applications"
    | "accessReviews"
    | "conditionalAccess"
    | "governance"
    | "unknownFutureValue";
export type RecommendationPriority = "low" | "medium" | "high";
export type RecommendationStatus =
    | "active"
    | "completedBySystem"
    | "completedByUser"
    | "dismissed"
    | "postponed"
    | "unknownFutureValue";
export type RecommendationType =
    | "adfsAppsMigration"
    | "enableDesktopSSO"
    | "enablePHS"
    | "enableProvisioning"
    | "switchFromPerUserMFA"
    | "tenantMFA"
    | "thirdPartyApps"
    | "turnOffPerUserMFA"
    | "useAuthenticatorApp"
    | "useMyApps"
    | "staleApps"
    | "staleAppCreds"
    | "applicationCredentialExpiry"
    | "servicePrincipalKeyExpiry"
    | "adminMFAV2"
    | "blockLegacyAuthentication"
    | "integratedApps"
    | "mfaRegistrationV2"
    | "pwagePolicyNew"
    | "passwordHashSync"
    | "oneAdmin"
    | "roleOverlap"
    | "selfServicePasswordReset"
    | "signinRiskPolicy"
    | "userRiskPolicy"
    | "verifyAppPublisher"
    | "privateLinkForAAD"
    | "appRoleAssignmentsGroups"
    | "appRoleAssignmentsUsers"
    | "managedIdentity"
    | "overprivilegedApps"
    | "unknownFutureValue"
    | "longLivedCredentials"
    | "aadConnectDeprecated"
    | "adalToMsalMigration"
    | "ownerlessApps"
    | "inactiveGuests";
export type RegistrationAuthMethod =
    | "email"
    | "mobilePhone"
    | "officePhone"
    | "securityQuestion"
    | "appNotification"
    | "appCode"
    | "alternateMobilePhone"
    | "fido"
    | "appPassword"
    | "unknownFutureValue";
export type RegistrationStatusType = "registered" | "enabled" | "capable" | "mfaRegistered" | "unknownFutureValue";
export type ReleaseType = "preview" | "generallyAvailable" | "unknownFutureValue";
export type RequirementProvider =
    | "user"
    | "request"
    | "servicePrincipal"
    | "v1ConditionalAccess"
    | "multiConditionalAccess"
    | "tenantSessionRiskPolicy"
    | "accountCompromisePolicies"
    | "v1ConditionalAccessDependency"
    | "v1ConditionalAccessPolicyIdRequested"
    | "mfaRegistrationRequiredByIdentityProtectionPolicy"
    | "baselineProtection"
    | "mfaRegistrationRequiredByBaselineProtection"
    | "mfaRegistrationRequiredByMultiConditionalAccess"
    | "enforcedForCspAdmins"
    | "securityDefaults"
    | "mfaRegistrationRequiredBySecurityDefaults"
    | "proofUpCodeRequest"
    | "crossTenantOutboundRule"
    | "gpsLocationCondition"
    | "riskBasedPolicy"
    | "unknownFutureValue";
export type RiskDetail =
    | "none"
    | "adminGeneratedTemporaryPassword"
    | "userPerformedSecuredPasswordChange"
    | "userPerformedSecuredPasswordReset"
    | "adminConfirmedSigninSafe"
    | "aiConfirmedSigninSafe"
    | "userPassedMFADrivenByRiskBasedPolicy"
    | "adminDismissedAllRiskForUser"
    | "adminConfirmedSigninCompromised"
    | "hidden"
    | "adminConfirmedUserCompromised"
    | "unknownFutureValue"
    | "adminConfirmedServicePrincipalCompromised"
    | "adminDismissedAllRiskForServicePrincipal"
    | "m365DAdminDismissedDetection";
export type RiskLevel = "low" | "medium" | "high" | "hidden" | "none" | "unknownFutureValue";
export type RiskState =
    | "none"
    | "confirmedSafe"
    | "remediated"
    | "dismissed"
    | "atRisk"
    | "confirmedCompromised"
    | "unknownFutureValue";
export type SignInAccessType =
    | "none"
    | "b2bCollaboration"
    | "b2bDirectConnect"
    | "microsoftSupport"
    | "serviceProvider"
    | "unknownFutureValue"
    | "passthrough";
export type SignInIdentifierType =
    | "userPrincipalName"
    | "phoneNumber"
    | "proxyAddress"
    | "qrCode"
    | "onPremisesUserPrincipalName"
    | "unknownFutureValue";
export type SignInUserType = "member" | "guest" | "unknownFutureValue";
export type TokenIssuerType =
    | "AzureAD"
    | "ADFederationServices"
    | "UnknownFutureValue"
    | "AzureADBackupAuth"
    | "ADFederationServicesMFAAdapter"
    | "NPSExtension";
export type TokenProtectionStatus = "none" | "bound" | "unbound" | "unknownFutureValue";
export type UsageAuthMethod =
    | "email"
    | "mobileSMS"
    | "mobileCall"
    | "officePhone"
    | "securityQuestion"
    | "appNotification"
    | "appCode"
    | "alternateMobileCall"
    | "fido"
    | "appPassword"
    | "unknownFutureValue";
export type UserDefaultAuthenticationMethod =
    | "push"
    | "oath"
    | "voiceMobile"
    | "voiceAlternateMobile"
    | "voiceOffice"
    | "sms"
    | "none"
    | "unknownFutureValue";
export type AnalyticsActivityType = "Email" | "Meeting" | "Focus" | "Chat" | "Call";
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 SecurityQuestionType = "predefined" | "custom";
export type X509CertificateAffinityLevel = "low" | "high" | "unknownFutureValue";
export type X509CertificateAuthenticationMode =
    | "x509CertificateSingleFactor"
    | "x509CertificateMultiFactor"
    | "unknownFutureValue";
export type X509CertificateIssuerHintsState = "disabled" | "enabled" | "unknownFutureValue";
export type X509CertificateRuleType = "issuerSubject" | "policyOID" | "unknownFutureValue" | "issuerSubjectAndPolicyOID";
export type EntityType =
    | "event"
    | "message"
    | "driveItem"
    | "externalItem"
    | "site"
    | "list"
    | "listItem"
    | "drive"
    | "unknownFutureValue"
    | "acronym"
    | "bookmark"
    | "chatMessage"
    | "person"
    | "qna";
export type PhoneType =
    | "home"
    | "business"
    | "mobile"
    | "other"
    | "assistant"
    | "homeFax"
    | "businessFax"
    | "otherFax"
    | "pager"
    | "radio";
export type VolumeType = "operatingSystemVolume" | "fixedDataVolume" | "removableDataVolume" | "unknownFutureValue";
export type AnswerInputType = "text" | "radioButton" | "unknownFutureValue";
export type BookingInvoiceStatus = "draft" | "reviewing" | "open" | "canceled" | "paid" | "corrective";
export type BookingPriceType =
    | "undefined"
    | "fixedPrice"
    | "startingAt"
    | "hourly"
    | "free"
    | "priceVaries"
    | "callUs"
    | "notSet";
export type BookingReminderRecipients = "allAttendees" | "staff" | "customer";
export type BookingsAvailabilityStatus = "available" | "busy" | "slotsAvailable" | "outOfOffice" | "unknownFutureValue";
export type BookingStaffMembershipStatus = "active" | "pendingAcceptance" | "rejectedByStaff" | "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 PhysicalAddressType = "unknown" | "home" | "business" | "other";
export type PlannerRelationshipUserRoles =
    | "defaultRules"
    | "groupOwners"
    | "groupMembers"
    | "taskAssignees"
    | "applications"
    | "unknownFutureValue";
export type PlannerRuleKind = "taskRule" | "bucketRule" | "planRule" | "unknownFutureValue";
export type PlannerUserRoleKind = "relationship" | "unknownFutureValue";
export type ActionCapability = "enabled" | "disabled" | "unknownFutureValue";
export type ActionState = "none" | "pending" | "canceled" | "active" | "done" | "failed" | "notSupported";
export type AllowedRolePrincipalTypes = "user" | "servicePrincipal" | "group" | "unknownFutureValue";
export type CloudPcAuditActivityOperationType = "create" | "delete" | "patch" | "other";
export type CloudPcAuditActivityResult = "success" | "clientError" | "failure" | "timeout" | "other";
export type CloudPcAuditActorType = "itPro" | "application" | "partner" | "unknown";
export type CloudPcAuditCategory = "cloudPC" | "other";
export type CloudPcConnectivityEventResult = "unknown" | "success" | "failure" | "unknownFutureValue";
export type CloudPcConnectivityEventType =
    | "unknown"
    | "userConnection"
    | "userTroubleshooting"
    | "deviceHealthCheck"
    | "unknownFutureValue";
export type CloudPcConnectivityStatus =
    | "unknown"
    | "available"
    | "availableWithWarning"
    | "unavailable"
    | "unknownFutureValue";
export type CloudPcDeviceImageOsStatus = "supported" | "supportedWithWarning" | "unknownFutureValue";
export type CloudPcDeviceImageStatus = "pending" | "ready" | "failed";
export type CloudPcDeviceImageStatusDetails =
    | "internalServerError"
    | "sourceImageNotFound"
    | "osVersionNotSupported"
    | "sourceImageInvalid"
    | "sourceImageNotGeneralized"
    | "unknownFutureValue"
    | "vmAlreadyAzureAdjoined"
    | "paidSourceImageNotSupport"
    | "sourceImageNotSupportCustomizeVMName"
    | "sourceImageSizeExceedsLimitation";
export type CloudPcDiskEncryptionState =
    | "notAvailable"
    | "notEncrypted"
    | "encryptedUsingPlatformManagedKey"
    | "encryptedUsingCustomerManagedKey"
    | "unknownFutureValue";
export type CloudPcDiskEncryptionType = "platformManagedKey" | "customerManagedKey" | "unknownFutureValue";
export type CloudPcDomainJoinType = "azureADJoin" | "hybridAzureADJoin" | "unknownFutureValue";
export type CloudPcExportJobStatus = "notStarted" | "inProgress" | "completed" | "failed" | "unknownFutureValue";
export type CloudPcExternalPartnerStatus = "notAvailable" | "available" | "healthy" | "unhealthy" | "unknownFutureValue";
export type CloudPcGalleryImageStatus = "supported" | "supportedWithWarning" | "notSupported" | "unknownFutureValue";
export type CloudPcManagementService = "windows365" | "devBox" | "unknownFutureValue" | "rpaBox";
export type CloudPcOnPremisesConnectionHealthCheckErrorType =
    | "dnsCheckFqdnNotFound"
    | "dnsCheckNameWithInvalidCharacter"
    | "dnsCheckUnknownError"
    | "adJoinCheckFqdnNotFound"
    | "adJoinCheckIncorrectCredentials"
    | "adJoinCheckOrganizationalUnitNotFound"
    | "adJoinCheckOrganizationalUnitIncorrectFormat"
    | "adJoinCheckComputerObjectAlreadyExists"
    | "adJoinCheckAccessDenied"
    | "adJoinCheckCredentialsExpired"
    | "adJoinCheckAccountLockedOrDisabled"
    | "adJoinCheckAccountQuotaExceeded"
    | "adJoinCheckServerNotOperational"
    | "adJoinCheckUnknownError"
    | "endpointConnectivityCheckCloudPcUrlNotAllowListed"
    | "endpointConnectivityCheckWVDUrlNotAllowListed"
    | "endpointConnectivityCheckIntuneUrlNotAllowListed"
    | "endpointConnectivityCheckAzureADUrlNotAllowListed"
    | "endpointConnectivityCheckLocaleUrlNotAllowListed"
    | "endpointConnectivityCheckUnknownError"
    | "azureAdDeviceSyncCheckDeviceNotFound"
    | "azureAdDeviceSyncCheckLongSyncCircle"
    | "azureAdDeviceSyncCheckConnectDisabled"
    | "azureAdDeviceSyncCheckDurationExceeded"
    | "azureAdDeviceSyncCheckScpNotConfigured"
    | "azureAdDeviceSyncCheckTransientServiceError"
    | "azureAdDeviceSyncCheckUnknownError"
    | "resourceAvailabilityCheckNoSubnetIP"
    | "resourceAvailabilityCheckSubscriptionDisabled"
    | "resourceAvailabilityCheckAzurePolicyViolation"
    | "resourceAvailabilityCheckSubscriptionNotFound"
    | "resourceAvailabilityCheckSubscriptionTransferred"
    | "resourceAvailabilityCheckGeneralSubscriptionError"
    | "resourceAvailabilityCheckUnsupportedVNetRegion"
    | "resourceAvailabilityCheckResourceGroupInvalid"
    | "resourceAvailabilityCheckVNetInvalid"
    | "resourceAvailabilityCheckSubnetInvalid"
    | "resourceAvailabilityCheckResourceGroupBeingDeleted"
    | "resourceAvailabilityCheckVNetBeingMoved"
    | "resourceAvailabilityCheckSubnetDelegationFailed"
    | "resourceAvailabilityCheckSubnetWithExternalResources"
    | "resourceAvailabilityCheckResourceGroupLockedForReadonly"
    | "resourceAvailabilityCheckResourceGroupLockedForDelete"
    | "resourceAvailabilityCheckNoIntuneReaderRoleError"
    | "resourceAvailabilityCheckIntuneDefaultWindowsRestrictionViolation"
    | "resourceAvailabilityCheckIntuneCustomWindowsRestrictionViolation"
    | "resourceAvailabilityCheckDeploymentQuotaLimitReached"
    | "resourceAvailabilityCheckTransientServiceError"
    | "resourceAvailabilityCheckUnknownError"
    | "permissionCheckNoSubscriptionReaderRole"
    | "permissionCheckNoResourceGroupOwnerRole"
    | "permissionCheckNoVNetContributorRole"
    | "permissionCheckNoResourceGroupNetworkContributorRole"
    | "permissionCheckNoWindows365NetworkUserRole"
    | "permissionCheckNoWindows365NetworkInterfaceContributorRole"
    | "permissionCheckTransientServiceError"
    | "permissionCheckUnknownError"
    | "udpConnectivityCheckStunUrlNotAllowListed"
    | "udpConnectivityCheckTurnUrlNotAllowListed"
    | "udpConnectivityCheckUrlsNotAllowListed"
    | "udpConnectivityCheckUnknownError"
    | "internalServerErrorDeploymentCanceled"
    | "internalServerErrorAllocateResourceFailed"
    | "internalServerErrorVMDeploymentTimeout"
    | "internalServerErrorUnableToRunDscScript"
    | "ssoCheckKerberosConfigurationError"
    | "internalServerUnknownError"
    | "unknownFutureValue";
export type CloudPcOnPremisesConnectionStatus =
    | "pending"
    | "running"
    | "passed"
    | "failed"
    | "warning"
    | "informational"
    | "unknownFutureValue";
export type CloudPcOnPremisesConnectionType = "hybridAzureADJoin" | "azureADJoin" | "unknownFutureValue";
export type CloudPcOperatingSystem = "windows10" | "windows11" | "unknownFutureValue";
export type CloudPcPartnerAgentInstallStatus =
    | "installed"
    | "installFailed"
    | "installing"
    | "uninstalling"
    | "uninstallFailed"
    | "licensed"
    | "unknownFutureValue";
export type CloudPcPartnerAgentName = "citrix" | "unknownFutureValue" | "vMware" | "hp";
export type CloudPcPolicySettingType = "region" | "singleSignOn" | "unknownFutureValue";
export type CloudPcPowerState = "running" | "poweredOff" | "unknownFutureValue";
export type CloudPcProvisioningPolicyImageType = "gallery" | "custom";
export type CloudPcProvisioningType = "dedicated" | "shared" | "unknownFutureValue";
export type CloudPcRegionGroup =
    | "default"
    | "australia"
    | "canada"
    | "usCentral"
    | "usEast"
    | "usWest"
    | "france"
    | "germany"
    | "europeUnion"
    | "unitedKingdom"
    | "japan"
    | "asia"
    | "india"
    | "southAmerica"
    | "euap"
    | "usGovernment"
    | "usGovernmentDOD"
    | "unknownFutureValue"
    | "norway"
    | "switzerland"
    | "southKorea";
export type CloudPcRemoteActionName =
    | "unknown"
    | "restart"
    | "rename"
    | "resize"
    | "restore"
    | "reprovision"
    | "changeUserAccountType"
    | "troubleshoot"
    | "placeUnderReview"
    | "unknownFutureValue"
    | "createSnapshot"
    | "powerOn"
    | "powerOff"
    | "moveRegion";
export type CloudPcReportName =
    | "remoteConnectionHistoricalReports"
    | "dailyAggregatedRemoteConnectionReports"
    | "totalAggregatedRemoteConnectionReports"
    | "sharedUseLicenseUsageReport"
    | "sharedUseLicenseUsageRealTimeReport"
    | "unknownFutureValue"
    | "noLicenseAvailableConnectivityFailureReport"
    | "frontlineLicenseUsageReport"
    | "frontlineLicenseUsageRealTimeReport"
    | "remoteConnectionQualityReports"
    | "inaccessibleCloudPcReports"
    | "rawRemoteConnectionReports"
    | "cloudPcUsageCategoryReports";
export type CloudPcResizeValidationCode =
    | "success"
    | "cloudPcNotFound"
    | "operationConflict"
    | "operationNotSupported"
    | "targetLicenseHasAssigned"
    | "internalServerError"
    | "unknownFutureValue";
export type CloudPcServicePlanType = "enterprise" | "business" | "unknownFutureValue";
export type CloudPcSnapshotStatus = "ready" | "unknownFutureValue";
export type CloudPcSnapshotType = "automatic" | "manual" | "unknownFutureValue";
export type CloudPcStatus =
    | "notProvisioned"
    | "provisioning"
    | "provisioned"
    | "inGracePeriod"
    | "deprovisioning"
    | "failed"
    | "provisionedWithWarnings"
    | "resizing"
    | "restoring"
    | "pendingProvision"
    | "unknownFutureValue"
    | "movingRegion"
    | "resizePendingLicense"
    | "updatingSingleSignOn";
export type CloudPcSupportedRegionStatus = "available" | "restricted" | "unavailable" | "unknownFutureValue";
export type CloudPcUserAccessLevel = "unrestricted" | "restricted" | "unknownFutureValue";
export type CloudPcUserAccountType = "standardUser" | "administrator" | "unknownFutureValue";
export type FrontlineCloudPcAccessState =
    | "unassigned"
    | "noLicensesAvailable"
    | "activationFailed"
    | "active"
    | "activating"
    | "standbyMode"
    | "unknownFutureValue";
export type MicrosoftManagedDesktopType =
    | "notManaged"
    | "premiumManaged"
    | "standardManaged"
    | "starterManaged"
    | "unknownFutureValue";
export type RestoreTimeRange = "before" | "after" | "beforeOrAfter" | "unknownFutureValue";
export type ShiftWorkCloudPcAccessState =
    | "unassigned"
    | "noLicensesAvailable"
    | "activationFailed"
    | "active"
    | "activating"
    | "unknownFutureValue"
    | "standbyMode";
export type UsageRightState = "active" | "inactive" | "warning" | "suspended" | "unknownFutureValue";
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 AuthenticationAttributeCollectionInputType =
    | "text"
    | "radioSingleSelect"
    | "checkboxMultiSelect"
    | "boolean"
    | "unknownFutureValue";
export type IdentityProviderState = "enabled" | "disabled" | "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 OpenIdConnectResponseMode = "form_post" | "query" | "unknownFutureValue";
export type OpenIdConnectResponseTypes = "code" | "id_token" | "token";
export type UserFlowType =
    | "signUp"
    | "signIn"
    | "signUpOrSignIn"
    | "passwordReset"
    | "profileUpdate"
    | "resourceOwner"
    | "unknownFutureValue";
export type UserType = "member" | "guest" | "unknownFutureValue";
export type Alignment = "left" | "right" | "center";
export type ApplicationMode = "manual" | "automatic" | "recommended";
export type ClassificationMethod = "patternMatch" | "exactDataMatch" | "fingerprint" | "machineLearning";
export type Component = "Label";
export type EncryptWith = "template" | "userDefinedRights";
export type GroupPrivacy = "unspecified" | "public" | "private" | "unknownFutureValue";
export type LobbyBypassScope =
    | "organizer"
    | "organization"
    | "organizationAndFederated"
    | "everyone"
    | "unknownFutureValue"
    | "invited"
    | "organizationExcludingGuests";
export type MeetingChatMode = "enabled" | "disabled" | "limited" | "unknownFutureValue";
export type MlClassificationMatchTolerance = "exact" | "near";
export type OnlineMeetingForwarders = "everyone" | "organizer" | "unknownFutureValue";
export type OnlineMeetingPresenters =
    | "everyone"
    | "organization"
    | "roleIsPresenter"
    | "organizer"
    | "unknownFutureValue";
export type PageOrientation = "horizontal" | "diagonal";
export type RestrictionAction = "warn" | "audit" | "block";
export type RestrictionTrigger =
    | "copyPaste"
    | "copyToNetworkShare"
    | "copyToRemovableMedia"
    | "screenCapture"
    | "print"
    | "cloudEgress"
    | "unallowedApps";
export type RuleMode = "audit" | "auditAndNotify" | "enforce" | "pendingDeletion" | "test";
export type SensitiveTypeScope = "fullDocument" | "partialDocument";
export type SensitiveTypeSource = "outOfBox" | "tenant";
export type SensitivityLabelTarget = "email" | "site" | "unifiedGroup" | "teamwork" | "unknownFutureValue";
export type SiteAccessType = "block" | "full" | "limited";
export type MultiFactorAuthConfiguration = "notRequired" | "required" | "unknownFutureValue";
export type PolicyScope = "none" | "all" | "selected" | "unknownFutureValue";
export type AllowInvitesFrom =
    | "none"
    | "adminsAndGuestInviters"
    | "adminsGuestInvitersAndAllMembers"
    | "everyone"
    | "unknownFutureValue";
export type AppCredentialRestrictionType =
    | "passwordAddition"
    | "passwordLifetime"
    | "symmetricKeyAddition"
    | "symmetricKeyLifetime"
    | "customPasswordAddition"
    | "unknownFutureValue";
export type AppKeyCredentialRestrictionType =
    | "asymmetricKeyLifetime"
    | "trustedCertificateAuthority"
    | "unknownFutureValue";
export type AuthenticationProtocol = "wsFed" | "saml" | "unknownFutureValue";
export type B2bIdentityProvidersType =
    | "azureActiveDirectory"
    | "externalFederation"
    | "socialIdentityProviders"
    | "emailOneTimePasscode"
    | "microsoftAccount"
    | "defaultConfiguredIdp"
    | "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 MultiTenantOrganizationMemberProcessingStatus =
    | "notStarted"
    | "running"
    | "succeeded"
    | "failed"
    | "unknownFutureValue";
export type MultiTenantOrganizationMemberRole = "owner" | "member" | "unknownFutureValue";
export type MultiTenantOrganizationMemberState = "pending" | "active" | "removed" | "unknownFutureValue";
export type MultiTenantOrganizationState = "active" | "inactive" | "unknownFutureValue";
export type MultiTenantOrgLabelType = "none" | "groupName" | "customName" | "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 RootDomains =
    | "none"
    | "all"
    | "allFederated"
    | "allManaged"
    | "enumerated"
    | "allManagedAndEnumeratedFederated"
    | "unknownFutureValue";
export type TemplateApplicationLevel = "none" | "newPartners" | "existingPartners" | "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" | "inactive";
export type EducationFeedbackResourceOutcomeStatus =
    | "notPublished"
    | "pendingPublish"
    | "published"
    | "failedPublish"
    | "unknownFutureValue";
export type EducationModuleStatus = "draft" | "published" | "unknownFutureValue";
export type EducationSubmissionStatus =
    | "working"
    | "submitted"
    | "released"
    | "returned"
    | "unknownFutureValue"
    | "reassigned";
export type ContactRelationship =
    | "parent"
    | "relative"
    | "aide"
    | "doctor"
    | "guardian"
    | "child"
    | "other"
    | "unknownFutureValue";
export type EducationSynchronizationProfileState =
    | "deleting"
    | "deletionFailed"
    | "provisioningFailed"
    | "provisioned"
    | "provisioning"
    | "unknownFutureValue";
export type EducationSynchronizationStatus =
    | "paused"
    | "inProgress"
    | "success"
    | "error"
    | "validationError"
    | "quarantined"
    | "unknownFutureValue"
    | "extracting"
    | "validating";
export type EducationUserRole = "student" | "teacher" | "none" | "unknownFutureValue" | "faculty";
export type EducationExternalSource = "sis" | "manual" | "unknownFutureValue" | "lms";
export type EducationGender = "female" | "male" | "other" | "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 EmailType = "unknown" | "work" | "personal" | "main" | "other";
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 GroupAccessType = "none" | "private" | "secret" | "public";
export type Importance = "low" | "normal" | "high";
export type InferenceClassificationType = "focused" | "other";
export type MailboxRecipientType = "unknown" | "user" | "linked" | "shared" | "room" | "equipment" | "others";
export type MailTipsType =
    | "automaticReplies"
    | "mailboxFullStatus"
    | "customMailTip"
    | "externalMemberCount"
    | "totalMemberCount"
    | "maxMessageSize"
    | "deliveryRestriction"
    | "moderationStatus"
    | "recipientScope"
    | "recipientSuggestions";
export type MeetingMessageType =
    | "none"
    | "meetingRequest"
    | "meetingCancelled"
    | "meetingAccepted"
    | "meetingTentativelyAccepted"
    | "meetingDeclined";
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 ReferenceAttachmentPermission =
    | "other"
    | "view"
    | "edit"
    | "anonymousView"
    | "anonymousEdit"
    | "organizationView"
    | "organizationEdit";
export type ReferenceAttachmentProvider = "other" | "oneDriveBusiness" | "oneDriveConsumer" | "dropbox";
export type ResponseType = "none" | "organizer" | "tentativelyAccepted" | "accepted" | "declined" | "notResponded";
export type Sensitivity = "normal" | "personal" | "private" | "confidential";
export type TaskStatus = "notStarted" | "inProgress" | "completed" | "waitingOnOthers" | "deferred";
export type TimeZoneStandard = "windows" | "iana";
export type UserPurpose =
    | "unknown"
    | "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 DriveItemSourceApplication =
    | "teams"
    | "yammer"
    | "sharePoint"
    | "oneDrive"
    | "stream"
    | "powerPoint"
    | "office"
    | "unknownFutureValue";
export type HorizontalSectionLayoutType =
    | "none"
    | "oneColumn"
    | "twoColumns"
    | "threeColumns"
    | "oneThirdLeftColumn"
    | "oneThirdRightColumn"
    | "fullWidth"
    | "unknownFutureValue";
export type LongRunningOperationStatus = "notStarted" | "running" | "succeeded" | "failed" | "unknownFutureValue";
export type MediaSourceContentCategory =
    | "meeting"
    | "liveStream"
    | "presentation"
    | "screenRecording"
    | "unknownFutureValue";
export type PageLayoutType = "microsoftReserved" | "article" | "home" | "unknownFutureValue";
export type PagePromotionType = "microsoftReserved" | "page" | "newsPost" | "unknownFutureValue";
export type SectionEmphasisType = "none" | "neutral" | "soft" | "strong" | "unknownFutureValue";
export type SensitivityLabelAssignmentMethod = "standard" | "privileged" | "auto" | "unknownFutureValue";
export type TitleAreaLayoutType = "imageAndTitle" | "plain" | "colorBlock" | "overlap" | "unknownFutureValue";
export type TitleAreaTextAlignmentType = "left" | "center" | "unknownFutureValue";
export type RemindBeforeTimeInMinutesType = "mins15" | "unknownFutureValue";
export type VirtualAppointmentSmsType = "confirmation" | "reschedule" | "cancellation" | "unknownFutureValue";
export type MessageEventType =
    | "received"
    | "sent"
    | "delivered"
    | "failed"
    | "processingFailed"
    | "distributionGroupExpanded"
    | "submitted"
    | "delayed"
    | "redirected"
    | "resolved"
    | "dropped"
    | "recipientsAdded"
    | "malwareDetected"
    | "malwareDetectedInMessage"
    | "malwareDetectedInAttachment"
    | "ttZapped"
    | "ttDelivered"
    | "spamDetected"
    | "transportRuleTriggered"
    | "dlpRuleTriggered"
    | "journaled"
    | "unknownFutureValue";
export type MessageStatus =
    | "gettingStatus"
    | "pending"
    | "failed"
    | "delivered"
    | "expanded"
    | "quarantined"
    | "filteredAsSpam"
    | "unknownFutureValue";
export type AgentStatus = "active" | "inactive";
export type ConnectorGroupRegion = "nam" | "eur" | "aus" | "asia" | "ind" | "unknownFutureValue";
export type ConnectorGroupType = "applicationProxy";
export type ConnectorStatus = "active" | "inactive";
export type ExternalAuthenticationType = "passthru" | "aadPreAuthentication";
export type KerberosSignOnMappingAttributeType =
    | "userPrincipalName"
    | "onPremisesUserPrincipalName"
    | "userPrincipalUsername"
    | "onPremisesUserPrincipalUsername"
    | "onPremisesSAMAccountName";
export type OnPremisesPublishingType =
    | "applicationProxy"
    | "exchangeOnline"
    | "authentication"
    | "provisioning"
    | "intunePfx"
    | "oflineDomainJoin"
    | "unknownFutureValue";
export type PrivateNetworkDestinationType =
    | "ipAddress"
    | "ipRange"
    | "ipRangeCidr"
    | "fqdn"
    | "dnsSuffix"
    | "unknownFutureValue";
export type PrivateNetworkProtocol = "tcp" | "udp" | "unknownFutureValue";
export type SingleSignOnMode =
    | "none"
    | "onPremisesKerberos"
    | "saml"
    | "pingHeaderBased"
    | "aadHeaderBased"
    | "oAuthToken"
    | "unknownFutureValue";
export type StagedFeatureName =
    | "passthroughAuthentication"
    | "seamlessSso"
    | "passwordHashSync"
    | "emailAsAlternateId"
    | "unknownFutureValue"
    | "certificateBasedAuthentication";
export type MembershipRuleProcessingStatusDetails =
    | "NotStarted"
    | "Running"
    | "Failed"
    | "Succeeded"
    | "UnsupportedFutureValue";
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 DecisionItemPrincipalResourceMembershipType = "direct" | "indirect" | "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 ContinuousAccessEvaluationMode = "strictEnforcement" | "disabled" | "unknownFutureValue" | "strictLocation";
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 RiskEventType =
    | "unlikelyTravel"
    | "anonymizedIPAddress"
    | "maliciousIPAddress"
    | "unfamiliarFeatures"
    | "malwareInfectedIPAddress"
    | "suspiciousIPAddress"
    | "leakedCredentials"
    | "investigationsThreatIntelligence"
    | "generic"
    | "adminConfirmedUserCompromised"
    | "mcasImpossibleTravel"
    | "mcasSuspiciousInboxManipulationRules"
    | "investigationsThreatIntelligenceSigninLinked"
    | "maliciousIPAddressValidCredentialsBlockedIP"
    | "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 AccessPackageAssignmentFilterByCurrentUserOptions = "target" | "createdBy" | "unknownFutureValue";
export type AccessPackageAssignmentRequestFilterByCurrentUserOptions =
    | "target"
    | "createdBy"
    | "approver"
    | "unknownFutureValue";
export type AccessPackageCustomExtensionHandlerStatus = "requestSent" | "requestReceived" | "unknownFutureValue";
export type AccessPackageCustomExtensionStage =
    | "assignmentRequestCreated"
    | "assignmentRequestApproved"
    | "assignmentRequestGranted"
    | "assignmentRequestRemoved"
    | "assignmentFourteenDaysBeforeExpiration"
    | "assignmentOneDayBeforeExpiration"
    | "unknownFutureValue";
export type AccessPackageFilterByCurrentUserOptions = "allowedRequestor" | "unknownFutureValue";
export type AccessPackageSubjectLifecycle = "notDefined" | "notGoverned" | "governed" | "unknownFutureValue";
export type AccessReviewTimeoutBehavior =
    | "keepAccess"
    | "removeAccess"
    | "acceptAccessRecommendation"
    | "unknownFutureValue";
export type CustomExtensionCalloutInstanceStatus =
    | "calloutSent"
    | "callbackReceived"
    | "calloutFailed"
    | "callbackTimedOut"
    | "waitingForCallback"
    | "unknownFutureValue";
export type ExpirationPatternType = "notSpecified" | "noExpiration" | "afterDateTime" | "afterDuration";
export type VerifiableCredentialPresentationStatusCode =
    | "request_retrieved"
    | "presentation_verified"
    | "unknownFutureValue";
export type ConnectedOrganizationState = "configured" | "proposed" | "unknownFutureValue";
export type ActionSource = "manual" | "automatic" | "recommended" | "default";
export type AssignmentMethod = "standard" | "privileged" | "auto";
export type ContentAlignment = "left" | "right" | "center";
export type ContentFormat = "default" | "email";
export type ContentState = "rest" | "motion" | "use";
export type WatermarkLayout = "horizontal" | "diagonal";
export type AndroidDeviceOwnerEnrollmentMode =
    | "corporateOwnedDedicatedDevice"
    | "corporateOwnedFullyManaged"
    | "corporateOwnedWorkProfile"
    | "corporateOwnedAOSPUserlessDevice"
    | "corporateOwnedAOSPUserAssociatedDevice";
export type AndroidDeviceOwnerEnrollmentTokenType =
    | "default"
    | "corporateOwnedDedicatedDeviceWithAzureADSharedMode"
    | "deviceStaging";
export type AndroidForWorkAppConfigurationSchemaItemDataType =
    | "bool"
    | "integer"
    | "string"
    | "choice"
    | "multiselect"
    | "bundle"
    | "bundleArray"
    | "hidden";
export type AndroidForWorkBindStatus = "notBound" | "bound" | "boundAndValidated" | "unbinding";
export type AndroidForWorkEnrollmentTarget = "none" | "all" | "targeted" | "targetedAsEnrollmentRestrictions";
export type AndroidForWorkSyncStatus =
    | "success"
    | "credentialsNotValid"
    | "androidForWorkApiError"
    | "managementServiceError"
    | "unknownError"
    | "none";
export type AndroidManagedStoreAccountAppSyncStatus =
    | "success"
    | "credentialsNotValid"
    | "androidForWorkApiError"
    | "managementServiceError"
    | "unknownError"
    | "none";
export type AndroidManagedStoreAccountBindStatus = "notBound" | "bound" | "boundAndValidated" | "unbinding";
export type AndroidManagedStoreAccountEnrollmentTarget =
    | "none"
    | "all"
    | "targeted"
    | "targetedAsEnrollmentRestrictions";
export type AndroidManagedStoreAppConfigurationSchemaItemDataType =
    | "bool"
    | "integer"
    | "string"
    | "choice"
    | "multiselect"
    | "bundle"
    | "bundleArray"
    | "hidden";
export type AospWifiSecurityType = "none" | "wpa" | "wep";
export type AndroidManagedStoreAutoUpdateMode = "default" | "postponed" | "priority" | "unknownFutureValue";
export type AndroidPermissionActionType = "prompt" | "autoGrant" | "autoDeny";
export type AndroidProfileApplicability = "default" | "androidWorkProfile" | "androidDeviceOwner";
export type AndroidTargetedPlatforms = "androidDeviceAdministrator" | "androidOpenSourceProject" | "unknownFutureValue";
export type CertificateStatus = "notProvisioned" | "provisioned";
export type ComplianceStatus =
    | "unknown"
    | "notApplicable"
    | "compliant"
    | "remediated"
    | "nonCompliant"
    | "error"
    | "conflict"
    | "notAssigned";
export type DeviceAndAppManagementAssignmentFilterType = "none" | "include" | "exclude";
export type DeviceAndAppManagementAssignmentSource = "direct" | "policySets";
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 MobileAppDependencyType = "detect" | "autoInstall";
export type MobileAppPublishingState = "notPublished" | "processing" | "published";
export type MobileAppRelationshipType = "child" | "parent";
export type MobileAppSupersedenceType = "update" | "replace";
export type OfficeProductId = "o365ProPlusRetail" | "o365BusinessRetail" | "visioProRetail" | "projectProRetail";
export type OfficeSuiteDefaultFileFormatType =
    | "notConfigured"
    | "officeOpenXMLFormat"
    | "officeOpenDocumentFormat"
    | "unknownFutureValue";
export type OfficeSuiteInstallProgressDisplayLevel = "none" | "full";
export type OfficeUpdateChannel =
    | "none"
    | "current"
    | "deferred"
    | "firstReleaseCurrent"
    | "firstReleaseDeferred"
    | "monthlyEnterprise";
export type ResultantAppState =
    | "notApplicable"
    | "installed"
    | "failed"
    | "notInstalled"
    | "uninstallFailed"
    | "pendingInstall"
    | "unknown";
export type ResultantAppStateDetail =
    | "processorArchitectureNotApplicable"
    | "minimumDiskSpaceNotMet"
    | "minimumOsVersionNotMet"
    | "minimumPhysicalMemoryNotMet"
    | "minimumLogicalProcessorCountNotMet"
    | "minimumCpuSpeedNotMet"
    | "platformNotApplicable"
    | "fileSystemRequirementNotMet"
    | "registryRequirementNotMet"
    | "powerShellScriptRequirementNotMet"
    | "supersedingAppsNotApplicable"
    | "noAdditionalDetails"
    | "dependencyFailedToInstall"
    | "dependencyWithRequirementsNotMet"
    | "dependencyPendingReboot"
    | "dependencyWithAutoInstallDisabled"
    | "supersededAppUninstallFailed"
    | "supersededAppUninstallPendingReboot"
    | "removingSupersededApps"
    | "iosAppStoreUpdateFailedToInstall"
    | "vppAppHasUpdateAvailable"
    | "userRejectedUpdate"
    | "uninstallPendingReboot"
    | "supersedingAppsDetected"
    | "supersededAppsDetected"
    | "seeInstallErrorCode"
    | "autoInstallDisabled"
    | "managedAppNoLongerPresent"
    | "userRejectedInstall"
    | "userIsNotLoggedIntoAppStore"
    | "untargetedSupersedingAppsDetected"
    | "appRemovedBySupersedence"
    | "seeUninstallErrorCode"
    | "pendingReboot"
    | "installingDependencies"
    | "contentDownloaded";
export type RunAsAccountType = "system" | "user";
export type VppTokenAccountType = "business" | "education";
export type VppTokenActionFailureReason =
    | "none"
    | "appleFailure"
    | "internalError"
    | "expiredVppToken"
    | "expiredApplePushNotificationCertificate";
export type Win32LobAppAutoUpdateSupersededApps = "notConfigured" | "enabled" | "unknownFutureValue";
export type Win32LobAppDeliveryOptimizationPriority = "notConfigured" | "foreground";
export type Win32LobAppDetectionOperator =
    | "notConfigured"
    | "equal"
    | "notEqual"
    | "greaterThan"
    | "greaterThanOrEqual"
    | "lessThan"
    | "lessThanOrEqual";
export type Win32LobAppFileSystemDetectionType =
    | "notConfigured"
    | "exists"
    | "modifiedDate"
    | "createdDate"
    | "version"
    | "sizeInMB"
    | "doesNotExist";
export type Win32LobAppFileSystemOperationType =
    | "notConfigured"
    | "exists"
    | "modifiedDate"
    | "createdDate"
    | "version"
    | "sizeInMB"
    | "doesNotExist";
export type Win32LobAppMsiPackageType = "perMachine" | "perUser" | "dualPurpose";
export type Win32LobAppNotification = "showAll" | "showReboot" | "hideAll";
export type Win32LobAppPowerShellScriptDetectionType =
    | "notConfigured"
    | "string"
    | "dateTime"
    | "integer"
    | "float"
    | "version"
    | "boolean";
export type Win32LobAppPowerShellScriptRuleOperationType =
    | "notConfigured"
    | "string"
    | "dateTime"
    | "integer"
    | "float"
    | "version"
    | "boolean";
export type Win32LobAppRegistryDetectionType =
    | "notConfigured"
    | "exists"
    | "doesNotExist"
    | "string"
    | "integer"
    | "version";
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" | "arm64";
export type WindowsDeviceType = "none" | "desktop" | "mobile" | "holographic" | "team" | "unknownFutureValue";
export type WinGetAppNotification = "showAll" | "showReboot" | "hideAll" | "unknownFutureValue";
export type InstallState = "notApplicable" | "installed" | "failed" | "notInstalled" | "uninstallFailed" | "unknown";
export type AssignmentFilterEvaluationResult =
    | "unknown"
    | "match"
    | "notMatch"
    | "inconclusive"
    | "failure"
    | "notEvaluated";
export type AssignmentFilterManagementType = "devices" | "apps" | "unknownFutureValue";
export type AssignmentFilterOperator =
    | "notSet"
    | "equals"
    | "notEquals"
    | "startsWith"
    | "notStartsWith"
    | "contains"
    | "notContains"
    | "in"
    | "notIn"
    | "endsWith"
    | "notEndsWith";
export type AssignmentFilterPayloadType = "notSet" | "enrollmentRestrictions";
export type AssociatedAssignmentPayloadType =
    | "unknown"
    | "deviceConfigurationAndCompliance"
    | "application"
    | "androidEnterpriseApp"
    | "enrollmentConfiguration"
    | "groupPolicyConfiguration"
    | "zeroTouchDeploymentDeviceConfigProfile"
    | "androidEnterpriseConfiguration"
    | "deviceFirmwareConfigurationInterfacePolicy"
    | "resourceAccessPolicy"
    | "win32app"
    | "deviceManagmentConfigurationAndCompliancePolicy";
export type DevicePlatformType =
    | "android"
    | "androidForWork"
    | "iOS"
    | "macOS"
    | "windowsPhone81"
    | "windows81AndLater"
    | "windows10AndLater"
    | "androidWorkProfile"
    | "unknown"
    | "androidAOSP"
    | "androidMobileApplicationManagement"
    | "iOSMobileApplicationManagement"
    | "unknownFutureValue";
export type ErrorCode = "noError" | "unauthorized" | "notFound" | "deleted";
export type PolicySetStatus = "unknown" | "validating" | "partialSuccess" | "success" | "error" | "notAssigned";
export type ChromeOSOnboardingStatus =
    | "unknown"
    | "inprogress"
    | "onboarded"
    | "failed"
    | "offboarding"
    | "unknownFutureValue";
export type OnboardingStatus = "unknown" | "inprogress" | "onboarded" | "failed" | "offboarding" | "unknownFutureValue";
export type ScopeTagTargetType = "none" | "user" | "device" | "unknownFutureValue";
export type ServiceNowConnectionStatus = "disabled" | "enabled" | "unknownFutureValue";
export type AdministratorConfiguredDeviceComplianceState = "basedOnDeviceCompliancePolicy" | "nonCompliant";
export type AdvancedBitLockerState =
    | "success"
    | "noUserConsent"
    | "osVolumeUnprotected"
    | "osVolumeTpmRequired"
    | "osVolumeTpmOnlyRequired"
    | "osVolumeTpmPinRequired"
    | "osVolumeTpmStartupKeyRequired"
    | "osVolumeTpmPinStartupKeyRequired"
    | "osVolumeEncryptionMethodMismatch"
    | "recoveryKeyBackupFailed"
    | "fixedDriveNotEncrypted"
    | "fixedDriveEncryptionMethodMismatch"
    | "loggedOnUserNonAdmin"
    | "windowsRecoveryEnvironmentNotConfigured"
    | "tpmNotAvailable"
    | "tpmNotReady"
    | "networkError";
export type AndroidDeviceOwnerAppAutoUpdatePolicyType = "notConfigured" | "userChoice" | "never" | "wiFiOnly" | "always";
export type AndroidDeviceOwnerBatteryPluggedMode = "notConfigured" | "ac" | "usb" | "wireless";
export type AndroidDeviceOwnerCertificateAccessType = "userApproval" | "specificApps" | "unknownFutureValue";
export type AndroidDeviceOwnerCrossProfileDataSharing =
    | "notConfigured"
    | "crossProfileDataSharingBlocked"
    | "dataSharingFromWorkToPersonalBlocked"
    | "crossProfileDataSharingAllowed"
    | "unkownFutureValue";
export type AndroidDeviceOwnerDefaultAppPermissionPolicyType = "deviceDefault" | "prompt" | "autoGrant" | "autoDeny";
export type AndroidDeviceOwnerDelegatedAppScopeType =
    | "unspecified"
    | "certificateInstall"
    | "captureNetworkActivityLog"
    | "captureSecurityLog"
    | "unknownFutureValue";
export type AndroidDeviceOwnerEnrollmentProfileType = "notConfigured" | "dedicatedDevice" | "fullyManaged";
export type AndroidDeviceOwnerKioskCustomizationStatusBar =
    | "notConfigured"
    | "notificationsAndSystemInfoEnabled"
    | "systemInfoOnly";
export type AndroidDeviceOwnerKioskCustomizationSystemNavigation =
    | "notConfigured"
    | "navigationEnabled"
    | "homeButtonOnly";
export type AndroidDeviceOwnerKioskModeFolderIcon =
    | "notConfigured"
    | "darkSquare"
    | "darkCircle"
    | "lightSquare"
    | "lightCircle";
export type AndroidDeviceOwnerKioskModeIconSize =
    | "notConfigured"
    | "smallest"
    | "small"
    | "regular"
    | "large"
    | "largest";
export type AndroidDeviceOwnerKioskModeScreenOrientation = "notConfigured" | "portrait" | "landscape" | "autoRotate";
export type AndroidDeviceOwnerLocationMode = "notConfigured" | "disabled" | "unknownFutureValue";
export type AndroidDeviceOwnerPlayStoreMode = "notConfigured" | "allowList" | "blockList";
export type AndroidDeviceOwnerRequiredPasswordType =
    | "deviceDefault"
    | "required"
    | "numeric"
    | "numericComplex"
    | "alphabetic"
    | "alphanumeric"
    | "alphanumericWithSymbols"
    | "lowSecurityBiometric"
    | "customPassword";
export type AndroidDeviceOwnerRequiredPasswordUnlock = "deviceDefault" | "daily" | "unkownFutureValue";
export type AndroidDeviceOwnerSystemUpdateInstallType = "deviceDefault" | "postpone" | "windowed" | "automatic";
export type AndroidDeviceOwnerVirtualHomeButtonType = "notConfigured" | "swipeUp" | "floating";
export type AndroidDeviceOwnerWiFiSecurityType = "open" | "wep" | "wpaPersonal" | "wpaEnterprise";
export type AndroidEapType = "eapTls" | "eapTtls" | "peap";
export type AndroidForWorkCrossProfileDataSharingType =
    | "deviceDefault"
    | "preventAny"
    | "allowPersonalToWork"
    | "noRestrictions";
export type AndroidForWorkDefaultAppPermissionPolicyType = "deviceDefault" | "prompt" | "autoGrant" | "autoDeny";
export type AndroidForWorkRequiredPasswordType =
    | "deviceDefault"
    | "lowSecurityBiometric"
    | "required"
    | "atLeastNumeric"
    | "numericComplex"
    | "atLeastAlphabetic"
    | "atLeastAlphanumeric"
    | "alphanumericWithSymbols";
export type AndroidForWorkVpnConnectionType =
    | "ciscoAnyConnect"
    | "pulseSecure"
    | "f5EdgeClient"
    | "dellSonicWallMobileConnect"
    | "checkPointCapsuleVpn"
    | "citrix";
export type AndroidKeyguardFeature =
    | "notConfigured"
    | "camera"
    | "notifications"
    | "unredactedNotifications"
    | "trustAgents"
    | "fingerprint"
    | "remoteInput"
    | "allFeatures"
    | "face"
    | "iris"
    | "biometrics";
export type AndroidRequiredPasswordComplexity = "none" | "low" | "medium" | "high";
export type AndroidRequiredPasswordType =
    | "deviceDefault"
    | "alphabetic"
    | "alphanumeric"
    | "alphanumericWithSymbols"
    | "lowSecurityBiometric"
    | "numeric"
    | "numericComplex"
    | "any";
export type AndroidSafetyNetEvaluationType = "basic" | "hardwareBacked";
export type AndroidUsernameSource = "username" | "userPrincipalName" | "samAccountName" | "primarySmtpAddress";
export type AndroidVpnConnectionType =
    | "ciscoAnyConnect"
    | "pulseSecure"
    | "f5EdgeClient"
    | "dellSonicWallMobileConnect"
    | "checkPointCapsuleVpn"
    | "citrix"
    | "microsoftTunnel"
    | "netMotionMobility"
    | "microsoftProtect";
export type AndroidWiFiSecurityType = "open" | "wpaEnterprise" | "wpa2Enterprise";
export type AndroidWorkProfileAccountUse =
    | "allowAllExceptGoogleAccounts"
    | "blockAll"
    | "allowAll"
    | "unknownFutureValue";
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 AndroidWorkProfileVpnConnectionType =
    | "ciscoAnyConnect"
    | "pulseSecure"
    | "f5EdgeClient"
    | "dellSonicWallMobileConnect"
    | "checkPointCapsuleVpn"
    | "citrix"
    | "paloAltoGlobalProtect"
    | "microsoftTunnel"
    | "netMotionMobility"
    | "microsoftProtect";
export type AospDeviceOwnerWiFiSecurityType = "open" | "wep" | "wpaPersonal" | "wpaEnterprise";
export type AppInstallControlType = "notConfigured" | "anywhere" | "storeOnly" | "recommendations" | "preferStore";
export type AppleDeploymentChannel = "deviceChannel" | "userChannel";
export type AppleSubjectNameFormat =
    | "commonName"
    | "commonNameAsEmail"
    | "custom"
    | "commonNameIncludingEmail"
    | "commonNameAsIMEI"
    | "commonNameAsSerialNumber";
export type AppleVpnConnectionType =
    | "ciscoAnyConnect"
    | "pulseSecure"
    | "f5EdgeClient"
    | "dellSonicWallMobileConnect"
    | "checkPointCapsuleVpn"
    | "customVpn"
    | "ciscoIPSec"
    | "citrix"
    | "ciscoAnyConnectV2"
    | "paloAltoGlobalProtect"
    | "zscalerPrivateAccess"
    | "f5Access2018"
    | "citrixSso"
    | "paloAltoGlobalProtectV2"
    | "ikEv2"
    | "alwaysOn"
    | "microsoftTunnel"
    | "netMotionMobility"
    | "microsoftProtect";
export type ApplicationGuardBlockClipboardSharingType =
    | "notConfigured"
    | "blockBoth"
    | "blockHostToContainer"
    | "blockContainerToHost"
    | "blockNone";
export type ApplicationGuardBlockFileTransferType =
    | "notConfigured"
    | "blockImageAndTextFile"
    | "blockImageFile"
    | "blockNone"
    | "blockTextFile";
export type ApplicationGuardEnabledOptions =
    | "notConfigured"
    | "enabledForEdge"
    | "enabledForOffice"
    | "enabledForEdgeAndOffice";
export type AppListType = "none" | "appsInListCompliant" | "appsNotInListCompliant";
export type AppLockerApplicationControlType =
    | "notConfigured"
    | "enforceComponentsAndStoreApps"
    | "auditComponentsAndStoreApps"
    | "enforceComponentsStoreAppsAndSmartlocker"
    | "auditComponentsStoreAppsAndSmartlocker";
export type AuthenticationTransformConstant =
    | "md5_96"
    | "sha1_96"
    | "sha_256_128"
    | "aes128Gcm"
    | "aes192Gcm"
    | "aes256Gcm";
export type AutomaticUpdateMode =
    | "userDefined"
    | "notifyDownload"
    | "autoInstallAtMaintenanceTime"
    | "autoInstallAndRebootAtMaintenanceTime"
    | "autoInstallAndRebootAtScheduledTime"
    | "autoInstallAndRebootWithoutEndUserControl"
    | "windowsDefault";
export type AutoRestartNotificationDismissalMethod = "notConfigured" | "automatic" | "user" | "unknownFutureValue";
export type BitLockerEncryptionMethod = "aesCbc128" | "aesCbc256" | "xtsAes128" | "xtsAes256";
export type BitLockerRecoveryInformationType = "passwordAndKey" | "passwordOnly";
export type BitLockerRecoveryPasswordRotationType =
    | "notConfigured"
    | "disabled"
    | "enabledForAzureAd"
    | "enabledForAzureAdAndHybrid";
export type BrowserSyncSetting = "notConfigured" | "blockedWithUserOverride" | "blocked";
export type CertificateDestinationStore =
    | "computerCertStoreRoot"
    | "computerCertStoreIntermediate"
    | "userCertStoreIntermediate";
export type CertificateIssuanceStates =
    | "unknown"
    | "challengeIssued"
    | "challengeIssueFailed"
    | "requestCreationFailed"
    | "requestSubmitFailed"
    | "challengeValidationSucceeded"
    | "challengeValidationFailed"
    | "issueFailed"
    | "issuePending"
    | "issued"
    | "responseProcessingFailed"
    | "responsePending"
    | "enrollmentSucceeded"
    | "enrollmentNotNeeded"
    | "revoked"
    | "removedFromCollection"
    | "renewVerified"
    | "installFailed"
    | "installed"
    | "deleteFailed"
    | "deleted"
    | "renewalRequested"
    | "requested";
export type CertificateRevocationStatus = "none" | "pending" | "issued" | "failed" | "revoked";
export type CertificateStore = "user" | "machine";
export type CertificateValidityPeriodScale = "days" | "months" | "years";
export type ChangeUefiSettingsPermission = "notConfiguredOnly" | "none";
export type Code =
    | "none"
    | "jsonFileInvalid"
    | "jsonFileMissing"
    | "jsonFileTooLarge"
    | "rulesMissing"
    | "duplicateRules"
    | "tooManyRulesSpecified"
    | "operatorMissing"
    | "operatorNotSupported"
    | "datatypeMissing"
    | "datatypeNotSupported"
    | "operatorDataTypeCombinationNotSupported"
    | "moreInfoUriMissing"
    | "moreInfoUriInvalid"
    | "moreInfoUriTooLarge"
    | "descriptionMissing"
    | "descriptionInvalid"
    | "descriptionTooLarge"
    | "titleMissing"
    | "titleInvalid"
    | "titleTooLarge"
    | "operandMissing"
    | "operandInvalid"
    | "operandTooLarge"
    | "settingNameMissing"
    | "settingNameInvalid"
    | "settingNameTooLarge"
    | "englishLocaleMissing"
    | "duplicateLocales"
    | "unrecognizedLocale"
    | "unknown"
    | "remediationStringsMissing";
export type ConfigurationUsage = "blocked" | "required" | "allowed" | "notConfigured";
export type DataType =
    | "none"
    | "boolean"
    | "int64"
    | "double"
    | "string"
    | "dateTime"
    | "version"
    | "base64"
    | "xml"
    | "booleanArray"
    | "int64Array"
    | "doubleArray"
    | "stringArray"
    | "dateTimeArray"
    | "versionArray";
export type DefenderAttackSurfaceType = "userDefined" | "block" | "auditMode" | "warn" | "disable";
export type DefenderCloudBlockLevelType = "notConfigured" | "high" | "highPlus" | "zeroTolerance";
export type DefenderMonitorFileActivity =
    | "userDefined"
    | "disable"
    | "monitorAllFiles"
    | "monitorIncomingFilesOnly"
    | "monitorOutgoingFilesOnly";
export type DefenderPotentiallyUnwantedAppAction = "deviceDefault" | "block" | "audit";
export type DefenderPromptForSampleSubmission =
    | "userDefined"
    | "alwaysPrompt"
    | "promptBeforeSendingPersonalData"
    | "neverSendData"
    | "sendAllDataWithoutPrompting";
export type DefenderProtectionType = "userDefined" | "enable" | "auditMode" | "warn" | "notConfigured";
export type DefenderRealtimeScanDirection = "monitorAllFiles" | "monitorIncomingFilesOnly" | "monitorOutgoingFilesOnly";
export type DefenderScanType = "userDefined" | "disabled" | "quick" | "full";
export type DefenderSecurityCenterITContactDisplayType =
    | "notConfigured"
    | "displayInAppAndInNotifications"
    | "displayOnlyInApp"
    | "displayOnlyInNotifications";
export type DefenderSecurityCenterNotificationsFromAppType =
    | "notConfigured"
    | "blockNoncriticalNotifications"
    | "blockAllNotifications";
export type DefenderSubmitSamplesConsentType =
    | "sendSafeSamplesAutomatically"
    | "alwaysPrompt"
    | "neverSend"
    | "sendAllSamplesAutomatically";
export type DefenderThreatAction =
    | "deviceDefault"
    | "clean"
    | "quarantine"
    | "remove"
    | "allow"
    | "userDefined"
    | "block";
export type DeliveryOptimizationGroupIdOptionsType =
    | "notConfigured"
    | "adSite"
    | "authenticatedDomainSid"
    | "dhcpUserOption"
    | "dnsSuffix";
export type DeliveryOptimizationRestrictPeerSelectionByOptions = "notConfigured" | "subnetMask";
export type DerivedCredentialProviderType = "notConfigured" | "entrustDataCard" | "purebred" | "xTec" | "intercede";
export type DeviceComplianceActionType =
    | "noAction"
    | "notification"
    | "block"
    | "retire"
    | "wipe"
    | "removeResourceAccessProfiles"
    | "pushNotification"
    | "remoteLock";
export type DeviceComplianceScriptRuleDataType =
    | "none"
    | "boolean"
    | "int64"
    | "double"
    | "string"
    | "dateTime"
    | "version"
    | "base64"
    | "xml"
    | "booleanArray"
    | "int64Array"
    | "doubleArray"
    | "stringArray"
    | "dateTimeArray"
    | "versionArray";
export type DeviceComplianceScriptRulesValidationError =
    | "none"
    | "jsonFileInvalid"
    | "jsonFileMissing"
    | "jsonFileTooLarge"
    | "rulesMissing"
    | "duplicateRules"
    | "tooManyRulesSpecified"
    | "operatorMissing"
    | "operatorNotSupported"
    | "datatypeMissing"
    | "datatypeNotSupported"
    | "operatorDataTypeCombinationNotSupported"
    | "moreInfoUriMissing"
    | "moreInfoUriInvalid"
    | "moreInfoUriTooLarge"
    | "descriptionMissing"
    | "descriptionInvalid"
    | "descriptionTooLarge"
    | "titleMissing"
    | "titleInvalid"
    | "titleTooLarge"
    | "operandMissing"
    | "operandInvalid"
    | "operandTooLarge"
    | "settingNameMissing"
    | "settingNameInvalid"
    | "settingNameTooLarge"
    | "englishLocaleMissing"
    | "duplicateLocales"
    | "unrecognizedLocale"
    | "unknown"
    | "remediationStringsMissing";
export type DeviceComplianceScriptRulOperator =
    | "none"
    | "and"
    | "or"
    | "isEquals"
    | "notEquals"
    | "greaterThan"
    | "lessThan"
    | "between"
    | "notBetween"
    | "greaterEquals"
    | "lessEquals"
    | "dayTimeBetween"
    | "beginsWith"
    | "notBeginsWith"
    | "endsWith"
    | "notEndsWith"
    | "contains"
    | "notContains"
    | "allOf"
    | "oneOf"
    | "noneOf"
    | "setEquals"
    | "orderedSetEquals"
    | "subsetOf"
    | "excludesAll";
export type DeviceConfigAssignmentIntent = "apply" | "remove";
export type DeviceGuardLocalSystemAuthorityCredentialGuardType =
    | "notConfigured"
    | "enableWithUEFILock"
    | "enableWithoutUEFILock"
    | "disable";
export type DeviceManagementApplicabilityRuleType = "include" | "exclude";
export type DeviceManagementCertificationAuthority = "notConfigured" | "microsoft" | "digiCert";
export type DeviceThreatProtectionLevel = "unavailable" | "secured" | "low" | "medium" | "high" | "notSet";
export type DeviceType =
    | "desktop"
    | "windowsRT"
    | "winMO6"
    | "nokia"
    | "windowsPhone"
    | "mac"
    | "winCE"
    | "winEmbedded"
    | "iPhone"
    | "iPad"
    | "iPod"
    | "android"
    | "iSocConsumer"
    | "unix"
    | "macMDM"
    | "holoLens"
    | "surfaceHub"
    | "androidForWork"
    | "androidEnterprise"
    | "windows10x"
    | "androidnGMS"
    | "chromeOS"
    | "linux"
    | "blackberry"
    | "palm"
    | "unknown"
    | "cloudPC";
export type DeviceTypes =
    | "desktop"
    | "windowsRT"
    | "winMO6"
    | "nokia"
    | "windowsPhone"
    | "mac"
    | "winCE"
    | "winEmbedded"
    | "iPhone"
    | "iPad"
    | "iPod"
    | "android"
    | "iSocConsumer"
    | "unix"
    | "macMDM"
    | "holoLens"
    | "surfaceHub"
    | "androidForWork"
    | "androidEnterprise"
    | "blackberry"
    | "palm"
    | "unknown";
export type DiagnosticDataSubmissionMode = "userDefined" | "none" | "basic" | "enhanced" | "full";
export type DiffieHellmanGroup = "group1" | "group2" | "group14" | "ecp256" | "ecp384" | "group24";
export type DmaGuardDeviceEnumerationPolicyType = "deviceDefault" | "blockAll" | "allowAll";
export type DomainNameSource = "fullDomainName" | "netBiosDomainName";
export type EapFastConfiguration =
    | "noProtectedAccessCredential"
    | "useProtectedAccessCredential"
    | "useProtectedAccessCredentialAndProvision"
    | "useProtectedAccessCredentialAndProvisionAnonymously";
export type EapType = "eapTls" | "leap" | "eapSim" | "eapTtls" | "peap" | "eapFast" | "teap";
export type EasAuthenticationMethod = "usernameAndPassword" | "certificate" | "derivedCredential";
export type EasServices = "none" | "calendars" | "contacts" | "email" | "notes" | "reminders";
export type EdgeCookiePolicy = "userDefined" | "allow" | "blockThirdParty" | "blockAll";
export type EdgeKioskModeRestrictionType =
    | "notConfigured"
    | "digitalSignage"
    | "normalMode"
    | "publicBrowsingSingleApp"
    | "publicBrowsingMultiApp";
export type EdgeOpenOptions = "notConfigured" | "startPage" | "newTabPage" | "previousPages" | "specificPages";
export type EdgeSearchEngineType = "default" | "bing";
export type EdgeTelemetryMode = "notConfigured" | "intranet" | "internet" | "intranetAndInternet";
export type EditionUpgradeLicenseType = "productKey" | "licenseFile" | "notConfigured";
export type EmailCertificateType = "none" | "certificate" | "derivedCredential";
export type EmailSyncDuration =
    | "userDefined"
    | "oneDay"
    | "threeDays"
    | "oneWeek"
    | "twoWeeks"
    | "oneMonth"
    | "unlimited";
export type EmailSyncSchedule =
    | "userDefined"
    | "asMessagesArrive"
    | "manual"
    | "fifteenMinutes"
    | "thirtyMinutes"
    | "sixtyMinutes"
    | "basedOnMyUsage";
export type Enablement = "notConfigured" | "enabled" | "disabled";
export type EncryptionReadinessState = "notReady" | "ready";
export type EncryptionState = "notEncrypted" | "encrypted";
export type FileVaultState = "success" | "driveEncryptedByUser" | "userDeferredEncryption" | "escrowNotEnabled";
export type FirewallCertificateRevocationListCheckMethodType = "deviceDefault" | "none" | "attempt" | "require";
export type FirewallPacketQueueingMethodType =
    | "deviceDefault"
    | "disabled"
    | "queueInbound"
    | "queueOutbound"
    | "queueBoth";
export type FirewallPreSharedKeyEncodingMethodType = "deviceDefault" | "none" | "utF8";
export type FolderProtectionType =
    | "userDefined"
    | "enable"
    | "auditMode"
    | "blockDiskModification"
    | "auditDiskModification";
export type HashAlgorithms = "sha1" | "sha2";
export type InkAccessSetting = "notConfigured" | "enabled" | "disabled";
export type IntendedPurpose = "unassigned" | "smimeEncryption" | "smimeSigning" | "vpn" | "wifi";
export type InternetExplorerMessageSetting = "notConfigured" | "disabled" | "enabled" | "keepGoing";
export type InternetSiteSecurityLevel = "userDefined" | "medium" | "mediumHigh" | "high";
export type IosKioskModeAppType = "notConfigured" | "appStoreApp" | "managedApp" | "builtInApp";
export type IosNotificationAlertType = "deviceDefault" | "banner" | "modal" | "none";
export type IosNotificationPreviewVisibility = "notConfigured" | "alwaysShow" | "hideWhenLocked" | "neverShow";
export type IosSoftwareUpdateScheduleType =
    | "updateOutsideOfActiveHours"
    | "alwaysUpdate"
    | "updateDuringTimeWindows"
    | "updateOutsideOfTimeWindows";
export type IosUpdatesInstallStatus =
    | "updateScanFailed"
    | "deviceOsHigherThanDesiredOsVersion"
    | "updateError"
    | "sharedDeviceUserLoggedInError"
    | "notSupportedOperation"
    | "installFailed"
    | "installPhoneCallInProgress"
    | "installInsufficientPower"
    | "installInsufficientSpace"
    | "installing"
    | "downloadInsufficientNetwork"
    | "downloadInsufficientPower"
    | "downloadInsufficientSpace"
    | "downloadRequiresComputer"
    | "downloadFailed"
    | "downloading"
    | "timeout"
    | "mdmClientCrashed"
    | "success"
    | "available"
    | "idle"
    | "unknown";
export type IosWallpaperDisplayLocation = "notConfigured" | "lockScreen" | "homeScreen" | "lockAndHomeScreens";
export type KeySize = "size1024" | "size2048" | "size4096";
export type KeyStorageProviderOption =
    | "useTpmKspOtherwiseUseSoftwareKsp"
    | "useTpmKspOtherwiseFail"
    | "usePassportForWorkKspOtherwiseFail"
    | "useSoftwareKsp";
export type KeyUsages = "keyEncipherment" | "digitalSignature";
export type KioskModeManagedHomeScreenPinComplexity = "notConfigured" | "simple" | "complex";
export type KioskModeType = "notConfigured" | "singleAppMode" | "multiAppMode";
export type LanManagerAuthenticationLevel =
    | "lmAndNltm"
    | "lmNtlmAndNtlmV2"
    | "lmAndNtlmOnly"
    | "lmAndNtlmV2"
    | "lmNtlmV2AndNotLm"
    | "lmNtlmV2AndNotLmOrNtm";
export type LicenseType = "notPaid" | "paid" | "trial" | "unknownFutureValue";
export type LocalSecurityOptionsAdministratorElevationPromptBehaviorType =
    | "notConfigured"
    | "elevateWithoutPrompting"
    | "promptForCredentialsOnTheSecureDesktop"
    | "promptForConsentOnTheSecureDesktop"
    | "promptForCredentials"
    | "promptForConsent"
    | "promptForConsentForNonWindowsBinaries";
export type LocalSecurityOptionsFormatAndEjectOfRemovableMediaAllowedUserType =
    | "notConfigured"
    | "administrators"
    | "administratorsAndPowerUsers"
    | "administratorsAndInteractiveUsers";
export type LocalSecurityOptionsInformationDisplayedOnLockScreenType =
    | "notConfigured"
    | "administrators"
    | "administratorsAndPowerUsers"
    | "administratorsAndInteractiveUsers";
export type LocalSecurityOptionsInformationShownOnLockScreenType =
    | "notConfigured"
    | "userDisplayNameDomainUser"
    | "userDisplayNameOnly"
    | "doNotDisplayUser";
export type LocalSecurityOptionsMinimumSessionSecurity =
    | "none"
    | "requireNtmlV2SessionSecurity"
    | "require128BitEncryption"
    | "ntlmV2And128BitEncryption";
export type LocalSecurityOptionsSmartCardRemovalBehaviorType =
    | "noAction"
    | "lockWorkstation"
    | "forceLogoff"
    | "disconnectRemoteDesktopSession";
export type LocalSecurityOptionsStandardUserElevationPromptBehaviorType =
    | "notConfigured"
    | "automaticallyDenyElevationRequests"
    | "promptForCredentialsOnTheSecureDesktop"
    | "promptForCredentials";
export type MacOSContentCachingClientPolicy =
    | "notConfigured"
    | "clientsInLocalNetwork"
    | "clientsWithSamePublicIpAddress"
    | "clientsInCustomLocalNetworks"
    | "clientsInCustomLocalNetworksWithFallback";
export type MacOSContentCachingParentSelectionPolicy =
    | "notConfigured"
    | "roundRobin"
    | "firstAvailable"
    | "urlPathHash"
    | "random"
    | "stickyAvailable";
export type MacOSContentCachingPeerPolicy =
    | "notConfigured"
    | "peersInLocalNetwork"
    | "peersWithSamePublicIpAddress"
    | "peersInCustomLocalNetworks";
export type MacOSContentCachingType = "notConfigured" | "userContentOnly" | "sharedContentOnly";
export type MacOSFileVaultRecoveryKeyTypes = "notConfigured" | "institutionalRecoveryKey" | "personalRecoveryKey";
export type MacOSGatekeeperAppSources =
    | "notConfigured"
    | "macAppStore"
    | "macAppStoreAndIdentifiedDevelopers"
    | "anywhere";
export type MacOSPriority = "low" | "high" | "unknownFutureValue";
export type MacOSProcessIdentifierType = "bundleID" | "path";
export type MacOSSoftwareUpdateBehavior =
    | "notConfigured"
    | "default"
    | "downloadOnly"
    | "installASAP"
    | "notifyOnly"
    | "installLater";
export type MacOSSoftwareUpdateCategory = "critical" | "configurationDataFile" | "firmware" | "other";
export type MacOSSoftwareUpdateDelayPolicy =
    | "none"
    | "delayOSUpdateVisibility"
    | "delayAppUpdateVisibility"
    | "unknownFutureValue"
    | "delayMajorOsUpdateVisibility";
export type MacOSSoftwareUpdateScheduleType = "alwaysUpdate" | "updateDuringTimeWindows" | "updateOutsideOfTimeWindows";
export type MacOSSoftwareUpdateState =
    | "success"
    | "downloading"
    | "downloaded"
    | "installing"
    | "idle"
    | "available"
    | "scheduled"
    | "downloadFailed"
    | "downloadInsufficientSpace"
    | "downloadInsufficientPower"
    | "downloadInsufficientNetwork"
    | "installInsufficientSpace"
    | "installInsufficientPower"
    | "installFailed"
    | "commandFailed";
export type MacOSSystemExtensionType =
    | "driverExtensionsAllowed"
    | "networkExtensionsAllowed"
    | "endpointSecurityExtensionsAllowed";
export type ManagedDeviceOwnerType = "unknown" | "company" | "personal";
export type ManagementAgentType =
    | "eas"
    | "mdm"
    | "easMdm"
    | "intuneClient"
    | "easIntuneClient"
    | "configurationManagerClient"
    | "configurationManagerClientMdm"
    | "configurationManagerClientMdmEas"
    | "unknown"
    | "jamf"
    | "googleCloudDevicePolicyController"
    | "microsoft365ManagedMdm"
    | "msSense"
    | "intuneAosp";
export type MeteredConnectionLimitType = "unrestricted" | "fixed" | "variable";
export type MicrosoftLauncherDockPresence = "notConfigured" | "show" | "hide" | "disabled";
export type MicrosoftLauncherSearchBarPlacement = "notConfigured" | "top" | "bottom" | "hide";
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 NdesConnectorState = "none" | "active" | "inactive";
export type NetworkSingleSignOnType = "disabled" | "prelogon" | "postlogon";
export type NonEapAuthenticationMethodForEapTtlsType =
    | "unencryptedPassword"
    | "challengeHandshakeAuthenticationProtocol"
    | "microsoftChap"
    | "microsoftChapVersionTwo";
export type NonEapAuthenticationMethodForPeap = "none" | "microsoftChapVersionTwo";
export type Operator =
    | "none"
    | "and"
    | "or"
    | "isEquals"
    | "notEquals"
    | "greaterThan"
    | "lessThan"
    | "between"
    | "notBetween"
    | "greaterEquals"
    | "lessEquals"
    | "dayTimeBetween"
    | "beginsWith"
    | "notBeginsWith"
    | "endsWith"
    | "notEndsWith"
    | "contains"
    | "notContains"
    | "allOf"
    | "oneOf"
    | "noneOf"
    | "setEquals"
    | "orderedSetEquals"
    | "subsetOf"
    | "excludesAll";
export type PerfectForwardSecrecyGroup = "pfs1" | "pfs2" | "pfs2048" | "ecp256" | "ecp384" | "pfsMM" | "pfs24";
export type PersonalProfilePersonalPlayStoreMode = "notConfigured" | "blockedApps" | "allowedApps";
export type PolicyPlatformType =
    | "android"
    | "androidForWork"
    | "iOS"
    | "macOS"
    | "windowsPhone81"
    | "windows81AndLater"
    | "windows10AndLater"
    | "androidWorkProfile"
    | "windows10XProfile"
    | "androidAOSP"
    | "all";
export type PowerActionType = "notConfigured" | "noAction" | "sleep" | "hibernate" | "shutdown";
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 RestrictedAppsState = "prohibitedApps" | "notApprovedApps";
export type RunState = "unknown" | "success" | "fail" | "scriptError" | "pending" | "notApplicable";
export type SafeSearchFilterType = "userDefined" | "strict" | "moderate";
export type ScheduledRetireState = "cancelRetire" | "confirmRetire" | "unknownFutureValue";
export type SecureAssessmentAccountType = "azureADAccount" | "domainAccount" | "localAccount" | "localGuestAccount";
export type SecureBootWithDMAType = "notConfigured" | "withoutDMA" | "withDMA";
export type ServiceStartType = "manual" | "automatic" | "disabled";
export type SettingSourceType = "deviceConfiguration" | "deviceIntent";
export type SharedPCAccountDeletionPolicyType =
    | "immediate"
    | "diskSpaceThreshold"
    | "diskSpaceThresholdOrInactiveThreshold";
export type SharedPCAllowedAccountType = "notConfigured" | "guest" | "domain";
export type SignInAssistantOptions = "notConfigured" | "disabled";
export type SiteSecurityLevel = "userDefined" | "low" | "mediumLow" | "medium" | "mediumHigh" | "high";
export type StateManagementSetting = "notConfigured" | "blocked" | "allowed";
export type SubjectAlternativeNameType =
    | "none"
    | "emailAddress"
    | "userPrincipalName"
    | "customAzureADAttribute"
    | "domainNameService"
    | "universalResourceIdentifier";
export type SubjectNameFormat =
    | "commonName"
    | "commonNameIncludingEmail"
    | "commonNameAsEmail"
    | "custom"
    | "commonNameAsIMEI"
    | "commonNameAsSerialNumber"
    | "commonNameAsAadDeviceId"
    | "commonNameAsIntuneDeviceId"
    | "commonNameAsDurableDeviceId";
export type UpdateClassification = "userDefined" | "recommendedAndImportant" | "important" | "none";
export type UserEmailSource = "userPrincipalName" | "primarySmtpAddress";
export type UsernameSource = "userPrincipalName" | "primarySmtpAddress" | "samAccountName";
export type VisibilitySetting = "notConfigured" | "hide" | "show";
export type VpnAuthenticationMethod =
    | "certificate"
    | "usernameAndPassword"
    | "sharedSecret"
    | "derivedCredential"
    | "azureAD";
export type VpnClientAuthenticationType = "userAuthentication" | "deviceAuthentication";
export type VpnDeadPeerDetectionRate = "medium" | "none" | "low" | "high";
export type VpnEncryptionAlgorithmType =
    | "aes256"
    | "des"
    | "tripleDes"
    | "aes128"
    | "aes128Gcm"
    | "aes256Gcm"
    | "aes192"
    | "aes192Gcm"
    | "chaCha20Poly1305";
export type VpnIntegrityAlgorithmType = "sha2_256" | "sha1_96" | "sha1_160" | "sha2_384" | "sha2_512" | "md5";
export type VpnLocalIdentifier = "deviceFQDN" | "empty" | "clientCertificateSubjectName";
export type VpnOnDemandRuleConnectionAction = "connect" | "evaluateConnection" | "ignore" | "disconnect";
export type VpnOnDemandRuleConnectionDomainAction = "connectIfNeeded" | "neverConnect";
export type VpnOnDemandRuleInterfaceTypeMatch = "notConfigured" | "ethernet" | "wiFi" | "cellular";
export type VpnProviderType = "notConfigured" | "appProxy" | "packetTunnel";
export type VpnServerCertificateType = "rsa" | "ecdsa256" | "ecdsa384" | "ecdsa521";
export type VpnServiceExceptionAction = "forceTrafficViaVPN" | "allowTrafficOutside" | "dropTraffic";
export type VpnTrafficDirection = "outbound" | "inbound" | "unknownFutureValue";
export type VpnTrafficRuleAppType = "none" | "desktop" | "universal";
export type VpnTrafficRuleRoutingPolicyType = "none" | "splitTunnel" | "forceTunnel";
export type VpnTunnelConfigurationType = "wifiAndCellular" | "cellular" | "wifi";
export type WebBrowserCookieSettings =
    | "browserDefault"
    | "blockAlways"
    | "allowCurrentWebSite"
    | "allowFromWebsitesVisited"
    | "allowAlways";
export type WeeklySchedule =
    | "userDefined"
    | "everyday"
    | "sunday"
    | "monday"
    | "tuesday"
    | "wednesday"
    | "thursday"
    | "friday"
    | "saturday"
    | "noScheduledScan";
export type WelcomeScreenMeetingInformation =
    | "userDefined"
    | "showOrganizerAndTimeOnly"
    | "showOrganizerAndTimeAndSubject";
export type WiFiAuthenticationMethod = "certificate" | "usernameAndPassword" | "derivedCredential";
export type WifiAuthenticationType = "none" | "user" | "machine" | "machineOrUser" | "guest";
export type WiFiProxySetting = "none" | "manual" | "automatic" | "unknownFutureValue";
export type WiFiSecurityType = "open" | "wpaPersonal" | "wpaEnterprise" | "wep" | "wpa2Personal" | "wpa2Enterprise";
export type Windows10AppsUpdateRecurrence = "none" | "daily" | "weekly" | "monthly";
export type Windows10AppType = "desktop" | "universal";
export type Windows10DeviceModeType = "standardConfiguration" | "sModeConfiguration";
export type Windows10EditionType =
    | "windows10Enterprise"
    | "windows10EnterpriseN"
    | "windows10Education"
    | "windows10EducationN"
    | "windows10MobileEnterprise"
    | "windows10HolographicEnterprise"
    | "windows10Professional"
    | "windows10ProfessionalN"
    | "windows10ProfessionalEducation"
    | "windows10ProfessionalEducationN"
    | "windows10ProfessionalWorkstation"
    | "windows10ProfessionalWorkstationN"
    | "notConfigured"
    | "windows10Home"
    | "windows10HomeChina"
    | "windows10HomeN"
    | "windows10HomeSingleLanguage"
    | "windows10Mobile"
    | "windows10IoTCore"
    | "windows10IoTCoreCommercial";
export type Windows10VpnAuthenticationMethod =
    | "certificate"
    | "usernameAndPassword"
    | "customEapXml"
    | "derivedCredential";
export type Windows10VpnConnectionType =
    | "pulseSecure"
    | "f5EdgeClient"
    | "dellSonicWallMobileConnect"
    | "checkPointCapsuleVpn"
    | "automatic"
    | "ikEv2"
    | "l2tp"
    | "pptp"
    | "citrix"
    | "paloAltoGlobalProtect"
    | "ciscoAnyConnect"
    | "unknownFutureValue"
    | "microsoftTunnel";
export type Windows10VpnProfileTarget = "user" | "device" | "autoPilotDevice";
export type WindowsAppStartLayoutTileSize = "hidden" | "small" | "medium" | "wide" | "large";
export type WindowsDefenderTamperProtectionOptions = "notConfigured" | "enable" | "disable";
export type WindowsDeliveryOptimizationMode =
    | "userDefined"
    | "httpOnly"
    | "httpWithPeeringNat"
    | "httpWithPeeringPrivateGroup"
    | "httpWithInternetPeering"
    | "simpleDownload"
    | "bypassMode";
export type WindowsEdgeKioskType = "publicBrowsing" | "fullScreen";
export type WindowsFirewallRuleInterfaceTypes = "notConfigured" | "remoteAccess" | "wireless" | "lan";
export type WindowsFirewallRuleNetworkProfileTypes = "notConfigured" | "domain" | "private" | "public";
export type WindowsFirewallRuleTrafficDirectionType = "notConfigured" | "out" | "in";
export type WindowsHealthMonitoringScope =
    | "undefined"
    | "healthMonitoring"
    | "bootPerformance"
    | "windowsUpdates"
    | "privilegeManagement";
export type WindowsKioskAppType = "unknown" | "store" | "desktop" | "aumId";
export type WindowsPrivacyDataAccessLevel = "notConfigured" | "forceAllow" | "forceDeny" | "userInControl";
export type WindowsPrivacyDataCategory =
    | "notConfigured"
    | "accountInfo"
    | "appsRunInBackground"
    | "calendar"
    | "callHistory"
    | "camera"
    | "contacts"
    | "diagnosticsInfo"
    | "email"
    | "location"
    | "messaging"
    | "microphone"
    | "motion"
    | "notifications"
    | "phone"
    | "radios"
    | "tasks"
    | "syncWithDevices"
    | "trustedDevices";
export type WindowsSModeConfiguration = "noRestriction" | "block" | "unlock";
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 WindowsUpdateStatus = "upToDate" | "pendingInstallation" | "pendingReboot" | "failed";
export type WindowsUpdateType =
    | "userDefined"
    | "all"
    | "businessReadyOnly"
    | "windowsInsiderBuildFast"
    | "windowsInsiderBuildSlow"
    | "windowsInsiderBuildRelease";
export type WindowsUserAccountControlSettings =
    | "userDefined"
    | "alwaysNotify"
    | "notifyOnAppChanges"
    | "notifyOnAppChangesWithoutDimming"
    | "neverNotify";
export type WindowsVpnConnectionType =
    | "pulseSecure"
    | "f5EdgeClient"
    | "dellSonicWallMobileConnect"
    | "checkPointCapsuleVpn";
export type WiredNetworkAuthenticationMethod =
    | "certificate"
    | "usernameAndPassword"
    | "derivedCredential"
    | "unknownFutureValue";
export type WiredNetworkAuthenticationType =
    | "none"
    | "user"
    | "machine"
    | "machineOrUser"
    | "guest"
    | "unknownFutureValue";
export type WiredNetworkInterface =
    | "anyEthernet"
    | "firstActiveEthernet"
    | "secondActiveEthernet"
    | "thirdActiveEthernet"
    | "firstEthernet"
    | "secondEthernet"
    | "thirdEthernet";
export type DeviceManagementComplianceActionType =
    | "noAction"
    | "notification"
    | "block"
    | "retire"
    | "wipe"
    | "removeResourceAccessProfiles"
    | "pushNotification"
    | "remoteLock";
export type DeviceManagementConfigurationAzureAdTrustType = "none" | "azureAdJoined" | "addWorkAccount" | "mdmOnly";
export type DeviceManagementConfigurationControlType =
    | "default"
    | "dropdown"
    | "smallTextBox"
    | "largeTextBox"
    | "toggle"
    | "multiheaderGrid"
    | "contextPane"
    | "unknownFutureValue";
export type DeviceManagementConfigurationDeviceMode = "none" | "kiosk";
export type DeviceManagementConfigurationPlatforms =
    | "none"
    | "android"
    | "iOS"
    | "macOS"
    | "windows10X"
    | "windows10"
    | "linux"
    | "unknownFutureValue";
export type DeviceManagementConfigurationSecretSettingValueState = "invalid" | "notEncrypted" | "encryptedValueToken";
export type DeviceManagementConfigurationSettingAccessTypes =
    | "none"
    | "add"
    | "copy"
    | "delete"
    | "get"
    | "replace"
    | "execute";
export type DeviceManagementConfigurationSettingUsage = "none" | "configuration" | "compliance" | "unknownFutureValue";
export type DeviceManagementConfigurationSettingVisibility =
    | "none"
    | "settingsCatalog"
    | "template"
    | "unknownFutureValue";
export type DeviceManagementConfigurationStringFormat =
    | "none"
    | "email"
    | "guid"
    | "ip"
    | "base64"
    | "url"
    | "version"
    | "xml"
    | "date"
    | "time"
    | "binary"
    | "regEx"
    | "json"
    | "dateTime"
    | "surfaceHub"
    | "bashScript"
    | "unknownFutureValue";
export type DeviceManagementConfigurationTechnologies =
    | "none"
    | "mdm"
    | "windows10XManagement"
    | "configManager"
    | "appleRemoteManagement"
    | "microsoftSense"
    | "exchangeOnline"
    | "mobileApplicationManagement"
    | "linuxMdm"
    | "enrollment"
    | "endpointPrivilegeManagement"
    | "unknownFutureValue";
export type DeviceManagementConfigurationTemplateFamily =
    | "none"
    | "endpointSecurityAntivirus"
    | "endpointSecurityDiskEncryption"
    | "endpointSecurityFirewall"
    | "endpointSecurityEndpointDetectionAndResponse"
    | "endpointSecurityAttackSurfaceReduction"
    | "endpointSecurityAccountProtection"
    | "endpointSecurityApplicationControl"
    | "endpointSecurityEndpointPrivilegeManagement"
    | "enrollmentConfiguration"
    | "appQuietTime"
    | "baseline"
    | "unknownFutureValue"
    | "deviceConfigurationScripts"
    | "deviceConfigurationPolicies"
    | "companyPortal";
export type DeviceManagementConfigurationWindowsSkus =
    | "unknown"
    | "windowsHome"
    | "windowsProfessional"
    | "windowsEnterprise"
    | "windowsEducation"
    | "windowsMobile"
    | "windowsMobileEnterprise"
    | "windowsTeamSurface"
    | "iot"
    | "iotEnterprise"
    | "holoLens"
    | "holoLensEnterprise"
    | "holographicForBusiness"
    | "windowsMultiSession"
    | "surfaceHub";
export type DeviceManagementTemplateLifecycleState =
    | "invalid"
    | "draft"
    | "active"
    | "superseded"
    | "deprecated"
    | "retired";
export type CompanyPortalAction = "unknown" | "remove" | "reset";
export type DeviceEnrollmentConfigurationType =
    | "unknown"
    | "limit"
    | "platformRestrictions"
    | "windowsHelloForBusiness"
    | "defaultLimit"
    | "defaultPlatformRestrictions"
    | "defaultWindowsHelloForBusiness"
    | "defaultWindows10EnrollmentCompletionPageConfiguration"
    | "windows10EnrollmentCompletionPageConfiguration"
    | "deviceComanagementAuthorityConfiguration"
    | "singlePlatformRestriction"
    | "unknownFutureValue"
    | "enrollmentNotificationsConfiguration";
export type DeviceManagementExchangeAccessLevel = "none" | "allow" | "block" | "quarantine";
export type DeviceManagementExchangeAccessRuleType = "family" | "model";
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 EnrollmentAvailabilityOptions = "availableWithPrompts" | "availableWithoutPrompts" | "unavailable";
export type EnrollmentNotificationBrandingOptions =
    | "none"
    | "includeCompanyLogo"
    | "includeCompanyName"
    | "includeContactInformation"
    | "includeCompanyPortalLink"
    | "includeDeviceDetails"
    | "unknownFutureValue";
export type EnrollmentNotificationTemplateType = "email" | "push" | "unknownFutureValue";
export type EnrollmentRestrictionPlatformType =
    | "allPlatforms"
    | "ios"
    | "windows"
    | "windowsPhone"
    | "android"
    | "androidForWork"
    | "mac"
    | "linux"
    | "unknownFutureValue";
export type MdmAuthority = "unknown" | "intune" | "sccm" | "office365";
export type MicrosoftStoreForBusinessPortalSelectionOptions = "none" | "companyPortal" | "privateStore";
export type MobileThreatPartnerTenantState =
    | "unavailable"
    | "available"
    | "enabled"
    | "unresponsive"
    | "notSetUp"
    | "error"
    | "unknownFutureValue";
export type OwnerType = "unknown" | "company" | "personal";
export type VppTokenState =
    | "unknown"
    | "valid"
    | "expired"
    | "invalid"
    | "assignedToExternalMDM"
    | "duplicateLocationId";
export type VppTokenSyncStatus = "none" | "inProgress" | "completed" | "failed";
export type WindowsHelloForBusinessPinUsage = "allowed" | "required" | "disallowed";
export type DeviceManagementComparisonResult = "unknown" | "equal" | "notEqual" | "added" | "removed";
export type DeviceManagementTemplateSubtype =
    | "none"
    | "firewall"
    | "diskEncryption"
    | "attackSurfaceReduction"
    | "endpointDetectionReponse"
    | "accountProtection"
    | "antivirus"
    | "firewallSharedAppList"
    | "firewallSharedIpList"
    | "firewallSharedPortlist";
export type DeviceManagementTemplateType =
    | "securityBaseline"
    | "specializedDevices"
    | "advancedThreatProtectionSecurityBaseline"
    | "deviceConfiguration"
    | "custom"
    | "securityTemplate"
    | "microsoftEdgeSecurityBaseline"
    | "microsoftOffice365ProPlusSecurityBaseline"
    | "deviceCompliance"
    | "deviceConfigurationForOffice365"
    | "cloudPC"
    | "firewallSharedSettings";
export type DeviceManangementIntentValueType =
    | "integer"
    | "boolean"
    | "string"
    | "complex"
    | "collection"
    | "abstractComplex";
export type SecurityBaselineComplianceState =
    | "unknown"
    | "secure"
    | "notApplicable"
    | "notSecure"
    | "error"
    | "conflict";
export type SecurityBaselinePolicySourceType = "deviceConfiguration" | "deviceIntent";
export type AdminConsentState = "notConfigured" | "granted" | "notGranted";
export type AppLogDecryptionAlgorithm = "aes256" | "unknownFutureValue";
export type AppLogUploadState = "pending" | "completed" | "failed" | "unknownFutureValue";
export type AzureAttestationSettingStatus = "notApplicable" | "enabled" | "disabled" | "unknownFutureValue";
export type ChassisType =
    | "unknown"
    | "desktop"
    | "laptop"
    | "worksWorkstation"
    | "enterpriseServer"
    | "phone"
    | "tablet"
    | "mobileOther"
    | "mobileUnknown";
export type ComanagementEligibleType =
    | "comanaged"
    | "eligible"
    | "eligibleButNotAzureAdJoined"
    | "needsOsUpdate"
    | "ineligible"
    | "scheduledForEnrollment"
    | "unknownFutureValue";
export type ComplianceState =
    | "unknown"
    | "compliant"
    | "noncompliant"
    | "conflict"
    | "error"
    | "inGracePeriod"
    | "configManager";
export type ConfigurationManagerActionDeliveryStatus =
    | "unknown"
    | "pendingDelivery"
    | "deliveredToConnectorService"
    | "failedToDeliverToConnectorService"
    | "deliveredToOnPremisesServer";
export type ConfigurationManagerActionType =
    | "refreshMachinePolicy"
    | "refreshUserPolicy"
    | "wakeUpClient"
    | "appEvaluation"
    | "quickScan"
    | "fullScan"
    | "windowsDefenderUpdateSignatures";
export type ConfigurationManagerClientState =
    | "unknown"
    | "installed"
    | "healthy"
    | "installFailed"
    | "updateFailed"
    | "communicationError";
export type DetectedAppPlatformType =
    | "unknown"
    | "windows"
    | "windowsMobile"
    | "windowsHolographic"
    | "ios"
    | "macOS"
    | "chromeOS"
    | "androidOSP"
    | "androidDeviceAdministrator"
    | "androidWorkProfile"
    | "androidDedicatedAndFullyManaged"
    | "unknownFutureValue";
export type DeviceCustomAttributeValueType = "integer" | "string" | "dateTime";
export type DeviceEnrollmentType =
    | "unknown"
    | "userEnrollment"
    | "deviceEnrollmentManager"
    | "appleBulkWithUser"
    | "appleBulkWithoutUser"
    | "windowsAzureADJoin"
    | "windowsBulkUserless"
    | "windowsAutoEnrollment"
    | "windowsBulkAzureDomainJoin"
    | "windowsCoManagement"
    | "windowsAzureADJoinUsingDeviceAuth"
    | "appleUserEnrollment"
    | "appleUserEnrollmentWithServiceAccount"
    | "azureAdJoinUsingAzureVmExtension"
    | "androidEnterpriseDedicatedDevice"
    | "androidEnterpriseFullyManaged"
    | "androidEnterpriseCorporateWorkProfile";
export type DeviceEventLevel =
    | "none"
    | "verbose"
    | "information"
    | "warning"
    | "error"
    | "critical"
    | "unknownFutureValue";
export type DeviceGuardLocalSystemAuthorityCredentialGuardState =
    | "running"
    | "rebootRequired"
    | "notLicensed"
    | "notConfigured"
    | "virtualizationBasedSecurityNotRunning";
export type DeviceGuardVirtualizationBasedSecurityHardwareRequirementState =
    | "meetHardwareRequirements"
    | "secureBootRequired"
    | "dmaProtectionRequired"
    | "hyperVNotSupportedForGuestVM"
    | "hyperVNotAvailable";
export type DeviceGuardVirtualizationBasedSecurityState =
    | "running"
    | "rebootRequired"
    | "require64BitArchitecture"
    | "notLicensed"
    | "notConfigured"
    | "doesNotMeetHardwareRequirements"
    | "other";
export type DeviceHealthScriptType = "deviceHealthScript" | "managedInstallerScript";
export type DeviceIdentityAttestationStatus =
    | "unknown"
    | "trusted"
    | "unTrusted"
    | "notSupported"
    | "incompleteData"
    | "unknownFutureValue";
export type DeviceLicensingStatus =
    | "unknown"
    | "licenseRefreshStarted"
    | "licenseRefreshPending"
    | "deviceIsNotAzureActiveDirectoryJoined"
    | "verifyingMicrosoftDeviceIdentity"
    | "deviceIdentityVerificationFailed"
    | "verifyingMicrosoftAccountIdentity"
    | "microsoftAccountVerificationFailed"
    | "acquiringDeviceLicense"
    | "refreshingDeviceLicense"
    | "deviceLicenseRefreshSucceed"
    | "deviceLicenseRefreshFailed"
    | "removingDeviceLicense"
    | "deviceLicenseRemoveSucceed"
    | "deviceLicenseRemoveFailed"
    | "unknownFutureValue";
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 DeviceManagementSubscriptions =
    | "none"
    | "intune"
    | "office365"
    | "intunePremium"
    | "intune_EDU"
    | "intune_SMB";
export type DeviceManagementSubscriptionState =
    | "pending"
    | "active"
    | "warning"
    | "disabled"
    | "deleted"
    | "blocked"
    | "lockedOut";
export type DeviceRegistrationState =
    | "notRegistered"
    | "registered"
    | "revoked"
    | "keyConflict"
    | "approvalPending"
    | "certificateReset"
    | "notRegisteredPendingEnrollment"
    | "unknown";
export type DeviceScopeAction = undefined;
export type DeviceScopeActionStatus = "failed" | "succeeded" | "unknownFutureValue";
export type DeviceScopeOperator = "none" | "equals" | "unknownFutureValue";
export type DeviceScopeParameter = "none" | "scopeTag" | "unknownFutureValue";
export type DeviceScopeStatus = "none" | "computing" | "insufficientData" | "completed" | "unknownFutureValue";
export type DiskType = "unknown" | "hdd" | "ssd" | "unknownFutureValue";
export type FirmwareProtectionType =
    | "notApplicable"
    | "systemGuardSecureLaunch"
    | "firmwareAttackSurfaceReduction"
    | "disabled"
    | "unknownFutureValue";
export type GlobalDeviceHealthScriptState = "notConfigured" | "pending" | "enabled";
export type HealthState = "unknown" | "healthy" | "unhealthy";
export type JoinType = "unknown" | "azureADJoined" | "azureADRegistered" | "hybridAzureADJoined";
export type LostModeState = "disabled" | "enabled";
export type ManagedDeviceArchitecture = "unknown" | "x86" | "x64" | "arm" | "arM64";
export type ManagedDeviceManagementFeatures = "none" | "microsoftManagedDesktop";
export type ManagedDevicePartnerReportedHealthState =
    | "unknown"
    | "activated"
    | "deactivated"
    | "secured"
    | "lowSeverity"
    | "mediumSeverity"
    | "highSeverity"
    | "unresponsive"
    | "compromised"
    | "misconfigured";
export type ManagedDeviceRemoteAction =
    | "retire"
    | "delete"
    | "fullScan"
    | "quickScan"
    | "signatureUpdate"
    | "wipe"
    | "customTextNotification"
    | "rebootNow"
    | "setDeviceName"
    | "syncDevice"
    | "deprovision"
    | "disable"
    | "reenable"
    | "moveDeviceToOrganizationalUnit"
    | "activateDeviceEsim"
    | "collectDiagnostics"
    | "initiateMobileDeviceManagementKeyRecovery"
    | "initiateOnDemandProactiveRemediation"
    | "unknownFutureValue";
export type ManagedInstallerStatus = "disabled" | "enabled";
export type ManagementState =
    | "managed"
    | "retirePending"
    | "retireFailed"
    | "wipePending"
    | "wipeFailed"
    | "unhealthy"
    | "deletePending"
    | "retireIssued"
    | "wipeIssued"
    | "wipeCanceled"
    | "retireCanceled"
    | "discovered";
export type ObliterationBehavior =
    | "default"
    | "doNotObliterate"
    | "obliterateWithWarning"
    | "always"
    | "unknownFutureValue";
export type OperatingSystemUpgradeEligibility = "upgraded" | "unknown" | "notCapable" | "capable" | "unknownFutureValue";
export type PrivilegeManagementElevationType =
    | "undetermined"
    | "unmanagedElevation"
    | "zeroTouchElevation"
    | "userConfirmedElevation"
    | "supportApprovedElevation"
    | "unknownFutureValue";
export type PrivilegeManagementEndUserType = "undetermined" | "azureAd" | "hybrid" | "local" | "unknownFutureValue";
export type PrivilegeManagementProcessType = "undefined" | "parent" | "child" | "unknownFutureValue";
export type RemediationState =
    | "unknown"
    | "skipped"
    | "success"
    | "remediationFailed"
    | "scriptError"
    | "unknownFutureValue";
export type RemoteAction =
    | "unknown"
    | "factoryReset"
    | "removeCompanyData"
    | "resetPasscode"
    | "remoteLock"
    | "enableLostMode"
    | "disableLostMode"
    | "locateDevice"
    | "rebootNow"
    | "recoverPasscode"
    | "cleanWindowsDevice"
    | "logoutSharedAppleDeviceActiveUser"
    | "quickScan"
    | "fullScan"
    | "windowsDefenderUpdateSignatures"
    | "factoryResetKeepEnrollmentData"
    | "updateDeviceAccount"
    | "automaticRedeployment"
    | "shutDown"
    | "rotateBitLockerKeys"
    | "rotateFileVaultKey"
    | "getFileVaultKey"
    | "setDeviceName"
    | "activateDeviceEsim"
    | "deprovision"
    | "disable"
    | "reenable"
    | "moveDeviceToOrganizationalUnit"
    | "initiateMobileDeviceManagementKeyRecovery"
    | "initiateOnDemandProactiveRemediation"
    | "rotateLocalAdminPassword"
    | "unknownFutureValue"
    | "launchRemoteHelp"
    | "revokeAppleVppLicenses"
    | "removeDeviceFirmwareConfigurationInterfaceManagement"
    | "pauseConfigurationRefresh";
export type SystemManagementModeLevel = "notApplicable" | "level1" | "level2" | "level3" | "unknownFutureValue";
export type UserExperienceAnalyticsAnomalyCorrelationGroupPrevalence = "high" | "medium" | "low" | "unknownFutureValue";
export type UserExperienceAnalyticsAnomalyDeviceFeatureType =
    | "manufacturer"
    | "model"
    | "osVersion"
    | "application"
    | "driver"
    | "unknownFutureValue";
export type UserExperienceAnalyticsAnomalySeverity =
    | "high"
    | "medium"
    | "low"
    | "informational"
    | "other"
    | "unknownFutureValue";
export type UserExperienceAnalyticsAnomalyState =
    | "new"
    | "active"
    | "disabled"
    | "removed"
    | "other"
    | "unknownFutureValue";
export type UserExperienceAnalyticsAnomalyType =
    | "device"
    | "application"
    | "stopError"
    | "driver"
    | "other"
    | "unknownFutureValue";
export type UserExperienceAnalyticsDeviceStatus = "anomalous" | "affected" | "atRisk" | "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 DeviceManagementDerivedCredentialIssuer = "intercede" | "entrustDatacard" | "purebred" | "xTec";
export type DeviceManagementDerivedCredentialNotificationType = "none" | "companyPortal" | "email";
export type DeviceManagementResourceAccessProfileIntent = "apply" | "remove";
export type AppleUserInitiatedEnrollmentType =
    | "unknown"
    | "device"
    | "user"
    | "accountDrivenUserEnrollment"
    | "webDeviceEnrollment"
    | "unknownFutureValue";
export type DepTokenType = "none" | "dep" | "appleSchoolManager";
export type DiscoverySource = "unknown" | "adminImport" | "deviceEnrollmentProgram";
export type EnrollmentState = "unknown" | "enrolled" | "pendingReset" | "failed" | "notContacted" | "blocked";
export type ImportedDeviceIdentityType = "unknown" | "imei" | "serialNumber";
export type ImportedWindowsAutopilotDeviceIdentityImportStatus =
    | "unknown"
    | "pending"
    | "partial"
    | "complete"
    | "error";
export type ImportedWindowsAutopilotDeviceIdentityUploadStatus = "noUpload" | "pending" | "complete" | "error";
export type ITunesPairingMode = "disallow" | "allow" | "requiresCertificate";
export type Platform = "unknown" | "ios" | "android" | "windows" | "windowsMobile" | "macOS";
export type WindowsAutopilotDeviceRemediationState =
    | "unknown"
    | "noRemediationRequired"
    | "automaticRemediationRequired"
    | "manualRemediationRequired"
    | "unknownFutureValue";
export type WindowsAutopilotDeviceType =
    | "windowsPc"
    | "surfaceHub2"
    | "holoLens"
    | "surfaceHub2S"
    | "virtualMachine"
    | "unknownFutureValue";
export type WindowsAutopilotProfileAssignmentDetailedStatus =
    | "none"
    | "hardwareRequirementsNotMet"
    | "surfaceHubProfileNotSupported"
    | "holoLensProfileNotSupported"
    | "windowsPcProfileNotSupported"
    | "surfaceHub2SProfileNotSupported"
    | "unknownFutureValue";
export type WindowsAutopilotProfileAssignmentStatus =
    | "unknown"
    | "assignedInSync"
    | "assignedOutOfSync"
    | "assignedUnkownSyncState"
    | "notAssigned"
    | "pending"
    | "failed";
export type WindowsAutopilotSyncStatus = "unknown" | "inProgress" | "completed" | "failed";
export type WindowsAutopilotUserlessEnrollmentStatus = "unknown" | "allowed" | "blocked" | "unknownFutureValue";
export type WindowsDeviceUsageType = "singleUser" | "shared";
export type WindowsUserType = "administrator" | "standard";
export type ElevationRequestState = "none" | "pending" | "approved" | "denied" | "expired" | "unknownFutureValue";
export type ZebraFotaConnectorState = "none" | "connected" | "disconnected" | "unknownFutureValue";
export type ZebraFotaDeploymentState =
    | "pendingCreation"
    | "createFailed"
    | "created"
    | "inProgress"
    | "completed"
    | "pendingCancel"
    | "canceled"
    | "unknownFutureValue";
export type ZebraFotaErrorCode =
    | "success"
    | "noDevicesFoundInSelectedAadGroups"
    | "noIntuneDevicesFoundInSelectedAadGroups"
    | "noZebraFotaEnrolledDevicesFoundForCurrentTenant"
    | "noZebraFotaEnrolledDevicesFoundInSelectedAadGroups"
    | "noZebraFotaDevicesFoundForSelectedDeviceModel"
    | "zebraFotaCreateDeploymentRequestFailure"
    | "unknownFutureValue";
export type ZebraFotaNetworkType = "any" | "wifi" | "cellular" | "wifiAndCellular" | "unknownFutureValue";
export type ZebraFotaScheduleMode = "installNow" | "scheduled" | "unknownFutureValue";
export type ZebraFotaUpdateType = "custom" | "latest" | "auto" | "unknownFutureValue";
export type GroupPolicyMigrationReadiness = "none" | "partial" | "complete" | "error" | "notApplicable";
export type GroupPolicySettingScope = "unknown" | "device" | "user";
export type GroupPolicySettingType =
    | "unknown"
    | "policy"
    | "account"
    | "securityOptions"
    | "userRightsAssignment"
    | "auditSetting"
    | "windowsFirewallSettings"
    | "appLockerRuleCollection"
    | "dataSourcesSettings"
    | "devicesSettings"
    | "driveMapSettings"
    | "environmentVariables"
    | "filesSettings"
    | "folderOptions"
    | "folders"
    | "iniFiles"
    | "internetOptions"
    | "localUsersAndGroups"
    | "networkOptions"
    | "networkShares"
    | "ntServices"
    | "powerOptions"
    | "printers"
    | "regionalOptionsSettings"
    | "registrySettings"
    | "scheduledTasks"
    | "shortcutSettings"
    | "startMenuSettings";
export type MdmSupportedState = "unknown" | "supported" | "unsupported" | "deprecated";
export type GroupPolicyConfigurationIngestionType = "unknown" | "custom" | "builtIn" | "mixed" | "unknownFutureValue";
export type GroupPolicyConfigurationType = "policy" | "preference";
export type GroupPolicyDefinitionClassType = "user" | "machine";
export type GroupPolicyOperationStatus = "unknown" | "inProgress" | "success" | "failed";
export type GroupPolicyOperationType =
    | "none"
    | "upload"
    | "uploadNewVersion"
    | "addLanguageFiles"
    | "removeLanguageFiles"
    | "updateLanguageFiles"
    | "remove";
export type GroupPolicyType = "admxBacked" | "admxIngested";
export type GroupPolicyUploadedDefinitionFileStatus =
    | "none"
    | "uploadInProgress"
    | "available"
    | "assigned"
    | "removalInProgress"
    | "uploadFailed"
    | "removalFailed";
export type IngestionSource = "unknown" | "custom" | "builtIn" | "unknownFutureValue";
export type AndroidManagedAppSafetyNetAppsVerificationType = "none" | "enabled";
export type AndroidManagedAppSafetyNetDeviceAttestationType =
    | "none"
    | "basicIntegrity"
    | "basicIntegrityAndDeviceCertification";
export type AndroidManagedAppSafetyNetEvaluationType = "basic" | "hardwareBacked";
export type AppManagementLevel =
    | "unspecified"
    | "unmanaged"
    | "mdm"
    | "androidEnterprise"
    | "androidEnterpriseDedicatedDevicesWithAzureAdSharedMode"
    | "androidOpenSourceProjectUserAssociated"
    | "androidOpenSourceProjectUserless"
    | "unknownFutureValue";
export type ManagedAppClipboardSharingLevel = "allApps" | "managedAppsWithPasteIn" | "managedApps" | "blocked";
export type ManagedAppDataEncryptionType =
    | "useDeviceSettings"
    | "afterDeviceRestart"
    | "whenDeviceLockedExceptOpenFiles"
    | "whenDeviceLocked";
export type ManagedAppDataIngestionLocation = "oneDriveForBusiness" | "sharePoint" | "camera" | "photoLibrary";
export type ManagedAppDataStorageLocation =
    | "oneDriveForBusiness"
    | "sharePoint"
    | "box"
    | "localStorage"
    | "photoLibrary";
export type ManagedAppDataTransferLevel = "allApps" | "managedApps" | "none";
export type ManagedAppDeviceThreatLevel = "notConfigured" | "secured" | "low" | "medium" | "high";
export type ManagedAppFlaggedReason =
    | "none"
    | "rootedDevice"
    | "androidBootloaderUnlocked"
    | "androidFactoryRomModified";
export type ManagedAppNotificationRestriction = "allow" | "blockOrganizationalData" | "block";
export type ManagedAppPhoneNumberRedirectLevel = "allApps" | "managedApps" | "customApp" | "blocked";
export type ManagedAppPinCharacterSet = "numeric" | "alphanumericAndSymbol";
export type ManagedAppRemediationAction = "block" | "wipe" | "warn";
export type ManagedBrowserType = "notConfigured" | "microsoftEdge";
export type MessagingRedirectAppType = "anyApp" | "anyManagedApp" | "specificApps";
export type MobileThreatDefensePartnerPriority =
    | "defenderOverThirdPartyPartner"
    | "thirdPartyPartnerOverDefender"
    | "unknownFutureValue";
export type TargetedManagedAppGroupType = "selectedPublicApps" | "allCoreMicrosoftApps" | "allMicrosoftApps" | "allApps";
export type WindowsInformationProtectionEnforcementLevel =
    | "noProtection"
    | "encryptAndAuditOnly"
    | "encryptAuditAndPrompt"
    | "encryptAuditAndBlock";
export type WindowsInformationProtectionPinCharacterRequirements = "notAllow" | "requireAtLeastOne" | "allow";
export type WindowsManagedAppClipboardSharingLevel = "anyDestinationAnySource" | "none";
export type WindowsManagedAppDataTransferLevel = "allApps" | "none";
export type MicrosoftTunnelLogCollectionStatus = "pending" | "completed" | "failed" | "unknownFutureValue";
export type MicrosoftTunnelServerHealthStatus =
    | "unknown"
    | "healthy"
    | "unhealthy"
    | "warning"
    | "offline"
    | "upgradeInProgress"
    | "upgradeFailed"
    | "unknownFutureValue";
export type NotificationTemplateBrandingOptions =
    | "none"
    | "includeCompanyLogo"
    | "includeCompanyName"
    | "includeContactInformation"
    | "includeCompanyPortalLink"
    | "includeDeviceDetails"
    | "unknownFutureValue";
export type DeviceManagementDomainJoinConnectorState = "active" | "error" | "inactive";
export type AppVulnerabilityTaskMitigationType = "unknown" | "update" | "uninstall" | "securityConfiguration";
export type DeviceAppManagementTaskCategory = "unknown" | "advancedThreatProtection";
export type DeviceAppManagementTaskPriority = "none" | "high" | "low";
export type DeviceAppManagementTaskStatus = "unknown" | "pending" | "active" | "completed" | "rejected";
export type EndpointSecurityConfigurationApplicablePlatform =
    | "unknown"
    | "macOS"
    | "windows10AndLater"
    | "windows10AndWindowsServer";
export type EndpointSecurityConfigurationProfileType =
    | "unknown"
    | "antivirus"
    | "windowsSecurity"
    | "bitLocker"
    | "fileVault"
    | "firewall"
    | "firewallRules"
    | "endpointDetectionAndResponse"
    | "deviceControl"
    | "appAndBrowserIsolation"
    | "exploitProtection"
    | "webProtection"
    | "applicationControl"
    | "attackSurfaceReductionRules"
    | "accountProtection";
export type EndpointSecurityConfigurationType =
    | "unknown"
    | "antivirus"
    | "diskEncryption"
    | "firewall"
    | "endpointDetectionAndResponse"
    | "attackSurfaceReduction"
    | "accountProtection";
export type RoleAssignmentScopeType = "resourceScope" | "allDevices" | "allLicensedUsers" | "allDevicesAndLicensedUsers";
export type RemoteAssistanceOnboardingStatus = "notOnboarded" | "onboarding" | "onboarded";
export type RemoteAssistanceState = "disabled" | "enabled";
export type DeviceManagementExportJobLocalizationType = "localizedValuesAsAdditionalColumn" | "replaceLocalizableValues";
export type DeviceManagementReportFileFormat = "csv" | "pdf" | "json" | "unknownFutureValue";
export type DeviceManagementReportStatus = "unknown" | "notStarted" | "inProgress" | "completed" | "failed";
export type EmbeddedSIMDeviceStateValue =
    | "notEvaluated"
    | "failed"
    | "installing"
    | "installed"
    | "deleting"
    | "error"
    | "deleted"
    | "removedByUser";
export type ConnectorHealthState = "healthy" | "warning" | "unhealthy" | "unknown";
export type ConnectorName =
    | "applePushNotificationServiceExpirationDateTime"
    | "vppTokenExpirationDateTime"
    | "vppTokenLastSyncDateTime"
    | "windowsAutopilotLastSyncDateTime"
    | "windowsStoreForBusinessLastSyncDateTime"
    | "jamfLastSyncDateTime"
    | "ndesConnectorLastConnectionDateTime"
    | "appleDepExpirationDateTime"
    | "appleDepLastSyncDateTime"
    | "onPremConnectorLastSyncDateTime"
    | "googlePlayAppLastSyncDateTime"
    | "googlePlayConnectorLastModifiedDateTime"
    | "windowsDefenderATPConnectorLastHeartbeatDateTime"
    | "mobileThreatDefenceConnectorLastHeartbeatDateTime"
    | "chromebookLastDirectorySyncDateTime"
    | "futureValue";
export type DeviceEnrollmentFailureReason =
    | "unknown"
    | "authentication"
    | "authorization"
    | "accountValidation"
    | "userValidation"
    | "deviceNotSupported"
    | "inMaintenance"
    | "badRequest"
    | "featureNotSupported"
    | "enrollmentRestrictionsEnforced"
    | "clientDisconnected"
    | "userAbandonment";
export type DeviceManagementAutopilotPolicyComplianceStatus =
    | "unknown"
    | "compliant"
    | "installed"
    | "notCompliant"
    | "notInstalled"
    | "error";
export type DeviceManagementAutopilotPolicyType = "unknown" | "application" | "appModel" | "configurationPolicy";
export type MobileAppActionType =
    | "unknown"
    | "installCommandSent"
    | "installed"
    | "uninstalled"
    | "userRequestedInstall";
export type MobileAppIntent =
    | "available"
    | "notAvailable"
    | "requiredInstall"
    | "requiredUninstall"
    | "requiredAndAvailableInstall"
    | "availableInstallWithoutEnrollment"
    | "exclude";
export type WindowsAutopilotDeploymentState =
    | "unknown"
    | "success"
    | "inProgress"
    | "failure"
    | "successWithTimeout"
    | "notAttempted"
    | "disabled"
    | "successOnRetry";
export type WindowsAutopilotEnrollmentType =
    | "unknown"
    | "azureADJoinedWithAutopilotProfile"
    | "offlineDomainJoined"
    | "azureADJoinedUsingDeviceAuthWithAutopilotProfile"
    | "azureADJoinedUsingDeviceAuthWithoutAutopilotProfile"
    | "azureADJoinedWithOfflineAutopilotProfile"
    | "azureADJoinedWithWhiteGlove"
    | "offlineDomainJoinedWithWhiteGlove"
    | "offlineDomainJoinedWithOfflineAutopilotProfile";
export type WindowsDefenderApplicationControlSupplementalPolicyStatuses =
    | "unknown"
    | "success"
    | "tokenError"
    | "notAuthorizedByToken"
    | "policyNotFound";
export type DriverApprovalAction = "approve" | "decline" | "suspend";
export type DriverApprovalStatus = "needsReview" | "declined" | "approved" | "suspended";
export type DriverCategory = "recommended" | "previouslyApproved" | "other";
export type DriverUpdateProfileApprovalType = "manual" | "automatic";
export type WindowsDriverUpdateProfileInventorySyncState = "pending" | "success" | "failure";
export type WindowsQualityUpdateClassification = "all" | "security" | "nonSecurity";
export type ApplicationType = "universal" | "desktop";
export type UserPfxIntendedPurpose = "unassigned" | "smimeEncryption" | "smimeSigning" | "vpn" | "wifi";
export type UserPfxPaddingScheme = "none" | "pkcs1" | "oaepSha1" | "oaepSha256" | "oaepSha384" | "oaepSha512";
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 DataCollectionStatus = "online" | "offline" | "unknownFutureValue";
export type PermissionsModificationCapability =
    | "enabled"
    | "notConfigured"
    | "noRecentDataCollected"
    | "unknownFutureValue";
export type AuthorizationSystemActionSeverity = "normal" | "high" | "unknownFutureValue";
export type AuthorizationSystemActionType = "delete" | "read" | "unknownFutureValue";
export type AwsPolicyType = "system" | "custom" | "unknownFutureValue";
export type AwsRoleTrustEntityType = "none" | "service" | "sso" | "crossAccount" | "webIdentity" | "unknownFutureValue";
export type AwsRoleType = "system" | "custom" | "unknownFutureValue";
export type AzureRoleDefinitionType = "system" | "custom" | "unknownFutureValue";
export type GcpRoleType = "system" | "custom" | "unknownFutureValue";
export type AuthorizationSystemType = "azure" | "gcp" | "aws" | "unknownFutureValue";
export type AwsAccessType = "public" | "restricted" | "crossAccount" | "private" | "unknownFutureValue";
export type AwsSecretInformationWebServices =
    | "secretsManager"
    | "certificateAuthority"
    | "cloudHsm"
    | "certificateManager"
    | "unknownFutureValue";
export type AwsSecurityToolWebServices =
    | "macie"
    | "wafShield"
    | "cloudTrail"
    | "inspector"
    | "securityHub"
    | "detective"
    | "guardDuty"
    | "unknownFutureValue";
export type AzureAccessType = "public" | "private" | "unknownFutureValue";
export type AzureEncryption = "microsoftStorage" | "microsoftKeyVault" | "customer" | "unknownFutureValue";
export type ExternalSystemAccessMethods = "direct" | "roleChaining" | "unknownFutureValue";
export type GcpAccessType = "public" | "subjectToObjectAcls" | "private" | "unknownFutureValue";
export type GcpEncryption = "google" | "customer" | "unknownFutureValue";
export type IamStatus = "active" | "inactive" | "disabled" | "unknownFutureValue";
export type AwsStatementEffect = "allow" | "deny" | "unknownFutureValue";
export type PermissionsDefinitionIdentityType =
    | "user"
    | "role"
    | "application"
    | "managedIdentity"
    | "serviceAccount"
    | "unknownFutureValue";
export type PermissionsRequestOccurrenceStatus =
    | "grantingFailed"
    | "granted"
    | "granting"
    | "revoked"
    | "revoking"
    | "revokingFailed"
    | "unknownFutureValue";
export type StatusDetail = "submitted" | "approved" | "completed" | "canceled" | "rejected" | "unknownFutureValue";
export type BucketAggregationSortProperty = "count" | "keyAsString" | "keyAsNumber" | "unknownFutureValue";
export type SearchAlterationType = "suggestion" | "modification" | "unknownFutureValue";
export type SearchContent = "sharedContent" | "privateContent" | "unknownFutureValue";
export type Priority = "None" | "High" | "Low";
export type PlannerContainerType = "group" | "unknownFutureValue" | "roster" | "project" | "driveItem" | "user";
export type PlannerContextState = "active" | "delinked" | "unknownFutureValue";
export type PlannerCreationSourceKind = "none" | "external" | "publication" | "unknownFutureValue";
export type PlannerExternalTaskSourceDisplayType = "none" | "default" | "unknownFutureValue";
export type PlannerPlanAccessLevel = "readAccess" | "readWriteAccess" | "fullAccess" | "unknownFutureValue";
export type PlannerPlanContextType =
    | "teamsTab"
    | "sharePointPage"
    | "meetingNotes"
    | "other"
    | "unknownFutureValue"
    | "loopPage"
    | "project";
export type PlannerPreviewType = "automatic" | "noPreview" | "checklist" | "description" | "reference";
export type PlannerTaskCompletionRequirements = "none" | "checklistCompletion" | "unknownFutureValue";
export type PlannerTaskTargetKind = "group" | "unknownFutureValue";
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 AllowedAudiences =
    | "me"
    | "family"
    | "contacts"
    | "groupMembers"
    | "organization"
    | "federatedOrganizations"
    | "everyone"
    | "unknownFutureValue";
export type LanguageProficiencyLevel =
    | "elementary"
    | "conversational"
    | "limitedWorking"
    | "professionalWorking"
    | "fullProfessional"
    | "nativeOrBilingual"
    | "unknownFutureValue";
export type PersonAnnualEventType = "birthday" | "wedding" | "work" | "other" | "unknownFutureValue";
export type PersonRelationship =
    | "manager"
    | "colleague"
    | "directReport"
    | "dotLineReport"
    | "assistant"
    | "dotLineManager"
    | "alternateContact"
    | "friend"
    | "spouse"
    | "sibling"
    | "child"
    | "parent"
    | "sponsor"
    | "emergencyContact"
    | "other"
    | "unknownFutureValue";
export type SkillProficiencyLevel =
    | "elementary"
    | "limitedWorking"
    | "generalProfessional"
    | "advancedProfessional"
    | "expert"
    | "unknownFutureValue";
export type TranslationBehavior = "Ask" | "Yes" | "No";
export type AlertSeverity = "unknown" | "informational" | "low" | "medium" | "high" | "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 ApprovalState = "pending" | "approved" | "denied" | "aborted" | "canceled";
export type RoleSummaryStatus = "ok" | "bad";
export type SetupStatus =
    | "unknown"
    | "notRegisteredYet"
    | "registeredSetupNotStarted"
    | "registeredSetupInProgress"
    | "registrationAndSetupCompleted"
    | "registrationFailed"
    | "registrationTimedOut"
    | "disabled";
export type PrintColorConfiguration = "blackAndWhite" | "grayscale" | "color" | "auto";
export type PrintColorMode = "blackAndWhite" | "grayscale" | "color" | "auto" | "unknownFutureValue";
export type PrintDuplexConfiguration = "twoSidedLongEdge" | "twoSidedShortEdge" | "oneSided";
export type PrintDuplexMode = "flipOnLongEdge" | "flipOnShortEdge" | "oneSided" | "unknownFutureValue";
export type PrinterFeedDirection = "longEdgeFirst" | "shortEdgeFirst";
export type PrinterFeedOrientation = "longEdgeFirst" | "shortEdgeFirst";
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 PrinterProcessingStateReason =
    | "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";
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 PrintMediaType =
    | "stationery"
    | "transparency"
    | "envelope"
    | "envelopePlain"
    | "continuous"
    | "screen"
    | "screenPaged"
    | "continuousLong"
    | "continuousShort"
    | "envelopeWindow"
    | "multiPartForm"
    | "multiLayer"
    | "labels";
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 PrintPresentationDirection =
    | "clockwiseFromTopLeft"
    | "counterClockwiseFromTopLeft"
    | "counterClockwiseFromTopRight"
    | "clockwiseFromTopRight"
    | "counterClockwiseFromBottomLeft"
    | "clockwiseFromBottomLeft"
    | "counterClockwiseFromBottomRight"
    | "clockwiseFromBottomRight";
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"
    | "oAuthConsentGrant";
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 AccountStatus = "unknown" | "staged" | "active" | "suspended" | "deleted" | "unknownFutureValue";
export type AlertFeedback = "unknown" | "truePositive" | "falsePositive" | "benignPositive" | "unknownFutureValue";
export type AlertStatus = "unknown" | "newAlert" | "inProgress" | "resolved" | "dismissed" | "unknownFutureValue";
export type ApplicationPermissionsRequired =
    | "unknown"
    | "anonymous"
    | "guest"
    | "user"
    | "administrator"
    | "system"
    | "unknownFutureValue";
export type ConnectionDirection = "unknown" | "inbound" | "outbound" | "unknownFutureValue";
export type ConnectionStatus = "unknown" | "attempted" | "succeeded" | "blocked" | "failed" | "unknownFutureValue";
export type DiamondModel = "unknown" | "adversary" | "capability" | "infrastructure" | "victim" | "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 TiAction = "unknown" | "allow" | "block" | "alert" | "unknownFutureValue";
export type TlpLevel = "unknown" | "white" | "green" | "amber" | "red" | "unknownFutureValue";
export type UserAccountSecurityType = "unknown" | "standard" | "power" | "administrator" | "unknownFutureValue";
export type AccessLevel = "everyone" | "invited" | "locked" | "sameEnterprise" | "sameEnterpriseAndFederated";
export type AutoAdmittedUsersType = "everyoneInCompany" | "everyone";
export type BroadcastMeetingAudience = "roleIsAttendee" | "organization" | "everyone" | "unknownFutureValue";
export type CallDirection = "incoming" | "outgoing";
export type CallDisposition = "default" | "simultaneousRing" | "forward";
export type CallEventType = "callStarted" | "callEnded" | "unknownFutureValue";
export type CallState =
    | "incoming"
    | "establishing"
    | "ringing"
    | "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 MeetingCapabilities = "questionAndAnswer" | "unknownFutureValue";
export type MeetingChatHistoryDefaultMode = "none" | "all" | "unknownFutureValue";
export type MeetingRegistrantStatus = "registered" | "canceled" | "processing" | "unknownFutureValue";
export type Modality = "unknown" | "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 PlayPromptCompletionReason =
    | "unknown"
    | "completedSuccessfully"
    | "mediaOperationCanceled"
    | "unknownFutureValue";
export type RecordCompletionReason =
    | "operationCanceled"
    | "stopToneDetected"
    | "maxRecordDurationReached"
    | "initialSilenceTimeout"
    | "maxSilenceTimeout"
    | "playPromptFailed"
    | "playBeepFailed"
    | "mediaReceiveTimeout"
    | "unspecifiedError";
export type RecordingStatus = "unknown" | "notRecording" | "recording" | "failed" | "unknownFutureValue";
export type RejectReason = "none" | "busy" | "forbidden" | "unknownFutureValue";
export type RoutingMode = "oneToOne" | "multicast";
export type RoutingPolicy =
    | "none"
    | "noMissedCall"
    | "disableForwardingExceptPhone"
    | "disableForwarding"
    | "preferSkypeForBusiness"
    | "unknownFutureValue";
export type RoutingType = "forwarded" | "lookup" | "selfFork" | "unknownFutureValue";
export type ScreenSharingRole = "viewer" | "sharer";
export type SendDtmfCompletionReason =
    | "unknown"
    | "completedSuccessfully"
    | "mediaOperationCanceled"
    | "unknownFutureValue";
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 VirtualEventRegistrationPredefinedQuestionLabel =
    | "street"
    | "city"
    | "state"
    | "postalCode"
    | "countryOrRegion"
    | "industry"
    | "jobTitle"
    | "organization"
    | "unknownFutureValue";
export type VirtualEventRegistrationQuestionAnswerInputType =
    | "text"
    | "multilineText"
    | "singleChoice"
    | "multiChoice"
    | "boolean"
    | "unknownFutureValue";
export type VirtualEventStatus = "draft" | "published" | "canceled" | "unknownFutureValue";
export type AttestationLevel = "attested" | "notAttested" | "unknownFutureValue";
export type AuthenticationMethodKeyStrength = "normal" | "weak" | "unknown";
export type AuthenticationMethodPlatform =
    | "unknown"
    | "windows"
    | "macOS"
    | "iOS"
    | "android"
    | "linux"
    | "unknownFutureValue";
export type AuthenticationMethodSignInState =
    | "notSupported"
    | "notAllowedByPolicy"
    | "notEnabled"
    | "phoneNumberNotUnique"
    | "ready"
    | "notConfigured"
    | "unknownFutureValue";
export type AuthenticationPhoneType = "mobile" | "alternateMobile" | "office" | "unknownFutureValue";
export type MicrosoftAuthenticatorAuthenticationMethodClientAppName =
    | "microsoftAuthenticator"
    | "outlookMobile"
    | "unknownFutureValue";
export type UserDefaultAuthenticationMethodType =
    | "push"
    | "oath"
    | "voiceMobile"
    | "voiceAlternateMobile"
    | "voiceOffice"
    | "sms"
    | "unknownFutureValue";
export type LifecycleEventType = "missed" | "subscriptionRemoved" | "reauthorizationRequired";
export type BinaryOperator = "or" | "and";
export type AccessType = "grant" | "deny";
export type AclType = "user" | "group" | "everyone" | "everyoneExceptGuests" | "externalGroup" | "unknownFutureValue";
export type ConnectionOperationStatus = "unspecified" | "inprogress" | "completed" | "failed";
export type ConnectionState = "draft" | "ready" | "obsolete" | "limitExceeded" | "unknownFutureValue";
export type ExternalItemContentType = "text" | "html" | "unknownFutureValue";
export type IdentitySourceType = "azureActiveDirectory" | "external";
export type Label =
    | "title"
    | "url"
    | "createdBy"
    | "lastModifiedBy"
    | "authors"
    | "createdDateTime"
    | "lastModifiedDateTime"
    | "fileName"
    | "fileExtension";
export type PropertyType =
    | "string"
    | "int64"
    | "double"
    | "dateTime"
    | "boolean"
    | "stringCollection"
    | "int64Collection"
    | "doubleCollection"
    | "dateTimeCollection";
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";
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 ReplyRestriction = "everyone" | "authorAndModerators" | "unknownFutureValue";
export type TeamsAppDistributionMethod = "store" | "organization" | "sideloaded" | "unknownFutureValue";
export type TeamsAppInstallationScopes = "team" | "groupChat" | "personal" | "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"
    | "createChat";
export type TeamSpecialization =
    | "none"
    | "educationStandard"
    | "educationClass"
    | "educationProfessionalLearningCommunity"
    | "educationStaff"
    | "healthcareStandard"
    | "healthcareCareCoordination"
    | "unknownFutureValue";
export type TeamTemplateAudience = "organization" | "user" | "public" | "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 TeamworkConnectionStatus = "unknown" | "connected" | "disconnected" | "unknownFutureValue";
export type TeamworkConversationIdentityType = "team" | "channel" | "chat" | "unknownFutureValue";
export type TeamworkDeviceActivityState = "unknown" | "busy" | "idle" | "unavailable" | "unknownFutureValue";
export type TeamworkDeviceHealthStatus =
    | "unknown"
    | "offline"
    | "critical"
    | "nonUrgent"
    | "healthy"
    | "unknownFutureValue";
export type TeamworkDeviceOperationType =
    | "deviceRestart"
    | "configUpdate"
    | "deviceDiagnostics"
    | "softwareUpdate"
    | "deviceManagementAgentConfigUpdate"
    | "remoteLogin"
    | "remoteLogout"
    | "unknownFutureValue";
export type TeamworkDeviceType =
    | "unknown"
    | "ipPhone"
    | "teamsRoom"
    | "surfaceHub"
    | "collaborationBar"
    | "teamsDisplay"
    | "touchConsole"
    | "lowCostPhone"
    | "teamsPanel"
    | "sip"
    | "unknownFutureValue";
export type TeamworkSoftwareFreshness = "unknown" | "latest" | "updateAvailable" | "unknownFutureValue";
export type TeamworkSoftwareType =
    | "adminAgent"
    | "operatingSystem"
    | "teamsClient"
    | "firmware"
    | "partnerAgent"
    | "companyPortal"
    | "unknownFutureValue";
export type TeamworkSupportedClient =
    | "unknown"
    | "skypeDefaultAndTeams"
    | "teamsDefaultAndSkype"
    | "skypeOnly"
    | "teamsOnly"
    | "unknownFutureValue";
export type TeamworkTagType = "standard" | "unknownFutureValue";
export type TeamworkUserIdentityType =
    | "aadUser"
    | "onPremiseAadUser"
    | "anonymousGuest"
    | "federatedUser"
    | "personalMicrosoftAccountUser"
    | "skypeUser"
    | "phoneUser"
    | "unknownFutureValue"
    | "emailUser"
    | "azureCommunicationServicesUser";
export type UserNewMessageRestriction = "everyone" | "everyoneExceptGuests" | "moderators" | "unknownFutureValue";
export type ConfirmedBy = "none" | "user" | "manager" | "unknownFutureValue";
export type EligibilityFilteringEnabledEntities =
    | "none"
    | "swapRequest"
    | "offerShiftRequest"
    | "unknownFutureValue"
    | "timeOffReason";
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 TimeCardState = "clockedIn" | "onBreak" | "clockedOut" | "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"
    | "timeCard"
    | "timeOffReason"
    | "timeOff"
    | "timeOffRequest";
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 ThreatAssessmentRequestPivotProperty = "threatCategory" | "mailDestinationRoutingReason";
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 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 {
    // Specifies settings for an application that implements a web API.
    api?: NullableOption<ApiApplication>;
    /**
     * The unique identifier for the application that is assigned by Microsoft Entra ID. Not nullable. Read-only. Alternate
     * key. Supports $filter (eq).
     */
    appId?: 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[];
    /**
     * The collection of authentication behaviors set for the application. Authentication behaviors are unset by default and
     * must be explicitly enabled (or disabled). Returned only on $select. For more information about authentication
     * behaviors, see Manage application authenticationBehaviors to avoid unverified use of email claims for user
     * identification or authorization.
     */
    authenticationBehaviors?: NullableOption<AuthenticationBehaviors>;
    // 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>;
    /**
     * The default redirect URI. If specified and there is no explicit redirect URI in the sign-in request for SAML and OIDC
     * flows, Microsoft Entra ID sends the token to this redirect URI. Microsoft Entra ID also sends the token to this default
     * URI in SAML IdP-initiated single sign-on. The value must match one of the configured redirect URIs for the application.
     */
    defaultRedirectUri?: NullableOption<string>;
    /**
     * Free text field to provide a description of the application object to end users. The maximum allowed size is 1024
     * characters. Returned by default. 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 string values: None, SecurityGroup (for security groups and Microsoft Entra roles),
     * All (this gets all 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 it'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
     * information, 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 the application 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>;
    /**
     * 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. 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>;
    // The unique identifier that can be assigned to an application as an alternative identifier. Immutable. Read-only.
    uniqueName?: 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>;
    // Specifies settings for apps running Microsoft Windows and published in the Microsoft Store or Xbox games store.
    windows?: NullableOption<WindowsApplication>;
    /**
     * Represents the set of properties required for configuring Application Proxy for this application. Configuring these
     * properties allows you to publish your on-premises application for secure remote access.
     */
    onPremisesPublishing?: NullableOption<OnPremisesPublishing>;
    // 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[]>;
    // The tokenLifetimePolicies assigned to this application. Supports $expand.
    tokenLifetimePolicies?: NullableOption<TokenLifetimePolicy[]>;
    // The connectorGroup the application is using with Microsoft Entra application proxy. Nullable.
    connectorGroup?: NullableOption<ConnectorGroup>;
    // 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?: string;
    // Display name for this policy. Required.
    displayName?: 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 application and service principals to which a 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.
     */
    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 may 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 un-validated, user-provided description of the federated identity credential. It has a limit of 600 characters.
     * Optional.
     */
    description?: NullableOption<string>;
    /**
     * The URL of the external identity provider and must match the issuer claim of the external token being exchanged. The
     * combination of the values of issuer and subject must be unique on the app. It has a limit of 600 characters. Required.
     */
    issuer?: string;
    /**
     * is the unique identifier for the federated identity credential, which has a limit of 120 characters and must be URL
     * friendly. It is immutable once 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, as 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 on 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 ConnectorGroup extends Entity {
    // Indicates the type of hybrid agent. This pre-set by the system. Possible values are: applicationProxy. Read-only.
    connectorGroupType?: ConnectorGroupType;
    /**
     * Indicates if the connectorGroup is the default connectorGroup. Only a single connector group can be the default
     * connectorGroup and this is pre-set by the system. Read-only.
     */
    isDefault?: boolean;
    // The name associated with the connectorGroup.
    name?: string;
    /**
     * The region the connectorGroup is assigned to and will optimize traffic for. This region can only be set if no
     * connectors or applications are assigned to the connectorGroup. The possible values are: nam (for North America), eur
     * (for Europe), aus (for Australia), asia (for Asia), ind (for India), and unknownFutureValue.
     */
    region?: NullableOption<ConnectorGroupRegion>;
    applications?: NullableOption<Application[]>;
    members?: NullableOption<Connector[]>;
}
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[]>;
    // Pre-configured 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[]>;
}
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>;
    /**
     * App ID of the app used to create the group. Can be null for some groups. Returned by default. Read-only. Supports
     * $filter (eq, ne, not, in, startsWith).
     */
    createdByAppId?: NullableOption<string>;
    /**
     * Timestamp of when the group was created. The value can't 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. 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. Required. 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). Supports $filter (eq).
     */
    hasMembersWithLicenseErrors?: NullableOption<boolean>;
    /**
     * Identifies the info segments assigned to the group. Returned by default. Supports $filter (eq, not, ge, le,
     * startsWith).
     */
    infoCatalogs?: string[];
    /**
     * 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 can't 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 whether the group is a member of a restricted management administrative unit, in which case it requires a
     * role scoped to the restricted administrative unit to manage. The default value is false. Read-only. To manage a group
     * member of a restricted administrative unit, the calling app must be assigned the Directory.Write.Restricted permission.
     * For delegated scenarios, the administrators must also be explicitly assigned supported roles at the restricted
     * administrative unit scope.
     */
    isManagementRestricted?: NullableOption<boolean>;
    /**
     * Indicates the status of the group license assignment to all group members. 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, and eq on
     * null values).
     */
    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. Returned by default. Supports $filter (eq, ne, not, ge, le, in, startsWith).
     */
    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>;
    /**
     * Contains the on-premises domain FQDN, also called dnsDomainName 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. Read-only.
     */
    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. 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>;
    /**
     * Contains the on-premises netBios 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. Read-only.
     */
    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>;
    organizationId?: NullableOption<string>;
    /**
     * 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 and Create a Microsoft 365 group with a specific PDL. 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 for 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 the group behaviors that can be set for a Microsoft 365 group during creation. This can be set only as part
     * of creation (POST). Possible values are AllowOnlyMembersToPost, HideGroupInOutlook, SubscribeNewGroupMembers,
     * WelcomeEmailDisabled. For more information, see Set Microsoft 365 group behaviors and provisioning options.
     */
    resourceBehaviorOptions?: string[];
    /**
     * Specifies the group resources that are provisioned as part of Microsoft 365 group creation that isn't normally part of
     * default group creation. The possible value is Team. For more information, see Set Microsoft 365 group behaviors and
     * provisioning options. Returned by default. Supports $filter (eq, not, startsWith.
     */
    resourceProvisioningOptions?: 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>;
    /**
     * Errors published by a federated service describing a non-transient, service-specific error regarding the properties or
     * link from a group object.
     */
    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>;
    uniqueName?: 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 isn't specified
     * during group creation on Microsoft Graph, a security group is created as Private by default, and 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>;
    /**
     * Specifies whether or not a group is configured to write back group object properties to on-premises Active Directory.
     * These properties are used when group writeback is configured in the Microsoft Entra Connect sync client.
     */
    writebackConfiguration?: NullableOption<GroupWritebackConfiguration>;
    accessType?: NullableOption<GroupAccessType>;
    /**
     * 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 are auto-subscribed to receive email notifications. You can set this
     * property in a PATCH request for the group; don't 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 isn't displayed in certain parts of the Outlook user interface: in the Address Book, in address lists
     * for selecting message recipients, and in the Browse Groups dialog for searching groups; false otherwise. The 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 isn't displayed in Outlook clients, such as Outlook for Windows and Outlook on the web, false
     * otherwise. The default value is false. Returned only on $select. Supported only on the Get group API (GET
     * /groups/{ID}).
     */
    hideFromOutlookClients?: NullableOption<boolean>;
    isFavorite?: 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 delivered one or more new posts since the signed-in user's last visit to the group. This
     * property is the same as unseenCount. Returned only on $select.
     */
    unseenConversationsCount?: NullableOption<number>;
    /**
     * Count of conversations that have received new posts since the signed-in user last visited the group. This property is
     * the same as unseenConversationsCount.Returned only on $select. Supported only on the Get group API (GET /groups/{ID}).
     */
    unseenCount?: NullableOption<number>;
    /**
     * Count of new posts that have been delivered to the group's conversations since the signed-in user's last visit to the
     * group. Returned only on $select.
     */
    unseenMessagesCount?: NullableOption<number>;
    /**
     * Describes the processing status for rules-based dynamic groups. The property is null for non-rule-based dynamic groups
     * or if the dynamic group processing has been paused. Returned only on $select. Supported only on the Get group API (GET
     * /groups/{ID}). Read-only.
     */
    membershipRuleProcessingStatus?: NullableOption<MembershipRuleProcessingStatus>;
    /**
     * 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 isn't set if the user is an administrator. Read-only.
    createdOnBehalfOf?: NullableOption<DirectoryObject>;
    // Endpoints for the group. Read-only. Nullable.
    endpoints?: NullableOption<Endpoint[]>;
    /**
     * Groups and administrative units that this group is a member of. HTTP Methods: GET (supported for all groups).
     * Read-only. Nullable. Supports $expand.
     */
    memberOf?: NullableOption<DirectoryObject[]>;
    /**
     * Direct group members, 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 who can be users or service principals. Nullable. If this property isn't 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[]>;
    // The permissions granted for a group to a specific application. Supports $expand.
    permissionGrants?: NullableOption<ResourceSpecificPermissionGrant[]>;
    // Settings that can govern this group's behavior, like whether members can invite guest users to the group. Nullable.
    settings?: NullableOption<DirectorySetting[]>;
    // The groups 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 can 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 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[]>;
    // Selective Planner services available to the group. Read-only. Nullable.
    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 AppRoleAssignment extends Entity {
    /**
     * 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.
     */
    creationTimestamp?: 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 Endpoint extends DirectoryObject {
    /**
     * Describes the capability that is associated with this resource. (for example, Messages, Conversations, etc.) Not
     * nullable. Read-only.
     */
    capability?: string;
    // Application id of the publishing underlying service. Not nullable. Read-only.
    providerId?: NullableOption<string>;
    // Name of the publishing underlying service. Read-only.
    providerName?: NullableOption<string>;
    /**
     * For Microsoft 365 groups, this is set to a well-known name for the resource (for example, Yammer.FeedURL etc.). Not
     * nullable. Read-only.
     */
    providerResourceId?: NullableOption<string>;
    // URL of the published resource. Not nullable. Read-only.
    uri?: 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 DirectorySetting extends Entity {
    // Display name of this group of settings, which comes from the associated template. Read-only.
    displayName?: NullableOption<string>;
    // Unique identifier for the template used to create this group of settings. Read-only.
    templateId?: NullableOption<string>;
    /**
     * Collection of name-value pairs corresponding to the name and defaultValue properties in the referenced
     * directorySettingTemplates object.
     */
    values?: SettingValue[];
}
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[]>;
    /**
     * The calendarGroup in which to create the calendar. If the user has never explicitly set a group for the calendar, this
     * property is null.
     */
    calendarGroupId?: NullableOption<string>;
    /**
     * 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, through an
     * Outlook client or the corresponding calendarPermission resource. Read-only.
     */
    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. Read-only.
     */
    canShare?: NullableOption<boolean>;
    /**
     * true if the user can read calendar items that have been marked private, false otherwise. This property is set through
     * an Outlook client or the corresponding calendarPermission resource. Read-only.
     */
    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.
     */
    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>;
    /**
     * true if the user has shared the calendar with other users, false otherwise. Since only the user who created the
     * calendar can share it, isShared and isSharedWithMe cannot be true for the same user. This property is set when sharing
     * is initiated in an Outlook client, and can be reset when the sharing is cancelled through the client or the
     * corresponding calendarPermission resource. Read-only.
     */
    isShared?: NullableOption<boolean>;
    /**
     * true if the user has been shared this calendar, false otherwise. This property is always false for a calendar owner.
     * This property is set when sharing is initiated in an Outlook client, and can be reset when the sharing is cancelled
     * through the client or the corresponding calendarPermission resource. Read-only.
     */
    isSharedWithMe?: 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. Read-only.
     */
    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 OutlookItem extends Entity {
    categories?: NullableOption<string[]>;
    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>;
    /**
     * Contains occurrenceId property values of cancelled instances in a recurring series, if the event is the series master.
     * Instances in a recurring series that are cancelled are called cancelledOccurences.Returned only on $select in a Get
     * operation which specifies the id of a series master event (that is, the seriesMasterId property value).
     */
    cancelledOccurrences?: 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>;
    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[]>;
    occurrenceId?: NullableOption<string>;
    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>;
    uid?: NullableOption<string>;
    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>;
    exceptionOccurrences?: NullableOption<Event[]>;
    // 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 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. Supports $filter (eq, ne, le, ge).
     */
    lastDeliveredDateTime?: string;
    // A short summary from the body of the latest post in this conversation.
    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 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;
    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>;
    createdByUser?: NullableOption<User>;
    lastModifiedByUser?: NullableOption<User>;
}
export interface Drive extends BaseItem {
    /**
     * Describes the type of drive represented by this resource. OneDrive personal drives return personal. OneDrive for
     * Business returns business. SharePoint document libraries 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>;
    // The list of recent activities that took place under this drive.
    activities?: NullableOption<ItemActivityOLD[]>;
    // 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 {
    deleted?: NullableOption<Deleted>;
    // The full title for the site. Read-only.
    displayName?: NullableOption<string>;
    isPersonalSite?: NullableOption<boolean>;
    // If present, indicates that this is the root site in the site collection. Read-only.
    root?: NullableOption<Root>;
    // The settings on this site. Read-only.
    settings?: NullableOption<SiteSettings>;
    // 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>;
    informationProtection?: NullableOption<InformationProtection>;
    // 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[]>;
    /**
     * The collection of column definitions available in the site that are referenced from the sites in the parent hierarchy
     * of the current site.
     */
    externalColumns?: NullableOption<ColumnDefinition[]>;
    // Used to address any item contained in this site. This collection cannot be enumerated.
    items?: NullableOption<BaseItem[]>;
    // The collection of lists under this site.
    lists?: NullableOption<List[]>;
    // The collection of long running operations for the site.
    operations?: NullableOption<RichLongRunningOperation[]>;
    // The collection of pages in the baseSitePages list in this site.
    pages?: NullableOption<BaseSitePage[]>;
    // The permissions associated with the site. Nullable.
    permissions?: NullableOption<Permission[]>;
    // A container for a collection of recycleBinItem resources in this site.
    recycleBin?: NullableOption<RecycleBin>;
    // The collection of the sub-sites under this site.
    sites?: NullableOption<Site[]>;
    // The termStore under this site.
    termStore?: NullableOption<TermStore.Store>;
    onenote?: NullableOption<Onenote>;
}
// tslint:disable-next-line: no-empty-interface
export interface Extension extends Entity {}
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[]>;
}
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 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>;
    // Settings to configure team discoverability by others.
    discoverySettings?: NullableOption<TeamDiscoverySettings>;
    // 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>;
    /**
     * If set to true, the team is currently in the owner-only team membership state and not accessible by other team members,
     * such as students.
     */
    isMembershipLimitedToOwners?: 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[]>;
    /**
     * The list of this team's owners. Currently, when creating a team using application permissions, exactly one owner must
     * be specified. When using user delegated permissions, no owner can be specified (the current user is the owner). Owner
     * must be specified as an object ID (GUID), not a UPN.
     */
    owners?: NullableOption<User[]>;
    // A collection of permissions granted to apps to access the team.
    permissionGrants?: NullableOption<ResourceSpecificPermissionGrant[]>;
    // The team photo.
    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>;
    // Generic representation of a team template definition for a team with a specific structure and configuration.
    templateDefinition?: NullableOption<TeamTemplateDefinition>;
    // The schedule of shifts for this team.
    schedule?: NullableOption<Schedule>;
}
// 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>;
    permissionsAnalytics?: PermissionsAnalyticsAggregation;
    permissionsManagement?: NullableOption<PermissionsManagement>;
    privilegedAccess?: NullableOption<PrivilegedAccessRoot>;
    roleManagementAlerts?: NullableOption<RoleManagementAlert>;
}
export interface AccessReviewSet extends Entity {
    // Represents a Microsoft Entra access review decision on an instance of a review.
    decisions?: NullableOption<AccessReviewInstanceDecisionItem[]>;
    // 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[]>;
    // Resource that enables administrators to manage directory-level access review policies in their tenant.
    policy?: NullableOption<AccessReviewPolicy>;
}
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.
    agreements?: NullableOption<Agreement[]>;
}
export interface EntitlementManagement extends Entity {
    accessPackageAssignmentApprovals?: NullableOption<Approval[]>;
    /**
     * Represents the policy that governs which subjects can request or be assigned an access package via an access package
     * assignment.
     */
    accessPackageAssignmentPolicies?: NullableOption<AccessPackageAssignmentPolicy[]>;
    // Represents access package assignment requests created by or on behalf of a user.
    accessPackageAssignmentRequests?: NullableOption<AccessPackageAssignmentRequest[]>;
    // Represents the resource-specific role which a subject has been assigned through an access package assignment.
    accessPackageAssignmentResourceRoles?: NullableOption<AccessPackageAssignmentResourceRole[]>;
    // The assignment of an access package to a subject for a period of time.
    accessPackageAssignments?: NullableOption<AccessPackageAssignment[]>;
    // A container of access packages.
    accessPackageCatalogs?: NullableOption<AccessPackageCatalog[]>;
    // A reference to the geolocation environment in which a resource is located.
    accessPackageResourceEnvironments?: NullableOption<AccessPackageResourceEnvironment[]>;
    // Represents a request to add or remove a resource to or from a catalog respectively.
    accessPackageResourceRequests?: NullableOption<AccessPackageResourceRequest[]>;
    // A reference to both a scope within a resource, and a role in that resource for that scope.
    accessPackageResourceRoleScopes?: NullableOption<AccessPackageResourceRoleScope[]>;
    // A reference to a resource associated with an access package catalog.
    accessPackageResources?: NullableOption<AccessPackageResource[]>;
    // Represents access package objects.
    accessPackages?: NullableOption<AccessPackage[]>;
    // Represents references to a directory or domain of another organization whose users can request access.
    connectedOrganizations?: NullableOption<ConnectedOrganization[]>;
    // Represents the settings that control the behavior of Microsoft Entra entitlement management.
    settings?: NullableOption<EntitlementManagementSettings>;
    // Represents the subjects within entitlement management.
    subjects?: NullableOption<AccessPackageSubject[]>;
}
export interface PermissionsAnalyticsAggregation extends Entity {
    // AWS permissions analytics findings.
    aws?: PermissionsAnalytics;
    // Azure permissions analytics findings.
    azure?: PermissionsAnalytics;
    // GCP permissions analytics findings.
    gcp?: PermissionsAnalytics;
}
export interface PermissionsManagement extends Entity {
    // Represents a change event of the scheduledPermissionsRequest entity.
    permissionsRequestChanges?: NullableOption<PermissionsRequestChange[]>;
    /**
     * Represents a permissions request that Permissions Management uses to manage permissions for an identity on resources in
     * the authorization system. This request can be granted, rejected or canceled by identities in Permissions Management.
     */
    scheduledPermissionsRequests?: NullableOption<ScheduledPermissionsRequest[]>;
}
export interface PrivilegedAccessRoot extends Entity {
    // A group that's governed through Privileged Identity Management (PIM).
    group?: NullableOption<PrivilegedAccessGroup>;
}
export interface RoleManagementAlert extends Entity {
    /**
     * The various configurations of an alert for Microsoft Entra roles. The configurations are predefined and can't be
     * created or deleted, but some of the configurations can be modified.
     */
    alertConfigurations?: NullableOption<UnifiedRoleManagementAlertConfiguration[]>;
    // Defines an alert, its impact, and measures to mitigate or prevent it.
    alertDefinitions?: NullableOption<UnifiedRoleManagementAlertDefinition[]>;
    // Represents the alert entity.
    alerts?: NullableOption<UnifiedRoleManagementAlert[]>;
    // Represents operations on resources that take a long time to complete and can run in the background until completion.
    operations?: NullableOption<LongRunningOperation[]>;
}
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. 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. 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 between directly assigned and inherited licenses. Use the licenseAssignmentStates property to identify
     * the directly assigned and inherited licenses. Not nullable. Supports $filter (eq, not, /$count eq 0, /$count ne 0).
     */
    assignedLicenses?: AssignedLicense[];
    // The plans that are assigned to the user. Read-only. Not nullable.Supports $filter (eq and not).
    assignedPlans?: AssignedPlan[];
    /**
     * Identifiers that can be used to identify and authenticate a user in non-Azure AD environments. This property can store
     * identifiers for smartcard-based certificates that users use to access on-premises Active Directory deployments or
     * federated access. It can also be used to store the Subject Alternate Name (SAN) that's associated with a Common Access
     * Card (CAC). Nullable.Supports $filter (eq and startsWith).
     */
    authorizationInfo?: NullableOption<AuthorizationInfo>;
    /**
     * The telephone numbers for the user. Only one number can be set for this property. Read-only for users synced from
     * on-premises directory. Supports $filter (eq, not, ge, le, startsWith).
     */
    businessPhones?: string[];
    /**
     * The city where the user is located. Maximum length is 128 characters. Supports $filter (eq, ne, not, ge, le, in,
     * startsWith, and eq on null values).
     */
    city?: NullableOption<string>;
    // Microsoft realtime communication information related to the user. Supports $filter (eq, ne,not).
    cloudRealtimeCommunicationInfo?: NullableOption<CloudRealtimeCommunicationInfo>;
    /**
     * The name of the company 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.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. 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. 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 UTC. 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 synced to
     * Microsoft Entra ID before June 2018. Read-only. 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.Supports $filter (eq, ne, not, and 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). The filter value is case-sensitive.
     */
    customSecurityAttributes?: NullableOption<CustomSecurityAttributeValue>;
    /**
     * The name of the department where the user works. Maximum length is 64 characters.Supports $filter (eq, ne, not , ge,
     * le, in, and eq on null values).
     */
    department?: NullableOption<string>;
    deviceKeys?: DeviceKey[];
    /**
     * The name displayed in the address book for the user. This value 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. 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 if there is a future hire. 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.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. Supports $filter (eq, ne,
     * not , ge, le, in).
     */
    employeeOrgData?: NullableOption<EmployeeOrgData>;
    /**
     * Captures enterprise worker type. For example, Employee, Contractor, Consultant, or Vendor. 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.
     * Supports $filter (eq, ne, not , in).
     */
    externalUserState?: NullableOption<string>;
    // Shows the timestamp for the latest change to the externalUserState property. Supports $filter (eq, ne, not , in).
    externalUserStateChangeDateTime?: NullableOption<string>;
    // The fax number of the user. 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. 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. It may contain multiple items with the same signInType value. 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. Supports
     * $filter (eq, not, ge, le, startsWith).
     */
    imAddresses?: NullableOption<string[]>;
    // Identifies the info segments assigned to the user. Supports $filter (eq, not, ge, le, startsWith).
    infoCatalogs?: string[];
    /**
     * Indicates whether the user is pending an exchange mailbox license assignment. Read-only. Supports $filter (eq where
     * true only).
     */
    isLicenseReconciliationNeeded?: NullableOption<boolean>;
    /**
     * true if the user is a member of a restricted management administrative unit, which requires a role scoped to the
     * restricted administrative unit to manage. Default value is false. Read-only. To manage a user who is a member of a
     * restricted administrative unit, the calling app must be assigned the Directory.Write.Restricted permission. For
     * delegated scenarios, the administrators must also be explicitly assigned supported roles at the restricted
     * administrative unit scope.
     */
    isManagementRestricted?: NullableOption<boolean>;
    // Do not use – reserved for future use.
    isResourceAccount?: NullableOption<boolean>;
    /**
     * The user's job title. Maximum length is 128 characters. Supports $filter (eq, ne, not , ge, le, in, startsWith, and eq
     * on null values).
     */
    jobTitle?: NullableOption<string>;
    /**
     * When this Microsoft Entra user last changed their password or when their password was created, whichever date the
     * latest action was performed. 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. 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. For more information, see legal age
     * group property definitions. Returned only on $select.
     */
    legalAgeGroupClassification?: NullableOption<string>;
    /**
     * State of license assignments for this user. It also indicates licenses that are directly assigned and the ones the user
     * inherited through group memberships. Read-only. Returned only on $select.
     */
    licenseAssignmentStates?: NullableOption<LicenseAssignmentState[]>;
    /**
     * The SMTP address for the user, for example, admin@contoso.com. Changes to this property 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. 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.
     * 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 the on-premises directory. 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. Maximum length is 128 characters. 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
     * synchronizing their on-premises directory to Microsoft Entra ID via Microsoft Entra Connect. Read-only.
     */
    onPremisesDistinguishedName?: NullableOption<string>;
    /**
     * Contains the on-premises domainFQDN, also called dnsDomainName 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. Read-only.
     */
    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 the
     * 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. Supports $filter (eq, ne, not, in).
     */
    onPremisesExtensionAttributes?: NullableOption<OnPremisesExtensionAttributes>;
    /**
     * This property associates 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.
     * 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. 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>;
    // Errors when using Microsoft synchronization product during provisioning. 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 synchronizing their on-premises directory to Microsoft Entra ID via Microsoft Entra Connect. Read-only.
     * Supports $filter (eq, ne, not, ge, le, in, startsWith).
     */
    onPremisesSamAccountName?: NullableOption<string>;
    /**
     * Contains the on-premises security identifier (SID) for the user synchronized from on-premises to the cloud. Read-only.
     * Supports $filter (eq including on null values).
     */
    onPremisesSecurityIdentifier?: NullableOption<string>;
    // Contains all on-premises Session Initiation Protocol (SIP) information related to the user. Read-only.
    onPremisesSipInfo?: NullableOption<OnPremisesSipInfo>;
    /**
     * 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. 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 synchronizing their on-premises directory to Microsoft Entra ID via Microsoft Entra Connect. Read-only.
     * 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.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. 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. 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. 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 combines 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'. 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. Supports $filter (eq, not, ge, le).
    provisionedPlans?: ProvisionedPlan[];
    /**
     * For example: ['SMTP: bob@contoso.com', 'smtp: bob@sales.contoso.com']. Changes to the mail property 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 the ones 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. Supports
     * $filter (eq, not, ge, le, startsWith, endsWith, /$count eq 0, /$count ne 0).
     */
    proxyAddresses?: string[];
    /**
     * 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 it happens, the application must acquire a new refresh token by requesting the authorized
     * endpoint. Read-only. Use invalidateAllRefreshTokens to reset.
     */
    refreshTokensValidFromDateTime?: NullableOption<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>;
    /**
     * Errors published by a federated service describing a nontransient, service-specific error regarding the properties or
     * link from a user object.
     */
    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 must acquire a new refresh token by requesting the authorized
     * endpoint. Read-only. Use revokeSignInSessions to reset.
     */
    signInSessionsValidFromDateTime?: NullableOption<string>;
    /**
     * The state or province in the user's address. Maximum length is 128 characters. 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. 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. 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 requirements
     * to check for availability of services in countries. Examples include: US, JP, and GB. Not nullable. 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
     * the domain must be present in the tenant's verified domain collection. 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. 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. 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. For more information, see User preferences for languages and regional
     * formats. 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 users 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. 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. 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 users to describe their interests. Returned only on $select.
    interests?: NullableOption<string[]>;
    // The URL for the user's site. Returned only on $select.
    mySite?: NullableOption<string>;
    // A list for users 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[]>;
    analytics?: NullableOption<UserAnalytics>;
    cloudPCs?: NullableOption<CloudPC[]>;
    // Represents the usage rights a user has been granted.
    usageRights?: NullableOption<UsageRight[]>;
    informationProtection?: NullableOption<InformationProtection>;
    appRoleAssignedResources?: NullableOption<ServicePrincipal[]>;
    // 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 with their manager property set to this user.)
     * Read-only. Nullable. Supports $expand.
     */
    directReports?: NullableOption<DirectoryObject[]>;
    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, directory roles, and administrative units that the user is a member of. Read-only. Nullable. Supports
     * $expand.
     */
    memberOf?: NullableOption<DirectoryObject[]>;
    oauth2PermissionGrants?: NullableOption<OAuth2PermissionGrant[]>;
    // Devices owned by the user. Read-only. Nullable. Supports $expand.
    ownedDevices?: NullableOption<DirectoryObject[]>;
    /**
     * Directory objects 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[]>;
    // The scoped-role administrative unit memberships for this user. Read-only. Nullable.
    scopedRoleMemberOf?: NullableOption<ScopedRoleMembership[]>;
    /**
     * The users and groups responsible for this guest user's privileges in the tenant and keep the guest user's information
     * and access updated. (HTTP Methods: GET, POST, DELETE.). Supports $expand.
     */
    sponsors?: NullableOption<DirectoryObject[]>;
    // The groups, including nested groups and directory roles that a user is a member of. Nullable.
    transitiveMemberOf?: NullableOption<DirectoryObject[]>;
    // The transitive reports for a user. Read-only.
    transitiveReports?: 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. The 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>;
    joinedGroups?: NullableOption<Group[]>;
    // The user's mail folders. Read-only. Nullable.
    mailFolders?: NullableOption<MailFolder[]>;
    // The messages in a mailbox or folder. Read-only. Nullable.
    messages?: NullableOption<Message[]>;
    // Selective Outlook services available to the user. Read-only. Nullable.
    outlook?: NullableOption<OutlookUser>;
    /**
     * Read-only. The most relevant people to the user. The collection is ordered by their relevance to the user, which is
     * determined by the user's communication, collaboration, and business relationships. A person aggregates information from
     * mail, contacts, and social networks.
     */
    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. Supports $expand. Nullable.
    extensions?: NullableOption<Extension[]>;
    appConsentRequestsForApproval?: NullableOption<AppConsentRequest[]>;
    approvals?: NullableOption<Approval[]>;
    // Navigation property to get a list of access reviews pending approval by the reviewer.
    pendingAccessReviewInstances?: NullableOption<AccessReviewInstance[]>;
    // The user's terms of use acceptance statuses. Read-only. Nullable.
    agreementAcceptances?: NullableOption<AgreementAcceptance[]>;
    security?: NullableOption<SecurityNamespace.Security>;
    // Get enrollment configurations targeted to the user
    deviceEnrollmentConfigurations?: NullableOption<DeviceEnrollmentConfiguration[]>;
    // The managed devices associated with the user.
    managedDevices?: NullableOption<ManagedDevice[]>;
    // Zero or more managed app registrations that belong to the user.
    managedAppRegistrations?: NullableOption<ManagedAppRegistration[]>;
    // Zero or more WIP device registrations that belong to the user.
    windowsInformationProtectionDeviceRegistrations?: NullableOption<WindowsInformationProtectionDeviceRegistration[]>;
    // The list of troubleshooting events for this user.
    deviceManagementTroubleshootingEvents?: NullableOption<DeviceManagementTroubleshootingEvent[]>;
    // The list of troubleshooting events for this user.
    mobileAppIntentAndStates?: NullableOption<MobileAppIntentAndState[]>;
    // The list of mobile app troubleshooting events for this user.
    mobileAppTroubleshootingEvents?: NullableOption<MobileAppTroubleshootingEvent[]>;
    notifications?: NullableOption<Notification[]>;
    // Selective Planner services available to the user. Read-only. Nullable.
    planner?: NullableOption<PlannerUser>;
    insights?: NullableOption<ItemInsights>;
    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[]>;
    // Represents properties that are descriptive of a user in a tenant.
    profile?: NullableOption<Profile>;
    // The user's activities across devices. Read-only. Nullable.
    activities?: NullableOption<UserActivity[]>;
    devices?: NullableOption<Device[]>;
    // Information about a meeting, including the URL used to join a meeting, the attendees list, and the description.
    onlineMeetings?: NullableOption<OnlineMeeting[]>;
    presence?: NullableOption<Presence>;
    virtualEvents?: NullableOption<UserVirtualEventsRoot>;
    // The authentication methods that are supported for the user.
    authentication?: NullableOption<Authentication>;
    chats?: NullableOption<Chat[]>;
    // The Microsoft Teams teams the user is a member of. Read-only. Nullable.
    joinedTeams?: NullableOption<Team[]>;
    // List all resource-specific permission grants of a user.
    permissionGrants?: NullableOption<ResourceSpecificPermissionGrant[]>;
    // 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 UserAnalytics extends Entity {
    // The current settings for a user to use the analytics API.
    settings?: NullableOption<Settings>;
    // The collection of work activities that a user spent time on during and outside of working hours. Read-only. Nullable.
    activityStatistics?: NullableOption<ActivityStatistics[]>;
}
export interface CloudPC extends Entity {
    // The Microsoft Entra device ID of the Cloud PC.
    aadDeviceId?: NullableOption<string>;
    connectionSettings?: NullableOption<CloudPcConnectionSettings>;
    /**
     * The connectivity health check result of a Cloud PC, including the updated timestamp and whether the Cloud PC can be
     * connected.
     */
    connectivityResult?: NullableOption<CloudPcConnectivityResult>;
    /**
     * The disk encryption applied to the Cloud PC. Possible values: notAvailable, notEncrypted,
     * encryptedUsingPlatformManagedKey, encryptedUsingCustomerManagedKey, and unknownFutureValue.
     */
    diskEncryptionState?: NullableOption<CloudPcDiskEncryptionState>;
    // The display name of the Cloud PC.
    displayName?: NullableOption<string>;
    /**
     * The date and time when the grace period ends and reprovisioning or deprovisioning happen. Required only if the status
     * is inGracePeriod. The timestamp is shown in ISO 8601 format and Coordinated Universal Time (UTC). For example, midnight
     * UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    gracePeriodEndDateTime?: NullableOption<string>;
    // Name of the OS image that's on the Cloud PC.
    imageDisplayName?: NullableOption<string>;
    // The last login result of the Cloud PC. For example, { 'time': '2014-01-01T00:00:00Z'}.
    lastLoginResult?: NullableOption<CloudPcLoginResult>;
    /**
     * The last modified date and time of the Cloud PC. 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?: string;
    /**
     * The last remote action result of the enterprise Cloud PCs. The supported remote actions are: Reboot, Rename,
     * Reprovision, Restore, and Troubleshoot.
     */
    lastRemoteActionResult?: NullableOption<CloudPcRemoteActionResult>;
    // The Intune device ID of the Cloud PC.
    managedDeviceId?: NullableOption<string>;
    // The Intune device name of the Cloud PC.
    managedDeviceName?: NullableOption<string>;
    // The Azure network connection that is applied during the provisioning of Cloud PCs.
    onPremisesConnectionName?: NullableOption<string>;
    /**
     * The version of the operating system (OS) to provision on Cloud PCs. Possible values are: windows10, windows11, and
     * unknownFutureValue.
     */
    osVersion?: NullableOption<CloudPcOperatingSystem>;
    // The results of every partner agent's installation status on Cloud PC.
    partnerAgentInstallResults?: NullableOption<CloudPcPartnerAgentInstallResult[]>;
    /**
     * The power state of a Cloud PC. The possible values are: running, poweredOff and unknown. This property only supports
     * shift work Cloud PCs.
     */
    powerState?: NullableOption<CloudPcPowerState>;
    // The provisioning policy ID of the Cloud PC.
    provisioningPolicyId?: NullableOption<string>;
    // The provisioning policy that is applied during the provisioning of Cloud PCs.
    provisioningPolicyName?: NullableOption<string>;
    /**
     * The type of licenses to be used when provisioning Cloud PCs using this policy. Possible values are: dedicated, shared,
     * unknownFutureValue. Default value is dedicated.
     */
    provisioningType?: NullableOption<CloudPcProvisioningType>;
    scopeIds?: NullableOption<string[]>;
    // The service plan ID of the Cloud PC.
    servicePlanId?: NullableOption<string>;
    // The service plan name of the Cloud PC.
    servicePlanName?: NullableOption<string>;
    // The service plan type of the Cloud PC.
    servicePlanType?: NullableOption<CloudPcServicePlanType>;
    /**
     * The status of the Cloud PC. Possible values are: notProvisioned, provisioning, provisioned, upgrading, inGracePeriod,
     * deprovisioning, failed, restoring.
     */
    status?: CloudPcStatus;
    // The details of the Cloud PC status.
    statusDetails?: NullableOption<CloudPcStatusDetails>;
    /**
     * The account type of the user on provisioned Cloud PCs. Possible values are: standardUser, administrator, and
     * unknownFutureValue.
     */
    userAccountType?: NullableOption<CloudPcUserAccountType>;
    // The user principal name (UPN) of the user assigned to the Cloud PC.
    userPrincipalName?: NullableOption<string>;
}
export interface UsageRight extends Entity {
    // Product id corresponding to the usage right.
    catalogId?: string;
    // Identifier of the service corresponding to the usage right.
    serviceIdentifier?: string;
    // The state of the usage right. Possible values are: active, inactive, warning, suspended.
    state?: UsageRightState;
}
// tslint:disable-next-line: interface-name
export interface InformationProtection extends Entity {
    bitlocker?: NullableOption<Bitlocker>;
    dataLossPreventionPolicies?: NullableOption<DataLossPreventionPolicy[]>;
    sensitivityLabels?: NullableOption<SensitivityLabel[]>;
    sensitivityPolicySettings?: NullableOption<SensitivityPolicySettings>;
    policy?: NullableOption<InformationProtectionPolicy>;
    threatAssessmentRequests?: NullableOption<ThreatAssessmentRequest[]>;
}
export interface ServicePrincipal extends DirectoryObject {
    /**
     * The collection for settings related to password single sign-on. Use $select=passwordSingleSignOnSettings to read the
     * property. Read-only for applicationTemplates except for custom applicationTemplates.
     */
    passwordSingleSignOnSettings?: NullableOption<PasswordSingleSignOnSettings>;
    /**
     * 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>;
    // Deprecated. Don't use.
    errorUrl?: 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 collection of password credentials associated with the service principal. 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 Microsoft Entra My Apps. The supported values are password,
     * saml, notSupported, and oidc.
     */
    preferredSingleSignOnMode?: NullableOption<string>;
    /**
     * Specifies the expiration date of the keyCredential used for token signing, marked by
     * preferredTokenSigningKeyThumbprint. Updating this attribute is not currentlysupported. For details, see
     * ServicePrincipal property differences.
     */
    preferredTokenSigningKeyEndDateTime?: 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 delegated permissions exposed by the application. For more information see the oauth2PermissionScopes property on
     * the application entity's api property. Not nullable. Note: This property is named oauth2PermissionScopes in v1.0.
     */
    publishedPermissionScopes?: PermissionScope[];
    // The name of the Microsoft Entra tenant that published the application.
    publisherName?: 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 url where the service exposes SAML metadata for federation.
    samlMetadataUrl?: NullableOption<string>;
    // 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 if the service principal represents an application or a managed identity. This is set by Microsoft Entra ID
     * internally. For a service principal that represents an application this is set as Application. For a service principal
     * that represent a managed identity this is set as ManagedIdentity. The SocialIdp type is 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 service principal.
    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[]>;
    /**
     * The permission classifications for delegated permissions exposed by the app that this service principal represents.
     * Supports $expand.
     */
    delegatedPermissionClassifications?: NullableOption<DelegatedPermissionClassification[]>;
    /**
     * Endpoints available for discovery. Services like Sharepoint populate this property with a tenant specific SharePoint
     * endpoints that other applications can discover and use in their experiences.
     */
    endpoints?: NullableOption<Endpoint[]>;
    federatedIdentityCredentials?: NullableOption<FederatedIdentityCredential[]>;
    // The homeRealmDiscoveryPolicies assigned to this service principal. Supports $expand.
    homeRealmDiscoveryPolicies?: NullableOption<HomeRealmDiscoveryPolicy[]>;
    licenseDetails?: NullableOption<LicenseDetails[]>;
    // 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 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 and $filter (/$count eq
     * 0, /$count ne 0, /$count eq 1, /$count ne 1).
     */
    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. Supports $expand.
    tokenIssuancePolicies?: NullableOption<TokenIssuancePolicy[]>;
    // The tokenLifetimePolicies assigned to this service principal. Supports $expand.
    tokenLifetimePolicies?: NullableOption<TokenLifetimePolicy[]>;
    transitiveMemberOf?: NullableOption<DirectoryObject[]>;
    // Represents the capability for Microsoft Entra identity synchronization through the Microsoft Graph API.
    synchronization?: NullableOption<Synchronization>;
}
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 that is authorized to act on behalf of a
     * signed-in user when accessing an API. Required. Supports $filter (eq only).
     */
    clientId?: string;
    /**
     * Indicates whether 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. Nonadmin 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>;
    // Currently, the end time value is ignored, but a value is required when creating an oAuth2PermissionGrant. Required.
    expiryTime?: 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 that 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 that 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 publishedPermissionScopes property of
     * the resource service principal. Must not exceed 3850 characters in length.
     */
    scope?: NullableOption<string>;
    // Currently, the start time value is ignored, but a value is required when creating an oAuth2PermissionGrant. Required.
    startTime?: 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 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 ContactFolder extends Entity {
    // The folder's display name.
    displayName?: NullableOption<string>;
    // The ID of the folder's parent folder.
    parentFolderId?: NullableOption<string>;
    // The name of the folder if the folder is a recognized folder. Currently contacts is the only recognized contacts folder.
    wellKnownName?: 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 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<TypedEmailAddress[]>;
    // The name the contact is filed under.
    fileAs?: NullableOption<string>;
    // The flag value that indicates the status, start date, due date, or completion date for the contact.
    flag?: NullableOption<FollowupFlag>;
    // The contact's gender.
    gender?: NullableOption<string>;
    // The contact's generation.
    generation?: NullableOption<string>;
    // The contact's given name.
    givenName?: NullableOption<string>;
    imAddresses?: NullableOption<string[]>;
    initials?: NullableOption<string>;
    isFavorite?: NullableOption<boolean>;
    jobTitle?: NullableOption<string>;
    manager?: NullableOption<string>;
    middleName?: NullableOption<string>;
    nickName?: NullableOption<string>;
    officeLocation?: NullableOption<string>;
    parentFolderId?: NullableOption<string>;
    personalNotes?: NullableOption<string>;
    phones?: NullableOption<Phone[]>;
    postalAddresses?: NullableOption<PhysicalAddress[]>;
    profession?: NullableOption<string>;
    spouseName?: NullableOption<string>;
    surname?: NullableOption<string>;
    title?: NullableOption<string>;
    websites?: NullableOption<Website[]>;
    weddingAnniversary?: NullableOption<string>;
    yomiCompanyName?: NullableOption<string>;
    yomiGivenName?: NullableOption<string>;
    yomiSurname?: NullableOption<string>;
    // The collection of open extensions defined for the contact. 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 well-known folder name for the folder. The possible values are listed above. This property is only set for default
     * folders created by Outlook. For other folders, this property is null.
     */
    wellKnownName?: NullableOption<string>;
    // 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[]>;
    userConfigurations?: NullableOption<UserConfiguration[]>;
}
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. If the message contains instances of mention, this
     * property would contain a concatenation of these mentions as well.
     */
    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>;
    mentionsPreview?: NullableOption<MentionsPreview>;
    parentFolderId?: NullableOption<string>;
    receivedDateTime?: NullableOption<string>;
    replyTo?: NullableOption<Recipient[]>;
    sender?: NullableOption<Recipient>;
    sentDateTime?: NullableOption<string>;
    subject?: NullableOption<string>;
    toRecipients?: NullableOption<Recipient[]>;
    uniqueBody?: NullableOption<ItemBody>;
    unsubscribeData?: NullableOption<string[]>;
    unsubscribeEnabled?: NullableOption<boolean>;
    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[]>;
    /**
     * A collection of mentions in the message, ordered by the createdDateTime from the newest to the oldest. By default, a
     * GET /messages does not return this property unless you apply $expand on the property.
     */
    mentions?: NullableOption<Mention[]>;
    // 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[]>;
    taskFolders?: NullableOption<OutlookTaskFolder[]>;
    taskGroups?: NullableOption<OutlookTaskGroup[]>;
    tasks?: NullableOption<OutlookTask[]>;
}
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 email addresses.
    emailAddresses?: NullableOption<RankedEmailAddress[]>;
    // The person's given name.
    givenName?: NullableOption<string>;
    // True if the user has flagged this person as a favorite.
    isFavorite?: NullableOption<boolean>;
    // The type of mailbox that is represented by the person's email address.
    mailboxType?: 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, for example distribution list.
    personType?: NullableOption<string>;
    // The person's phone numbers.
    phones?: NullableOption<Phone[]>;
    // The person's addresses.
    postalAddresses?: NullableOption<Location[]>;
    // The person's profession.
    profession?: NullableOption<string>;
    // The sources the user data comes from, for example Directory or Outlook Contacts.
    sources?: NullableOption<PersonDataSource[]>;
    // The person's surname.
    surname?: NullableOption<string>;
    // The person's title.
    title?: 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 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;
    /**
     * The consent type of the request. Possible values are: Static and Dynamic. These represent static and dynamic
     * permissions, respectively, requested in the consent workflow. Supports $filter (eq only) and $orderby. Required.
     */
    consentType?: NullableOption<string>;
    // A list of pending scopes waiting for approval. This is empty if the consentType is Static. Required.
    pendingScopes?: NullableOption<AppConsentRequestScope[]>;
    // A list of pending user consent requests. Supports $filter (eq).
    userConsentRequests?: NullableOption<UserConsentRequest[]>;
}
export interface Approval extends Entity {
    // Used to represent the decision associated with a single step in the approval process configured in approvalStage.
    steps?: NullableOption<ApprovalStep[]>;
}
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>;
    // Collection of errors in an access review instance lifecycle. Read-only.
    errors?: NullableOption<AccessReviewError[]>;
    /**
     * 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. 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[]>;
    /**
     * There's exactly one accessReviewScheduleDefinition associated with each instance. It's the parent schedule for the
     * instance, where instances are created for each recurrence of a review definition and each group selected to review by
     * the definition.
     */
    definition?: NullableOption<AccessReviewScheduleDefinition>;
    /**
     * 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 AgreementAcceptance extends Entity {
    // ID of the agreement file accepted by the user.
    agreementFileId?: NullableOption<string>;
    // ID 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 for accepting the agreement.
    deviceOSType?: NullableOption<string>;
    // The operating system version of the device used for accepting 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. Supports $filter (eq) and eq for null values.
     */
    recordedDateTime?: NullableOption<string>;
    // 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>;
    // ID 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 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>;
    // Support for Enrollment Configuration Type
    deviceEnrollmentConfigurationType?: DeviceEnrollmentConfigurationType;
    // 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;
    // Optional role scope tags for the enrollment restrictions.
    roleScopeTagIds?: NullableOption<string[]>;
    // The version of the device enrollment configuration
    version?: number;
    // The list of group assignments for the device configuration profile
    assignments?: NullableOption<EnrollmentConfigurationAssignment[]>;
}
export interface ManagedDevice extends Entity {
    cloudPcRemoteActionResults?: NullableOption<CloudPcRemoteActionResult[]>;
    // Whether the device is Azure Active Directory registered. This property is read-only.
    aadRegistered?: NullableOption<boolean>;
    /**
     * 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>;
    // Reports if the managed device is enrolled via auto-pilot. This property is read-only.
    autopilotEnrolled?: boolean;
    // The unique identifier for the Azure Active Directory device. Read only. This property is read-only.
    azureActiveDirectoryDeviceId?: 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>;
    /**
     * Reports if the managed device has an escrowed Bootstrap Token. This is only for macOS devices. To get, include
     * BootstrapTokenEscrowed in the select clause and query with a device id. If FALSE, no bootstrap token is escrowed. If
     * TRUE, the device has escrowed a bootstrap token with Intune. This property is read-only.
     */
    bootstrapTokenEscrowed?: boolean;
    /**
     * Chassis type of the device. This property is read-only. Possible values are: unknown, desktop, laptop,
     * worksWorkstation, enterpriseServer, phone, tablet, mobileOther, mobileUnknown.
     */
    chassisType?: ChassisType;
    /**
     * List of properties of the ChromeOS Device. Default is an empty list. To retrieve actual values GET call needs to be
     * made, with device id and included in select parameter.
     */
    chromeOSDeviceInfo?: NullableOption<ChromeOSDeviceProperty[]>;
    // 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>;
    // Configuration manager client health state, valid only for devices managed by MDM/ConfigMgr Agent
    configurationManagerClientHealthState?: NullableOption<ConfigurationManagerClientHealthState>;
    /**
     * Configuration manager client information, valid only for devices managed, duel-managed or tri-managed by ConfigMgr
     * Agent
     */
    configurationManagerClientInformation?: NullableOption<ConfigurationManagerClientInformation>;
    // 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, azureAdJoinUsingAzureVmExtension,
     * androidEnterpriseDedicatedDevice, androidEnterpriseFullyManaged, androidEnterpriseCorporateWorkProfile.
     */
    deviceEnrollmentType?: DeviceEnrollmentType;
    /**
     * Indicates whether the device is DFCI managed. When TRUE the device is DFCI managed. When FALSE, the device is not DFCI
     * managed. The default value is FALSE.
     */
    deviceFirmwareConfigurationInterfaceManaged?: boolean;
    // The device health attestation state. This property is read-only.
    deviceHealthAttestationState?: NullableOption<DeviceHealthAttestationState>;
    // Indicates the attestation status of the managed device. And in which way. Default: Unknown.
    deviceIdentityAttestationDetail?: NullableOption<DeviceIdentityAttestationDetail>;
    // 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;
    /**
     * Platform of the device. Examples: Desktop, WindowsRT, etc. Default is unknown. Supports $filter operator 'eq' and 'or'.
     * This property is read-only. Possible values are: desktop, windowsRT, winMO6, nokia, windowsPhone, mac, winCE,
     * winEmbedded, iPhone, iPad, iPod, android, iSocConsumer, unix, macMDM, holoLens, surfaceHub, androidForWork,
     * androidEnterprise, windows10x, androidnGMS, chromeOS, linux, blackberry, palm, unknown, cloudPC.
     */
    deviceType?: DeviceType;
    // 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;
    /**
     * Name of the enrollment profile assigned to the device. Default value is empty string, indicating no enrollment profile
     * was assgined. This property is read-only.
     */
    enrollmentProfileName?: NullableOption<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;
    /**
     * The hardward details for the device. Includes information such as storage space, manufacturer, serial number, etc. By
     * default most property of this type are set to null/0/false and enum defaults for associated types. 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.
     */
    hardwareInformation?: NullableOption<HardwareInformation>;
    /**
     * 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>;
    // Device join type. Possible values are: unknown, azureADJoined, azureADRegistered, hybridAzureADJoined.
    joinType?: JoinType;
    /**
     * 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;
    // Indicates if Lost mode is enabled or disabled. This property is read-only. Possible values are: disabled, enabled.
    lostModeState?: LostModeState;
    // 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, microsoft365ManagedMdm, msSense, intuneAosp.
     */
    managementAgent?: ManagementAgentType;
    // Reports device management certificate expiration date. This property is read-only.
    managementCertificateExpirationDate?: string;
    // Device management features. Possible values are: none, microsoftManagedDesktop.
    managementFeatures?: ManagedDeviceManagementFeatures;
    /**
     * Management state of the device. Examples: Managed, RetirePending, etc. Default is managed. Supports $filter operator
     * 'eq' and 'or'. This property is read-only. Possible values are: managed, retirePending, retireFailed, wipePending,
     * wipeFailed, unhealthy, deletePending, retireIssued, wipeIssued, wipeCanceled, retireCanceled, discovered.
     */
    managementState?: ManagementState;
    // 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>;
    /**
     * Ownership of the device. Possible values are, 'company' or 'personal'. Default is unknown. Supports $filter operator
     * 'eq' and 'or'. Possible values are: unknown, company, personal.
     */
    ownerType?: OwnerType;
    /**
     * 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;
    /**
     * Reports the DateTime the preferMdmOverGroupPolicy setting was set. When set, the Intune MDM settings will override
     * Group Policy settings if there is a conflict. Read Only. This property is read-only.
     */
    preferMdmOverGroupPolicyAppliedDateTime?: string;
    // Processor architecture. This property is read-only. Possible values are: unknown, x86, x64, arm, arM64.
    processorArchitecture?: ManagedDeviceArchitecture;
    // 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>;
    // Indicates the time after when a device will be auto retired because of scheduled action. This property is read-only.
    retireAfterDateTime?: string;
    // List of Scope Tag IDs for this Device instance.
    roleScopeTagIds?: NullableOption<string[]>;
    /**
     * This indicates the security patch level of the operating system. These special updates contain important security
     * fixes. For iOS/MacOS they are in (a) format. For android its in 2017-08-07 format. This property is read-only.
     */
    securityPatchLevel?: NullableOption<string>;
    // SerialNumber. This property is read-only.
    serialNumber?: NullableOption<string>;
    // Device sku family
    skuFamily?: NullableOption<string>;
    /**
     * Device sku number, see also: https://learn.microsoft.com/windows/win32/api/sysinfoapi/nf-sysinfoapi-getproductinfo.
     * Valid values 0 to 2147483647. This property is read-only.
     */
    skuNumber?: number;
    // Specification version. This property is read-only.
    specificationVersion?: 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>;
    // Indicates the last logged on users of a device. This property is read-only.
    usersLoggedOn?: NullableOption<LoggedOnUser[]>;
    // Wi-Fi MAC. This property is read-only.
    wiFiMacAddress?: NullableOption<string>;
    /**
     * Count of active malware for this windows device. Default is 0. To retrieve actual values GET call needs to be made,
     * with device id and included in select parameter. This property is read-only.
     */
    windowsActiveMalwareCount?: number;
    /**
     * Count of remediated malware for this windows device. Default is 0. To retrieve actual values GET call needs to be made,
     * with device id and included in select parameter. This property is read-only.
     */
    windowsRemediatedMalwareCount?: number;
    // Managed device mobile app configuration states for this device.
    assignmentFilterEvaluationStatusDetails?: NullableOption<AssignmentFilterEvaluationStatusDetails[]>;
    // Device compliance policy states for this device.
    deviceCompliancePolicyStates?: NullableOption<DeviceCompliancePolicyState[]>;
    // Device configuration states for this device.
    deviceConfigurationStates?: NullableOption<DeviceConfigurationState[]>;
    // Managed device mobile app configuration states for this device.
    managedDeviceMobileAppConfigurationStates?: NullableOption<ManagedDeviceMobileAppConfigurationState[]>;
    // Security baseline states for this device.
    securityBaselineStates?: NullableOption<SecurityBaselineState[]>;
    // All applications currently installed on the device
    detectedApps?: NullableOption<DetectedApp[]>;
    // Device category
    deviceCategory?: NullableOption<DeviceCategory>;
    // Results of device health scripts that ran for this device. Default is empty list. This property is read-only.
    deviceHealthScriptStates?: NullableOption<DeviceHealthScriptPolicyState[]>;
    // 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>;
    /**
     * The Azure Active Directory Device identifier of the host device. Value could be empty even when the host device is
     * Azure Active Directory registered.
     */
    azureADDeviceId?: NullableOption<string>;
    // Date and time of creation
    createdDateTime?: string;
    // The device manufacturer for the current app registration
    deviceManufacturer?: NullableOption<string>;
    // The device model for the current app registration
    deviceModel?: NullableOption<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;
    // The Managed Device identifier of the host device. Value could be empty even when the host device is managed.
    managedDeviceId?: NullableOption<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 WindowsInformationProtectionDeviceRegistration extends Entity {
    // Device Mac address.
    deviceMacAddress?: NullableOption<string>;
    // Device name.
    deviceName?: NullableOption<string>;
    // Device identifier for this device registration record.
    deviceRegistrationId?: NullableOption<string>;
    // Device type, for example, Windows laptop VS Windows phone.
    deviceType?: NullableOption<string>;
    // Last checkin time of the device.
    lastCheckInDateTime?: string;
    // UserId associated with this device registration record.
    userId?: NullableOption<string>;
}
export interface DeviceManagementTroubleshootingEvent extends Entity {
    // A set of string key and string value pairs which provides additional information on the Troubleshooting event
    additionalInformation?: NullableOption<KeyValuePair[]>;
    // Id used for tracing the failure in the service.
    correlationId?: NullableOption<string>;
    // Time when the event occurred .
    eventDateTime?: string;
    // Event Name corresponding to the Troubleshooting Event. It is an Optional field
    eventName?: NullableOption<string>;
    // Object containing detailed information about the error and its remediation.
    troubleshootingErrorDetails?: NullableOption<DeviceManagementTroubleshootingErrorDetails>;
}
export interface MobileAppIntentAndState extends Entity {
    // Device identifier created or collected by Intune.
    managedDeviceIdentifier?: NullableOption<string>;
    // The list of payload intents and states for the tenant.
    mobileAppList?: NullableOption<MobileAppIntentAndStateDetail[]>;
    // Identifier for the user that tried to enroll the device.
    userId?: NullableOption<string>;
}
export interface MobileAppTroubleshootingEvent extends DeviceManagementTroubleshootingEvent {
    // Intune application identifier.
    applicationId?: NullableOption<string>;
    // Device identifier created or collected by Intune.
    deviceId?: NullableOption<string>;
    // Intune Mobile Application Troubleshooting History Item
    history?: NullableOption<MobileAppTroubleshootingHistoryItem[]>;
    // Device identifier created or collected by Intune.
    managedDeviceIdentifier?: NullableOption<string>;
    // Identifier for the user that tried to enroll the device.
    userId?: NullableOption<string>;
    // The collection property of AppLogUploadRequest.
    appLogCollectionRequests?: NullableOption<AppLogCollectionRequest[]>;
}
export interface Notification extends Entity {
    /**
     * Sets how long (in seconds) this notification content stays in each platform's notification viewer. For example, when
     * the notification is delivered to a Windows device, the value of this property is passed on to
     * ToastNotification.ExpirationTime, which determines how long the toast notification stays in the user's Windows Action
     * Center.
     */
    displayTimeToLive?: NullableOption<number>;
    /**
     * Sets a UTC expiration date and time on a user notification using ISO 8601 format (for example, midnight UTC on Jan 1,
     * 2019 would look like this: '2019-01-01T00:00:00Z'). When time is up, the notification is removed from the Microsoft
     * Graph notification feed store completely and is no longer part of notification history. Max value is 30 days.
     */
    expirationDateTime?: NullableOption<string>;
    /**
     * The name of the group that this notification belongs to. It is set by the developer for grouping notifications
     * together.
     */
    groupName?: NullableOption<string>;
    /**
     * This is the data content of a raw or visual user notification that will be delivered to and consumed by the app client
     * receiving this notification.
     */
    payload?: PayloadTypes;
    /**
     * Indicates the priority of a raw user notification. Visual notifications are sent with high priority by default. Valid
     * values are None, High and Low.
     */
    priority?: NullableOption<Priority>;
    /**
     * Represents the host name of the app to which the calling service wants to post the notification, for the given user. If
     * targeting web endpoints (see targetPolicy.platformTypes), ensure that targetHostName is the same as the name used when
     * creating a subscription on the client side within the application JSON property.
     */
    targetHostName?: string;
    /**
     * Target policy object handles notification delivery policy for endpoint types that should be targeted (Windows, iOS,
     * Android and WebPush) for the given user.
     */
    targetPolicy?: NullableOption<TargetPolicyEndpoints>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerDelta extends Entity {}
export interface PlannerUser extends PlannerDelta {
    // A collection that contains the references to the plans that the user has marked as favorites.
    favoritePlanReferences?: NullableOption<PlannerFavoritePlanReferenceCollection>;
    /**
     * A collection that contains references to the plans that were viewed recently by the user in apps that support recent
     * plans.
     */
    recentPlanReferences?: NullableOption<PlannerRecentPlanReferenceCollection>;
    all?: NullableOption<PlannerDelta[]>;
    // Read-only. Nullable. Returns the plannerPlans that the user marked as favorites.
    favoritePlans?: NullableOption<PlannerPlan[]>;
    plans?: NullableOption<PlannerPlan[]>;
    /**
     * Read-only. Nullable. Returns the plannerPlans that have been recently viewed by the user in apps that support recent
     * plans.
     */
    recentPlans?: NullableOption<PlannerPlan[]>;
    // Read-only. Nullable. Returns the plannerPlans contained by the plannerRosters the user is a member.
    rosterPlans?: NullableOption<PlannerPlan[]>;
    // Read-only. Nullable. Returns the plannerTasks assigned to the user.
    tasks?: NullableOption<PlannerTask[]>;
}
export interface OfficeGraphInsights extends Entity {
    // Access this property from the derived type itemInsights.
    shared?: NullableOption<SharedInsight[]>;
    // Access this property from the derived type itemInsights.
    trending?: NullableOption<Trending[]>;
    // Access this property from the derived type itemInsights.
    used?: NullableOption<UsedInsight[]>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface ItemInsights extends OfficeGraphInsights {}
export interface UserSettings extends Entity {
    /**
     * Reflects the Office Delve organization level setting. When set to true, the organization doesn't have access to Office
     * Delve. This setting is read-only and can only be changed by administrators in the SharePoint admin center.
     */
    contributionToContentDiscoveryAsOrganizationDisabled?: boolean;
    // When set to true, documents in the user's Office Delve are disabled. Users can control this setting in Office Delve.
    contributionToContentDiscoveryDisabled?: boolean;
    /**
     * The user's settings for the visibility of meeting hour insights, and insights derived between a user and other items in
     * Microsoft 365, such as documents or sites. Get userInsightsSettings through this navigation property.
     */
    itemInsights?: NullableOption<UserInsightsSettings>;
    // The user's settings for the visibility of merge suggestion for the duplicate contacts in the user's contact list.
    contactMergeSuggestions?: NullableOption<ContactMergeSuggestions>;
    // The user's preferences for languages, regional locale and date/time formatting.
    regionalAndLanguageSettings?: NullableOption<RegionalAndLanguageSettings>;
    // The shift preferences for the user.
    shiftPreferences?: NullableOption<ShiftPreferences>;
}
export interface Profile extends Entity {
    account?: NullableOption<UserAccountInformation[]>;
    // Represents details of addresses associated with the user.
    addresses?: NullableOption<ItemAddress[]>;
    // Represents the details of meaningful dates associated with a person.
    anniversaries?: NullableOption<PersonAnnualEvent[]>;
    // Represents the details of awards or honors associated with a person.
    awards?: NullableOption<PersonAward[]>;
    // Represents the details of certifications associated with a person.
    certifications?: NullableOption<PersonCertification[]>;
    /**
     * Represents data that a user has supplied related to undergraduate, graduate, postgraduate or other educational
     * activities.
     */
    educationalActivities?: NullableOption<EducationalActivity[]>;
    // Represents detailed information about email addresses associated with the user.
    emails?: NullableOption<ItemEmail[]>;
    // Provides detailed information about interests the user has associated with themselves in various services.
    interests?: NullableOption<PersonInterest[]>;
    // Represents detailed information about languages that a user has added to their profile.
    languages?: NullableOption<LanguageProficiency[]>;
    // Represents the names a user has added to their profile.
    names?: NullableOption<PersonName[]>;
    // Represents notes that a user has added to their profile.
    notes?: NullableOption<PersonAnnotation[]>;
    // Represents patents that a user has added to their profile.
    patents?: NullableOption<ItemPatent[]>;
    // Represents detailed information about phone numbers associated with a user in various services.
    phones?: NullableOption<ItemPhone[]>;
    // Represents detailed information about work positions associated with a user's profile.
    positions?: NullableOption<WorkPosition[]>;
    // Represents detailed information about projects associated with a user.
    projects?: NullableOption<ProjectParticipation[]>;
    // Represents details of any publications a user has added to their profile.
    publications?: NullableOption<ItemPublication[]>;
    // Represents detailed information about skills associated with a user in various services.
    skills?: NullableOption<SkillProficiency[]>;
    // Represents web accounts the user has indicated they use or has added to their user profile.
    webAccounts?: NullableOption<WebAccount[]>;
    // Represents detailed information about websites associated with a user in various services.
    websites?: NullableOption<PersonWebsite[]>;
}
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 Device extends DirectoryObject {
    /**
     * true if the account is enabled; otherwise, false. 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. Also 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>;
    // The on-premises domain name of Microsoft Entra hybrid joined devices. This property is set by Intune.
    domainName?: 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>;
    /**
     * Enrollment type of the device. This property is set by Intune. Possible values are: unknown, userEnrollment,
     * deviceEnrollmentManager, appleBulkWithUser, appleBulkWithoutUser, windowsAzureADJoin, windowsBulkUserless,
     * windowsAutoEnrollment, windowsBulkAzureDomainJoin, windowsCoManagement.
     */
    enrollmentType?: NullableOption<string>;
    /**
     * Contains extension attributes 1-15 for the device. The individual extension attributes are not selectable. These
     * properties are mastered in cloud and can be set during creation or update of a device object in Microsoft Entra ID.
     * Supports $filter (eq, not, startsWith, and eq on null values).
     */
    extensionAttributes?: NullableOption<OnPremisesExtensionAttributes>;
    // List of host names for the device.
    hostnames?: 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>;
    /**
     * Indicates whether the device is a member of a restricted management administrative unit, in which case it requires a
     * role scoped to the restricted administrative unit to manage. The default value is false. Read-only. To manage a device
     * that's a member of a restricted administrative unit, the calling app must be assigned the Directory.Write.Restricted
     * permission. For delegated scenarios, the administrators must also be explicitly assigned supported roles at the
     * restricted administrative unit scope.
     */
    isManagementRestricted?: NullableOption<boolean>;
    // true if device is rooted; false if device is jail-broken. This can only be updated by Intune.
    isRooted?: NullableOption<boolean>;
    /**
     * Management channel of the device. This property is set by Intune. Possible values are: eas, mdm, easMdm, intuneClient,
     * easIntuneClient, configurationManagerClient, configurationManagerClientMdm, configurationManagerClientMdmEas, unknown,
     * jamf, googleCloudDevicePolicyController.
     */
    managementType?: NullableOption<string>;
    // 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>;
    /**
     * The on-premises security identifier (SID) for the user who was synchronized from on-premises to the cloud. Read-only.
     * Returned only on $select. Supports $filter (eq).
     */
    onPremisesSecurityIdentifier?: 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>;
    /**
     * Operating system version of 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>;
    // Form factor of the device. Only returned if the user signs in with a Microsoft account as part of Project Rome.
    kind?: NullableOption<string>;
    // Manufacturer of the device. Only returned if the user signs in with a Microsoft account as part of Project Rome.
    manufacturer?: NullableOption<string>;
    // Model of the device. Only returned if the user signs in with a Microsoft account as part of Project Rome.
    model?: NullableOption<string>;
    // Friendly name of the device. Only returned if user signs in with a Microsoft account as part of Project Rome.
    name?: NullableOption<string>;
    // Platform of device. Only returned if the user signs in with a Microsoft account as part of Project Rome.
    platform?: NullableOption<string>;
    // Device is online or offline. Only returned if user signs in with a Microsoft account as part of Project Rome.
    status?: NullableOption<string>;
    // Represents the usage rights a device has been granted.
    usageRights?: NullableOption<UsageRight[]>;
    // 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 this 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[]>;
    // Set of commands sent to this device.
    commands?: NullableOption<Command[]>;
}
export interface OnlineMeetingBase extends Entity {
    allowAttendeeToEnableCamera?: NullableOption<boolean>;
    allowAttendeeToEnableMic?: NullableOption<boolean>;
    allowedPresenters?: NullableOption<OnlineMeetingPresenters>;
    allowMeetingChat?: NullableOption<MeetingChatMode>;
    allowParticipantsToChangeName?: NullableOption<boolean>;
    allowRecording?: NullableOption<boolean>;
    allowTeamworkReactions?: NullableOption<boolean>;
    allowTranscription?: NullableOption<boolean>;
    anonymizeIdentityForRoles?: NullableOption<OnlineMeetingRole[]>;
    audioConferencing?: NullableOption<AudioConferencing>;
    chatInfo?: NullableOption<ChatInfo>;
    chatRestrictions?: NullableOption<ChatRestrictions>;
    isEndToEndEncryptionEnabled?: NullableOption<boolean>;
    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 {
    alternativeRecording?: NullableOption<any>;
    attendeeReport?: NullableOption<any>;
    broadcastRecording?: NullableOption<any>;
    broadcastSettings?: NullableOption<BroadcastMeetingSettings>;
    capabilities?: NullableOption<MeetingCapabilities[]>;
    // The meeting creation time in UTC. Read-only.
    creationDateTime?: NullableOption<string>;
    // The meeting end time in UTC.
    endDateTime?: NullableOption<string>;
    // The external ID. A custom ID. Optional.
    externalId?: NullableOption<string>;
    isBroadcast?: NullableOption<boolean>;
    joinUrl?: NullableOption<string>;
    // The participants associated with the online meeting. This includes the organizer and the attendees.
    participants?: NullableOption<MeetingParticipants>;
    recording?: NullableOption<any>;
    // The meeting start time in UTC.
    startDateTime?: NullableOption<string>;
    meetingAttendanceReport?: NullableOption<MeetingAttendanceReport>;
    /**
     * The registration that has been enabled for an online meeting. One online meeting can only have one registration
     * enabled.
     */
    registration?: NullableOption<MeetingRegistration>;
    // 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 out of office settings for a user.
    outOfOfficeSettings?: NullableOption<OutOfOfficeSettings>;
    // The presence status message of a user.
    statusMessage?: NullableOption<PresenceStatusMessage>;
}
export interface UserVirtualEventsRoot extends Entity {
    webinars?: NullableOption<VirtualEventWebinar[]>;
}
export interface Authentication extends Entity {
    // The settings and preferences for to the sign-in experience of a user.
    signInPreferences?: NullableOption<SignInPreferences>;
    // Represents the email addresses 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[]>;
    operations?: NullableOption<LongRunningOperation[]>;
    // Represents the Microsoft Authenticator Passwordless Phone Sign-in methods registered to a user for authentication.
    passwordlessMicrosoftAuthenticatorMethods?: NullableOption<PasswordlessMicrosoftAuthenticatorAuthenticationMethod[]>;
    // Represents the details of the password authentication method registered to a user for authentication.
    passwordMethods?: NullableOption<PasswordAuthenticationMethod[]>;
    // Represents the phone registered to a user for authentication.
    phoneMethods?: NullableOption<PhoneAuthenticationMethod[]>;
    platformCredentialMethods?: NullableOption<PlatformCredentialAuthenticationMethod[]>;
    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 all the Teams async operations that ran or are running on the chat. Nullable.
    operations?: NullableOption<TeamsAsyncOperation[]>;
    // 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 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 ActiveUsersBreakdownMetric extends Entity {
    appId?: string;
    appName?: string;
    count?: number;
    factDate?: string;
    os?: string;
}
export interface ActiveUsersMetric extends Entity {
    count?: number;
    factDate?: string;
}
export interface AppCredentialSignInActivity extends Entity {
    // The globally unique appId (also called client ID on the Microsoft Entra admin center) of the credential application.
    appId?: string;
    // The ID of the credential application instance.
    appObjectId?: NullableOption<string>;
    /**
     * The date and time when the credential 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>;
    // The type the key credential originated from. Possible values are: application, servicePrincipal, unknownFutureValue.
    credentialOrigin?: ApplicationKeyOrigin;
    /**
     * The date and time when the credential is set to expire. 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.
     */
    expirationDateTime?: NullableOption<string>;
    // The key ID of the credential.
    keyId?: string;
    // Specifies the key type. The possible values are: clientSecret, certificate, unknownFutureValue.
    keyType?: NullableOption<ApplicationKeyType>;
    // Specifies what the key was used for. The possible values are: sign, verify, unknownFutureValue.
    keyUsage?: NullableOption<ApplicationKeyUsage>;
    // The ID of the accessed resource.
    resourceId?: NullableOption<string>;
    // The ID of the service principal.
    servicePrincipalObjectId?: NullableOption<string>;
    // The sign-in activity of the credential across all flows.
    signInActivity?: SignInActivity;
}
export interface ApplicationSignInDetailedSummary 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.
     */
    aggregatedEventDateTime?: NullableOption<string>;
    // Name of the application that the user signed in to.
    appDisplayName?: string;
    // ID of the application that the user signed in to.
    appId?: string;
    // Count of sign-ins made by the application.
    signInCount?: NullableOption<number>;
    // Details of the sign-in status.
    status?: NullableOption<SignInStatus>;
}
export interface ApplicationSignInSummary extends Entity {
    // Name of the application that the user signed into.
    appDisplayName?: string;
    // Count of failed sign-ins made by the application.
    failedSignInCount?: NullableOption<number>;
    // Count of successful sign-ins made by the application.
    successfulSignInCount?: NullableOption<number>;
    // Percentage of successful sign-ins made by the application.
    successPercentage?: NullableOption<number>;
}
export interface AuditLogRoot {
    // Represents a custom security attribute audit log.
    customSecurityAttributeAudits?: NullableOption<CustomSecurityAttributeAudit[]>;
    directoryAudits?: NullableOption<DirectoryAudit[]>;
    directoryProvisioning?: NullableOption<ProvisioningObjectSummary[]>;
    // Represents an action performed by the Microsoft Entra provisioning service and its associated properties.
    provisioning?: NullableOption<ProvisioningObjectSummary[]>;
    signIns?: NullableOption<SignIn[]>;
}
export interface CustomSecurityAttributeAudit extends Entity {
    activityDateTime?: string;
    activityDisplayName?: string;
    additionalDetails?: NullableOption<KeyValue[]>;
    category?: string;
    correlationId?: NullableOption<string>;
    initiatedBy?: AuditActivityInitiator;
    loggedByService?: NullableOption<string>;
    operationType?: NullableOption<string>;
    result?: NullableOption<OperationResult>;
    resultReason?: NullableOption<string>;
    targetResources?: NullableOption<TargetResource[]>;
    userAgent?: NullableOption<string>;
}
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 (for example 'Create User', '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 more 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 aren't 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>;
    /**
     * Information about the resource that changed due to the activity. Supports $filter (eq) for id and displayName; and
     * $filter (startswith) for displayName.
     */
    targetResources?: NullableOption<TargetResource[]>;
    // Type of user agent used by a user in the activity.
    userAgent?: NullableOption<string>;
}
export interface ProvisioningObjectSummary extends Entity {
    action?: NullableOption<string>;
    /**
     * 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. Supports $filter (eq, gt, lt).
    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. Supports $filter (eq, contains) for 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>;
    statusInfo?: NullableOption<StatusBase>;
    // 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 {
    // The application name displayed in the Microsoft Entra admin center. Supports $filter (eq, startsWith).
    appDisplayName?: NullableOption<string>;
    // The application identifier in Microsoft Entra ID. Supports $filter (eq).
    appId?: NullableOption<string>;
    /**
     * 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[]>;
    /**
     * Detailed information about the listeners, such as Azure Logic Apps and Azure Functions, which were triggered by the
     * corresponding events in the sign-in event.
     */
    appliedEventListeners?: NullableOption<AppliedAuthenticationEventListener[]>;
    appTokenProtectionStatus?: NullableOption<TokenProtectionStatus>;
    // Provides details about the app and device used during a Microsoft Entra authentication step.
    authenticationAppDeviceDetails?: NullableOption<AuthenticationAppDeviceDetails>;
    /**
     * Provides details of the Microsoft Entra policies applied to a user and client authentication app during an
     * authentication step.
     */
    authenticationAppPolicyEvaluationDetails?: NullableOption<AuthenticationAppPolicyDetails[]>;
    // Contains a collection of values that represent the conditional access authentication contexts applied to the sign-in.
    authenticationContextClassReferences?: NullableOption<AuthenticationContext[]>;
    // The result of the authentication attempt and more details on the authentication method.
    authenticationDetails?: NullableOption<AuthenticationDetail[]>;
    /**
     * The authentication methods used. Possible values: SMS, Authenticator App, App Verification code, Password, FIDO, PTA,
     * or PHS.
     */
    authenticationMethodsUsed?: NullableOption<string[]>;
    /**
     * More authentication processing details, such as the agent name for PTA and PHS, or a server or farm name for federated
     * authentication.
     */
    authenticationProcessingDetails?: NullableOption<KeyValue[]>;
    /**
     * Lists the protocol type or grant type used in the authentication. The possible values are: oAuth2, ropc, wsFederation,
     * saml20, deviceCode, unknownFutureValue, authenticationTransfer, and none. Use none for all authentications that don't
     * have a specific value in that list.
     */
    authenticationProtocol?: NullableOption<ProtocolType>;
    /**
     * This holds the highest level of authentication needed through all the sign-in steps, for sign-in to succeed. Supports
     * $filter (eq, startsWith).
     */
    authenticationRequirement?: NullableOption<string>;
    /**
     * Sources of authentication requirement, such as conditional access, per-user MFA, identity protection, and security
     * defaults.
     */
    authenticationRequirementPolicies?: NullableOption<AuthenticationRequirementPolicy[]>;
    // The Autonomous System Number (ASN) of the network used by the actor.
    autonomousSystemNumber?: NullableOption<number>;
    // Contains a fully qualified Azure Resource Manager ID of an Azure resource accessed during the sign-in.
    azureResourceId?: NullableOption<string>;
    /**
     * The legacy client used for sign-in activity. For example: Browser, Exchange ActiveSync, Modern clients, IMAP, MAPI,
     * SMTP, or POP. Supports $filter (eq).
     */
    clientAppUsed?: NullableOption<string>;
    /**
     * Describes the credential type that a user client or service principal provided to Microsoft Entra ID to authenticate
     * itself. You can review this property to track and eliminate less secure credential types or to watch for clients and
     * service principals using anomalous credential types. The possible values are: none, clientSecret, clientAssertion,
     * federatedIdentityCredential, managedIdentity, certificate, unknownFutureValue.
     */
    clientCredentialType?: NullableOption<ClientCredentialType>;
    /**
     * The status of the conditional access policy triggered. Possible values: success, failure, notApplied, or
     * unknownFutureValue. Supports $filter (eq).
     */
    conditionalAccessStatus?: NullableOption<ConditionalAccessStatus>;
    /**
     * The identifier that's sent from the client when sign-in is initiated. This is used for troubleshooting the
     * corresponding sign-in activity when calling for support. Supports $filter (eq).
     */
    correlationId?: NullableOption<string>;
    /**
     * The date and time the sign-in was initiated. The Timestamp type is always in UTC time. For example, midnight UTC on Jan
     * 1, 2014 is 2014-01-01T00:00:00Z. Supports $orderby, $filter (eq, le, and ge).
     */
    createdDateTime?: string;
    /**
     * Describes the type of cross-tenant access used by the actor to access the resource. Possible values are: none,
     * b2bCollaboration, b2bDirectConnect, microsoftSupport, serviceProvider, unknownFutureValue, passthrough. Also, please
     * note that you must use the Prefer: include-unknown-enum-members request header to get the following value(s) in this
     * evolvable enum: passthrough. If the sign in didn't cross tenant boundaries, the value is none.
     */
    crossTenantAccessType?: NullableOption<SignInAccessType>;
    /**
     * The device information from where the sign-in occurred. Includes information such as deviceId, OS, and browser.
     * Supports $filter (eq, startsWith) on browser and operatingSystem properties.
     */
    deviceDetail?: NullableOption<DeviceDetail>;
    /**
     * Contains the identifier of an application's federated identity credential, if a federated identity credential was used
     * to sign in.
     */
    federatedCredentialId?: NullableOption<string>;
    /**
     * During a failed sign-in, a user can select a button in the Azure portal to mark the failed event for tenant admins. If
     * a user selects the button to flag the failed sign-in, this value is true.
     */
    flaggedForReview?: NullableOption<boolean>;
    /**
     * The tenant identifier of the user initiating the sign-in. Not applicable in Managed Identity or service principal sign
     * ins.
     */
    homeTenantId?: NullableOption<string>;
    /**
     * For user sign ins, the identifier of the tenant that the user is a member of. Only populated in cases where the home
     * tenant has provided affirmative consent to Microsoft Entra ID to show the tenant content.
     */
    homeTenantName?: NullableOption<string>;
    /**
     * Indicates the token types that were presented to Microsoft Entra ID to authenticate the actor in the sign in. The
     * possible values are: none, primaryRefreshToken, saml11, saml20, unknownFutureValue, remoteDesktopToken. NOTE Microsoft
     * Entra ID might have also used token types not listed in this enum type to authenticate the actor. Don't infer the lack
     * of a token if it isn't one of the types listed. Also, please note that you must use the Prefer:
     * include-unknown-enum-members request header to get the following value(s) in this evolvable enum: remoteDesktopToken.
     */
    incomingTokenType?: NullableOption<IncomingTokenType>;
    // The IP address of the client from where the sign-in occurred. Supports $filter (eq, startsWith).
    ipAddress?: NullableOption<string>;
    /**
     * The IP address a user used to reach a resource provider, used to determine Conditional Access compliance for some
     * policies. For example, when a user interacts with Exchange Online, the IP address that Microsoft Exchange receives from
     * the user can be recorded here. This value is often null.
     */
    ipAddressFromResourceProvider?: NullableOption<string>;
    /**
     * Indicates whether a user sign in is interactive. In interactive sign in, the user provides an authentication factor to
     * Microsoft Entra ID. These factors include passwords, responses to MFA challenges, biometric factors, or QR codes that a
     * user provides to Microsoft Entra ID or an associated app. In non-interactive sign in, the user doesn't provide an
     * authentication factor. Instead, the client app uses a token or code to authenticate or access a resource on behalf of a
     * user. Non-interactive sign ins are commonly used for a client to sign in on a user's behalf in a process transparent to
     * the user.
     */
    isInteractive?: NullableOption<boolean>;
    // Shows whether the sign in event was subject to a Microsoft Entra tenant restriction policy.
    isTenantRestricted?: NullableOption<boolean>;
    /**
     * The city, state, and two letter country code from where the sign-in occurred. Supports $filter (eq, startsWith) on
     * city, state, and countryOrRegion properties.
     */
    location?: NullableOption<SignInLocation>;
    /**
     * Contains information about the managed identity used for the sign in, including its type, associated Azure Resource
     * Manager (ARM) resource ID, and federated token information.
     */
    managedServiceIdentity?: NullableOption<ManagedIdentity>;
    mfaDetail?: NullableOption<MfaDetail>;
    // The network location details including the type of network used and its names.
    networkLocationDetails?: NullableOption<NetworkLocationDetail[]>;
    // The request identifier of the first request in the authentication sequence. Supports $filter (eq).
    originalRequestId?: NullableOption<string>;
    /**
     * Transfer method used to initiate a session throughout all subsequent request. The possible values are: none,
     * deviceCodeFlow, authenticationTransfer, unknownFutureValue.
     */
    originalTransferMethod?: NullableOption<OriginalTransferMethods>;
    // Contains information about the Microsoft Entra Private Link policy that is associated with the sign in event.
    privateLinkDetails?: NullableOption<PrivateLinkDetails>;
    // The request processing time in milliseconds in AD STS.
    processingTimeInMilliseconds?: NullableOption<number>;
    // The name of the resource that the user signed in to. Supports $filter (eq).
    resourceDisplayName?: NullableOption<string>;
    // The identifier of the resource that the user signed in to. Supports $filter (eq).
    resourceId?: NullableOption<string>;
    // The identifier of the service principal representing the target resource in the sign-in event.
    resourceServicePrincipalId?: NullableOption<string>;
    // The tenant identifier of the resource referenced in the sign in.
    resourceTenantId?: NullableOption<string>;
    /**
     * The reason behind a specific state of a risky user, sign-in, or a risk event. Possible values: none,
     * adminGeneratedTemporaryPassword, userPerformedSecuredPasswordChange, userPerformedSecuredPasswordReset,
     * adminConfirmedSigninSafe, aiConfirmedSigninSafe, userPassedMFADrivenByRiskBasedPolicy, adminDismissedAllRiskForUser,
     * adminConfirmedSigninCompromised, or unknownFutureValue. The value none means that Microsoft Entra risk detection has
     * not flagged the user or the sign-in as a risky event so far. Supports $filter (eq). Note: Details for this property are
     * only available for Microsoft Entra ID P2 customers. All other customers are returned hidden.
     */
    riskDetail?: NullableOption<RiskDetail>;
    /**
     * 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[]>;
    /**
     * The aggregated risk level. Possible values: none, low, medium, high, hidden, or 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>;
    /**
     * The risk level during sign-in. Possible values: none, low, medium, high, hidden, or 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>;
    /**
     * The risk state of a risky user, sign-in, or a risk event. Possible values: none, confirmedSafe, remediated, dismissed,
     * atRisk, confirmedCompromised, or unknownFutureValue. Supports $filter (eq).
     */
    riskState?: NullableOption<RiskState>;
    // The unique identifier of the key credential used by the service principal to authenticate.
    servicePrincipalCredentialKeyId?: NullableOption<string>;
    // The certificate thumbprint of the certificate used by the service principal to authenticate.
    servicePrincipalCredentialThumbprint?: NullableOption<string>;
    /**
     * The application identifier used for sign-in. This field is populated when you're signing in using an application.
     * Supports $filter (eq, startsWith).
     */
    servicePrincipalId?: string;
    /**
     * The application name used for sign-in. This field is populated when you're signing in using an application. Supports
     * $filter (eq, startsWith).
     */
    servicePrincipalName?: NullableOption<string>;
    // Any conditional access session management policies that were applied during the sign-in event.
    sessionLifetimePolicies?: NullableOption<SessionLifetimePolicy[]>;
    /**
     * Indicates the category of sign in that the event represents. For user sign ins, the category can be interactiveUser or
     * nonInteractiveUser and corresponds to the value for the isInteractive property on the signin resource. For managed
     * identity sign ins, the category is managedIdentity. For service principal sign-ins, the category is servicePrincipal.
     * Possible values are: interactiveUser, nonInteractiveUser, servicePrincipal, managedIdentity, unknownFutureValue.
     * Supports $filter (eq, ne).
     */
    signInEventTypes?: NullableOption<string[]>;
    /**
     * The identification that the user provided to sign in. It can be the userPrincipalName, but is also populated when a
     * user signs in using other identifiers.
     */
    signInIdentifier?: NullableOption<string>;
    /**
     * The type of sign in identifier. Possible values are: userPrincipalName, phoneNumber, proxyAddress, qrCode,
     * onPremisesUserPrincipalName, unknownFutureValue.
     */
    signInIdentifierType?: NullableOption<SignInIdentifierType>;
    /**
     * Token protection creates a cryptographically secure tie between the token and the device it is issued to. This field
     * indicates whether the signin token was bound to the device or not. The possible values are: none, bound, unbound,
     * unknownFutureValue.
     */
    signInTokenProtectionStatus?: NullableOption<TokenProtectionStatus>;
    /**
     * The sign-in status. Includes the error code and description of the error (for a sign-in failure). Supports $filter (eq)
     * on errorCode property.
     */
    status?: NullableOption<SignInStatus>;
    // The name of the identity provider. For example, sts.microsoft.com. Supports $filter (eq).
    tokenIssuerName?: NullableOption<string>;
    /**
     * The type of identity provider. The possible values are: AzureAD, ADFederationServices, UnknownFutureValue,
     * AzureADBackupAuth, ADFederationServicesMFAAdapter, NPSExtension. You must use the Prefer: include-unknown-enum-members
     * request header to get the following values in this evolvable enum: AzureADBackupAuth , ADFederationServicesMFAAdapter ,
     * NPSExtension.
     */
    tokenIssuerType?: NullableOption<TokenIssuerType>;
    /**
     * A unique base64 encoded request identifier used to track tokens issued by Microsoft Entra ID as they're redeemed at
     * resource providers.
     */
    uniqueTokenIdentifier?: NullableOption<string>;
    // The user agent information related to sign-in. Supports $filter (eq, startsWith).
    userAgent?: NullableOption<string>;
    // The display name of the user. Supports $filter (eq, startsWith).
    userDisplayName?: NullableOption<string>;
    // The identifier of the user. Supports $filter (eq).
    userId?: string;
    // The UPN of the user. Supports $filter (eq, startsWith).
    userPrincipalName?: NullableOption<string>;
    // Identifies whether the user is a member or guest in the tenant. Possible values are: member, guest, unknownFutureValue.
    userType?: NullableOption<SignInUserType>;
}
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 {
    /**
     * The method the user or admin selected as default for performing multifactor authentication for the user. The possible
     * values are: none, mobilePhone, alternateMobilePhone, officePhone, microsoftAuthenticatorPush, softwareOneTimePasscode,
     * unknownFutureValue.
     */
    defaultMfaMethod?: NullableOption<DefaultMfaMethodType>;
    /**
     * 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.
     */
    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 AuthenticationsMetric extends Entity {
    appid?: NullableOption<string>;
    attemptsCount?: number;
    country?: NullableOption<string>;
    factDate?: string;
    os?: NullableOption<string>;
    successCount?: number;
}
export interface AzureADAuthentication extends Entity {
    // A list of monthly serviceLevelAgreementAttainment objects.
    attainments?: ServiceLevelAgreementAttainment[];
}
export interface CredentialUsageSummary extends Entity {
    /**
     * Represents the authentication method that the user used. Possible values are:email, mobileSMS, mobileCall, officePhone,
     * securityQuestion (only used for self-service password reset), appNotification, appCode, alternateMobileCall (supported
     * only in registration), fido, appPassword, unknownFutureValue.
     */
    authMethod?: UsageAuthMethod;
    // Provides the count of failed resets or registration data.
    failureActivityCount?: number;
    // Defines the feature to report. Possible values are: registration, reset, unknownFutureValue.
    feature?: FeatureType;
    // Provides the count of successful registrations or resets.
    successfulActivityCount?: number;
}
export interface CredentialUserRegistrationCount extends Entity {
    // Provides the count of users with accountEnabled set to true in the tenant.
    totalUserCount?: number;
    // A collection of registration count and status information for users in your tenant.
    userRegistrationCounts?: UserRegistrationCount[];
}
export interface CredentialUserRegistrationDetails extends Entity {
    /**
     * Represents the authentication method that the user has registered. Possible values are: email, mobilePhone,
     * officePhone, securityQuestion (only used for self-service password reset), appNotification, appCode,
     * alternateMobilePhone (supported only in registration), fido, appPassword, unknownFutureValue.
     */
    authMethods?: RegistrationAuthMethod[];
    // Indicates whether the user is ready to perform self-service password reset or MFA.
    isCapable?: boolean;
    // Indicates whether the user enabled to perform self-service password reset.
    isEnabled?: boolean;
    // Indicates whether the user is registered for MFA.
    isMfaRegistered?: boolean;
    // Indicates whether the user has registered any authentication methods for self-service password reset.
    isRegistered?: boolean;
    // Provides the user name of the corresponding user.
    userDisplayName?: string;
    // Provides the user principal name of the corresponding user.
    userPrincipalName?: string;
}
// tslint:disable-next-line: interface-name
export interface InactiveUsersByApplicationMetricBase extends Entity {
    appId?: NullableOption<string>;
    factDate?: string;
    inactive30DayCount?: NullableOption<number>;
    inactive60DayCount?: NullableOption<number>;
    inactive90DayCount?: NullableOption<number>;
}
export interface DailyInactiveUsersByApplicationMetric extends InactiveUsersByApplicationMetricBase {
    inactive1DayCount?: NullableOption<number>;
}
// tslint:disable-next-line: interface-name
export interface InactiveUsersMetricBase extends Entity {
    factDate?: string;
    inactive30DayCount?: NullableOption<number>;
    inactive60DayCount?: NullableOption<number>;
    inactive90DayCount?: NullableOption<number>;
}
export interface DailyInactiveUsersMetric extends InactiveUsersMetricBase {
    inactive1DayCount?: NullableOption<number>;
}
export interface DailyUserInsightMetricsRoot extends Entity {
    activeUsers?: NullableOption<ActiveUsersMetric[]>;
    activeUsersBreakdown?: NullableOption<ActiveUsersBreakdownMetric[]>;
    authentications?: NullableOption<AuthenticationsMetric[]>;
    inactiveUsers?: NullableOption<DailyInactiveUsersMetric[]>;
    inactiveUsersByApplication?: NullableOption<DailyInactiveUsersByApplicationMetric[]>;
    mfaCompletions?: NullableOption<MfaCompletionMetric[]>;
    signUps?: NullableOption<UserSignUpMetric[]>;
    summary?: NullableOption<InsightSummary[]>;
    userCount?: NullableOption<UserCountMetric[]>;
}
export interface MfaCompletionMetric extends Entity {
    appId?: NullableOption<string>;
    attemptsCount?: number;
    factDate?: string;
    mfaMethod?: NullableOption<string>;
    os?: NullableOption<string>;
    successCount?: number;
}
export interface UserSignUpMetric extends Entity {
    count?: number;
    factDate?: string;
    os?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InsightSummary extends Entity {
    activeUsers?: number;
    appId?: string;
    authenticationCompletions?: number;
    authenticationRequests?: number;
    factDate?: string;
    os?: string;
    securityTextCompletions?: number;
    securityTextRequests?: number;
    securityVoiceCompletions?: number;
    securityVoiceRequests?: number;
}
export interface UserCountMetric extends Entity {
    count?: number;
    factDate?: string;
}
export interface Directory extends Entity {
    impactedResources?: NullableOption<ImpactedResource[]>;
    // List of recommended improvements to improve tenant posture.
    recommendations?: NullableOption<Recommendation[]>;
    // 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[]>;
    certificateAuthorities?: NullableOption<CertificateAuthorityPath>;
    // Schema of a custom security attributes (key-value pairs).
    customSecurityAttributeDefinitions?: NullableOption<CustomSecurityAttributeDefinition[]>;
    deletedItems?: NullableOption<DirectoryObject[]>;
    /**
     * Configure domain federation with organizations whose identity provider (IdP) supports either the SAML or WS-Fed
     * protocol.
     */
    federationConfigurations?: NullableOption<IdentityProviderBase[]>;
    // A collection of external Azure AD users whose profile data has been shared with the Azure AD tenant. Nullable.
    inboundSharedUserProfiles?: NullableOption<InboundSharedUserProfile[]>;
    // A container for on-premises directory synchronization functionalities that are available for the organization.
    onPremisesSynchronization?: NullableOption<OnPremisesDirectorySynchronization[]>;
    outboundSharedUserProfiles?: NullableOption<OutboundSharedUserProfile[]>;
    sharedEmailDomains?: NullableOption<SharedEmailDomain[]>;
    // List of commercial subscriptions that an organization has acquired.
    subscriptions?: NullableOption<CompanySubscription[]>;
    featureRolloutPolicies?: NullableOption<FeatureRolloutPolicy[]>;
}
// tslint:disable-next-line: interface-name
export interface ImpactedResource extends Entity {
    // The date and time when the impactedResource object was initially associated with the recommendation.
    addedDateTime?: string;
    // Additional information unique to the impactedResource to help contextualize the recommendation.
    additionalDetails?: NullableOption<KeyValue[]>;
    // The URL link to the corresponding Microsoft Entra resource.
    apiUrl?: NullableOption<string>;
    // Friendly name of the Microsoft Entra resource.
    displayName?: string;
    // Name of the user or service that last updated the status.
    lastModifiedBy?: string;
    // The date and time when the status was last updated.
    lastModifiedDateTime?: string;
    // The user responsible for maintaining the resource.
    owner?: NullableOption<string>;
    // The URL link to the corresponding Microsoft Entra admin center page of the resource.
    portalUrl?: NullableOption<string>;
    // The future date and time when the status of a postponed impactedResource will be active again.
    postponeUntilDateTime?: NullableOption<string>;
    // Indicates the importance of the resource. A resource with a rank equal to 1 is of the highest importance.
    rank?: NullableOption<number>;
    // The unique identifier of the recommendation that the resource is associated with.
    recommendationId?: string;
    // Indicates the type of Microsoft Entra resource. Examples include user, application.
    resourceType?: string;
    /**
     * Indicates whether a resource needs to be addressed. The possible values are: active, completedBySystem,
     * completedByUser, dismissed, postponed, unknownFutureValue. By default, a recommendation's status is set to active when
     * the recommendation is first generated. Status is set to completedBySystem when our service detects that a resource
     * which was once active no longer applies.
     */
    status?: RecommendationStatus;
    /**
     * The related unique identifier, depending on the resourceType. For example, this property is set to the applicationId if
     * the resourceType is an application.
     */
    subjectId?: string;
}
export interface RecommendationBase extends Entity {
    // List of actions to take to complete a recommendation.
    actionSteps?: NullableOption<ActionStep[]>;
    /**
     * An explanation of why completing the recommendation will benefit you. Corresponds to the Value section of a
     * recommendation shown in the Microsoft Entra admin center.
     */
    benefits?: NullableOption<string>;
    /**
     * Indicates the category of intelligent guidance that the recommendation falls under. The possible values are:
     * identityBestPractice, identitySecureScore, unknownFutureValue.
     */
    category?: RecommendationCategory;
    // The date and time when the recommendation was detected as applicable to your directory.
    createdDateTime?: string;
    // The number of points the tenant has attained. Only applies to recommendations with category set to identitySecureScore.
    currentScore?: NullableOption<number>;
    // The title of the recommendation.
    displayName?: string;
    // The directory feature that the recommendation is related to.
    featureAreas?: NullableOption<RecommendationFeatureAreas[]>;
    // The future date and time when a recommendation should be completed.
    impactStartDateTime?: NullableOption<string>;
    /**
     * Indicates the scope of impact of a recommendation. Tenant level indicates that the recommendation impacts the whole
     * tenant. Other possible values include users, applications.
     */
    impactType?: NullableOption<string>;
    /**
     * Describes why a recommendation uniquely applies to your directory. Corresponds to the Description section of a
     * recommendation shown in the Microsoft Entra admin center.
     */
    insights?: NullableOption<string>;
    // The most recent date and time a recommendation was deemed applicable to your directory.
    lastCheckedDateTime?: NullableOption<string>;
    // Name of the user who last updated the status of the recommendation.
    lastModifiedBy?: NullableOption<string>;
    // The date and time the status of a recommendation was last updated.
    lastModifiedDateTime?: NullableOption<string>;
    // The maximum number of points attainable. Only applies to recommendations with category set to identitySecureScore.
    maxScore?: NullableOption<number>;
    // The future date and time when the status of a postponed recommendation will be active again.
    postponeUntilDateTime?: NullableOption<string>;
    /**
     * Indicates the time sensitivity for a recommendation to be completed. Microsoft auto assigns this value. The possible
     * values are: low, medium, high.
     */
    priority?: RecommendationPriority;
    /**
     * Friendly shortname to identify the recommendation. The possible values are: adfsAppsMigration, enableDesktopSSO,
     * enablePHS, enableProvisioning, switchFromPerUserMFA, tenantMFA, thirdPartyApps, turnOffPerUserMFA, useAuthenticatorApp,
     * useMyApps, staleApps, staleAppCreds, applicationCredentialExpiry, servicePrincipalKeyExpiry, adminMFAV2,
     * blockLegacyAuthentication, integratedApps, mfaRegistrationV2, pwagePolicyNew, passwordHashSync, oneAdmin, roleOverlap,
     * selfServicePasswordReset, signinRiskPolicy, userRiskPolicy, verifyAppPublisher, privateLinkForAAD,
     * appRoleAssignmentsGroups, appRoleAssignmentsUsers, managedIdentity, overprivilegedApps, unknownFutureValue,
     * longLivedCredentials, aadConnectDeprecated, adalToMsalMigration, ownerlessApps, inactiveGuests. Also, please note that
     * you must use the Prefer: include-unknown-enum-members request header to get the following value(s) in this evolvable
     * enum: longLivedCredentials, aadConnectDeprecated, adalToMsalMigration, ownerlessApps, inactiveGuests.
     */
    recommendationType?: NullableOption<RecommendationType>;
    /**
     * The current release type of the recommendation. The possible values are: preview, generallyAvailable,
     * unknownFutureValue.
     */
    releaseType?: NullableOption<string>;
    /**
     * Description of the impact on users of the remediation. Only applies to recommendations with category set to
     * identitySecureScore.
     */
    remediationImpact?: NullableOption<string>;
    /**
     * Indicates the status of the recommendation based on user or system action. The possible values are: active,
     * completedBySystem, completedByUser, dismissed, postponed, unknownFutureValue. By default, a recommendation's status is
     * set to active when the recommendation is first generated. Status is set to completedBySystem when our service detects
     * that a recommendation which was previously active no longer applies.
     */
    status?: RecommendationStatus;
    // The list of directory objects associated with the recommendation.
    impactedResources?: NullableOption<ImpactedResource[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface Recommendation extends RecommendationBase {}
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 Microsoft Entra ID.
    lastBackupDateTime?: string;
    // When the local administrator account credential will be refreshed and backed up to Microsoft Entra ID.
    refreshDateTime?: string;
}
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>;
    /**
     * true if members of this administrative unit should be treated as sensitive, which requires specific permissions to
     * manage. Default value is false. Use this property to define administrative units whose roles don't inherit from
     * tenant-level administrators, and management of individual member objects is limited to administrators scoped to a
     * restricted management administrative unit. Immutable, so can't be changed later. For more information about working
     * with restricted management administrative units, see Restricted management administrative units in Microsoft Entra ID.
     */
    isMemberManagementRestricted?: NullableOption<boolean>;
    /**
     * Controls whether the administrative unit and its members are hidden or public. Can be set to HiddenMembership or
     * Public. If not set, 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 CertificateAuthorityPath extends Entity {
    /**
     * Defines the trusted certificate authorities for certificates that can be added to apps and service principals in the
     * tenant.
     */
    certificateBasedApplicationConfigurations?: NullableOption<CertificateBasedApplicationConfiguration[]>;
}
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[]>;
}
// tslint:disable-next-line: interface-name
export interface IdentityProviderBase extends Entity {
    // The display name of the identity provider.
    displayName?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InboundSharedUserProfile {
    // The name displayed in the address book for the user at the time when the sharing record was created. Read-only.
    displayName?: string;
    // The home tenant id of the external user. Read-only.
    homeTenantId?: string;
    // The object id of the external user. Read-only.
    userId?: string;
    // The user principal name (UPN) of the external user. Read-only.
    userPrincipalName?: string;
}
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 OutboundSharedUserProfile {
    // The object id of the external user. Read-only.
    userId?: string;
    // The collection of external Microsoft Entra tenants that the user has shared profile data with. Read-only.
    tenants?: NullableOption<TenantReference[]>;
}
export interface SharedEmailDomain extends Entity {
    provisioningStatus?: NullableOption<string>;
}
export interface CompanySubscription extends Entity {
    // The ID of this subscription in the commerce system. Alternate key.
    commerceSubscriptionId?: NullableOption<string>;
    /**
     * The date and time when this subscription 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>;
    // Whether the subscription is a free trial or purchased.
    isTrial?: NullableOption<boolean>;
    /**
     * The date and time when the subscription will move to the next state (as defined by the status property) if not renewed
     * by the tenant. 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.
     */
    nextLifecycleDateTime?: NullableOption<string>;
    ocpSubscriptionId?: NullableOption<string>;
    // The object ID of the account admin.
    ownerId?: NullableOption<string>;
    // The unique identifier for the Microsoft partner tenant that created the subscription on a customer tenant.
    ownerTenantId?: NullableOption<string>;
    // Indicates the entity that ownerId belongs to, for example, 'User'.
    ownerType?: NullableOption<string>;
    // The provisioning status of each service that's included in this subscription.
    serviceStatus?: ServicePlanInfo[];
    // The object ID of the SKU associated with this subscription.
    skuId?: NullableOption<string>;
    // The SKU associated with this subscription.
    skuPartNumber?: NullableOption<string>;
    // The status of this subscription. Possible values are: Enabled, Deleted, Suspended, Warning, LockedOut.
    status?: NullableOption<string>;
    // The number of seats included in this subscription.
    totalLicenses?: NullableOption<number>;
}
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 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 MonthlyInactiveUsersByApplicationMetric extends InactiveUsersByApplicationMetricBase {
    inactiveCalendarMonthCount?: NullableOption<number>;
}
export interface MonthlyInactiveUsersMetric extends InactiveUsersMetricBase {
    inactiveCalendarMonthCount?: NullableOption<number>;
}
export interface MonthlyUserInsightMetricsRoot extends Entity {
    activeUsers?: NullableOption<ActiveUsersMetric[]>;
    activeUsersBreakdown?: NullableOption<ActiveUsersBreakdownMetric[]>;
    authentications?: NullableOption<AuthenticationsMetric[]>;
    inactiveUsers?: NullableOption<MonthlyInactiveUsersMetric[]>;
    inactiveUsersByApplication?: NullableOption<MonthlyInactiveUsersByApplicationMetric[]>;
    mfaCompletions?: NullableOption<MfaCompletionMetric[]>;
    requests?: NullableOption<UserRequestsMetric[]>;
    signUps?: NullableOption<UserSignUpMetric[]>;
    summary?: NullableOption<InsightSummary[]>;
}
export interface UserRequestsMetric extends Entity {
    factDate?: string;
    requestCount?: number;
}
export interface RelyingPartyDetailedSummary extends Entity {
    // Number of failed sign in on Active Directory Federation Service in the period specified.
    failedSignInCount?: number;
    /**
     * Indication of whether the application can be moved to Microsoft Entra ID or require more investigation. Possible values
     * are: ready, needsReview, additionalStepsRequired, unknownFutureValue.
     */
    migrationStatus?: MigrationStatus;
    /**
     * Specifies all the validations check done on applications configuration details to evaluate if the application is ready
     * to be moved to Microsoft Entra ID.
     */
    migrationValidationDetails?: KeyValuePair[];
    /**
     * This identifier is used to identify the relying party to this Federation Service. It is used when issuing claims to the
     * relying party.
     */
    relyingPartyId?: string;
    /**
     * Name of application or other entity on the internet that uses an identity provider to authenticate a user who wants to
     * log in.
     */
    relyingPartyName?: string;
    // Specifies where the relying party expects to receive the token.
    replyUrls?: string[];
    // Uniquely identifies the Active Directory forest.
    serviceId?: string;
    /**
     * Number of successful / (number of successful + number of failed sign ins) on Active Directory Federation Service in the
     * period specified.
     */
    signInSuccessRate?: number;
    // Number of successful sign ins on Active Directory Federation Service.
    successfulSignInCount?: number;
    // Number of successful + failed sign ins failed sign ins on Active Directory Federation Service in the period specified.
    totalSignInCount?: number;
    // Number of unique users that have signed into the application.
    uniqueUserCount?: number;
}
export interface ReportRoot extends Entity {
    // Represents a collection of sign-in activities of application credentials.
    appCredentialSignInActivities?: NullableOption<AppCredentialSignInActivity[]>;
    // Represents a detailed summary of an application sign-in.
    applicationSignInDetailedSummary?: NullableOption<ApplicationSignInDetailedSummary[]>;
    // Container for navigation properties for Microsoft Entra authentication methods resources.
    authenticationMethods?: NullableOption<AuthenticationMethodsRoot>;
    // Details of the usage of self-service password reset and multi-factor authentication (MFA) for all registered users.
    credentialUserRegistrationDetails?: NullableOption<CredentialUserRegistrationDetails[]>;
    // A placeholder to the Microsoft Entra service activity.
    serviceActivity?: NullableOption<ServiceActivity>;
    // Represents a collection of sign-in activities of service principals.
    servicePrincipalSignInActivities?: NullableOption<ServicePrincipalSignInActivity[]>;
    // A placeholder to allow for the desired URL path for SLA.
    sla?: NullableOption<ServiceLevelAgreementRoot>;
    // Represents the self-service password reset (SSPR) usage for a given tenant.
    userCredentialUsageDetails?: NullableOption<UserCredentialUsageDetails[]>;
    userInsights?: NullableOption<UserInsightsRoot>;
    dailyPrintUsage?: NullableOption<PrintUsage[]>;
    // 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[]>;
    dailyPrintUsageSummariesByPrinter?: NullableOption<PrintUsageByPrinter[]>;
    dailyPrintUsageSummariesByUser?: 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[]>;
    monthlyPrintUsageSummariesByPrinter?: NullableOption<PrintUsageByPrinter[]>;
    monthlyPrintUsageSummariesByUser?: NullableOption<PrintUsageByUser[]>;
    // Provides the ability to launch a realistically simulated phishing attack that organizations can learn from.
    security?: NullableOption<SecurityReportsRoot>;
}
// tslint:disable-next-line: no-empty-interface
export interface ServiceActivity extends Entity {}
export interface ServicePrincipalSignInActivity extends Entity {
    // The application ID of the resource.
    appId?: string;
    /**
     * The sign-in activity of the application in a app-only authentication flow (app-to-app tokens) where the application
     * acts like a client.
     */
    applicationAuthenticationClientSignInActivity?: NullableOption<SignInActivity>;
    /**
     * The sign-in activity of the application in a app-only authentication flow (app-to-app tokens) where the application
     * acts like a resource.
     */
    applicationAuthenticationResourceSignInActivity?: NullableOption<SignInActivity>;
    // The sign-in activity of the application in a delegated flow (user sign-in) where the application acts like a client.
    delegatedClientSignInActivity?: NullableOption<SignInActivity>;
    // The sign-in activity of the application in a delegated flow (user sign-in) where the application acts like a resource.
    delegatedResourceSignInActivity?: NullableOption<SignInActivity>;
    /**
     * The most recent sign-in activity of the application across delegated or app-only flows where the application is used
     * either as a client or resource.
     */
    lastSignInActivity?: NullableOption<SignInActivity>;
}
export interface ServiceLevelAgreementRoot extends Entity {
    // Collects the Microsoft Entra SLA attainment for each month for a Microsoft Entra tenant.
    azureADAuthentication?: NullableOption<AzureADAuthentication>;
}
export interface UserCredentialUsageDetails extends Entity {
    /**
     * Represents the authentication method that the user used. Possible values are:email, mobileSMS, mobileCall, officePhone,
     * securityQuestion (only used for self-service password reset), appNotification, appCode, alternateMobileCall (supported
     * only in registration), fido, appPassword,unknownFutureValue
     */
    authMethod?: UsageAuthMethod;
    /**
     * 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.
     */
    eventDateTime?: string;
    // Provides the failure reason for the corresponding reset or registration workflow.
    failureReason?: string;
    // Possible values are: registration, reset, unknownFutureValue.
    feature?: FeatureType;
    // Indicates success or failure of the workflow.
    isSuccess?: boolean;
    // User name of the user performing the reset or registration workflow.
    userDisplayName?: string;
    // User principal name of the user performing the reset or registration workflow.
    userPrincipalName?: string;
}
export interface UserInsightsRoot extends Entity {
    daily?: NullableOption<DailyUserInsightMetricsRoot>;
    monthly?: NullableOption<MonthlyUserInsightMetricsRoot>;
}
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 (!)At sign (@)Number sign (#)Dollar sign ($)Percent (%)Circumflex (^)Ampersand
     * (&amp;)Asterisk (*)Parentheses (( ))Hyphen (-)Plus sign (+)Equal sign (=)Brackets ([ ])Braces ({ })Backslash (/)Slash
     * mark (/)Pipe (`
     */
    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. The default is false.
     */
    invitedUserType?: NullableOption<string>;
    // The URL the user can use to redeem their invitation. Read-only.
    inviteRedeemUrl?: NullableOption<string>;
    // The URL 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
     * (Preview).
     */
    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: PendingAcceptance, Completed, InProgress, and Error
    status?: NullableOption<string>;
    // The user created as part of the invitation creation. Read-Only
    invitedUser?: NullableOption<User>;
    /**
     * The users or groups who are sponsors of the invited user. Sponsors are users and groups that are responsible for guest
     * users' privileges in the tenant and for keeping the guest users' information and access up to date.
     */
    invitedUserSponsors?: NullableOption<DirectoryObject[]>;
}
export interface ActivityStatistics extends Entity {
    // The type of activity for which statistics are returned. The possible values are: call, chat, email, focus, and meeting.
    activity?: NullableOption<AnalyticsActivityType>;
    // Total hours spent on the activity. The value is represented in ISO 8601 format for durations.
    duration?: string;
    /**
     * Date when the activity ended, expressed in ISO 8601 format for calendar dates. For example, the property value could be
     * '2019-07-03' that follows the YYYY-MM-DD format.
     */
    endDate?: string;
    /**
     * Date when the activity started, expressed in ISO 8601 format for calendar dates. For example, the property value could
     * be '2019-07-04' that follows the YYYY-MM-DD format.
     */
    startDate?: string;
    /**
     * The time zone that the user sets in Microsoft Outlook is used for the computation. For example, the property value
     * could be 'Pacific Standard Time.'
     */
    timeZoneUsed?: NullableOption<string>;
}
export interface CallActivityStatistics extends ActivityStatistics {
    /**
     * Time spent on calls outside of working hours, which is based on the user's Outlook calendar setting for work hours. The
     * value is represented in ISO 8601 format for durations.
     */
    afterHours?: string;
}
export interface ChatActivityStatistics extends ActivityStatistics {
    /**
     * Time spent on chats outside of working hours, which is based on the user's Microsoft Outlook calendar setting for work
     * hours. The value is represented in ISO 8601 format for durations.
     */
    afterHours?: string;
}
export interface EmailActivityStatistics extends ActivityStatistics {
    /**
     * Total hours spent on email outside of working hours, which is based on the user's Outlook calendar setting for work
     * hours. The value is represented in ISO 8601 format for durations.
     */
    afterHours?: string;
    // Total hours spent reading email. The value is represented in ISO 8601 format for durations.
    readEmail?: string;
    // Total hours spent writing and sending email. The value is represented in ISO 8601 format for durations.
    sentEmail?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface FocusActivityStatistics extends ActivityStatistics {}
export interface MeetingActivityStatistics extends ActivityStatistics {
    /**
     * Time spent on meetings outside of working hours, which is based on the user's Outlook calendar setting for work hours.
     * The value is represented in ISO 8601 format for durations.
     */
    afterHours?: string;
    /**
     * Time spent in conflicting meetings (meetings that overlap with other meetings that the person accepted and where the
     * person’s status is set to Busy). The value is represented in ISO 8601 format for durations.
     */
    conflicting?: string;
    // Time spent in long meetings (more than an hour in duration). The value is represented in ISO 8601 format for durations.
    long?: string;
    /**
     * Time spent in meetings where the person was multitasking (read/sent more than a minimum number of emails and/or sent
     * more than a minimum number of messages in Teams or in Skype for Business). The value is represented in ISO 8601 format
     * for durations.
     */
    multitasking?: string;
    // Time spent in meetings organized by the user. The value is represented in ISO 8601 format for durations.
    organized?: string;
    // Time spent on recurring meetings. The value is represented in ISO 8601 format for durations.
    recurring?: string;
}
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>;
    informationalUrls?: NullableOption<InformationalUrls>;
    // The URL to get the logo for this application.
    logoUrl?: NullableOption<string>;
    // The name of the publisher for this application.
    publisher?: NullableOption<string>;
    supportedClaimConfiguration?: NullableOption<SupportedClaimConfiguration>;
    // 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 publishedPermissionScopes 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 publishedPermissionScopes collection of the
     * servicePrincipal. Doesn't support $filter.
     */
    permissionName?: NullableOption<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 SolutionsRoot {
    businessScenarios?: NullableOption<BusinessScenario[]>;
    virtualEvents?: NullableOption<VirtualEventsRoot>;
}
export interface BusinessScenario extends Entity {
    // The identity of the user who created the scenario.
    createdBy?: NullableOption<IdentitySet>;
    /**
     * The date and time when the scenario 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;
    // Display name of the scenario.
    displayName?: NullableOption<string>;
    // The identity of the user who last modified the scenario.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * The date and time when the scenario 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?: string;
    // Identifiers of applications that are authorized to work with this scenario.
    ownerAppIds?: NullableOption<string[]>;
    /**
     * Unique name of the scenario. To avoid conflicts, the recommended value for the unique name is a reverse domain name
     * format, owned by the author of the scenario. For example, a scenario authored by Contoso.com would have a unique name
     * that starts with com.contoso.
     */
    uniqueName?: NullableOption<string>;
    // Planner content related to the scenario.
    planner?: NullableOption<BusinessScenarioPlanner>;
}
export interface VirtualEventsRoot extends Entity {
    events?: NullableOption<VirtualEvent[]>;
    townhalls?: NullableOption<VirtualEventTownhall[]>;
    webinars?: NullableOption<VirtualEventWebinar[]>;
}
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.
    description?: NullableOption<string>;
    // The name of the policy.
    displayName?: NullableOption<string>;
    // The date and time of the last update to the policy.
    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. Don't use.
     */
    policyMigrationState?: NullableOption<AuthenticationMethodsPolicyMigrationState>;
    // The version of the policy in use.
    policyVersion?: NullableOption<string>;
    // Days before the user will be asked to reconfirm their method.
    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>;
    /**
     * Enable users to report unexpected voice call or phone app notification multi-factor authentication prompts as
     * suspicious.
     */
    reportSuspiciousActivitySettings?: NullableOption<ReportSuspiciousActivitySettings>;
    // Prompt users with their most-preferred credential for multifactor authentication.
    systemCredentialPreferences?: NullableOption<SystemCredentialPreferences>;
    /**
     * 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: group, and unknownFutureValue. From December 2022, targeting individual users using user is no
     * longer recommended. Existing targets remain but we recommend moving the individual users to a targeted 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 Conditional Access 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 {
    // A collection of all valid authentication method combinations in the system.
    authenticationCombinations?: AuthenticationMethodModes[];
    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 {
    /**
     * Defines the authentication strength policies, valid authentication method combinations, and authentication method mode
     * details that can be required by a conditional access policy.
     */
    authenticationStrength?: NullableOption<AuthenticationStrengthRoot>;
    authenticationStrengths?: 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 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, selection UX.
     */
    description?: NullableOption<string>;
    /**
     * A friendly name that identifies the authenticationContextClassReference object 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 selection UX used to tag resources with authentication
     * context class values. It will still be shown in the Conditional Access policy authoring experience. 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>;
    // Not used.
    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;
}
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 will automatically 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>;
}
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 HardwareOathAuthenticationMethodConfiguration extends AuthenticationMethodConfiguration {
    // A collection of groups that are enabled to use the authentication method. Expanded by default.
    includeTargets?: NullableOption<AuthenticationMethodTarget[]>;
}
export interface MicrosoftAuthenticatorAuthenticationMethodConfiguration extends AuthenticationMethodConfiguration {
    /**
     * A collection of Microsoft Authenticator settings such as number matching and location context, and whether they are
     * enabled for all users or specific users only.
     */
    featureSettings?: NullableOption<MicrosoftAuthenticatorFeatureSettings>;
    // true if users can use the OTP code generated by the Microsoft Authenticator app, false otherwise.
    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. The possible values are: deviceBasedPush (passwordless
     * only), push, and any.
     */
    authenticationMode?: MicrosoftAuthenticatorAuthenticationMode;
}
export interface PolicyRoot {
    /**
     * 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 guests.
    authenticationFlowsPolicy?: NullableOption<AuthenticationFlowsPolicy>;
    // The Azure AD B2C policies that define how end users register via local accounts.
    b2cAuthenticationMethodsPolicy?: NullableOption<B2cAuthenticationMethodsPolicy>;
    deviceRegistrationPolicy?: NullableOption<DeviceRegistrationPolicy>;
    // 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>;
    /**
     * Represents the tenant-wide policy that controls whether guests can leave a Microsoft Entra tenant via self-service
     * controls.
     */
    externalIdentitiesPolicy?: NullableOption<ExternalIdentitiesPolicy>;
    federatedTokenValidationPolicy?: NullableOption<FederatedTokenValidationPolicy>;
    // 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[]>;
    servicePrincipalCreationPolicies?: NullableOption<ServicePrincipalCreationPolicy[]>;
    // 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 that contains directory-level access review settings.
    accessReviewPolicy?: NullableOption<AccessReviewPolicy>;
    // The policy by which consent requests are created and managed for the entire tenant.
    adminConsentRequestPolicy?: NullableOption<AdminConsentRequestPolicy>;
    directoryRoleAccessReviewPolicy?: NullableOption<DirectoryRoleAccessReviewPolicy>;
    // 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>;
    // The policy that defines autoenrollment configuration for a mobility management (MDM or MAM) application.
    mobileAppManagementPolicies?: NullableOption<MobilityManagementPolicy[]>;
    mobileDeviceManagementPolicies?: NullableOption<MobilityManagementPolicy[]>;
    // Represents the role management policies.
    roleManagementPolicies?: NullableOption<UnifiedRoleManagementPolicy[]>;
    // Represents the role management policy assignments.
    roleManagementPolicyAssignments?: NullableOption<UnifiedRoleManagementPolicyAssignment[]>;
}
export interface AuthenticationFlowsPolicy extends Entity {
    // Inherited property. A description of the policy. This property isn't a key. Optional. Read-only.
    description?: NullableOption<string>;
    // Inherited property. The human-readable name of the policy. This property isn't a key. Optional. Read-only.
    displayName?: NullableOption<string>;
    /**
     * Contains selfServiceSignUpAuthenticationFlowConfiguration settings that convey whether self-service sign-up is enabled
     * or disabled. This property isn't a key. Optional. Read-only.
     */
    selfServiceSignUp?: NullableOption<SelfServiceSignUpAuthenticationFlowConfiguration>;
}
export interface B2cAuthenticationMethodsPolicy extends Entity {
    // The tenant admin can configure local accounts using email if the email and password authentication method is enabled.
    isEmailPasswordAuthenticationEnabled?: boolean;
    /**
     * The tenant admin can configure local accounts using phone number if the phone number and one-time password
     * authentication method is enabled.
     */
    isPhoneOneTimePasswordAuthenticationEnabled?: boolean;
    /**
     * The tenant admin can configure local accounts using username if the username and password authentication method is
     * enabled.
     */
    isUserNameAuthenticationEnabled?: boolean;
}
export interface DeviceRegistrationPolicy extends Entity {
    /**
     * Specifies the authorization policy for controlling registration of new devices using Microsoft Entra join within your
     * organization. Required. For more information, see What is a device identity?.
     */
    azureADJoin?: NullableOption<AzureADJoinPolicy>;
    /**
     * Specifies the authorization policy for controlling registration of new devices using Microsoft Entra registered within
     * your organization. Required. For more information, see What is a device identity?.
     */
    azureADRegistration?: NullableOption<AzureADRegistrationPolicy>;
    /**
     * The description of the device registration policy. It's always set to Tenant-wide policy that manages intial
     * provisioning controls using quota restrictions, additional authentication and authorization checks. Read-only.
     */
    description?: NullableOption<string>;
    // The name of the device registration policy. It's always set to Device Registration Policy. Read-only.
    displayName?: NullableOption<string>;
    // Specifies the setting for Local Admin Password Solution (LAPS) within your organization.
    localAdminPassword?: NullableOption<LocalAdminPasswordSettings>;
    /**
     * Specifies the authentication policy for a user to complete registration using Microsoft Entra join or Microsoft Entra
     * registered within your organization. The possible values are: 0 (meaning notRequired), 1 (meaning required), and 2
     * (meaning unknownFutureValue). The default value is 0.
     */
    multiFactorAuthConfiguration?: MultiFactorAuthConfiguration;
    /**
     * Specifies the maximum number of devices that a user can have within your organization before blocking new device
     * registrations. The default value is set to 50. If this property isn't specified during the policy update operation,
     * it's automatically reset to 0 to indicate that users aren't allowed to join any devices.
     */
    userDeviceQuota?: number;
}
// 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 guests to the organization. Possible values are: none, adminsAndGuestInviters,
     * adminsGuestInvitersAndAllMembers, everyone. everyone is the default setting for all cloud environments except US
     * Government. See more in the table below.
     */
    allowInvitesFrom?: NullableOption<AllowInvitesFrom>;
    /**
     * Indicates whether user consent for risky apps is allowed. Default value is false. We recommend that you keep the value
     * set to false.
     */
    allowUserConsentForRiskyApps?: NullableOption<boolean>;
    /**
     * To disable the use of the MSOnline PowerShell module set this property to true. This will also disable user-based
     * access to the legacy service endpoint used by the MSOnline PowerShell module. This doesn't affect Microsoft Entra
     * Connect or Microsoft Graph.
     */
    blockMsolPowerShell?: NullableOption<boolean>;
    // Specifies certain customizable permissions for default user role.
    defaultUserRolePermissions?: DefaultUserRolePermissions;
    // List of features enabled for private preview on the tenant.
    enabledPreviewFeatures?: NullableOption<string[]>;
    /**
     * Represents role templateId for the role that should be granted to guests. Refer to List unifiedRoleDefinitions to find
     * the list of available role templates. 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>;
    /**
     * Indicates if user consent to apps is allowed, and if it is, which app consent policy (permissionGrantPolicy) governs
     * the permission for users to grant consent. Values 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.
     */
    permissionGrantPolicyIdsAssignedToDefaultUserRole?: NullableOption<string[]>;
    defaultUserRoleOverrides?: NullableOption<DefaultUserRoleOverride[]>;
}
export interface TenantRelationshipAccessPolicyBase extends PolicyBase {
    definition?: string[];
}
export interface CrossTenantAccessPolicy extends TenantRelationshipAccessPolicyBase {
    /**
     * 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[]>;
    // Represents the base policy in the directory for multi-tenant organization settings.
    templates?: NullableOption<PolicyTemplate>;
}
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 ExternalIdentitiesPolicy extends PolicyBase {
    // Reserved for future use.
    allowDeletedIdentitiesDataRemoval?: boolean;
    /**
     * Defines whether external users can leave the guest tenant. If set to false, self-service controls are disabled, and the
     * admin of the guest tenant must manually remove the external user from the guest tenant. When the external user leaves
     * the tenant, their data in the guest tenant is first soft-deleted then permanently deleted in 30 days.
     */
    allowExternalIdentitiesToLeave?: boolean;
}
export interface FederatedTokenValidationPolicy extends DirectoryObject {
    validatingDomains?: ValidatingDomains;
}
export interface PermissionGrantPolicy extends PolicyBase {
    // Condition sets that are excluded in this permission grant policy. Automatically expanded on GET.
    excludes?: NullableOption<PermissionGrantConditionSet[]>;
    // Condition sets that are included in this permission grant policy. Automatically expanded on GET.
    includes?: NullableOption<PermissionGrantConditionSet[]>;
}
export interface ServicePrincipalCreationPolicy extends PolicyBase {
    isBuiltIn?: NullableOption<boolean>;
    excludes?: NullableOption<ServicePrincipalCreationConditionSet[]>;
    includes?: NullableOption<ServicePrincipalCreationConditionSet[]>;
}
export interface AccessReviewPolicy extends Entity {
    // Description for this policy. Read-only.
    description?: NullableOption<string>;
    // Display name for this policy. Read-only.
    displayName?: string;
    // If true, group owners can create and manage access reviews on groups they own.
    isGroupOwnerManagementEnabled?: boolean;
}
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;
    // Required.
    reviewers?: NullableOption<AccessReviewReviewerScope[]>;
    // Specifies the version of this policy. When the policy is updated, this version is updated. Read-only.
    version?: number;
}
export interface DirectoryRoleAccessReviewPolicy extends Entity {
    settings?: NullableOption<AccessReviewScheduleSettings>;
}
// 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 MobilityManagementPolicy extends Entity {
    // Indicates the user scope of the mobility management policy. Possible values are: none, all, selected.
    appliesTo?: NullableOption<PolicyScope>;
    // Compliance URL of the mobility management application.
    complianceUrl?: NullableOption<string>;
    // Description of the mobility management application.
    description?: NullableOption<string>;
    // Discovery URL of the mobility management application.
    discoveryUrl?: NullableOption<string>;
    // Display name of the mobility management application.
    displayName?: NullableOption<string>;
    // Whether policy is valid. Invalid policies may not be updated and should be deleted.
    isValid?: NullableOption<boolean>;
    // Terms of Use URL of the mobility management application.
    termsOfUseUrl?: NullableOption<string>;
    // Microsoft Entra groups under the scope of the mobility management application if appliesTo is selected
    includedGroups?: NullableOption<Group[]>;
}
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<VoiceAuthenticationMethodTarget[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface VoiceAuthenticationMethodTarget extends 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[]>;
    /**
     * Determines whether issuer(CA) hints are sent back to the client side to filter the certificates shown in certificate
     * picker.
     */
    issuerHintsConfiguration?: NullableOption<X509CertificateIssuerHintsConfiguration>;
    // A collection of groups that are enabled to use the authentication method.
    includeTargets?: NullableOption<AuthenticationMethodTarget[]>;
}
export interface SearchEntity extends Entity {
    // Administrative answer in Microsoft Search results to define common acronyms in a organization.
    acronyms?: NullableOption<Search.Acronym[]>;
    // Administrative answer in Microsoft Search results for common search queries in an organization.
    bookmarks?: NullableOption<Search.Bookmark[]>;
    /**
     * Administrative answer in Microsoft Search results which provide answers for specific search keywords in an
     * organization.
     */
    qnas?: NullableOption<Search.Qna[]>;
}
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.
    createdDateTime?: string;
    // ID of the device the BitLocker key is originally backed up from.
    deviceId?: NullableOption<string>;
    // The BitLocker recovery key.
    key?: string;
    /**
     * Indicates the type of volume the BitLocker key is associated with. Possible values are: operatingSystemVolume,
     * fixedDataVolume, removableDataVolume, unknownFutureValue.
     */
    volumeType?: NullableOption<VolumeType>;
}
export interface DataLossPreventionPolicy extends Entity {
    name?: NullableOption<string>;
}
export interface SensitivityLabel extends Entity {
    applicableTo?: NullableOption<SensitivityLabelTarget>;
    applicationMode?: NullableOption<ApplicationMode>;
    assignedPolicies?: NullableOption<LabelPolicy[]>;
    autoLabeling?: NullableOption<AutoLabeling>;
    description?: NullableOption<string>;
    displayName?: NullableOption<string>;
    isDefault?: NullableOption<boolean>;
    isEndpointProtectionEnabled?: NullableOption<boolean>;
    labelActions?: NullableOption<LabelActionBase[]>;
    name?: NullableOption<string>;
    priority?: NullableOption<number>;
    toolTip?: NullableOption<string>;
    sublabels?: NullableOption<SensitivityLabel[]>;
}
export interface SensitivityPolicySettings extends Entity {
    applicableTo?: NullableOption<SensitivityLabelTarget>;
    downgradeSensitivityRequiresJustification?: NullableOption<boolean>;
    helpWebUrl?: NullableOption<string>;
    isMandatory?: NullableOption<boolean>;
}
// tslint:disable-next-line: interface-name
export interface InformationProtectionPolicy extends Entity {
    labels?: NullableOption<InformationProtectionLabel[]>;
}
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: user, 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>;
    // The SMTP address of the bookingCustomer who is booking the appointment.
    customerEmailAddress?: NullableOption<string>;
    /**
     * If CustomerId is not specified when an appointment is created then a new customer is created based on the appointment
     * customer information. Once set, the customerId should be considered immutable.
     */
    customerId?: NullableOption<string>;
    // Represents location information for the bookingCustomer who is booking the appointment.
    customerLocation?: NullableOption<Location>;
    // The customer's name.
    customerName?: NullableOption<string>;
    /**
     * The value of this property is only available when reading an individual booking appointment by id. Its value can only
     * be set when creating a new appointment with a new customer, ie, without specifying a CustomerId. After that, the
     * property is computed from the customer represented by CustomerId.
     */
    customerNotes?: NullableOption<string>;
    // The customer's phone number.
    customerPhone?: NullableOption<string>;
    /**
     * A collection of the customer properties for an appointment. An appointment will contain 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.
    end?: DateTimeTimeZone;
    // The current number of customers in the appointment.
    filledAttendeesCount?: number;
    // The billed amount on the invoice.
    invoiceAmount?: number;
    // The date, time, and time zone of the invoice for this appointment.
    invoiceDate?: NullableOption<DateTimeTimeZone>;
    // The ID of the invoice.
    invoiceId?: NullableOption<string>;
    // The status of the invoice. Possible values are: draft, reviewing, open, canceled, paid, corrective.
    invoiceStatus?: BookingInvoiceStatus;
    // The URL of the invoice in Microsoft Bookings.
    invoiceUrl?: NullableOption<string>;
    // 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;
    onlineMeetingUrl?: NullableOption<string>;
    /**
     * True indicates that the bookingCustomer for this appointment does not 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.
     */
    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>;
    // 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.
    start?: DateTimeTimeZone;
}
export interface BookingNamedEntity extends Entity {
    // The display name is suitable for human-readable interfaces.
    displayName?: string;
}
export interface BookingBusiness extends BookingNamedEntity {
    /**
     * The street address of the business. The address property, together with phone and webSiteUrl, appear in the footer of a
     * business scheduling page.
     */
    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 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<BookingCustomer[]>;
    // 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<BookingStaffMember[]>;
}
export interface BookingPerson extends BookingNamedEntity {
    // The email address of the person.
    emailAddress?: NullableOption<string>;
}
export interface BookingCustomer extends BookingPerson {
    // Addresses associated with the customer, including home, business and other addresses.
    addresses?: NullableOption<PhysicalAddress[]>;
    // Phone numbers associated with the customer, including home, business and mobile numbers.
    phones?: NullableOption<Phone[]>;
}
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 BookingNamedEntity {
    // 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>;
    // True if an anonymousJoinWebUrl(webrtcUrl) will be generated for the appointment booked for this service.
    isAnonymousJoinEnabled?: boolean;
    // True means this service isn't 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?: NullableOption<boolean>;
    // Represents those staff members who provide this service.
    staffMemberIds?: NullableOption<string[]>;
    // The URL a customer uses to access the service.
    webUrl?: NullableOption<string>;
}
export interface BookingStaffMember extends BookingPerson {
    /**
     * 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;
    /**
     * Identifies a color to represent the staff member. The color corresponds to the color palette in the Staff details page
     * in the Bookings app.
     */
    colorIndex?: NullableOption<number>;
    // True indicates that a staff member will be notified via email when a booking assigned to them is created or changed.
    isEmailNotificationEnabled?: boolean;
    membershipStatus?: BookingStaffMembershipStatus;
    /**
     * 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 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 BusinessScenarioPlanner extends Entity {
    // The configuration of Planner plans that will be created for the scenario.
    planConfiguration?: NullableOption<PlannerPlanConfiguration>;
    // The configuration of Planner tasks that will be created for the scenario.
    taskConfiguration?: NullableOption<PlannerTaskConfiguration>;
    // The Planner tasks for the scenario.
    tasks?: NullableOption<BusinessScenarioTask[]>;
}
export interface PlannerPlanConfiguration extends Entity {
    // List the buckets that should be created in the plan.
    buckets?: NullableOption<PlannerPlanConfigurationBucketDefinition[]>;
    // The identity of the creator of the plan configuration.
    createdBy?: NullableOption<IdentitySet>;
    /**
     * The date and time when the plan configuration 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;
    // The language code for the default language to be used for the names of the objects created for the plan.
    defaultLanguage?: NullableOption<string>;
    // The identity of the user who last modified the plan configuration.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * The date and time when the plan configuration 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?: string;
    // Localized names for the plan configuration.
    localizations?: NullableOption<PlannerPlanConfigurationLocalization[]>;
}
export interface PlannerTaskConfiguration extends Entity {
    // Policy configuration for tasks created for the businessScenario when they're being changed outside of the scenario.
    editPolicy?: NullableOption<PlannerTaskPolicy>;
}
export interface PlannerTask extends PlannerDelta {
    // 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 is 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>;
    // Contains information about the origin of the task.
    creationSource?: NullableOption<PlannerTaskCreation>;
    /**
     * 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. Possible values are: automatic, noPreview, checklist,
     * description, reference.
     */
    previewType?: NullableOption<PlannerPreviewType>;
    /**
     * Priority of the task. Valid range of values is between 0 and 10 (inclusive), with 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 and 3 and 4 as 'important', 5, 6, and 7 as 'medium', and 8, 9, and 10 as 'low'. Currently, Planner sets the value 1
     * for 'urgent', 3 for 'important', 5 for 'medium', and 9 for 'low'.
     */
    priority?: NullableOption<number>;
    // Defines active or inactive recurrence for the task. null when the recurrence has never been defined for the task.
    recurrence?: NullableOption<PlannerTaskRecurrence>;
    // Number of external references that exist on the task.
    referenceCount?: NullableOption<number>;
    /**
     * Indicates all the requirements specified on the plannerTask. Possible values are: none, checklistCompletion,
     * unknownFutureValue. Read-only. The plannerTaskCompletionRequirementDetails in plannerTaskDetails has details of the
     * requirements specified, if any.
     */
    specifiedCompletionRequirements?: NullableOption<PlannerTaskCompletionRequirements>;
    /**
     * 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. Additional 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 BusinessScenarioTask extends PlannerTask {
    /**
     * Scenario-specific properties of the task. externalObjectId and externalBucketId properties must be specified when
     * creating a task.
     */
    businessScenarioProperties?: NullableOption<BusinessScenarioProperties>;
    // Target of the task that specifies where the task should be placed. Must be specified when creating a task.
    target?: NullableOption<BusinessScenarioTaskTargetBase>;
}
export interface PlannerPlanConfigurationLocalization extends Entity {
    // Localized names for configured buckets in the plan configuration.
    buckets?: NullableOption<PlannerPlanConfigurationBucketLocalization[]>;
    // The language code associated with the localized names in this object.
    languageTag?: NullableOption<string>;
    // Localized title of the plan.
    planTitle?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IdentityContainer {
    // Represents entry point for API connectors.
    apiConnectors?: NullableOption<IdentityApiConnector[]>;
    authenticationEventListeners?: NullableOption<AuthenticationEventListener[]>;
    /**
     * Represents the entry point for self-service sign up and sign in user flows in both Microsoft Entra workforce and
     * customer tenants.
     */
    authenticationEventsFlows?: NullableOption<AuthenticationEventsFlow[]>;
    // Represents entry point for B2C identity userflows.
    b2cUserFlows?: NullableOption<B2cIdentityUserFlow[]>;
    // Represents entry point for B2X and self-service sign-up identity userflows.
    b2xUserFlows?: NullableOption<B2xIdentityUserFlow[]>;
    customAuthenticationExtensions?: NullableOption<CustomAuthenticationExtension[]>;
    // Represents entry point for identity provider base.
    identityProviders?: NullableOption<IdentityProviderBase[]>;
    // Represents entry point for identity userflow attributes.
    userFlowAttributes?: NullableOption<IdentityUserFlowAttribute[]>;
    userFlows?: NullableOption<IdentityUserFlow[]>;
    // the entry point for the Conditional Access (CA) object model.
    conditionalAccess?: NullableOption<ConditionalAccessRoot>;
    // Represents entry point for continuous access evaluation policy.
    continuousAccessEvaluationPolicy?: NullableOption<ContinuousAccessEvaluationPolicy>;
}
// 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>;
}
export interface AuthenticationEventListener extends Entity {
    // The identifier of the authenticationEventsFlow object.
    authenticationEventsFlowId?: NullableOption<string>;
    // The conditions on which this authenticationEventListener should trigger.
    conditions?: NullableOption<AuthenticationConditions>;
    // The priority of this handler. Between 0 (lower priority) and 1000 (higher priority).
    priority?: number;
}
export interface AuthenticationEventsFlow extends Entity {
    /**
     * The conditions representing the context of the authentication request that will be used to decide whether the events
     * policy will be invoked.
     */
    conditions?: NullableOption<AuthenticationConditions>;
    // The description of the events policy.
    description?: NullableOption<string>;
    // Required. The display name for the events policy.
    displayName?: string;
    /**
     * The priority to use for each individual event of the events policy. If multiple competing listeners for an event have
     * the same priority, one is chosen and an error is silently logged. Defaults to 500.
     */
    priority?: number;
}
// tslint:disable-next-line: interface-name
export interface IdentityUserFlow extends Entity {
    userFlowType?: UserFlowType;
    userFlowTypeVersion?: number;
}
export interface B2cIdentityUserFlow extends IdentityUserFlow {
    /**
     * Configuration for enabling an API connector for use as part of the user flow. You can only obtain the value of this
     * object using Get userFlowApiConnectorConfiguration.
     */
    apiConnectorConfiguration?: NullableOption<UserFlowApiConnectorConfiguration>;
    /**
     * Indicates the default language of the b2cIdentityUserFlow that is used when no ui_locale tag is specified in the
     * request. This field is RFC 5646 compliant.
     */
    defaultLanguageTag?: NullableOption<string>;
    /**
     * The property that determines whether language customization is enabled within the B2C user flow. Language customization
     * is not enabled by default for B2C user flows.
     */
    isLanguageCustomizationEnabled?: boolean;
    identityProviders?: NullableOption<IdentityProvider[]>;
    /**
     * The languages supported for customization within the user flow. Language customization is not enabled by default in B2C
     * user flows.
     */
    languages?: NullableOption<UserFlowLanguageConfiguration[]>;
    // The user attribute assignments included in the user flow.
    userAttributeAssignments?: NullableOption<IdentityUserFlowAttributeAssignment[]>;
    userFlowIdentityProviders?: NullableOption<IdentityProviderBase[]>;
}
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>;
    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: no-empty-interface
export interface CustomAuthenticationExtension extends CustomCalloutExtension {}
// 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;
}
export interface ContinuousAccessEvaluationPolicy extends Entity {
    /**
     * Continuous access evaluation automatically blocks access to resources and applications in near real time when a user's
     * access is removed or a client IP address changes. Read-only.
     */
    description?: string;
    // The value is always Continuous Access Evaluation. Read-only.
    displayName?: string;
    /**
     * The collection of group identifiers in scope for evaluation. All groups are in scope when the collection is empty.
     * Read-only.
     */
    groups?: string[];
    // true to indicate whether continuous access evaluation should be performed; otherwise false. Read-only.
    isEnabled?: boolean;
    /**
     * true to indicate that the continuous access evaluation policy settings should be or has been migrated to the
     * conditional access policy.
     */
    migrate?: boolean;
    /**
     * The collection of user identifiers in scope for evaluation. All users are in scope when the collection is empty.
     * Read-only.
     */
    users?: string[];
}
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. This property is 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. This property is
     * read only.
     */
    type?: NullableOption<string>;
}
export interface CloudPcAuditEvent extends Entity {
    // Friendly name of the activity. Optional.
    activity?: NullableOption<string>;
    // The date time in UTC when the activity was performed. Read-only.
    activityDateTime?: string;
    // The HTTP operation type of the activity. Possible values include create, delete, patch and other. Read-only.
    activityOperationType?: CloudPcAuditActivityOperationType;
    // The result of the activity. Read-only.
    activityResult?: CloudPcAuditActivityResult;
    // The type of activity that was performed. Read-only.
    activityType?: string;
    // Microsoft Entra user and application associated with the audit event. Read-only.
    actor?: CloudPcAuditActor;
    // Audit category. Read-only.
    category?: CloudPcAuditCategory;
    // Component name. Read-only.
    componentName?: string;
    // The client request identifier, used to correlate activity within the system. Read-only.
    correlationId?: string;
    // Event display name. Read-only.
    displayName?: string;
    // List of cloudPcAuditResource objects. Read-only.
    resources?: CloudPcAuditResource[];
}
export interface CloudPcBulkAction extends Entity {
    actionSummary?: NullableOption<CloudPcBulkActionSummary>;
    cloudPcIds?: string[];
    createdDateTime?: NullableOption<string>;
    displayName?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface CloudPcBulkPowerOff extends CloudPcBulkAction {}
// tslint:disable-next-line: no-empty-interface
export interface CloudPcBulkPowerOn extends CloudPcBulkAction {}
// tslint:disable-next-line: no-empty-interface
export interface CloudPcBulkReprovision extends CloudPcBulkAction {}
export interface CloudPcBulkResize extends CloudPcBulkAction {
    targetServicePlanId?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface CloudPcBulkRestart extends CloudPcBulkAction {}
export interface CloudPcBulkRestore extends CloudPcBulkAction {
    restorePointDateTime?: string;
    timeRange?: RestoreTimeRange;
}
// tslint:disable-next-line: no-empty-interface
export interface CloudPcBulkTroubleshoot extends CloudPcBulkAction {}
export interface CloudPcCrossCloudGovernmentOrganizationMapping extends Entity {
    /**
     * The tenant ID in the Azure Government cloud corresponding to the GCC tenant in the public cloud. Currently, 1:1
     * mappings are supported, so this collection can only contain one tenant ID.
     */
    organizationIdsInUSGovCloud?: NullableOption<string[]>;
}
export interface CloudPcDeviceImage extends Entity {
    // The display name of the image.
    displayName?: NullableOption<string>;
    // The date the image became unavailable.
    expirationDate?: NullableOption<string>;
    /**
     * The data and time that the image was last modified. The time is shown in ISO 8601 format and Coordinated Universal Time
     * (UTC) time. For example, midnight UTC on Jan 1, 2014 appears as 2014-01-01T00:00:00Z.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // The operating system of the image. For example, Windows 10 Enterprise.
    operatingSystem?: NullableOption<string>;
    // The OS build version of the image. For example, 1909.
    osBuildNumber?: NullableOption<string>;
    // The OS status of this image. Possible values are: supported, supportedWithWarning, unknownFutureValue.
    osStatus?: NullableOption<CloudPcDeviceImageOsStatus>;
    scopeIds?: NullableOption<string[]>;
    /**
     * The ID of the source image resource on Azure. Required format:
     * /subscriptions/{subscription-id}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}.
     */
    sourceImageResourceId?: NullableOption<string>;
    // The status of the image on Cloud PC. Possible values are: pending, ready, failed.
    status?: NullableOption<CloudPcDeviceImageStatus>;
    /**
     * The details of the status of the image that indicates why the upload failed, if applicable. Possible values are:
     * internalServerError, sourceImageNotFound, osVersionNotSupported, sourceImageInvalid, and sourceImageNotGeneralized.
     */
    statusDetails?: NullableOption<CloudPcDeviceImageStatusDetails>;
    // The image version. For example, 0.0.1 and 1.5.13.
    version?: NullableOption<string>;
}
export interface CloudPcExportJob extends Entity {
    // The date and time when the export job expires.
    expirationDateTime?: NullableOption<string>;
    /**
     * The status of the export job. The possible values are: notStarted, inProgress, completed, unknownFutureValue.
     * Read-only.
     */
    exportJobStatus?: NullableOption<CloudPcExportJobStatus>;
    // The storage account URL of the exported report. It can be used to download the file.
    exportUrl?: NullableOption<string>;
    // The filter applied on the report.
    filter?: NullableOption<string>;
    // The format of the exported report.
    format?: NullableOption<string>;
    /**
     * The report name. The possible values are: remoteConnectionHistoricalReports, dailyAggregatedRemoteConnectionReports,
     * totalAggregatedRemoteConnectionReports, sharedUseLicenseUsageReport, sharedUseLicenseUsageRealTimeReport,
     * unknownFutureValue, noLicenseAvailableConnectivityFailureReport, frontlineLicenseUsageReport,
     * frontlineLicenseUsageRealTimeReport, remoteConnectionQualityReports, inaccessibleCloudPcReports,
     * rawRemoteConnectionReports. You must use the Prefer: include-unknown-enum-members request header to get the following
     * value(s) in this evolvable enum: noLicenseAvailableConnectivityFailureReport, frontlineLicenseUsageReport,
     * frontlineLicenseUsageRealTimeReport, remoteConnectionQualityReports, inaccessibleCloudPcReports,
     * rawRemoteConnectionReports.
     */
    reportName?: NullableOption<CloudPcReportName>;
    // The date and time when the export job was requested.
    requestDateTime?: NullableOption<string>;
    // The selected columns of the report.
    select?: NullableOption<string[]>;
}
export interface CloudPcExternalPartnerSetting extends Entity {
    /**
     * Enable or disable the connection to an external partner. If true, an external partner API will accept incoming calls
     * from external partners. Required. Supports $filter (eq).
     */
    enableConnection?: boolean;
    /**
     * Last data sync time for this external partner. The Timestamp type represents the 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'.
     */
    lastSyncDateTime?: NullableOption<string>;
    // The external partner ID.
    partnerId?: string;
    /**
     * The status of the connection to the external partner. The possible values are: notAvailable, available, healthy,
     * unhealthy, unknownFutureValue.
     */
    status?: CloudPcExternalPartnerStatus;
    // Status details message.
    statusDetails?: NullableOption<string>;
}
export interface CloudPcFrontLineServicePlan extends Entity {
    /**
     * The display name of the front-line service plan. For example, 2vCPU/8GB/128GB Front-line or 4vCPU/16GB/256GB
     * Front-line.
     */
    displayName?: NullableOption<string>;
    // The total number of front-line service plans purchased by the customer.
    totalCount?: NullableOption<number>;
    // The number of service plans that have been used for the account.
    usedCount?: NullableOption<number>;
}
export interface CloudPcGalleryImage extends Entity {
    // The official display name of the gallery image. Read-only.
    displayName?: NullableOption<string>;
    /**
     * The date in which this image is no longer within long-term support. The Cloud PC continues to provide short-term
     * support. Read-only.
     */
    endDate?: NullableOption<string>;
    // The date when the image is no longer available. Read-only.
    expirationDate?: NullableOption<string>;
    // The offer name of the gallery image. This value is passed to Azure to get the image resource. Read-only.
    offer?: NullableOption<string>;
    // The official display offer name of the gallery image. For example, Windows 10 Enterprise + OS Optimizations. Read-only.
    offerDisplayName?: NullableOption<string>;
    // The publisher name of the gallery image. This value is passed to Azure to get the image resource. Read-only.
    publisher?: NullableOption<string>;
    // Recommended Cloud PC SKU for this gallery image. Read-only.
    recommendedSku?: NullableOption<string>;
    // The size of this image in gigabytes. Read-only.
    sizeInGB?: NullableOption<number>;
    // The SKU name of the gallery image. This value is passed to Azure to get the image resource. Read-only.
    sku?: NullableOption<string>;
    // The official display stock keeping unit (SKU) name of this gallery image. For example, 2004. Read-only.
    skuDisplayName?: NullableOption<string>;
    // The date when the image becomes available. Read-only.
    startDate?: NullableOption<string>;
    /**
     * The status of the gallery image on the Cloud PC. Possible values are: supported, supportedWithWarning, notSupported,
     * unknownFutureValue. Read-only.
     */
    status?: NullableOption<CloudPcGalleryImageStatus>;
}
export interface CloudPcOnPremisesConnection extends Entity {
    // The fully qualified domain name (FQDN) of the Active Directory domain you want to join. Optional.
    adDomainName?: NullableOption<string>;
    // The password associated with adDomainUsername.
    adDomainPassword?: NullableOption<string>;
    /**
     * The username of an Active Directory account (user or service account) that has permissions to create computer objects
     * in Active Directory. Required format: admin@contoso.com. Optional.
     */
    adDomainUsername?: NullableOption<string>;
    /**
     * The interface URL of the partner service's resource that links to this Azure network connection. Returned only on
     * $select.
     */
    alternateResourceUrl?: NullableOption<string>;
    // The display name for the Azure network connection.
    displayName?: string;
    /**
     * The status of the most recent health check done on the Azure network connection. For example, if status is passed, the
     * Azure network connection has passed all checks run by the service. Possible values are: pending, running, passed,
     * failed, warning, informational, unknownFutureValue. Read-only.
     */
    healthCheckStatus?: CloudPcOnPremisesConnectionStatus;
    /**
     * The details of the connection's health checks and the corresponding results. Returned only on $select. For an example
     * that shows how to get the inUse property, see Example 2: Get the selected properties of an Azure network connection,
     * including healthCheckStatusDetails. Read-only.
     */
    healthCheckStatusDetails?: NullableOption<CloudPcOnPremisesConnectionStatusDetails>;
    /**
     * When true, the Azure network connection is in use. When false, the connection isn't in use. You can't delete a
     * connection that’s in use. Returned only on $select. For an example that shows how to get the inUse property, see
     * Example 2: Get the selected properties of an Azure network connection, including healthCheckStatusDetails. Read-only.
     */
    inUse?: NullableOption<boolean>;
    /**
     * Specifies which services manage the Azure network connection. Possible values are: windows365, devBox,
     * unknownFutureValue, rpaBox. You must use the Prefer: include-unknown-enum-members request header to get the following
     * value(s) in this evolvable enum: rpaBox. Read-only.
     */
    managedBy?: CloudPcManagementService;
    /**
     * The organizational unit (OU) in which the computer account is created. If left null, the OU that’s configured as the
     * default (a well-known computer object container) in your Active Directory domain (OU) is used. Optional.
     */
    organizationalUnit?: NullableOption<string>;
    /**
     * The ID of the target resource group. Required format:
     * /subscriptions/{subscription-id}/resourceGroups/{resourceGroupName}.
     */
    resourceGroupId?: string;
    scopeIds?: NullableOption<string[]>;
    /**
     * The ID of the target subnet. Required format:
     * /subscriptions/{subscription-id}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkId}/subnets/{subnetName}.
     */
    subnetId?: string;
    // The ID of the target Azure subscription that’s associated with your tenant.
    subscriptionId?: string;
    // The name of the target Azure subscription. Read-only.
    subscriptionName?: NullableOption<string>;
    /**
     * Specifies how the provisioned Cloud PC is joined to Microsoft Entra ID. Default value is hybridAzureADJoin. Possible
     * values are: azureADJoin, hybridAzureADJoin, unknownFutureValue.
     */
    type?: NullableOption<CloudPcOnPremisesConnectionType>;
    /**
     * The ID of the target virtual network. Required format:
     * /subscriptions/{subscription-id}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}.
     */
    virtualNetworkId?: string;
    // Indicates resource location of the virtual target network. Read-only, computed value.
    virtualNetworkLocation?: NullableOption<string>;
}
export interface CloudPcOrganizationSettings extends Entity {
    /**
     * Specifies whether new Cloud PCs will be automatically enrolled in Microsoft Endpoint Manager (MEM). The default value
     * is false.
     */
    enableMEMAutoEnroll?: NullableOption<boolean>;
    /**
     * True if the provisioned Cloud PC can be accessed by single sign-on. False indicates that the provisioned Cloud PC
     * doesn't support this feature. Default value is false. Windows 365 users can use single sign-on to authenticate to
     * Microsoft Entra ID with passwordless options (for example, FIDO keys) to access their Cloud PC. Optional.
     */
    enableSingleSignOn?: NullableOption<boolean>;
    /**
     * The version of the operating system (OS) to provision on Cloud PCs. The possible values are: windows10, windows11,
     * unknownFutureValue.
     */
    osVersion?: NullableOption<CloudPcOperatingSystem>;
    /**
     * The account type of the user on provisioned Cloud PCs. The possible values are: standardUser, administrator,
     * unknownFutureValue.
     */
    userAccountType?: NullableOption<CloudPcUserAccountType>;
    /**
     * Represents the Cloud PC organization settings for a tenant. A tenant has only one cloudPcOrganizationSettings object.
     * The default language value en-US.
     */
    windowsSettings?: NullableOption<CloudPcWindowsSettings>;
}
export interface CloudPcProvisioningPolicy extends Entity {
    // The URL of the alternate resource that links to this provisioning policy. Read-only.
    alternateResourceUrl?: NullableOption<string>;
    // The display name of the Cloud PC group that the Cloud PCs reside in. Read-only.
    cloudPcGroupDisplayName?: NullableOption<string>;
    /**
     * The template used to name Cloud PCs provisioned using this policy. This can contain custom text and replacement tokens,
     * including %USERNAME:x% and %RAND:x%, which represent the user's name and a randomly generated number, respectively. For
     * example, 'CPC-%USERNAME:4%-%RAND:5%' means that the Cloud PC's name will start with 'CPC-', have a four-character
     * username in the middle followed by a '-' character, and end with five random characters. The total length of the text
     * generated by the template can be no more than 15 characters. Supports $filter, $select, $orderby.
     */
    cloudPcNamingTemplate?: NullableOption<string>;
    // The provisioning policy description.
    description?: NullableOption<string>;
    // The display name for the provisioning policy.
    displayName?: NullableOption<string>;
    // Specifies how Cloud PCs will join Microsoft Entra ID.
    domainJoinConfiguration?: NullableOption<CloudPcDomainJoinConfiguration>;
    domainJoinConfigurations?: NullableOption<CloudPcDomainJoinConfiguration[]>;
    /**
     * True if the provisioned Cloud PC can be accessed by single sign-on. False indicates that the provisioned Cloud PC
     * doesn't support this feature. Default value is false. Windows 365 users can use single sign-on to authenticate to
     * Microsoft Entra ID with passwordless options (for example, FIDO keys) to access their Cloud PC. Optional.
     */
    enableSingleSignOn?: NullableOption<boolean>;
    // The number of hours to wait before reprovisioning/deprovisioning happens. Read-only.
    gracePeriodInHours?: NullableOption<number>;
    // The display name for the OS image you’re provisioning.
    imageDisplayName?: NullableOption<string>;
    /**
     * The ID of the OS image you want to provision on Cloud PCs. The format for a gallery type image is: {publisheroffersku}.
     * Supported values for each of the parameters are as follows:publisher: Microsoftwindowsdesktop. offer: windows-ent-cpc.
     * sku: 21h1-ent-cpc-m365, 21h1-ent-cpc-os, 20h2-ent-cpc-m365, 20h2-ent-cpc-os, 20h1-ent-cpc-m365, 20h1-ent-cpc-os,
     * 19h2-ent-cpc-m365 and 19h2-ent-cpc-os.
     */
    imageId?: NullableOption<string>;
    // The type of OS image (custom or gallery) you want to provision on Cloud PCs. Possible values are: gallery, custom.
    imageType?: CloudPcProvisioningPolicyImageType;
    /**
     * Indicates whether the local admin option is enabled. If the local admin option is enabled, the end user can be an admin
     * of the Cloud PC device. Read-only.
     */
    localAdminEnabled?: NullableOption<boolean>;
    /**
     * Specifies which services manage the Azure network connection. Possible values are: windows365, devBox,
     * unknownFutureValue, rpaBox. Note that you must use the Prefer: include-unknown-enum-members request header to get the
     * following value(s) in this evolvable enum: rpaBox. Read-only.
     */
    managedBy?: CloudPcManagementService;
    /**
     * The specific settings for the Microsoft Managed Desktop, which enables customers to get a managed device experience for
     * the Cloud PC. Before you can enable Microsoft Managed Desktop, an admin must configure it.
     */
    microsoftManagedDesktop?: NullableOption<MicrosoftManagedDesktop>;
    /**
     * The ID of the cloudPcOnPremisesConnection. To ensure that Cloud PCs have network connectivity and that they domain
     * join, choose a connection with a virtual network that’s validated by the Cloud PC service.
     */
    onPremisesConnectionId?: NullableOption<string>;
    /**
     * Specifies the type of license used when provisioning Cloud PCs using this policy. By default, the license type is
     * dedicated if the provisioningType isn't specified when you create the cloudPcProvisioningPolicy. You can't change this
     * property after the cloudPcProvisioningPolicy was created. Possible values are: dedicated, shared, unknownFutureValue.
     */
    provisioningType?: NullableOption<CloudPcProvisioningType>;
    scopeIds?: NullableOption<string[]>;
    // Specific Windows settings to configure while creating Cloud PCs for this provisioning policy.
    windowsSettings?: NullableOption<CloudPcWindowsSettings>;
    /**
     * A defined collection of provisioning policy assignments. Represents the set of Microsoft 365 groups and security groups
     * in Microsoft Entra ID that have provisioning policy assigned. Returned only on $expand. For an example about how to get
     * the assignments relationship, see Get cloudPcProvisioningPolicy.
     */
    assignments?: NullableOption<CloudPcProvisioningPolicyAssignment[]>;
}
export interface CloudPcProvisioningPolicyAssignment extends Entity {
    /**
     * The assignment target for the provisioning policy. Currently, the only target supported for this policy is a user
     * group. For details, see cloudPcManagementGroupAssignmentTarget.
     */
    target?: NullableOption<CloudPcManagementAssignmentTarget>;
    /**
     * The assignment targeted users for the provisioning policy. This list of users is computed based on assignments,
     * licenses, group memberships, and policies. This property is read-only. Supports$expand.
     */
    assignedUsers?: NullableOption<User[]>;
}
export interface CloudPcReports extends Entity {
    // The export jobs created for downloading reports.
    exportJobs?: NullableOption<CloudPcExportJob[]>;
}
export interface CloudPcServicePlan extends Entity {
    // The name for the service plan. Read-only.
    displayName?: string;
    /**
     * Specifies the type of license used when provisioning Cloud PCs. By default, the license type is dedicated. Possible
     * values are: dedicated, shared, unknownFutureValue.
     */
    provisioningType?: NullableOption<CloudPcProvisioningType>;
    // The size of the RAM in GB. Read-only.
    ramInGB?: number;
    // The size of the OS Disk in GB. Read-only.
    storageInGB?: number;
    /**
     * The supported service or solution for the region. The possible values are: windows365, devBox, rpaBox,
     * unknownFutureValue. Read-only.
     */
    supportedSolution?: CloudPcManagementService;
    // The type of the service plan. Possible values are: enterprise, business, unknownFutureValue. Read-only.
    type?: NullableOption<CloudPcServicePlanType>;
    // The size of the user profile disk in GB. Read-only.
    userProfileInGB?: number;
    // The number of vCPUs. Read-only.
    vCpuCount?: number;
}
export interface CloudPcSharedUseServicePlan extends Entity {
    // The display name of the shared-use service plan.
    displayName?: NullableOption<string>;
    // Total number of shared-use service plans purchased by the customer.
    totalCount?: NullableOption<number>;
    // The number of service plans that the account uses.
    usedCount?: NullableOption<number>;
}
export interface CloudPcSnapshot extends Entity {
    // The unique identifier for the Cloud PC.
    cloudPcId?: string;
    /**
     * The date and time at which the snapshot was taken. The timestamp is shown in ISO 8601 format and Coordinated Universal
     * Time (UTC). For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: NullableOption<string>;
    /**
     * The date and time when the snapshot expires. The time is shown in ISO 8601 format and Coordinated Universal Time (UTC)
     * time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    expirationDateTime?: NullableOption<string>;
    /**
     * The date and time at which the snapshot was last used to restore the Cloud PC device. The timestamp is shown in ISO
     * 8601 format and Coordinated Universal Time (UTC). For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastRestoredDateTime?: NullableOption<string>;
    /**
     * The type of snapshot that indicates how to create the snapshot. Possible values are automatic, manual. Default value is
     * automatic.
     */
    snapshotType?: NullableOption<CloudPcSnapshotType>;
    // The status of the Cloud PC snapshot. The possible values are: ready, unknownFutureValue.
    status?: NullableOption<CloudPcSnapshotStatus>;
}
export interface CloudPcSupportedRegion extends Entity {
    // The name for the supported region. Read-only.
    displayName?: string;
    /**
     * The geographic group this region belongs to. Multiple regions can belong to one region group. For example, the
     * europeUnion region group contains the Northern Europe and Western Europe regions. A customer can select a region group
     * when provisioning a Cloud PC; however, the Cloud PC is put under one of the regions under the group based on resource
     * capacity. The region with more quota will be chosen. Possible values are: default, australia, canada, usCentral,
     * usEast, usWest, france, germany, europeUnion, unitedKingdom, japan, asia, india, southAmerica, euap, usGovernment,
     * usGovernmentDOD, unknownFutureValue, norway, switzerland，southKorea. You must use the Prefer:
     * include-unknown-enum-members request header to get the following value(s) in this evolvable enum: norway,
     * switzerland，southKorea. Read-only.
     */
    regionGroup?: CloudPcRegionGroup;
    /**
     * The status of the supported region. Possible values are: available, restricted, unavailable, unknownFutureValue.
     * Read-only.
     */
    regionStatus?: NullableOption<CloudPcSupportedRegionStatus>;
    /**
     * The supported service or solution for the region. The possible values are: windows365, devBox, unknownFutureValue,
     * rpaBox. You must use the Prefer: include-unknown-enum-members request header to get the following value(s) in this
     * evolvable enum: rpaBox. Read-only.
     */
    supportedSolution?: CloudPcManagementService;
}
export interface CloudPcUserSetting extends Entity {
    /**
     * The date and time the setting was created. The Timestamp type represents the 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'.
     */
    createdDateTime?: NullableOption<string>;
    // The setting name displayed in the user interface.
    displayName?: NullableOption<string>;
    /**
     * The last date and time the setting was modified. The Timestamp type represents the 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'.
     */
    lastModifiedDateTime?: NullableOption<string>;
    /**
     * Indicates whether the local admin option is enabled. Default value is false. To enable the local admin option, change
     * the setting to true. If the local admin option is enabled, the end user can be an admin of the Cloud PC device.
     */
    localAdminEnabled?: NullableOption<boolean>;
    /**
     * Indicates whether an end user is allowed to reset their Cloud PC. When true, the user is allowed to reset their Cloud
     * PC. When false, end-user initiated reset is not allowed. The default value is false.
     */
    resetEnabled?: NullableOption<boolean>;
    /**
     * Defines how frequently a restore point is created that is, a snapshot is taken) for users' provisioned Cloud PCs
     * (default is 12 hours), and whether the user is allowed to restore their own Cloud PCs to a backup made at a specific
     * point in time.
     */
    restorePointSetting?: NullableOption<CloudPcRestorePointSetting>;
    /**
     * Indicates whether the self-service option is enabled. Default value is false. To enable the self-service option, change
     * the setting to true. If the self-service option is enabled, the end user is allowed to perform some self-service
     * operations, such as upgrading the Cloud PC through the end user portal.
     */
    selfServiceEnabled?: NullableOption<boolean>;
    /**
     * Represents the set of Microsoft 365 groups and security groups in Microsoft Entra ID that have cloudPCUserSetting
     * assigned. Returned only on $expand. For an example, see Get cloudPcUserSettingample.
     */
    assignments?: NullableOption<CloudPcUserSettingAssignment[]>;
}
export interface CloudPcUserSettingAssignment extends Entity {
    /**
     * The date and time this assignment was created. The Timestamp type represents the 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'.
     */
    createdDateTime?: NullableOption<string>;
    /**
     * The assignment target for the user setting. Currently, the only target supported for this user setting is a user group.
     * For details, see cloudPcManagementGroupAssignmentTarget.
     */
    target?: NullableOption<CloudPcManagementAssignmentTarget>;
}
export interface DeviceManagement extends Entity {
    // The last requested time of device compliance reporting for this account. This property is read-only.
    deviceComplianceReportSummarizationDateTime?: string;
    // Intune Account ID for given tenant
    intuneAccountId?: string;
    // The last modified time of reporting for this account. This property is read-only.
    lastReportAggregationDateTime?: string;
    // The property to enable Non-MDM managed legacy PC management for this account. This property is read-only.
    legacyPcManangementEnabled?: boolean;
    // Maximum number of DEP tokens allowed per-tenant.
    maximumDepTokens?: number;
    // Account level settings.
    settings?: NullableOption<DeviceManagementSettings>;
    /**
     * When enabled, users assigned as administrators via Role Assignment Memberships do not require an assigned Intune
     * license. Prior to this, only Intune licensed users were granted permissions with an Intune role unless they were
     * assigned a role via Azure Active Directory. You are limited to 350 unlicensed direct members for each AAD security
     * group in a role assignment, but you can assign multiple AAD security groups to a role if you need to support more than
     * 350 unlicensed administrators. Licensed administrators are unaffected, do not have to be direct members, nor does the
     * 350 member limit apply. This property is read-only.
     */
    unlicensedAdminstratorsEnabled?: boolean;
    /**
     * 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>;
    // The date &amp; time when tenant data moved between scaleunits.
    accountMoveCompletionDateTime?: string;
    // Admin consent information.
    adminConsent?: NullableOption<AdminConsent>;
    // A configuration entity for MEM features that utilize Data Processor Service for Windows (DPSW) data.
    dataProcessorServiceForWindowsFeaturesOnboarding?: NullableOption<DataProcessorServiceForWindowsFeaturesOnboarding>;
    // Device protection overview.
    deviceProtectionOverview?: NullableOption<DeviceProtectionOverview>;
    // Device cleanup rule
    managedDeviceCleanupSettings?: NullableOption<ManagedDeviceCleanupSettings>;
    // Tenant's Subscription. Possible values are: none, intune, office365, intunePremium, intuneEDU, intuneSMB.
    subscriptions?: DeviceManagementSubscriptions;
    /**
     * Tenant mobile device management subscription state. Possible values are: pending, active, warning, disabled, deleted,
     * blocked, lockedOut.
     */
    subscriptionState?: DeviceManagementSubscriptionState;
    /**
     * The user experience analytics anomaly severity overview entity contains the count information for each severity of
     * anomaly.
     */
    userExperienceAnalyticsAnomalySeverityOverview?: NullableOption<UserExperienceAnalyticsAnomalySeverityOverview>;
    // User experience analytics device settings
    userExperienceAnalyticsSettings?: NullableOption<UserExperienceAnalyticsSettings>;
    // Malware overview for windows devices.
    windowsMalwareOverview?: NullableOption<WindowsMalwareOverview>;
    // The list of connector status for the tenant.
    connectorStatus?: NullableOption<ConnectorStatusDetails[]>;
    monitoring?: NullableOption<DeviceManagementNamespace.Monitoring>;
    virtualEndpoint?: NullableOption<VirtualEndpoint>;
    // Android device owner enrollment profile entities.
    androidDeviceOwnerEnrollmentProfiles?: NullableOption<AndroidDeviceOwnerEnrollmentProfile[]>;
    // Android for Work app configuration schema entities.
    androidForWorkAppConfigurationSchemas?: NullableOption<AndroidForWorkAppConfigurationSchema[]>;
    // Android for Work enrollment profile entities.
    androidForWorkEnrollmentProfiles?: NullableOption<AndroidForWorkEnrollmentProfile[]>;
    // The singleton Android for Work settings entity.
    androidForWorkSettings?: NullableOption<AndroidForWorkSettings>;
    // The singleton Android managed store account enterprise settings entity.
    androidManagedStoreAccountEnterpriseSettings?: NullableOption<AndroidManagedStoreAccountEnterpriseSettings>;
    // Android Enterprise app configuration schema entities.
    androidManagedStoreAppConfigurationSchemas?: NullableOption<AndroidManagedStoreAppConfigurationSchema[]>;
    // The Audit Events
    auditEvents?: NullableOption<AuditEvent[]>;
    // The list of assignment filters
    assignmentFilters?: NullableOption<DeviceAndAppManagementAssignmentFilter[]>;
    // Collection of ChromeOSOnboardingSettings settings associated with account.
    chromeOSOnboardingSettings?: NullableOption<ChromeOSOnboardingSettings[]>;
    // The terms and conditions associated with device management of the company.
    termsAndConditions?: NullableOption<TermsAndConditions[]>;
    // A list of ServiceNowConnections
    serviceNowConnections?: NullableOption<ServiceNowConnection[]>;
    // The summary state of ATP onboarding state for this account.
    advancedThreatProtectionOnboardingStateSummary?: NullableOption<AdvancedThreatProtectionOnboardingStateSummary>;
    // The Cart To Class Associations.
    cartToClassAssociations?: NullableOption<CartToClassAssociation[]>;
    // 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[]>;
    // Summary of policies in conflict state for this account.
    deviceConfigurationConflictSummary?: NullableOption<DeviceConfigurationConflictSummary[]>;
    // The device configuration device state summary for this account.
    deviceConfigurationDeviceStateSummaries?: NullableOption<DeviceConfigurationDeviceStateSummary>;
    // Restricted apps violations for this account.
    deviceConfigurationRestrictedAppsViolations?: NullableOption<RestrictedAppsViolation[]>;
    // The device configurations.
    deviceConfigurations?: NullableOption<DeviceConfiguration[]>;
    // Summary of all certificates for all devices.
    deviceConfigurationsAllManagedDeviceCertificateStates?: NullableOption<ManagedAllDeviceCertificateState[]>;
    // The device configuration user state summary for this account.
    deviceConfigurationUserStateSummaries?: NullableOption<DeviceConfigurationUserStateSummary>;
    // The IOS software update installation statuses for this account.
    iosUpdateStatuses?: NullableOption<IosUpdateDeviceStatus[]>;
    // The MacOS software update account summaries for this account.
    macOSSoftwareUpdateAccountSummaries?: NullableOption<MacOSSoftwareUpdateAccountSummary[]>;
    // Encryption report for devices in this account
    managedDeviceEncryptionStates?: NullableOption<ManagedDeviceEncryptionState[]>;
    // The collection of Ndes connectors for this account.
    ndesConnectors?: NullableOption<NdesConnector[]>;
    // The software update status summary.
    softwareUpdateStatusSummary?: NullableOption<SoftwareUpdateStatusSummary>;
    // List of all compliance categories
    complianceCategories?: NullableOption<DeviceManagementConfigurationCategory[]>;
    // List of all compliance policies
    compliancePolicies?: NullableOption<DeviceManagementCompliancePolicy[]>;
    // List of all ComplianceSettings
    complianceSettings?: NullableOption<DeviceManagementConfigurationSettingDefinition[]>;
    // List of all Configuration Categories
    configurationCategories?: NullableOption<DeviceManagementConfigurationCategory[]>;
    // List of all Configuration policies
    configurationPolicies?: NullableOption<DeviceManagementConfigurationPolicy[]>;
    // List of all templates
    configurationPolicyTemplates?: NullableOption<DeviceManagementConfigurationPolicyTemplate[]>;
    // List of all ConfigurationSettings
    configurationSettings?: NullableOption<DeviceManagementConfigurationSettingDefinition[]>;
    // List of all reusable settings that can be referred in a policy
    reusablePolicySettings?: NullableOption<DeviceManagementReusablePolicySetting[]>;
    // List of all reusable settings
    reusableSettings?: NullableOption<DeviceManagementConfigurationSettingDefinition[]>;
    // List of setting insights in a template
    templateInsights?: NullableOption<DeviceManagementTemplateInsightsDefinition[]>;
    // List of all TemplateSettings
    templateSettings?: NullableOption<DeviceManagementConfigurationSettingTemplate[]>;
    // 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 Exchange On Premisis policies configured by the tenant.
    exchangeOnPremisesPolicies?: NullableOption<DeviceManagementExchangeOnPremisesPolicy[]>;
    // The policy which controls mobile device access to Exchange On Premises
    exchangeOnPremisesPolicy?: NullableOption<DeviceManagementExchangeOnPremisesPolicy>;
    // The list of Mobile threat Defense connectors configured by the tenant.
    mobileThreatDefenseConnectors?: NullableOption<MobileThreatDefenseConnector[]>;
    // The available categories
    categories?: NullableOption<DeviceManagementSettingCategory[]>;
    // The device management intents
    intents?: NullableOption<DeviceManagementIntent[]>;
    // The device management intent setting definitions
    settingDefinitions?: NullableOption<DeviceManagementSettingDefinition[]>;
    // The available templates
    templates?: NullableOption<DeviceManagementTemplate[]>;
    // Apple push notification certificate.
    applePushNotificationCertificate?: NullableOption<ApplePushNotificationCertificate>;
    // The list of CloudPC Connectivity Issue.
    cloudPCConnectivityIssues?: NullableOption<CloudPCConnectivityIssue[]>;
    // The list of co-managed devices report
    comanagedDevices?: NullableOption<ManagedDevice[]>;
    // The list of co-management eligible devices report
    comanagementEligibleDevices?: NullableOption<ComanagementEligibleDevice[]>;
    // Data sharing consents.
    dataSharingConsents?: NullableOption<DataSharingConsent[]>;
    // The list of detected apps associated with a device.
    detectedApps?: NullableOption<DetectedApp[]>;
    // The list of device compliance scripts associated with the tenant.
    deviceComplianceScripts?: NullableOption<DeviceComplianceScript[]>;
    // The list of device custom attribute shell scripts associated with the tenant.
    deviceCustomAttributeShellScripts?: NullableOption<DeviceCustomAttributeShellScript[]>;
    // The list of device health scripts associated with the tenant.
    deviceHealthScripts?: NullableOption<DeviceHealthScript[]>;
    // The list of device management scripts associated with the tenant.
    deviceManagementScripts?: NullableOption<DeviceManagementScript[]>;
    // The list of device shell scripts associated with the tenant.
    deviceShellScripts?: NullableOption<DeviceShellScript[]>;
    // Device overview
    managedDeviceOverview?: NullableOption<ManagedDeviceOverview>;
    // The list of managed devices.
    managedDevices?: NullableOption<ManagedDevice[]>;
    // The collection property of MobileAppTroubleshootingEvent.
    mobileAppTroubleshootingEvents?: NullableOption<MobileAppTroubleshootingEvent[]>;
    // The endpoint privilege management elevation event entity contains elevation details.
    privilegeManagementElevations?: NullableOption<PrivilegeManagementElevation[]>;
    // The list of device remote action audits with the tenant.
    remoteActionAudits?: NullableOption<RemoteActionAudit[]>;
    // TenantAttach RBAC Enablement
    tenantAttachRBAC?: NullableOption<TenantAttachRBAC>;
    // The user experience analytics anomaly entity contains anomaly details.
    userExperienceAnalyticsAnomaly?: NullableOption<UserExperienceAnalyticsAnomaly[]>;
    /**
     * The user experience analytics anomaly correlation group overview entity contains the information for each correlation
     * group of an anomaly.
     */
    userExperienceAnalyticsAnomalyCorrelationGroupOverview?: NullableOption<UserExperienceAnalyticsAnomalyCorrelationGroupOverview[]>;
    // The user experience analytics anomaly entity contains device details.
    userExperienceAnalyticsAnomalyDevice?: NullableOption<UserExperienceAnalyticsAnomalyDevice[]>;
    // User experience analytics appHealth Application Performance
    userExperienceAnalyticsAppHealthApplicationPerformance?: NullableOption<UserExperienceAnalyticsAppHealthApplicationPerformance[]>;
    // User experience analytics appHealth Application Performance by App Version
    userExperienceAnalyticsAppHealthApplicationPerformanceByAppVersion?: NullableOption<UserExperienceAnalyticsAppHealthAppPerformanceByAppVersion[]>;
    // 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 Battery Health App Impact
    userExperienceAnalyticsBatteryHealthAppImpact?: NullableOption<UserExperienceAnalyticsBatteryHealthAppImpact[]>;
    // User Experience Analytics Battery Health Capacity Details
    userExperienceAnalyticsBatteryHealthCapacityDetails?: NullableOption<UserExperienceAnalyticsBatteryHealthCapacityDetails>;
    // User Experience Analytics Battery Health Device App Impact
    userExperienceAnalyticsBatteryHealthDeviceAppImpact?: NullableOption<UserExperienceAnalyticsBatteryHealthDeviceAppImpact[]>;
    // User Experience Analytics Battery Health Device Performance
    userExperienceAnalyticsBatteryHealthDevicePerformance?: NullableOption<UserExperienceAnalyticsBatteryHealthDevicePerformance[]>;
    // User Experience Analytics Battery Health Device Runtime History
    userExperienceAnalyticsBatteryHealthDeviceRuntimeHistory?: NullableOption<UserExperienceAnalyticsBatteryHealthDeviceRuntimeHistory[]>;
    // User Experience Analytics Battery Health Model Performance
    userExperienceAnalyticsBatteryHealthModelPerformance?: NullableOption<UserExperienceAnalyticsBatteryHealthModelPerformance[]>;
    // User Experience Analytics Battery Health Os Performance
    userExperienceAnalyticsBatteryHealthOsPerformance?: NullableOption<UserExperienceAnalyticsBatteryHealthOsPerformance[]>;
    // User Experience Analytics Battery Health Runtime Details
    userExperienceAnalyticsBatteryHealthRuntimeDetails?: NullableOption<UserExperienceAnalyticsBatteryHealthRuntimeDetails>;
    // User experience analytics categories
    userExperienceAnalyticsCategories?: NullableOption<UserExperienceAnalyticsCategory[]>;
    // User experience analytics device metric history
    userExperienceAnalyticsDeviceMetricHistory?: NullableOption<UserExperienceAnalyticsMetricHistory[]>;
    // User experience analytics device performance
    userExperienceAnalyticsDevicePerformance?: NullableOption<UserExperienceAnalyticsDevicePerformance[]>;
    /**
     * The user experience analytics device scope entity endpoint to trigger on the service to either START or STOP computing
     * metrics data based on a device scope configuration.
     */
    userExperienceAnalyticsDeviceScope?: NullableOption<UserExperienceAnalyticsDeviceScope>;
    /**
     * The user experience analytics device scope entity contains device scope configuration use to apply filtering on the
     * endpoint analytics reports.
     */
    userExperienceAnalyticsDeviceScopes?: NullableOption<UserExperienceAnalyticsDeviceScope[]>;
    // 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 devices without cloud identity.
    userExperienceAnalyticsDevicesWithoutCloudIdentity?: NullableOption<UserExperienceAnalyticsDeviceWithoutCloudIdentity[]>;
    // The user experience analytics device events entity contains NRT device timeline event details.
    userExperienceAnalyticsDeviceTimelineEvent?: NullableOption<UserExperienceAnalyticsDeviceTimelineEvent[]>;
    // User experience analytics impacting process
    userExperienceAnalyticsImpactingProcess?: NullableOption<UserExperienceAnalyticsImpactingProcess[]>;
    // User experience analytics metric history
    userExperienceAnalyticsMetricHistory?: NullableOption<UserExperienceAnalyticsMetricHistory[]>;
    // User experience analytics model scores
    userExperienceAnalyticsModelScores?: NullableOption<UserExperienceAnalyticsModelScores[]>;
    // User experience analytics devices not Windows Autopilot ready.
    userExperienceAnalyticsNotAutopilotReadyDevice?: NullableOption<UserExperienceAnalyticsNotAutopilotReadyDevice[]>;
    // User experience analytics overview
    userExperienceAnalyticsOverview?: NullableOption<UserExperienceAnalyticsOverview>;
    // User experience analytics remote connection
    userExperienceAnalyticsRemoteConnection?: NullableOption<UserExperienceAnalyticsRemoteConnection[]>;
    // User experience analytics resource performance
    userExperienceAnalyticsResourcePerformance?: NullableOption<UserExperienceAnalyticsResourcePerformance[]>;
    // 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 Derived credential settings associated with account.
    derivedCredentials?: NullableOption<DeviceManagementDerivedCredentialSettings[]>;
    // Collection of resource access settings associated with account.
    resourceAccessProfiles?: NullableOption<DeviceManagementResourceAccessProfileBase[]>;
    // Apple user initiated enrollment profiles
    appleUserInitiatedEnrollmentProfiles?: NullableOption<AppleUserInitiatedEnrollmentProfile[]>;
    // This collections of multiple DEP tokens per-tenant.
    depOnboardingSettings?: NullableOption<DepOnboardingSetting[]>;
    // The imported device identities.
    importedDeviceIdentities?: NullableOption<ImportedDeviceIdentity[]>;
    // Collection of imported Windows autopilot devices.
    importedWindowsAutopilotDeviceIdentities?: NullableOption<ImportedWindowsAutopilotDeviceIdentity[]>;
    // Windows auto pilot deployment profiles
    windowsAutopilotDeploymentProfiles?: NullableOption<WindowsAutopilotDeploymentProfile[]>;
    // The Windows autopilot device identities contained collection.
    windowsAutopilotDeviceIdentities?: NullableOption<WindowsAutopilotDeviceIdentity[]>;
    // The Windows autopilot account settings.
    windowsAutopilotSettings?: NullableOption<WindowsAutopilotSettings>;
    // List of elevation requests
    elevationRequests?: NullableOption<PrivilegeManagementElevationRequest[]>;
    // The Collection of ZebraFotaArtifacts.
    zebraFotaArtifacts?: NullableOption<ZebraFotaArtifact[]>;
    // The singleton ZebraFotaConnector associated with account.
    zebraFotaConnector?: NullableOption<ZebraFotaConnector>;
    // Collection of ZebraFotaDeployments associated with account.
    zebraFotaDeployments?: NullableOption<ZebraFotaDeployment[]>;
    // A list of Group Policy migration reports.
    groupPolicyMigrationReports?: NullableOption<GroupPolicyMigrationReport[]>;
    // A list of Group Policy Object files uploaded.
    groupPolicyObjectFiles?: NullableOption<GroupPolicyObjectFile[]>;
    // The available group policy categories for this account.
    groupPolicyCategories?: NullableOption<GroupPolicyCategory[]>;
    // The group policy configurations created by this account.
    groupPolicyConfigurations?: NullableOption<GroupPolicyConfiguration[]>;
    // The available group policy definition files for this account.
    groupPolicyDefinitionFiles?: NullableOption<GroupPolicyDefinitionFile[]>;
    // The available group policy definitions for this account.
    groupPolicyDefinitions?: NullableOption<GroupPolicyDefinition[]>;
    // The available group policy uploaded definition files for this account.
    groupPolicyUploadedDefinitionFiles?: NullableOption<GroupPolicyUploadedDefinitionFile[]>;
    // Collection of MicrosoftTunnelConfiguration settings associated with account.
    microsoftTunnelConfigurations?: NullableOption<MicrosoftTunnelConfiguration[]>;
    // Collection of MicrosoftTunnelHealthThreshold settings associated with account.
    microsoftTunnelHealthThresholds?: NullableOption<MicrosoftTunnelHealthThreshold[]>;
    // Collection of MicrosoftTunnelServerLogCollectionResponse settings associated with account.
    microsoftTunnelServerLogCollectionResponses?: NullableOption<MicrosoftTunnelServerLogCollectionResponse[]>;
    // Collection of MicrosoftTunnelSite settings associated with account.
    microsoftTunnelSites?: NullableOption<MicrosoftTunnelSite[]>;
    // The Notification Message Templates.
    notificationMessageTemplates?: NullableOption<NotificationMessageTemplate[]>;
    // A list of connector objects.
    domainJoinConnectors?: NullableOption<DeviceManagementDomainJoinConnector[]>;
    // A list of ConfigManagerCollection
    configManagerCollections?: NullableOption<ConfigManagerCollection[]>;
    // The Resource Operations.
    resourceOperations?: NullableOption<ResourceOperation[]>;
    // The Role Assignments.
    roleAssignments?: NullableOption<DeviceAndAppManagementRoleAssignment[]>;
    // The Role Definitions.
    roleDefinitions?: NullableOption<RoleDefinition[]>;
    // The Role Scope Tags.
    roleScopeTags?: NullableOption<RoleScopeTag[]>;
    // The remote assist partners.
    remoteAssistancePartners?: NullableOption<RemoteAssistancePartner[]>;
    // The remote assistance settings singleton
    remoteAssistanceSettings?: NullableOption<RemoteAssistanceSettings>;
    // Reports singleton
    reports?: NullableOption<DeviceManagementReports>;
    // The embedded SIM activation code pools created by this account.
    embeddedSIMActivationCodePools?: NullableOption<EmbeddedSIMActivationCodePool[]>;
    // The telecom expense management partners.
    telecomExpenseManagementPartners?: NullableOption<TelecomExpenseManagementPartner[]>;
    // The list of autopilot events for the tenant.
    autopilotEvents?: NullableOption<DeviceManagementAutopilotEvent[]>;
    // The list of troubleshooting events for the tenant.
    troubleshootingEvents?: NullableOption<DeviceManagementTroubleshootingEvent[]>;
    // A collection of windows driver update profiles
    windowsDriverUpdateProfiles?: NullableOption<WindowsDriverUpdateProfile[]>;
    // A collection of windows feature update profiles
    windowsFeatureUpdateProfiles?: NullableOption<WindowsFeatureUpdateProfile[]>;
    // A collection of windows quality update profiles
    windowsQualityUpdateProfiles?: NullableOption<WindowsQualityUpdateProfile[]>;
    // A collection of windows update catalog items (fetaure updates item , quality updates item)
    windowsUpdateCatalogItems?: NullableOption<WindowsUpdateCatalogItem[]>;
    // Intune branding profiles targeted to AAD groups
    intuneBrandingProfiles?: NullableOption<IntuneBrandingProfile[]>;
    // The windows information protection app learning summaries.
    windowsInformationProtectionAppLearningSummaries?: NullableOption<WindowsInformationProtectionAppLearningSummary[]>;
    // The windows information protection network learning summaries.
    windowsInformationProtectionNetworkLearningSummaries?: NullableOption<WindowsInformationProtectionNetworkLearningSummary[]>;
    // Collection of certificate connector details, each associated with a corresponding Intune Certificate Connector.
    certificateConnectorDetails?: NullableOption<CertificateConnectorDetails[]>;
    // Collection of PFX certificates associated with a user.
    userPfxCertificates?: NullableOption<UserPFXCertificate[]>;
}
export interface VirtualEndpoint extends Entity {
    // Cloud PC audit event.
    auditEvents?: NullableOption<CloudPcAuditEvent[]>;
    bulkActions?: NullableOption<CloudPcBulkAction[]>;
    // Cloud managed virtual desktops.
    cloudPCs?: NullableOption<CloudPC[]>;
    // Cloud PC organization mapping between public and US Government Community Cloud (GCC) organizations.
    crossCloudGovernmentOrganizationMapping?: NullableOption<CloudPcCrossCloudGovernmentOrganizationMapping>;
    // The image resource on Cloud PC.
    deviceImages?: NullableOption<CloudPcDeviceImage[]>;
    // The external partner settings on a Cloud PC.
    externalPartnerSettings?: NullableOption<CloudPcExternalPartnerSetting[]>;
    // Front-line service plans for a Cloud PC.
    frontLineServicePlans?: NullableOption<CloudPcFrontLineServicePlan[]>;
    // The gallery image resource on Cloud PC.
    galleryImages?: NullableOption<CloudPcGalleryImage[]>;
    /**
     * A defined collection of Azure resource information that can be used to establish on-premises network connectivity for
     * Cloud PCs.
     */
    onPremisesConnections?: NullableOption<CloudPcOnPremisesConnection[]>;
    // The Cloud PC organization settings for a tenant.
    organizationSettings?: NullableOption<CloudPcOrganizationSettings>;
    // Cloud PC provisioning policy.
    provisioningPolicies?: NullableOption<CloudPcProvisioningPolicy[]>;
    // Cloud PC related reports.
    reports?: NullableOption<CloudPcReports>;
    // Cloud PC service plans.
    servicePlans?: NullableOption<CloudPcServicePlan[]>;
    sharedUseServicePlans?: NullableOption<CloudPcSharedUseServicePlan[]>;
    // Cloud PC snapshots.
    snapshots?: NullableOption<CloudPcSnapshot[]>;
    // Cloud PC supported regions.
    supportedRegions?: NullableOption<CloudPcSupportedRegion[]>;
    // Cloud PC user settings.
    userSettings?: NullableOption<CloudPcUserSetting[]>;
}
export interface AndroidDeviceOwnerEnrollmentProfile extends Entity {
    // Tenant GUID the enrollment profile belongs to.
    accountId?: NullableOption<string>;
    /**
     * Boolean that indicates that the Wi-Fi network should be configured during device provisioning. When set to TRUE, device
     * provisioning will use Wi-Fi related properties to automatically connect to Wi-Fi networks. When set to FALSE or
     * undefined, other Wi-Fi related properties will be ignored. Default value is TRUE. Returned by default.
     */
    configureWifi?: boolean;
    // Date time the enrollment profile was created.
    createdDateTime?: string;
    // Description for the enrollment profile.
    description?: NullableOption<string>;
    // Display name for the enrollment profile.
    displayName?: NullableOption<string>;
    // Total number of Android devices that have enrolled using this enrollment profile.
    enrolledDeviceCount?: number;
    /**
     * The enrollment mode of devices that use this enrollment profile. Possible values are: corporateOwnedDedicatedDevice,
     * corporateOwnedFullyManaged, corporateOwnedWorkProfile, corporateOwnedAOSPUserlessDevice,
     * corporateOwnedAOSPUserAssociatedDevice.
     */
    enrollmentMode?: AndroidDeviceOwnerEnrollmentMode;
    /**
     * The enrollment token type for an enrollment profile. Possible values are: default,
     * corporateOwnedDedicatedDeviceWithAzureADSharedMode.
     */
    enrollmentTokenType?: AndroidDeviceOwnerEnrollmentTokenType;
    // Total number of AOSP devices that have enrolled using the current token.
    enrollmentTokenUsageCount?: number;
    // Boolean indicating if this profile is an Android AOSP for Teams device profile.
    isTeamsDeviceProfile?: boolean;
    // Date time the enrollment profile was last modified.
    lastModifiedDateTime?: string;
    // String used to generate a QR code for the token.
    qrCodeContent?: NullableOption<string>;
    // String used to generate a QR code for the token.
    qrCodeImage?: NullableOption<MimeContent>;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // Date time the most recently created token was created.
    tokenCreationDateTime?: string;
    // Date time the most recently created token will expire.
    tokenExpirationDateTime?: string;
    // Value of the most recently created token for this enrollment profile.
    tokenValue?: NullableOption<string>;
    // Boolean that indicates if hidden wifi networks are enabled
    wifiHidden?: boolean;
    // String that contains the wi-fi login password
    wifiPassword?: NullableOption<string>;
    // String that contains the wi-fi security type. Possible values are: none, wpa, wep.
    wifiSecurityType?: AospWifiSecurityType;
    // String that contains the wi-fi login ssid
    wifiSsid?: NullableOption<string>;
}
export interface AndroidForWorkAppConfigurationSchema extends Entity {
    /**
     * UTF8 encoded byte array containing example JSON string conforming to this schema that demonstrates how to set the
     * configuration for this app
     */
    exampleJson?: NullableOption<string>;
    // Collection of items each representing a named configuration option in the schema
    schemaItems?: NullableOption<AndroidForWorkAppConfigurationSchemaItem[]>;
}
export interface AndroidForWorkEnrollmentProfile extends Entity {
    // Tenant GUID the enrollment profile belongs to.
    accountId?: NullableOption<string>;
    // Date time the enrollment profile was created.
    createdDateTime?: string;
    // Description for the enrollment profile.
    description?: NullableOption<string>;
    // Display name for the enrollment profile.
    displayName?: NullableOption<string>;
    // Total number of Android devices that have enrolled using this enrollment profile.
    enrolledDeviceCount?: number;
    // Date time the enrollment profile was last modified.
    lastModifiedDateTime?: string;
    // String used to generate a QR code for the token.
    qrCodeContent?: NullableOption<string>;
    // String used to generate a QR code for the token.
    qrCodeImage?: NullableOption<MimeContent>;
    // Date time the most recently created token will expire.
    tokenExpirationDateTime?: string;
    // Value of the most recently created token for this enrollment profile.
    tokenValue?: NullableOption<string>;
}
export interface AndroidForWorkSettings extends Entity {
    // Bind status of the tenant with the Google EMM API. Possible values are: notBound, bound, boundAndValidated, unbinding.
    bindStatus?: AndroidForWorkBindStatus;
    // Indicates if this account is flighting for Android Device Owner Management with CloudDPC.
    deviceOwnerManagementEnabled?: boolean;
    /**
     * Indicates which users can enroll devices in Android for Work device management. Possible values are: none, all,
     * targeted, targetedAsEnrollmentRestrictions.
     */
    enrollmentTarget?: AndroidForWorkEnrollmentTarget;
    // Last completion time for app sync
    lastAppSyncDateTime?: NullableOption<string>;
    /**
     * Last application sync result. Possible values are: success, credentialsNotValid, androidForWorkApiError,
     * managementServiceError, unknownError, none.
     */
    lastAppSyncStatus?: AndroidForWorkSyncStatus;
    // Last modification time for Android for Work settings
    lastModifiedDateTime?: NullableOption<string>;
    // Organization name used when onboarding Android for Work
    ownerOrganizationName?: NullableOption<string>;
    // Owner UPN that created the enterprise
    ownerUserPrincipalName?: NullableOption<string>;
    /**
     * Specifies which AAD groups can enroll devices in Android for Work device management if enrollmentTarget is set to
     * 'Targeted'
     */
    targetGroupIds?: NullableOption<string[]>;
}
export interface AndroidManagedStoreAccountEnterpriseSettings extends Entity {
    // Company codes for AndroidManagedStoreAccountEnterpriseSettings
    androidDeviceOwnerFullyManagedEnrollmentEnabled?: boolean;
    // Bind status of the tenant with the Google EMM API. Possible values are: notBound, bound, boundAndValidated, unbinding.
    bindStatus?: AndroidManagedStoreAccountBindStatus;
    // Company codes for AndroidManagedStoreAccountEnterpriseSettings
    companyCodes?: NullableOption<AndroidEnrollmentCompanyCode[]>;
    // Indicates if this account is flighting for Android Device Owner Management with CloudDPC.
    deviceOwnerManagementEnabled?: boolean;
    /**
     * Indicates which users can enroll devices in Android Enterprise device management. Possible values are: none, all,
     * targeted, targetedAsEnrollmentRestrictions.
     */
    enrollmentTarget?: AndroidManagedStoreAccountEnrollmentTarget;
    // Last completion time for app sync
    lastAppSyncDateTime?: NullableOption<string>;
    /**
     * Last application sync result. Possible values are: success, credentialsNotValid, androidForWorkApiError,
     * managementServiceError, unknownError, none.
     */
    lastAppSyncStatus?: AndroidManagedStoreAccountAppSyncStatus;
    // Last modification time for Android enterprise settings
    lastModifiedDateTime?: NullableOption<string>;
    // Initial scope tags for MGP apps
    managedGooglePlayInitialScopeTagIds?: NullableOption<string[]>;
    // Organization name used when onboarding Android Enterprise
    ownerOrganizationName?: NullableOption<string>;
    // Owner UPN that created the enterprise
    ownerUserPrincipalName?: NullableOption<string>;
    /**
     * Specifies which AAD groups can enroll devices in Android for Work device management if enrollmentTarget is set to
     * 'Targeted'
     */
    targetGroupIds?: NullableOption<string[]>;
}
export interface AndroidManagedStoreAppConfigurationSchema extends Entity {
    /**
     * UTF8 encoded byte array containing example JSON string conforming to this schema that demonstrates how to set the
     * configuration for this app
     */
    exampleJson?: NullableOption<string>;
    /**
     * Collection of items each representing a named configuration option in the schema. It contains a flat list of all
     * configuration.
     */
    nestedSchemaItems?: NullableOption<AndroidManagedStoreAppConfigurationSchemaItem[]>;
    /**
     * Collection of items each representing a named configuration option in the schema. It only contains the root-level
     * configuration.
     */
    schemaItems?: NullableOption<AndroidManagedStoreAppConfigurationSchemaItem[]>;
}
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 DeviceAndAppManagementAssignmentFilter extends Entity {
    /**
     * Indicates filter is applied to either 'devices' or 'apps' management type. Possible values are devices, apps. Default
     * filter will be applied to 'devices'. Possible values are: devices, apps, unknownFutureValue.
     */
    assignmentFilterManagementType?: AssignmentFilterManagementType;
    /**
     * The creation time of the assignment filter. The value cannot be modified and is automatically populated during new
     * assignment filter process. 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'.
     */
    createdDateTime?: string;
    // Optional description of the Assignment Filter.
    description?: NullableOption<string>;
    // The name of the Assignment Filter.
    displayName?: string;
    /**
     * Last modified time of the Assignment Filter. 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'
     */
    lastModifiedDateTime?: string;
    // Indicates associated assignments for a specific filter.
    payloads?: NullableOption<PayloadByFilter[]>;
    /**
     * Indicates filter is applied to which flatform. Possible values are
     * android,androidForWork,iOS,macOS,windowsPhone81,windows81AndLater,windows10AndLater,androidWorkProfile, unknown,
     * androidAOSP,androidMobileApplicationManagement, iOSMobileApplicationManagement. Default filter will be applied to
     * 'unknown'. Possible values are: android, androidForWork, iOS, macOS, windowsPhone81, windows81AndLater,
     * windows10AndLater, androidWorkProfile, unknown, androidAOSP, androidMobileApplicationManagement,
     * iOSMobileApplicationManagement, unknownFutureValue.
     */
    platform?: DevicePlatformType;
    // Indicates role scope tags assigned for the assignment filter.
    roleScopeTags?: NullableOption<string[]>;
    // Rule definition of the assignment filter.
    rule?: string;
}
export interface ChromeOSOnboardingSettings extends Entity {
    // The ChromebookTenant's LastDirectorySyncDateTime
    lastDirectorySyncDateTime?: NullableOption<string>;
    // The ChromebookTenant's LastModifiedDateTime
    lastModifiedDateTime?: string;
    /**
     * The ChromebookTenant's OnboardingStatus. Possible values are: unknown, inprogress, onboarded, failed, offboarding,
     * unknownFutureValue.
     */
    onboardingStatus?: OnboardingStatus;
    // The ChromebookTenant's OwnerUserPrincipalName
    ownerUserPrincipalName?: NullableOption<string>;
}
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;
    // DateTime the object was last modified.
    modifiedDateTime?: string;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<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[]>;
    // The list of group assignments for this T&amp;C policy.
    groupAssignments?: NullableOption<TermsAndConditionsGroupAssignment[]>;
}
export interface ServiceNowConnection extends Entity {
    /**
     * Indicates the method used by Intune to authenticate with ServiceNow. Currently supports only web authentication with
     * ServiceNow using the specified app id.
     */
    authenticationMethod?: NullableOption<ServiceNowAuthenticationMethod>;
    /**
     * Date Time when connection properties were created. The value cannot be modified and is automatically populated when the
     * connection properties were entered.
     */
    createdDateTime?: NullableOption<string>;
    /**
     * Indicates the ServiceNow incident API URL that Intune will use the fetch incidents. Saved in the format of
     * /api/now/table/incident
     */
    incidentApiUrl?: NullableOption<string>;
    /**
     * Indicates the ServiceNow instance URL that Intune will connect to. Saved in the format of
     * https://&amp;lt;instance&amp;gt;.service-now.com
     */
    instanceUrl?: NullableOption<string>;
    /**
     * Date Time when connection properties were last updated. The value cannot be modified and is automatically populated
     * when the connection properties were updated.
     */
    lastModifiedDateTime?: NullableOption<string>;
    // Date Time when incidents from ServiceNow were last queried
    lastQueriedDateTime?: NullableOption<string>;
    // Status of the ServiceNow Connection based on user's selection. Possible value could be disabled or enabled.
    serviceNowConnectionStatus?: ServiceNowConnectionStatus;
}
export interface AdvancedThreatProtectionOnboardingStateSummary 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 not assigned devices
    notAssignedDeviceCount?: number;
    // Number of remediated devices
    remediatedDeviceCount?: number;
    // Number of unknown devices
    unknownDeviceCount?: number;
    advancedThreatProtectionOnboardingDeviceSettingStates?: NullableOption<AdvancedThreatProtectionOnboardingDeviceSettingState[]>;
}
export interface CartToClassAssociation extends Entity {
    // Identifiers of classrooms to be associated with device carts.
    classroomIds?: NullableOption<string[]>;
    // DateTime the object was created.
    createdDateTime?: string;
    // Admin provided description of the CartToClassAssociation.
    description?: NullableOption<string>;
    // Identifiers of device carts to be associated with classes.
    deviceCartIds?: NullableOption<string[]>;
    // Admin provided name of the device configuration.
    displayName?: NullableOption<string>;
    // DateTime the object was last modified.
    lastModifiedDateTime?: string;
    // Version of the CartToClassAssociation.
    version?: number;
}
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;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<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 for this rule
    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, androidForWork, iOS, macOS, windowsPhone81, windows81AndLater,
     * windows10AndLater, androidWorkProfile, windows10XProfile, androidAOSP, 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;
    deviceComplianceSettingStates?: NullableOption<DeviceComplianceSettingState[]>;
}
export interface DeviceConfigurationConflictSummary extends Entity {
    // The set of policies in conflict with the given setting
    conflictingDeviceConfigurations?: NullableOption<SettingSource[]>;
    // The set of settings in conflict with the given policies
    contributingSettings?: NullableOption<string[]>;
    // The count of checkins impacted by the conflicting policies and settings
    deviceCheckinsImpacted?: number;
}
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 RestrictedAppsViolation extends Entity {
    // Device configuration profile unique identifier, must be Guid
    deviceConfigurationId?: string;
    // Device configuration profile name
    deviceConfigurationName?: NullableOption<string>;
    // Device name
    deviceName?: NullableOption<string>;
    // Managed device unique identifier, must be Guid
    managedDeviceId?: string;
    /**
     * Platform type. Possible values are: android, androidForWork, iOS, macOS, windowsPhone81, windows81AndLater,
     * windows10AndLater, androidWorkProfile, windows10XProfile, androidAOSP, all.
     */
    platformType?: PolicyPlatformType;
    // List of violated restricted apps
    restrictedApps?: ManagedDeviceReportedApp[];
    // Restricted apps state. Possible values are: prohibitedApps, notApprovedApps.
    restrictedAppsState?: RestrictedAppsState;
    // User unique identifier, must be Guid
    userId?: string;
    // User name
    userName?: NullableOption<string>;
}
export interface DeviceConfiguration extends Entity {
    // DateTime the object was created.
    createdDateTime?: string;
    // Admin provided description of the Device Configuration.
    description?: NullableOption<string>;
    // The device mode applicability rule for this Policy.
    deviceManagementApplicabilityRuleDeviceMode?: NullableOption<DeviceManagementApplicabilityRuleDeviceMode>;
    // The OS edition applicability for this Policy.
    deviceManagementApplicabilityRuleOsEdition?: NullableOption<DeviceManagementApplicabilityRuleOsEdition>;
    // The OS version applicability rule for this Policy.
    deviceManagementApplicabilityRuleOsVersion?: NullableOption<DeviceManagementApplicabilityRuleOsVersion>;
    // Admin provided name of the device configuration.
    displayName?: string;
    // DateTime the object was last modified.
    lastModifiedDateTime?: string;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
    /**
     * Indicates whether or not the underlying Device Configuration supports the assignment of scope tags. Assigning to the
     * ScopeTags property is not allowed when this value is false and entities will not be visible to scoped users. This
     * occurs for Legacy policies created in Silverlight and can be resolved by deleting and recreating the policy in the
     * Azure Portal. This property is read-only.
     */
    supportsScopeTags?: boolean;
    // 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>;
    // The list of group assignments for the device configuration profile.
    groupAssignments?: NullableOption<DeviceConfigurationGroupAssignment[]>;
    // Device configuration installation status by user.
    userStatuses?: NullableOption<DeviceConfigurationUserStatus[]>;
    // Device Configuration users status overview
    userStatusOverview?: NullableOption<DeviceConfigurationUserOverview>;
}
export interface ManagedAllDeviceCertificateState extends Entity {
    // Certificate expiry date
    certificateExpirationDateTime?: string;
    // Enhanced Key Usage
    certificateExtendedKeyUsages?: NullableOption<string>;
    // Issuance date
    certificateIssuanceDateTime?: string;
    // Issuer
    certificateIssuerName?: NullableOption<string>;
    // Key Usage
    certificateKeyUsages?: NullableOption<number>;
    // Revoke status. Possible values are: none, pending, issued, failed, revoked.
    certificateRevokeStatus?: CertificateRevocationStatus;
    // The time the revoke status was last changed
    certificateRevokeStatusLastChangeDateTime?: string;
    // Serial number
    certificateSerialNumber?: NullableOption<string>;
    // Certificate subject name
    certificateSubjectName?: NullableOption<string>;
    // Thumbprint
    certificateThumbprint?: NullableOption<string>;
    // Device display name
    managedDeviceDisplayName?: NullableOption<string>;
    // User principal name
    userPrincipalName?: NullableOption<string>;
}
export interface DeviceConfigurationUserStateSummary extends Entity {
    // Number of compliant users
    compliantUserCount?: number;
    // Number of conflict users
    conflictUserCount?: number;
    // Number of error users
    errorUserCount?: number;
    // Number of NonCompliant users
    nonCompliantUserCount?: number;
    // Number of not applicable users
    notApplicableUserCount?: number;
    // Number of remediated users
    remediatedUserCount?: number;
    // Number of unknown users
    unknownUserCount?: number;
}
// 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, mdmClientCrashed,
     * timeout, downloading, downloadFailed, downloadRequiresComputer, downloadInsufficientSpace, downloadInsufficientPower,
     * downloadInsufficientNetwork, installing, installInsufficientSpace, installInsufficientPower,
     * installPhoneCallInProgress, installFailed, notSupportedOperation, sharedDeviceUserLoggedInError, updateError,
     * deviceOsHigherThanDesiredOsVersion, updateScanFailed.
     */
    installStatus?: IosUpdatesInstallStatus;
    // Last modified date time of the policy report.
    lastReportedDateTime?: string;
    // The device version that is being reported.
    osVersion?: NullableOption<string>;
    // Platform of the device that is being reported
    platform?: number;
    /**
     * 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 MacOSSoftwareUpdateAccountSummary extends Entity {
    // The device ID.
    deviceId?: NullableOption<string>;
    // The device name.
    deviceName?: NullableOption<string>;
    // The name of the report
    displayName?: string;
    // Number of failed updates on the device.
    failedUpdateCount?: number;
    // Last date time the report for this device was updated.
    lastUpdatedDateTime?: string;
    // The OS version.
    osVersion?: NullableOption<string>;
    // Number of successful updates on the device.
    successfulUpdateCount?: number;
    // Number of total updates on the device.
    totalUpdateCount?: number;
    // The user ID.
    userId?: NullableOption<string>;
    // The user principal name
    userPrincipalName?: NullableOption<string>;
    // Summary of the updates by category.
    categorySummaries?: NullableOption<MacOSSoftwareUpdateCategorySummary[]>;
}
export interface ManagedDeviceEncryptionState extends Entity {
    /**
     * Advanced BitLocker State. Possible values are: success, noUserConsent, osVolumeUnprotected, osVolumeTpmRequired,
     * osVolumeTpmOnlyRequired, osVolumeTpmPinRequired, osVolumeTpmStartupKeyRequired, osVolumeTpmPinStartupKeyRequired,
     * osVolumeEncryptionMethodMismatch, recoveryKeyBackupFailed, fixedDriveNotEncrypted, fixedDriveEncryptionMethodMismatch,
     * loggedOnUserNonAdmin, windowsRecoveryEnvironmentNotConfigured, tpmNotAvailable, tpmNotReady, networkError.
     */
    advancedBitLockerStates?: NullableOption<AdvancedBitLockerState>;
    // Device name
    deviceName?: NullableOption<string>;
    /**
     * Platform of the device. Possible values are: desktop, windowsRT, winMO6, nokia, windowsPhone, mac, winCE, winEmbedded,
     * iPhone, iPad, iPod, android, iSocConsumer, unix, macMDM, holoLens, surfaceHub, androidForWork, androidEnterprise,
     * blackberry, palm, unknown.
     */
    deviceType?: DeviceTypes;
    /**
     * Encryption policy setting state. Possible values are: unknown, notApplicable, compliant, remediated, nonCompliant,
     * error, conflict, notAssigned.
     */
    encryptionPolicySettingState?: ComplianceStatus;
    // Encryption readiness state. Possible values are: notReady, ready.
    encryptionReadinessState?: EncryptionReadinessState;
    // Device encryption state. Possible values are: notEncrypted, encrypted.
    encryptionState?: EncryptionState;
    // FileVault State. Possible values are: success, driveEncryptedByUser, userDeferredEncryption, escrowNotEnabled.
    fileVaultStates?: NullableOption<FileVaultState>;
    // Operating system version of the device
    osVersion?: NullableOption<string>;
    // Policy Details
    policyDetails?: NullableOption<EncryptionReportPolicyDetails[]>;
    // Device TPM Version
    tpmSpecificationVersion?: NullableOption<string>;
    // User name
    userPrincipalName?: NullableOption<string>;
}
export interface NdesConnector extends Entity {
    // The build version of the Ndes Connector.
    connectorVersion?: NullableOption<string>;
    // The friendly name of the Ndes Connector.
    displayName?: NullableOption<string>;
    // Timestamp when on-prem certificate connector was enrolled in Intune.
    enrolledDateTime?: string;
    // Last connection time for the Ndes Connector
    lastConnectionDateTime?: string;
    // Name of the machine running on-prem certificate connector service.
    machineName?: NullableOption<string>;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // Ndes Connector Status. Possible values are: none, active, inactive.
    state?: NdesConnectorState;
}
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 DeviceManagementConfigurationCategory extends Entity {
    // Description of the category header in policy summary.
    categoryDescription?: NullableOption<string>;
    // List of child ids of the category.
    childCategoryIds?: NullableOption<string[]>;
    // Description of the category. For example: Display
    description?: NullableOption<string>;
    // Name of the category. For example: Device Lock
    displayName?: NullableOption<string>;
    // Help text of the category. Give more details of the category.
    helpText?: NullableOption<string>;
    // Name of the item
    name?: NullableOption<string>;
    // Direct parent id of the category. If the category is the root, the parent id is same as its id.
    parentCategoryId?: NullableOption<string>;
    /**
     * Platforms types, which settings in the category have. Possible values are: none. android, androidEnterprise, iOs,
     * macOs, windows10X, windows10, aosp, and linux. If this property is not set, or set to none, returns categories in all
     * platforms. Supports: $filters, $select. Read-only. Possible values are: none, android, iOS, macOS, windows10X,
     * windows10, linux, unknownFutureValue.
     */
    platforms?: DeviceManagementConfigurationPlatforms;
    // Root id of the category.
    rootCategoryId?: NullableOption<string>;
    /**
     * Indicates that the category contains settings that are used for compliance, configuration, or reusable settings.
     * Possible values are: configuration, compliance, reusableSetting. Each setting usage has separate API end-point to call.
     * Read-only. Possible values are: none, configuration, compliance, unknownFutureValue.
     */
    settingUsage?: DeviceManagementConfigurationSettingUsage;
    /**
     * Technologies types, which settings in the category have. Possible values are: none, mdm, configManager,
     * intuneManagementExtension, thirdParty, documentGateway, appleRemoteManagement, microsoftSense, exchangeOnline, edgeMam,
     * linuxMdm, extensibility, enrollment, endpointPrivilegeManagement. If this property is not set, or set to none, returns
     * categories in all platforms. Supports: $filters, $select. Read-only. Possible values are: none, mdm,
     * windows10XManagement, configManager, appleRemoteManagement, microsoftSense, exchangeOnline,
     * mobileApplicationManagement, linuxMdm, enrollment, endpointPrivilegeManagement, unknownFutureValue.
     */
    technologies?: DeviceManagementConfigurationTechnologies;
}
export interface DeviceManagementCompliancePolicy extends Entity {
    // Policy creation date and time. This property is read-only.
    createdDateTime?: string;
    // Policy creation source
    creationSource?: NullableOption<string>;
    // Policy description
    description?: NullableOption<string>;
    // Policy assignment status. This property is read-only.
    isAssigned?: boolean;
    // Policy last modification date and time. This property is read-only.
    lastModifiedDateTime?: string;
    // Policy name
    name?: NullableOption<string>;
    /**
     * Platforms for this policy. Possible values are: none, android, iOS, macOS, windows10X, windows10, linux,
     * unknownFutureValue.
     */
    platforms?: DeviceManagementConfigurationPlatforms;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // Number of settings. This property is read-only.
    settingCount?: number;
    /**
     * Technologies for this policy. Possible values are: none, mdm, windows10XManagement, configManager,
     * appleRemoteManagement, microsoftSense, exchangeOnline, mobileApplicationManagement, linuxMdm, enrollment,
     * endpointPrivilegeManagement, unknownFutureValue.
     */
    technologies?: DeviceManagementConfigurationTechnologies;
    // Policy assignments
    assignments?: NullableOption<DeviceManagementConfigurationPolicyAssignment[]>;
    // The list of scheduled action for this rule
    scheduledActionsForRule?: NullableOption<DeviceManagementComplianceScheduledActionForRule[]>;
    // Policy settings
    settings?: NullableOption<DeviceManagementConfigurationSetting[]>;
}
export interface DeviceManagementConfigurationSettingDefinition extends Entity {
    // Read/write access mode of the setting. Possible values are: none, add, copy, delete, get, replace, execute.
    accessTypes?: DeviceManagementConfigurationSettingAccessTypes;
    // Details which device setting is applicable on. Supports: $filters.
    applicability?: NullableOption<DeviceManagementConfigurationSettingApplicability>;
    // Base CSP Path
    baseUri?: NullableOption<string>;
    // Specify category in which the setting is under. Support $filters.
    categoryId?: NullableOption<string>;
    // Description of the setting.
    description?: NullableOption<string>;
    // Name of the setting. For example: Allow Toast.
    displayName?: NullableOption<string>;
    // Help text of the setting. Give more details of the setting.
    helpText?: NullableOption<string>;
    // List of links more info for the setting can be found at.
    infoUrls?: NullableOption<string[]>;
    // Tokens which to search settings on
    keywords?: NullableOption<string[]>;
    // Name of the item
    name?: NullableOption<string>;
    // Indicates whether the setting is required or not
    occurrence?: NullableOption<DeviceManagementConfigurationSettingOccurrence>;
    // Offset CSP Path from Base
    offsetUri?: NullableOption<string>;
    // List of referred setting information.
    referredSettingInformationList?: NullableOption<DeviceManagementConfigurationReferredSettingInformation[]>;
    // Root setting definition id if the setting is a child setting.
    rootDefinitionId?: NullableOption<string>;
    /**
     * Indicate setting type for the setting. Possible values are: configuration, compliance, reusableSetting. Each setting
     * usage has separate API end-point to call. Possible values are: none, configuration, compliance, unknownFutureValue.
     */
    settingUsage?: DeviceManagementConfigurationSettingUsage;
    /**
     * Setting control type representation in the UX. Possible values are: default, dropdown, smallTextBox, largeTextBox,
     * toggle, multiheaderGrid, contextPane. Possible values are: default, dropdown, smallTextBox, largeTextBox, toggle,
     * multiheaderGrid, contextPane, unknownFutureValue.
     */
    uxBehavior?: DeviceManagementConfigurationControlType;
    // Item Version
    version?: NullableOption<string>;
    /**
     * Setting visibility scope to UX. Possible values are: none, settingsCatalog, template. Possible values are: none,
     * settingsCatalog, template, unknownFutureValue.
     */
    visibility?: DeviceManagementConfigurationSettingVisibility;
}
export interface DeviceManagementConfigurationPolicy extends Entity {
    // Policy creation date and time
    createdDateTime?: string;
    // Policy creation source
    creationSource?: NullableOption<string>;
    // Policy description
    description?: NullableOption<string>;
    // Policy assignment status. This property is read-only.
    isAssigned?: boolean;
    // Policy last modification date and time
    lastModifiedDateTime?: string;
    // Policy name
    name?: NullableOption<string>;
    /**
     * Platforms for this policy. Possible values are: none, android, iOS, macOS, windows10X, windows10, linux,
     * unknownFutureValue.
     */
    platforms?: DeviceManagementConfigurationPlatforms;
    // Indicates the priority of each policies that are selected by the admin during enrollment process
    priorityMetaData?: NullableOption<DeviceManagementPriorityMetaData>;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // Number of settings
    settingCount?: number;
    /**
     * Technologies for this policy. Possible values are: none, mdm, windows10XManagement, configManager,
     * appleRemoteManagement, microsoftSense, exchangeOnline, mobileApplicationManagement, linuxMdm, enrollment,
     * endpointPrivilegeManagement, unknownFutureValue.
     */
    technologies?: DeviceManagementConfigurationTechnologies;
    // Template reference information
    templateReference?: NullableOption<DeviceManagementConfigurationPolicyTemplateReference>;
    // Policy assignments
    assignments?: NullableOption<DeviceManagementConfigurationPolicyAssignment[]>;
    // Policy settings
    settings?: NullableOption<DeviceManagementConfigurationSetting[]>;
}
export interface DeviceManagementConfigurationPolicyTemplate extends Entity {
    // Allow unmanaged setting templates
    allowUnmanagedSettings?: boolean;
    // Template base identifier
    baseId?: NullableOption<string>;
    // Template description
    description?: NullableOption<string>;
    // Template display name
    displayName?: NullableOption<string>;
    // Description of template version
    displayVersion?: NullableOption<string>;
    /**
     * Indicate current lifecycle state of template. Possible values are: invalid, draft, active, superseded, deprecated,
     * retired.
     */
    lifecycleState?: DeviceManagementTemplateLifecycleState;
    /**
     * Platforms for this template. Possible values are: none, android, iOS, macOS, windows10X, windows10, linux,
     * unknownFutureValue.
     */
    platforms?: DeviceManagementConfigurationPlatforms;
    // Number of setting templates. Valid values 0 to 2147483647. This property is read-only.
    settingTemplateCount?: number;
    /**
     * Technologies for this template. Possible values are: none, mdm, windows10XManagement, configManager,
     * appleRemoteManagement, microsoftSense, exchangeOnline, mobileApplicationManagement, linuxMdm, enrollment,
     * endpointPrivilegeManagement, unknownFutureValue.
     */
    technologies?: DeviceManagementConfigurationTechnologies;
    /**
     * TemplateFamily for this template. Possible values are: none, endpointSecurityAntivirus, endpointSecurityDiskEncryption,
     * endpointSecurityFirewall, endpointSecurityEndpointDetectionAndResponse, endpointSecurityAttackSurfaceReduction,
     * endpointSecurityAccountProtection, endpointSecurityApplicationControl, endpointSecurityEndpointPrivilegeManagement,
     * enrollmentConfiguration, appQuietTime, baseline, unknownFutureValue, deviceConfigurationScripts,
     * deviceConfigurationPolicies.
     */
    templateFamily?: DeviceManagementConfigurationTemplateFamily;
    // Template version. Valid values 1 to 2147483647. This property is read-only.
    version?: number;
    // Setting templates
    settingTemplates?: NullableOption<DeviceManagementConfigurationSettingTemplate[]>;
}
export interface DeviceManagementReusablePolicySetting extends Entity {
    // reusable setting creation date and time. This property is read-only.
    createdDateTime?: string;
    // reusable setting description supplied by user.
    description?: NullableOption<string>;
    // reusable setting display name supplied by user.
    displayName?: string;
    // date and time when reusable setting was last modified. This property is read-only.
    lastModifiedDateTime?: string;
    /**
     * count of configuration policies referencing the current reusable setting. Valid values 0 to 2147483647. This property
     * is read-only.
     */
    referencingConfigurationPolicyCount?: number;
    // setting definition id associated with this reusable setting.
    settingDefinitionId?: NullableOption<string>;
    // reusable setting configuration instance
    settingInstance?: NullableOption<DeviceManagementConfigurationSettingInstance>;
    // version number for reusable setting. Valid values 0 to 2147483647. This property is read-only.
    version?: number;
    // configuration policies referencing the current reusable setting. This property is read-only.
    referencingConfigurationPolicies?: NullableOption<DeviceManagementConfigurationPolicy[]>;
}
export interface DeviceManagementTemplateInsightsDefinition extends Entity {
    // Setting insights in a template
    settingInsights?: NullableOption<DeviceManagementSettingInsightsDefinition[]>;
}
export interface DeviceManagementConfigurationSettingTemplate extends Entity {
    // Setting Instance Template
    settingInstanceTemplate?: DeviceManagementConfigurationSettingInstanceTemplate;
    // List of related Setting Definitions
    settingDefinitions?: NullableOption<DeviceManagementConfigurationSettingDefinition[]>;
}
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>;
    // Optional role scope tags for the device category.
    roleScopeTagIds?: NullableOption<string[]>;
}
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 DeviceManagementExchangeOnPremisesPolicy extends Entity {
    // The list of device access rules in Exchange. The access rules apply globally to the entire Exchange organization
    accessRules?: NullableOption<DeviceManagementExchangeAccessRule[]>;
    /**
     * Default access state in Exchange. This rule applies globally to the entire Exchange organization. Possible values are:
     * none, allow, block, quarantine.
     */
    defaultAccessLevel?: DeviceManagementExchangeAccessLevel;
    // The list of device classes known to Exchange
    knownDeviceClasses?: NullableOption<DeviceManagementExchangeDeviceClass[]>;
    // Notification text that will be sent to users quarantined by this policy. This is UTF8 encoded byte array HTML.
    notificationContent?: NullableOption<string>;
    /**
     * 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>;
}
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;
    /**
     * For Mac, get or set whether Intune must receive data from the Mobile Threat Defense partner prior to marking a device
     * compliant
     */
    macDeviceBlockedOnMissingPartnerData?: boolean;
    // For Mac, get or set whether data from the Mobile Threat Defense partner should be used during compliance evaluations
    macEnabled?: boolean;
    /**
     * 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, notSetUp, error, unknownFutureValue.
     */
    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;
    /**
     * When TRUE, app protection policies using the Device Threat Level rule will evaluate devices including data from this
     * connector for Windows. When FALSE, Intune will not use device risk details sent over this connector during app
     * protection policies calculation for policies with a Device Threat Level configured. Existing devices that are not
     * compliant due to risk levels obtained from this connector will also become compliant.
     */
    windowsMobileApplicationManagementEnabled?: boolean;
}
export interface DeviceManagementSettingCategory extends Entity {
    // The category name
    displayName?: NullableOption<string>;
    // The category contains top level required setting
    hasRequiredSetting?: NullableOption<boolean>;
    // The setting definitions this category contains
    settingDefinitions?: NullableOption<DeviceManagementSettingDefinition[]>;
}
export interface DeviceManagementIntent extends Entity {
    // The user given description
    description?: NullableOption<string>;
    // The user given display name
    displayName?: string;
    // Signifies whether or not the intent is assigned to users
    isAssigned?: boolean;
    // Signifies whether or not the intent is being migrated to the configurationPolicies endpoint
    isMigratingToConfigurationPolicy?: NullableOption<boolean>;
    // When the intent was last modified
    lastModifiedDateTime?: string;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // The ID of the template this intent was created from (if any)
    templateId?: NullableOption<string>;
    // Collection of assignments
    assignments?: NullableOption<DeviceManagementIntentAssignment[]>;
    // Collection of setting categories within the intent
    categories?: NullableOption<DeviceManagementIntentSettingCategory[]>;
    /**
     * Collection of settings and their states and counts of devices that belong to corresponding state for all settings
     * within the intent
     */
    deviceSettingStateSummaries?: NullableOption<DeviceManagementIntentDeviceSettingStateSummary[]>;
    // Collection of states of all devices that the intent is applied to
    deviceStates?: NullableOption<DeviceManagementIntentDeviceState[]>;
    /**
     * A summary of device states and counts of devices that belong to corresponding state for all devices that the intent is
     * applied to
     */
    deviceStateSummary?: NullableOption<DeviceManagementIntentDeviceStateSummary>;
    // Collection of all settings to be applied
    settings?: NullableOption<DeviceManagementSettingInstance[]>;
    // Collection of states of all users that the intent is applied to
    userStates?: NullableOption<DeviceManagementIntentUserState[]>;
    /**
     * A summary of user states and counts of users that belong to corresponding state for all users that the intent is
     * applied to
     */
    userStateSummary?: NullableOption<DeviceManagementIntentUserStateSummary>;
}
export interface DeviceManagementSettingDefinition extends Entity {
    // Collection of constraints for the setting value
    constraints?: NullableOption<DeviceManagementConstraint[]>;
    // Collection of dependencies on other settings
    dependencies?: NullableOption<DeviceManagementSettingDependency[]>;
    // The setting's description
    description?: NullableOption<string>;
    // The setting's display name
    displayName?: string;
    // Url to setting documentation
    documentationUrl?: NullableOption<string>;
    // subtitle of the setting header for more details about the category/section
    headerSubtitle?: NullableOption<string>;
    // title of the setting header represents a category/section of a setting/settings
    headerTitle?: NullableOption<string>;
    // If the setting is top level, it can be configured without the need to be wrapped in a collection or complex setting
    isTopLevel?: boolean;
    // Keywords associated with the setting
    keywords?: NullableOption<string[]>;
    // Placeholder text as an example of valid input
    placeholderText?: NullableOption<string>;
    // The data type of the value. Possible values are: integer, boolean, string, complex, collection, abstractComplex.
    valueType?: DeviceManangementIntentValueType;
}
export interface DeviceManagementTemplate extends Entity {
    // The template's description
    description?: NullableOption<string>;
    // The template's display name
    displayName?: string;
    // Number of Intents created from this template.
    intentCount?: number;
    // The template is deprecated or not. Intents cannot be created from a deprecated template.
    isDeprecated?: boolean;
    /**
     * The template's platform. Possible values are: android, androidForWork, iOS, macOS, windowsPhone81, windows81AndLater,
     * windows10AndLater, androidWorkProfile, windows10XProfile, all.
     */
    platformType?: PolicyPlatformType;
    // When the template was published
    publishedDateTime?: string;
    /**
     * The template's subtype. Possible values are: none, firewall, diskEncryption, attackSurfaceReduction,
     * endpointDetectionReponse, accountProtection, antivirus, firewallSharedAppList, firewallSharedIpList,
     * firewallSharedPortlist.
     */
    templateSubtype?: DeviceManagementTemplateSubtype;
    /**
     * The template's type. Possible values are: securityBaseline, specializedDevices,
     * advancedThreatProtectionSecurityBaseline, deviceConfiguration, custom, securityTemplate, microsoftEdgeSecurityBaseline,
     * microsoftOffice365ProPlusSecurityBaseline, deviceCompliance, deviceConfigurationForOffice365, cloudPC,
     * firewallSharedSettings.
     */
    templateType?: DeviceManagementTemplateType;
    // The template's version information
    versionInfo?: NullableOption<string>;
    // Collection of setting categories within the template
    categories?: NullableOption<DeviceManagementTemplateSettingCategory[]>;
    // Collection of templates this template can migrate to
    migratableTo?: NullableOption<DeviceManagementTemplate[]>;
    // Collection of all settings this template has
    settings?: NullableOption<DeviceManagementSettingInstance[]>;
}
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 CloudPCConnectivityIssue extends Entity {
    // The Intune DeviceId of the device the connection is associated with.
    deviceId?: NullableOption<string>;
    // The error code of the connectivity issue.
    errorCode?: NullableOption<string>;
    // The time that the connection initiated. The time is shown in ISO 8601 format and Coordinated Universal Time (UTC) time.
    errorDateTime?: string;
    // The detailed description of what went wrong.
    errorDescription?: NullableOption<string>;
    // The recommended action to fix the corresponding error.
    recommendedAction?: NullableOption<string>;
    // The unique id of user who initialize the connection.
    userId?: NullableOption<string>;
}
export interface ComanagementEligibleDevice extends Entity {
    /**
     * ClientRegistrationStatus. Possible values are: notRegistered, registered, revoked, keyConflict, approvalPending,
     * certificateReset, notRegisteredPendingEnrollment, unknown.
     */
    clientRegistrationStatus?: DeviceRegistrationState;
    // DeviceName
    deviceName?: NullableOption<string>;
    /**
     * DeviceType. Possible values are: desktop, windowsRT, winMO6, nokia, windowsPhone, mac, winCE, winEmbedded, iPhone,
     * iPad, iPod, android, iSocConsumer, unix, macMDM, holoLens, surfaceHub, androidForWork, androidEnterprise, windows10x,
     * androidnGMS, chromeOS, linux, blackberry, palm, unknown, cloudPC.
     */
    deviceType?: DeviceType;
    // EntitySource
    entitySource?: number;
    /**
     * ManagementAgents. Possible values are: eas, mdm, easMdm, intuneClient, easIntuneClient, configurationManagerClient,
     * configurationManagerClientMdm, configurationManagerClientMdmEas, unknown, jamf, googleCloudDevicePolicyController,
     * microsoft365ManagedMdm, msSense, intuneAosp.
     */
    managementAgents?: ManagementAgentType;
    /**
     * ManagementState. Possible values are: managed, retirePending, retireFailed, wipePending, wipeFailed, unhealthy,
     * deletePending, retireIssued, wipeIssued, wipeCanceled, retireCanceled, discovered.
     */
    managementState?: ManagementState;
    // Manufacturer
    manufacturer?: NullableOption<string>;
    // MDMStatus
    mdmStatus?: NullableOption<string>;
    // Model
    model?: NullableOption<string>;
    // OSDescription
    osDescription?: NullableOption<string>;
    // OSVersion
    osVersion?: NullableOption<string>;
    // OwnerType. Possible values are: unknown, company, personal.
    ownerType?: OwnerType;
    // ReferenceId
    referenceId?: NullableOption<string>;
    // SerialNumber
    serialNumber?: NullableOption<string>;
    /**
     * ComanagementEligibleStatus. Possible values are: comanaged, eligible, eligibleButNotAzureAdJoined, needsOsUpdate,
     * ineligible, scheduledForEnrollment, unknownFutureValue.
     */
    status?: ComanagementEligibleType;
    // UPN
    upn?: NullableOption<string>;
    // UserEmail
    userEmail?: NullableOption<string>;
    // UserId
    userId?: NullableOption<string>;
    // UserName
    userName?: NullableOption<string>;
}
export interface DataSharingConsent extends Entity {
    // The time consent was granted for this account
    grantDateTime?: string;
    // The granted state for the data sharing consent
    granted?: boolean;
    // The Upn of the user that granted consent for this account
    grantedByUpn?: NullableOption<string>;
    // The UserId of the user that granted consent for this account
    grantedByUserId?: NullableOption<string>;
    // The display name of the service work flow
    serviceDisplayName?: NullableOption<string>;
    // The TermsUrl for the data sharing consent
    termsUrl?: 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 DeviceComplianceScript extends Entity {
    // The timestamp of when the device compliance script was created. This property is read-only.
    createdDateTime?: string;
    // Description of the device compliance script
    description?: NullableOption<string>;
    // The entire content of the detection powershell script
    detectionScriptContent?: NullableOption<string>;
    // Name of the device compliance script
    displayName?: NullableOption<string>;
    // Indicate whether the script signature needs be checked
    enforceSignatureCheck?: boolean;
    // The timestamp of when the device compliance script was modified. This property is read-only.
    lastModifiedDateTime?: string;
    // Name of the device compliance script publisher
    publisher?: NullableOption<string>;
    // List of Scope Tag IDs for the device compliance script
    roleScopeTagIds?: NullableOption<string[]>;
    // Indicate whether PowerShell script(s) should run as 32-bit
    runAs32Bit?: boolean;
    // Indicates the type of execution context. Possible values are: system, user.
    runAsAccount?: RunAsAccountType;
    // Version of the device compliance script
    version?: NullableOption<string>;
    // The list of group assignments for the device compliance script
    assignments?: NullableOption<DeviceHealthScriptAssignment[]>;
    // List of run states for the device compliance script across all devices
    deviceRunStates?: NullableOption<DeviceComplianceScriptDeviceState[]>;
    // High level run summary for device compliance script.
    runSummary?: NullableOption<DeviceComplianceScriptRunSummary>;
}
export interface DeviceCustomAttributeShellScript extends Entity {
    // The date and time the device management script was created. This property is read-only.
    createdDateTime?: string;
    // The name of the custom attribute.
    customAttributeName?: NullableOption<string>;
    // The expected type of the custom attribute's value. Possible values are: integer, string, dateTime.
    customAttributeType?: DeviceCustomAttributeValueType;
    // Optional description for the device management script.
    description?: NullableOption<string>;
    // Name of the device management script.
    displayName?: NullableOption<string>;
    // Script file name.
    fileName?: NullableOption<string>;
    // The date and time the device management script was last modified. This property is read-only.
    lastModifiedDateTime?: string;
    // List of Scope Tag IDs for this PowerShellScript instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // Indicates the type of execution context. Possible values are: system, user.
    runAsAccount?: RunAsAccountType;
    // The script content.
    scriptContent?: NullableOption<string>;
    // The list of group assignments for the device management script.
    assignments?: NullableOption<DeviceManagementScriptAssignment[]>;
    // List of run states for this script across all devices.
    deviceRunStates?: NullableOption<DeviceManagementScriptDeviceState[]>;
    // The list of group assignments for the device management script.
    groupAssignments?: NullableOption<DeviceManagementScriptGroupAssignment[]>;
    // Run summary for device management script.
    runSummary?: NullableOption<DeviceManagementScriptRunSummary>;
    // List of run states for this script across all users.
    userRunStates?: NullableOption<DeviceManagementScriptUserState[]>;
}
export interface DeviceHealthScript extends Entity {
    // The timestamp of when the device health script was created. This property is read-only.
    createdDateTime?: string;
    // Description of the device health script
    description?: NullableOption<string>;
    // The entire content of the detection powershell script
    detectionScriptContent?: NullableOption<string>;
    // List of ComplexType DetectionScriptParameters objects.
    detectionScriptParameters?: NullableOption<DeviceHealthScriptParameter[]>;
    // DeviceHealthScriptType for the script policy. Possible values are: deviceHealthScript, managedInstallerScript.
    deviceHealthScriptType?: DeviceHealthScriptType;
    // Name of the device health script
    displayName?: NullableOption<string>;
    // Indicate whether the script signature needs be checked
    enforceSignatureCheck?: boolean;
    // Highest available version for a Microsoft Proprietary script
    highestAvailableVersion?: NullableOption<string>;
    // Determines if this is Microsoft Proprietary Script. Proprietary scripts are read-only
    isGlobalScript?: boolean;
    // The timestamp of when the device health script was modified. This property is read-only.
    lastModifiedDateTime?: string;
    // Name of the device health script publisher
    publisher?: NullableOption<string>;
    // The entire content of the remediation powershell script
    remediationScriptContent?: NullableOption<string>;
    // List of ComplexType RemediationScriptParameters objects.
    remediationScriptParameters?: NullableOption<DeviceHealthScriptParameter[]>;
    // List of Scope Tag IDs for the device health script
    roleScopeTagIds?: NullableOption<string[]>;
    // Indicate whether PowerShell script(s) should run as 32-bit
    runAs32Bit?: boolean;
    // Indicates the type of execution context. Possible values are: system, user.
    runAsAccount?: RunAsAccountType;
    // Version of the device health script
    version?: NullableOption<string>;
    // The list of group assignments for the device health script
    assignments?: NullableOption<DeviceHealthScriptAssignment[]>;
    // List of run states for the device health script across all devices
    deviceRunStates?: NullableOption<DeviceHealthScriptDeviceState[]>;
    // High level run summary for device health script.
    runSummary?: NullableOption<DeviceHealthScriptRunSummary>;
}
export interface DeviceManagementScript extends Entity {
    // The date and time the device management script was created. This property is read-only.
    createdDateTime?: string;
    // Optional description for the device management script.
    description?: NullableOption<string>;
    // Name of the device management script.
    displayName?: NullableOption<string>;
    // Indicate whether the script signature needs be checked.
    enforceSignatureCheck?: boolean;
    // Script file name.
    fileName?: NullableOption<string>;
    // The date and time the device management script was last modified. This property is read-only.
    lastModifiedDateTime?: string;
    // List of Scope Tag IDs for this PowerShellScript instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // A value indicating whether the PowerShell script should run as 32-bit
    runAs32Bit?: boolean;
    // Indicates the type of execution context. Possible values are: system, user.
    runAsAccount?: RunAsAccountType;
    // The script content.
    scriptContent?: NullableOption<string>;
    // The list of group assignments for the device management script.
    assignments?: NullableOption<DeviceManagementScriptAssignment[]>;
    // List of run states for this script across all devices.
    deviceRunStates?: NullableOption<DeviceManagementScriptDeviceState[]>;
    // The list of group assignments for the device management script.
    groupAssignments?: NullableOption<DeviceManagementScriptGroupAssignment[]>;
    // Run summary for device management script.
    runSummary?: NullableOption<DeviceManagementScriptRunSummary>;
    // List of run states for this script across all users.
    userRunStates?: NullableOption<DeviceManagementScriptUserState[]>;
}
export interface DeviceShellScript extends Entity {
    // Does not notify the user a script is being executed
    blockExecutionNotifications?: boolean;
    // The date and time the device management script was created. This property is read-only.
    createdDateTime?: string;
    // Optional description for the device management script.
    description?: NullableOption<string>;
    // Name of the device management script.
    displayName?: NullableOption<string>;
    // The interval for script to run. If not defined the script will run once
    executionFrequency?: string;
    // Script file name.
    fileName?: NullableOption<string>;
    // The date and time the device management script was last modified. This property is read-only.
    lastModifiedDateTime?: string;
    // Number of times for the script to be retried if it fails
    retryCount?: number;
    // List of Scope Tag IDs for this PowerShellScript instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // Indicates the type of execution context. Possible values are: system, user.
    runAsAccount?: RunAsAccountType;
    // The script content.
    scriptContent?: NullableOption<string>;
    // The list of group assignments for the device management script.
    assignments?: NullableOption<DeviceManagementScriptAssignment[]>;
    // List of run states for this script across all devices.
    deviceRunStates?: NullableOption<DeviceManagementScriptDeviceState[]>;
    // The list of group assignments for the device management script.
    groupAssignments?: NullableOption<DeviceManagementScriptGroupAssignment[]>;
    // Run summary for device management script.
    runSummary?: NullableOption<DeviceManagementScriptRunSummary>;
    // List of run states for this script across all users.
    userRunStates?: NullableOption<DeviceManagementScriptUserState[]>;
}
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;
    // Last modified date time of device overview
    lastModifiedDateTime?: string;
    // Models and Manufactures meatadata for managed devices in the account
    managedDeviceModelsAndManufacturers?: NullableOption<ManagedDeviceModelsAndManufacturers>;
    // The number of devices enrolled in MDM
    mdmEnrolledCount?: number;
}
export interface PrivilegeManagementElevation extends Entity {
    /**
     * The certificate payload of the application. This is computed by hashing the certificate information on the client.
     * Example: `32c220482c68413fbf8290e3b1e49b0a85901cfcd62ab0738760568a2a6e8a50`
     */
    certificatePayload?: NullableOption<string>;
    /**
     * The company name of the application. This value is set by the creator of the application. Example: `Microsoft
     * Corporation`
     */
    companyName?: NullableOption<string>;
    // The Intune deviceId. Unique identifier for the managed device. Example: `92ce5047-9553-4731-817f-9b401a999a1b`
    deviceId?: NullableOption<string>;
    // The name associated with the device in the intune database. Example: `JOHNDOE-LAPTOP`.
    deviceName?: NullableOption<string>;
    /**
     * Indicates the type of elevation on the application. Possible values are `undetermined`, `unmanagedElevation`,
     * `zeroTouchElevation`, `userConfirmedElevation`, and `supportApprovedElevation`. Defaults to `undetermined`
     */
    elevationType?: PrivilegeManagementElevationType;
    // The date and time when the application was elevated. Example:`2014-01-01T00:00:00Z`
    eventDateTime?: string;
    /**
     * The file description of the application. This value is set by the creator of the application. Example: `Editor of
     * multiple coding languages.`
     */
    fileDescription?: NullableOption<string>;
    // The full file path of the application including the filename and file extension. Example: `C:\Program Files\vscode.exe`
    filePath?: NullableOption<string>;
    // The version of the application. This value is set by the creator of the application. Example: `6.2211.1035.1000`
    fileVersion?: NullableOption<string>;
    // The sha256 hash of the application. Example: `32c220482c68413fbf8290e3b1e49b0a85901cfcd62ab0738760568a2a6e8a57`
    hash?: NullableOption<string>;
    // The internal name of the application. This value is set by the creator of the application. Example: `VS code`
    internalName?: NullableOption<string>;
    /**
     * The justification to elevate the application. This is an input by the user when the privilegeManagementElevationType is
     * of type userConfirmedElevation or support approved elevation. This will be null in all other scenarios. The length is
     * capped at 256 char, enforced on the client side. Example: `To install debug tool.`.
     */
    justification?: NullableOption<string>;
    /**
     * The name of parent process associated with the elevated process. This is always populated for both parent and child
     * process types
     */
    parentProcessName?: NullableOption<string>;
    // Unique Identifier of the policy configured to run the application with elevated access
    policyId?: NullableOption<string>;
    // The name of the policy configured to run the application in elevated access
    policyName?: NullableOption<string>;
    // Indicates the type of process that is elevated. Possible values are `undefined`, `parent` and `child`
    processType?: PrivilegeManagementProcessType;
    // The product name of the application. This value is set by the creator of the application. Example: `Visual Studio`
    productName?: NullableOption<string>;
    /**
     * The result of the elevation action with 0 being success, and everything else being exit code if the elevation was
     * unsuccessful. The value will always be 0 on all unmanaged elevation. Example: `0`. Valid values 0 to 2147483647
     */
    result?: number;
    // Unique identifier of the rule configured to run the application with elevated access
    ruleId?: NullableOption<string>;
    // The User Principal Name of the user who performed the elevation. Example: `john@domain.com`
    upn?: NullableOption<string>;
    /**
     * The type of account performed the elevation on Windows. Possible values are: `undetermined`, `azureAd`, `hybrid`, and
     * `local`. Defaults to `undetermined`.
     */
    userType?: PrivilegeManagementEndUserType;
}
export interface RemoteActionAudit extends Entity {
    /**
     * The action name. Possible values are: unknown, factoryReset, removeCompanyData, resetPasscode, remoteLock,
     * enableLostMode, disableLostMode, locateDevice, rebootNow, recoverPasscode, cleanWindowsDevice,
     * logoutSharedAppleDeviceActiveUser, quickScan, fullScan, windowsDefenderUpdateSignatures,
     * factoryResetKeepEnrollmentData, updateDeviceAccount, automaticRedeployment, shutDown, rotateBitLockerKeys,
     * rotateFileVaultKey, getFileVaultKey, setDeviceName, activateDeviceEsim, deprovision, disable, reenable,
     * moveDeviceToOrganizationalUnit, initiateMobileDeviceManagementKeyRecovery, initiateOnDemandProactiveRemediation,
     * rotateLocalAdminPassword, unknownFutureValue, launchRemoteHelp, revokeAppleVppLicenses,
     * removeDeviceFirmwareConfigurationInterfaceManagement.
     */
    action?: RemoteAction;
    // Action state. Possible values are: none, pending, canceled, active, done, failed, notSupported.
    actionState?: ActionState;
    // Intune device name.
    deviceDisplayName?: NullableOption<string>;
    // IMEI of the device.
    deviceIMEI?: NullableOption<string>;
    // Upn of the device owner.
    deviceOwnerUserPrincipalName?: NullableOption<string>;
    // User who initiated the device action, format is UPN.
    initiatedByUserPrincipalName?: NullableOption<string>;
    // Action target.
    managedDeviceId?: NullableOption<string>;
    // Time when the action was issued, given in UTC.
    requestDateTime?: string;
    // [deprecated] Please use InitiatedByUserPrincipalName instead.
    userName?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface TenantAttachRBAC extends Entity {}
export interface UserExperienceAnalyticsAnomaly extends Entity {
    // Indicates the first occurrence date and time for the anomaly.
    anomalyFirstOccurrenceDateTime?: string;
    // The unique identifier of the anomaly.
    anomalyId?: NullableOption<string>;
    // Indicates the latest occurrence date and time for the anomaly.
    anomalyLatestOccurrenceDateTime?: string;
    // The name of the anomaly.
    anomalyName?: NullableOption<string>;
    /**
     * The category of the anomaly. Possible values are: device, application, stopError, driver or other. Possible values are:
     * device, application, stopError, driver, other, unknownFutureValue.
     */
    anomalyType?: UserExperienceAnalyticsAnomalyType;
    // The name of the application or module that caused the anomaly.
    assetName?: NullableOption<string>;
    // The publisher of the application or module that caused the anomaly.
    assetPublisher?: NullableOption<string>;
    // The version of the application or module that caused the anomaly.
    assetVersion?: NullableOption<string>;
    // The unique identifier of the anomaly detection model.
    detectionModelId?: NullableOption<string>;
    // The number of devices impacted by the anomaly. Valid values -2147483648 to 2147483647
    deviceImpactedCount?: number;
    // The unique identifier of the anomaly detection model.
    issueId?: NullableOption<string>;
    /**
     * The severity of the anomaly. Possible values are: high, medium, low, informational or other. Possible values are: high,
     * medium, low, informational, other, unknownFutureValue.
     */
    severity?: UserExperienceAnalyticsAnomalySeverity;
    /**
     * The state of the anomaly. Possible values are: new, active, disabled, removed or other. Possible values are: new,
     * active, disabled, removed, other, unknownFutureValue.
     */
    state?: UserExperienceAnalyticsAnomalyState;
}
export interface UserExperienceAnalyticsAnomalyCorrelationGroupOverview extends Entity {
    // Indicates the number of correlation groups in the anomaly. Valid values -2147483648 to 2147483647
    anomalyCorrelationGroupCount?: number;
    /**
     * The unique identifier of the anomaly. Anomaly details such as name and type can be found in the
     * UserExperienceAnalyticsAnomalySeverityOverview entity.
     */
    anomalyId?: NullableOption<string>;
    /**
     * Indicates the total number of devices affected by the anomaly in the correlation group. Valid values -2147483648 to
     * 2147483647
     */
    correlationGroupAnomalousDeviceCount?: number;
    // Indicates the total number of devices at risk in the correlation group. Valid values -2147483648 to 2147483647
    correlationGroupAtRiskDeviceCount?: number;
    // Indicates the total number of devices in a correlation group. Valid values -2147483648 to 2147483647
    correlationGroupDeviceCount?: number;
    // Describes the features of a device that are shared between all devices in a correlation group.
    correlationGroupFeatures?: NullableOption<UserExperienceAnalyticsAnomalyCorrelationGroupFeature[]>;
    /**
     * The unique identifier for the correlation group which will uniquely identify one of the correlation group within an
     * anomaly. The correlation Id can be mapped to the correlation group name by concatinating the correlation group
     * features. Example of correlation group name which is the indicative of concatenated features names are for names,
     * Contoso manufacture 4.4.1 and Windows 11.22621.1485.
     */
    correlationGroupId?: NullableOption<string>;
    /**
     * The prevalence of the correlation group. Possible values are: high, medium or low. Possible values are: high, medium,
     * low, unknownFutureValue.
     */
    correlationGroupPrevalence?: UserExperienceAnalyticsAnomalyCorrelationGroupPrevalence;
    /**
     * The percentage of the devices in the correlation group that are anomalous. Valid values -1.79769313486232E+308 to
     * 1.79769313486232E+308
     */
    correlationGroupPrevalencePercentage?: number;
    // Indicates the total number of devices in the tenant. Valid values -2147483648 to 2147483647
    totalDeviceCount?: number;
}
export interface UserExperienceAnalyticsAnomalyDevice extends Entity {
    // The unique identifier of the anomaly.
    anomalyId?: NullableOption<string>;
    // Indicates the first occurance date and time for the anomaly on the device.
    anomalyOnDeviceFirstOccurrenceDateTime?: string;
    // Indicates the latest occurance date and time for the anomaly on the device.
    anomalyOnDeviceLatestOccurrenceDateTime?: string;
    // The unique identifier of the correlation group.
    correlationGroupId?: NullableOption<string>;
    // The unique identifier of the device.
    deviceId?: NullableOption<string>;
    // The manufacturer name of the device.
    deviceManufacturer?: NullableOption<string>;
    // The model name of the device.
    deviceModel?: NullableOption<string>;
    // The name of the device.
    deviceName?: NullableOption<string>;
    /**
     * Indicates the device status with respect to the correlation group. At risk devices are devices that share correlation
     * group features but may not yet be affected by an anomaly, such as when a device is experiencing crashes on an
     * application but that application has not been used on the device but is currently installed. This could lead to the
     * device becoming anomalous if the application in question were to be used. Possible values are: anomolous, affected or
     * atRisk. Possible values are: anomalous, affected, atRisk, unknownFutureValue.
     */
    deviceStatus?: UserExperienceAnalyticsDeviceStatus;
    // The name of the OS installed on the device.
    osName?: NullableOption<string>;
    // The OS version installed on the device.
    osVersion?: NullableOption<string>;
}
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 UserExperienceAnalyticsAppHealthAppPerformanceByAppVersion extends Entity {
    /**
     * 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 version of the application.
    appVersion?: NullableOption<string>;
    /**
     * 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 UserExperienceAnalyticsBatteryHealthAppImpact extends Entity {
    // Number of active devices for using that app over a 14-day period. Valid values 0 to 2147483647
    activeDevices?: number;
    // User friendly display name for the app. Eg: Outlook
    appDisplayName?: NullableOption<string>;
    // App name. Eg: oltk.exe
    appName?: NullableOption<string>;
    // App publisher. Eg: Microsoft Corporation
    appPublisher?: NullableOption<string>;
    /**
     * The percent of total battery power used by this application when the device was not plugged into AC power, over 14 days
     * computed across all devices in the tenant. Unit in percentage. Valid values 0 to 1.79769313486232E+308
     */
    batteryUsagePercentage?: number;
    // true if the user had active interaction with the app.
    isForegroundApp?: boolean;
}
export interface UserExperienceAnalyticsBatteryHealthCapacityDetails extends Entity {
    // Number of active devices within the tenant. Valid values 0 to 2147483647
    activeDevices?: number;
    // Number of devices whose battery maximum capacity is greater than 50% but lesser than 80%. Valid values 0 to 2147483647
    batteryCapacityFair?: number;
    // Number of devices whose battery maximum capacity is greater than 80%. Valid values 0 to 2147483647
    batteryCapacityGood?: number;
    // Number of devices whose battery maximum capacity is lesser than 50%. Valid values 0 to 2147483647
    batteryCapacityPoor?: number;
    // Recorded date time of this capacity details instance.
    lastRefreshedDateTime?: string;
}
export interface UserExperienceAnalyticsBatteryHealthDeviceAppImpact extends Entity {
    // User friendly display name for the app. Eg: Outlook
    appDisplayName?: NullableOption<string>;
    // App name. Eg: oltk.exe
    appName?: NullableOption<string>;
    // App publisher. Eg: Microsoft Corporation
    appPublisher?: NullableOption<string>;
    /**
     * The percent of total battery power used by this application when the device was not plugged into AC power, over 14
     * days. Unit in percentage. Valid values 0 to 1.79769313486232E+308
     */
    batteryUsagePercentage?: number;
    // The unique identifier of the device, Intune DeviceID or SCCM device id.
    deviceId?: NullableOption<string>;
    // true if the user had active interaction with the app.
    isForegroundApp?: boolean;
}
export interface UserExperienceAnalyticsBatteryHealthDevicePerformance extends Entity {
    // Estimated battery age. Unit in days. Valid values 0 to 2147483647
    batteryAgeInDays?: number;
    // Properties (maxCapacity and cycleCount) related to all batteries of the device.
    deviceBatteriesDetails?: NullableOption<UserExperienceAnalyticsDeviceBatteryDetail[]>;
    // Number of batteries in a user device. Valid values 1 to 2147483647
    deviceBatteryCount?: number;
    /**
     * A weighted average of a device’s maximum capacity score and runtime estimate score. Values range from 0-100. Valid
     * values 0 to 2147483647
     */
    deviceBatteryHealthScore?: number;
    // The unique identifier of the device, Intune DeviceID.
    deviceId?: NullableOption<string>;
    // Device friendly name.
    deviceName?: NullableOption<string>;
    // The estimated runtime of the device when the battery is fully charged. Unit in minutes. Valid values 0 to 2147483647
    estimatedRuntimeInMinutes?: number;
    /**
     * Number of times the battery has been discharged an amount that equals 100% of its capacity, but not necessarily by
     * discharging it from 100% to 0%. Valid values 0 to 2147483647
     */
    fullBatteryDrainCount?: number;
    /**
     * The overall battery health status of the device. Possible values are: unknown, insufficientData, needsAttention,
     * meetingGoals, unknownFutureValue.
     */
    healthStatus?: UserExperienceAnalyticsHealthState;
    // The manufacturer name of the device.
    manufacturer?: NullableOption<string>;
    /**
     * Ratio of current capacity and design capacity of the battery with the lowest capacity. Unit in percentage and values
     * range from 0-100. Valid values 0 to 2147483647
     */
    maxCapacityPercentage?: number;
    // The model name of the device.
    model?: NullableOption<string>;
}
export interface UserExperienceAnalyticsBatteryHealthDeviceRuntimeHistory extends Entity {
    // The unique identifier of the device, Intune DeviceID or SCCM device id.
    deviceId?: NullableOption<string>;
    // The estimated runtime of the device when the battery is fully charged. Unit in minutes. Valid values 0 to 2147483647
    estimatedRuntimeInMinutes?: number;
    // The datetime for the instance of runtime history.
    runtimeDateTime?: NullableOption<string>;
}
export interface UserExperienceAnalyticsBatteryHealthModelPerformance extends Entity {
    // Number of active devices for that model. Valid values 0 to 2147483647
    activeDevices?: number;
    // The mean of the battery age for all devices of a given model in a tenant. Unit in days. Valid values 0 to 2147483647
    averageBatteryAgeInDays?: number;
    /**
     * The mean of the estimated runtimes on full charge for all devices of a given model. Unit in minutes. Valid values 0 to
     * 2147483647
     */
    averageEstimatedRuntimeInMinutes?: number;
    /**
     * The mean of the maximum capacity for all devices of a given model. Maximum capacity measures the full charge vs. design
     * capacity for a device’s batteries.. Valid values 0 to 2147483647
     */
    averageMaxCapacityPercentage?: number;
    // Name of the device manufacturer.
    manufacturer?: NullableOption<string>;
    /**
     * The mean of number of times the battery has been discharged an amount that equals 100% of its capacity for all devices
     * of a given model in a tenant. Valid values 0 to 2147483647
     */
    meanFullBatteryDrainCount?: number;
    /**
     * The median of the estimated runtimes on full charge for all devices of a given model. Unit in minutes. Valid values 0
     * to 2147483647
     */
    medianEstimatedRuntimeInMinutes?: number;
    /**
     * The median of number of times the battery has been discharged an amount that equals 100% of its capacity for all
     * devices of a given model in a tenant. Valid values 0 to 2147483647
     */
    medianFullBatteryDrainCount?: number;
    /**
     * The median of the maximum capacity for all devices of a given model. Maximum capacity measures the full charge vs.
     * design capacity for a device’s batteries.. Valid values 0 to 2147483647
     */
    medianMaxCapacityPercentage?: number;
    // The model name of the device.
    model?: NullableOption<string>;
    /**
     * A weighted average of a model’s maximum capacity score and runtime estimate score. Values range from 0-100. Valid
     * values 0 to 2147483647
     */
    modelBatteryHealthScore?: number;
    /**
     * The overall battery health status of a given model in a tenant. Possible values are: unknown, insufficientData,
     * needsAttention, meetingGoals, unknownFutureValue.
     */
    modelHealthStatus?: UserExperienceAnalyticsHealthState;
}
export interface UserExperienceAnalyticsBatteryHealthOsPerformance extends Entity {
    // Number of active devices for that os version. Valid values 0 to 2147483647
    activeDevices?: number;
    /**
     * The mean of the battery age for all devices running a particular operating system version in a tenant. Unit in days.
     * Valid values 0 to 2147483647
     */
    averageBatteryAgeInDays?: number;
    /**
     * The mean of the estimated runtimes on full charge for all devices running a particular operating system version. Unit
     * in minutes. Valid values 0 to 2147483647
     */
    averageEstimatedRuntimeInMinutes?: number;
    /**
     * The mean of the maximum capacity for all devices running a particular operating system version. Maximum capacity
     * measures the full charge vs. design capacity for a device’s batteries.. Valid values 0 to 2147483647
     */
    averageMaxCapacityPercentage?: number;
    /**
     * The mean of number of times the battery has been discharged an amount that equals 100% of its capacity for all devices
     * running a particular operating system version in a tenant. Valid values 0 to 2147483647
     */
    meanFullBatteryDrainCount?: number;
    /**
     * The median of the estimated runtimes on full charge for all devices running a particular operating system version. Unit
     * in minutes. Valid values 0 to 2147483647
     */
    medianEstimatedRuntimeInMinutes?: number;
    /**
     * The median of number of times the battery has been discharged an amount that equals 100% of its capacity for all
     * devices running a particular operating system version in a tenant. Valid values 0 to 2147483647
     */
    medianFullBatteryDrainCount?: number;
    /**
     * The median of the maximum capacity for all devices running a particular operating system version. Maximum capacity
     * measures the full charge vs. design capacity for a device’s batteries.. Valid values 0 to 2147483647
     */
    medianMaxCapacityPercentage?: number;
    /**
     * A weighted average of battery health score across all devices running a particular operating system version. Values
     * range from 0-100. Valid values 0 to 2147483647
     */
    osBatteryHealthScore?: number;
    // Build number of the operating system.
    osBuildNumber?: NullableOption<string>;
    /**
     * The overall battery health status of a given os version in a tenant. Possible values are: unknown, insufficientData,
     * needsAttention, meetingGoals, unknownFutureValue.
     */
    osHealthStatus?: UserExperienceAnalyticsHealthState;
    // Version of the operating system.
    osVersion?: NullableOption<string>;
}
export interface UserExperienceAnalyticsBatteryHealthRuntimeDetails extends Entity {
    // Number of active devices within the tenant. Valid values 0 to 2147483647
    activeDevices?: number;
    // Number of devices whose active runtime is greater than 3 hours but lesser than 5 hours. Valid values 0 to 2147483647
    batteryRuntimeFair?: number;
    // Number of devices whose active runtime is greater than 5 hours. Valid values 0 to 2147483647
    batteryRuntimeGood?: number;
    // Number of devices whose active runtime is lesser than 3 hours. Valid values 0 to 2147483647
    batteryRuntimePoor?: number;
    // Recorded date time of this runtime details instance.
    lastRefreshedDateTime?: string;
}
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 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 UserExperienceAnalyticsDeviceScope extends Entity {
    // Indicates the creation date and time for the custom device scope.
    createdDateTime?: string;
    // The name of the user experience analytics device Scope configuration.
    deviceScopeName?: NullableOption<string>;
    /**
     * Indicates whether a device scope is enabled or disabled. When TRUE, the device scope is enabled. When FALSE, the device
     * scope is disabled. Default value is FALSE.
     */
    enabled?: boolean;
    /**
     * Indicates whether the device scope configuration is built-in or custom. When TRUE, the device scope configuration is
     * built-in. When FALSE, the device scope configuration is custom. Default value is FALSE.
     */
    isBuiltIn?: boolean;
    // Indicates the last updated date and time for the custom device scope.
    lastModifiedDateTime?: string;
    /**
     * Device scope configuration query operator. Possible values are: equals, notEquals, contains, notContains, greaterThan,
     * lessThan. Default value: equals. Possible values are: none, equals, unknownFutureValue.
     */
    operator?: DeviceScopeOperator;
    // The unique identifier of the person (admin) who created the device scope configuration.
    ownerId?: NullableOption<string>;
    /**
     * Device scope configuration parameter. It will be extended in future to add more parameter. Eg: device scope parameter
     * can be OS version, Disk Type, Device manufacturer, device model or Scope tag. Default value: scopeTag. Possible values
     * are: none, scopeTag, unknownFutureValue.
     */
    parameter?: DeviceScopeParameter;
    /**
     * Indicates the device scope status after the device scope has been enabled. Possible values are: none, computing,
     * insufficientData or completed. Default value is none. Possible values are: none, computing, insufficientData,
     * completed, unknownFutureValue.
     */
    status?: DeviceScopeStatus;
    // The device scope configuration query clause value.
    value?: NullableOption<string>;
    // The unique identifier for a user device scope tag Id used for the creation of device scope configuration.
    valueObjectId?: NullableOption<string>;
}
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 UserExperienceAnalyticsDeviceWithoutCloudIdentity extends Entity {
    // Azure Active Directory Device Id
    azureAdDeviceId?: NullableOption<string>;
    // The tenant attach device's name.
    deviceName?: NullableOption<string>;
}
export interface UserExperienceAnalyticsDeviceTimelineEvent extends Entity {
    // The id of the device where the event occurred.
    deviceId?: NullableOption<string>;
    // The time the event occured.
    eventDateTime?: string;
    // The details provided by the event, format depends on event type.
    eventDetails?: NullableOption<string>;
    /**
     * The severity level of the event enum. Possible values are: none, verbose, information, warning, error ,critical.
     * Default value: none. Possible values are: none, verbose, information, warning, error, critical, unknownFutureValue.
     */
    eventLevel?: DeviceEventLevel;
    // The name of the event. Examples include: BootEvent, LogonEvent, AppCrashEvent, AppHangEvent.
    eventName?: NullableOption<string>;
    // The source of the event. Examples include: Intune, Sccm.
    eventSource?: NullableOption<string>;
}
export interface UserExperienceAnalyticsImpactingProcess extends Entity {
    // The category of impacting process.
    category?: NullableOption<string>;
    // The description of process.
    description?: NullableOption<string>;
    // The unique identifier of the impacted device.
    deviceId?: NullableOption<string>;
    // The impact value of the process. Valid values 0 to 1.79769313486232E+308
    impactValue?: number;
    // The process name.
    processName?: NullableOption<string>;
    // The publisher of the process.
    publisher?: 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 UserExperienceAnalyticsNotAutopilotReadyDevice extends Entity {
    // The intune device's autopilotProfileAssigned.
    autoPilotProfileAssigned?: boolean;
    // The intune device's autopilotRegistered.
    autoPilotRegistered?: boolean;
    // The intune device's azure Ad joinType.
    azureAdJoinType?: NullableOption<string>;
    // The intune device's azureAdRegistered.
    azureAdRegistered?: NullableOption<boolean>;
    // The intune device's name.
    deviceName?: NullableOption<string>;
    // The intune device's managed by.
    managedBy?: NullableOption<string>;
    // The intune device's manufacturer.
    manufacturer?: NullableOption<string>;
    // The intune device's model.
    model?: NullableOption<string>;
    // The intune device's serial number.
    serialNumber?: NullableOption<string>;
}
export interface UserExperienceAnalyticsOverview extends Entity {
    // The user experience analytics insights. Read-only.
    insights?: NullableOption<UserExperienceAnalyticsInsight[]>;
}
export interface UserExperienceAnalyticsRemoteConnection extends Entity {
    // The sign in failure percentage of Cloud PC Device. Valid values 0 to 100
    cloudPcFailurePercentage?: number;
    // The round tip time of Cloud PC Device. Valid values 0 to 1.79769313486232E+308
    cloudPcRoundTripTime?: number;
    // The sign in time of Cloud PC Device. Valid values 0 to 1.79769313486232E+308
    cloudPcSignInTime?: number;
    // The core boot time of Cloud PC Device. Valid values 0 to 1.79769313486232E+308
    coreBootTime?: number;
    // The core sign in time of Cloud PC Device. Valid values 0 to 1.79769313486232E+308
    coreSignInTime?: number;
    // The count of remote connection. Valid values 0 to 2147483647
    deviceCount?: number;
    // The id of the device.
    deviceId?: NullableOption<string>;
    // The name of the device.
    deviceName?: NullableOption<string>;
    // The user experience analytics manufacturer.
    manufacturer?: NullableOption<string>;
    // The user experience analytics device model.
    model?: NullableOption<string>;
    // The remote sign in time of Cloud PC Device. Valid values 0 to 1.79769313486232E+308
    remoteSignInTime?: number;
    // The user experience analytics userPrincipalName.
    userPrincipalName?: NullableOption<string>;
    // The user experience analytics virtual network.
    virtualNetwork?: NullableOption<string>;
}
export interface UserExperienceAnalyticsResourcePerformance extends Entity {
    // AverageSpikeTimeScore of a device or a model type. Valid values 0 to 100
    averageSpikeTimeScore?: number;
    // CPU spike time in percentage. Valid values 0 to 100
    cpuSpikeTimePercentage?: number;
    // Threshold of cpuSpikeTimeScore. Valid values 0 to 100
    cpuSpikeTimePercentageThreshold?: number;
    // The user experience analytics device CPU spike time score. Valid values 0 to 100
    cpuSpikeTimeScore?: number;
    // User experience analytics summarized device count.
    deviceCount?: number;
    // The id of the device.
    deviceId?: NullableOption<string>;
    // The name of the device.
    deviceName?: NullableOption<string>;
    // Resource performance score of a specific device. Valid values 0 to 100
    deviceResourcePerformanceScore?: number;
    // The user experience analytics device manufacturer.
    manufacturer?: NullableOption<string>;
    // The user experience analytics device model.
    model?: NullableOption<string>;
    // RAM spike time in percentage. Valid values 0 to 100
    ramSpikeTimePercentage?: number;
    // Threshold of ramSpikeTimeScore. Valid values 0 to 100
    ramSpikeTimePercentageThreshold?: number;
    // The user experience analytics device RAM spike time score. Valid values 0 to 100
    ramSpikeTimeScore?: number;
}
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[]>;
}
export interface DeviceManagementDerivedCredentialSettings extends Entity {
    // The display name for the profile.
    displayName?: string;
    // The URL that will be accessible to end users as they retrieve a derived credential using the Company Portal.
    helpUrl?: NullableOption<string>;
    // The derived credential provider to use.
    issuer?: DeviceManagementDerivedCredentialIssuer;
    /**
     * The methods used to inform the end user to open Company Portal to deliver Wi-Fi, VPN, or email profiles that use
     * certificates to the device.
     */
    notificationType?: DeviceManagementDerivedCredentialNotificationType;
    // The nominal percentage of time before certificate renewal is initiated by the client.
    renewalThresholdPercentage?: number;
}
export interface DeviceManagementResourceAccessProfileBase extends Entity {
    // DateTime profile was created
    creationDateTime?: NullableOption<string>;
    // Profile description
    description?: NullableOption<string>;
    // Profile display name
    displayName?: string;
    // DateTime profile was last modified
    lastModifiedDateTime?: NullableOption<string>;
    // Scope Tags
    roleScopeTagIds?: NullableOption<string[]>;
    // Version of the profile
    version?: number;
    // The list of assignments for the device configuration profile.
    assignments?: NullableOption<DeviceManagementResourceAccessProfileAssignment[]>;
}
export interface AppleUserInitiatedEnrollmentProfile extends Entity {
    // List of available enrollment type options
    availableEnrollmentTypeOptions?: NullableOption<AppleOwnerTypeEnrollmentType[]>;
    // Profile creation time
    createdDateTime?: string;
    /**
     * The default profile enrollment type. Possible values are: unknown, device, user, accountDrivenUserEnrollment,
     * webDeviceEnrollment, unknownFutureValue.
     */
    defaultEnrollmentType?: AppleUserInitiatedEnrollmentType;
    // Description of the profile
    description?: NullableOption<string>;
    // Name of the profile
    displayName?: NullableOption<string>;
    // Profile last modified time
    lastModifiedDateTime?: string;
    /**
     * The platform of the Device. Possible values are: android, androidForWork, iOS, macOS, windowsPhone81,
     * windows81AndLater, windows10AndLater, androidWorkProfile, unknown, androidAOSP.
     */
    platform?: DevicePlatformType;
    // Priority, 0 is highest
    priority?: number;
    // The list of assignments for this profile.
    assignments?: NullableOption<AppleEnrollmentProfileAssignment[]>;
}
export interface DepOnboardingSetting extends Entity {
    // The Apple ID used to obtain the current token.
    appleIdentifier?: NullableOption<string>;
    // Consent granted for data sharing with Apple Dep Service
    dataSharingConsentGranted?: boolean;
    // When the service was onboarded.
    lastModifiedDateTime?: string;
    // When the service last syned with Intune
    lastSuccessfulSyncDateTime?: string;
    // Error code reported by Apple during last dep sync.
    lastSyncErrorCode?: number;
    // When Intune last requested a sync.
    lastSyncTriggeredDateTime?: string;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // Whether or not the Dep token sharing is enabled with the School Data Sync service.
    shareTokenWithSchoolDataSyncService?: boolean;
    // Gets synced device count
    syncedDeviceCount?: number;
    // When the token will expire.
    tokenExpirationDateTime?: string;
    // Friendly Name for Dep Token
    tokenName?: NullableOption<string>;
    // Gets or sets the Dep Token Type. Possible values are: none, dep, appleSchoolManager.
    tokenType?: DepTokenType;
    // Default iOS Enrollment Profile
    defaultIosEnrollmentProfile?: NullableOption<DepIOSEnrollmentProfile>;
    // Default MacOs Enrollment Profile
    defaultMacOsEnrollmentProfile?: NullableOption<DepMacOSEnrollmentProfile>;
    // The enrollment profiles.
    enrollmentProfiles?: NullableOption<EnrollmentProfile[]>;
    // The imported Apple device identities.
    importedAppleDeviceIdentities?: NullableOption<ImportedAppleDeviceIdentity[]>;
}
// tslint:disable-next-line: interface-name
export interface ImportedDeviceIdentity extends Entity {
    // Created Date Time of the device
    createdDateTime?: string;
    // The description of the device
    description?: NullableOption<string>;
    // The state of the device in Intune. Possible values are: unknown, enrolled, pendingReset, failed, notContacted, blocked.
    enrollmentState?: EnrollmentState;
    // Imported Device Identifier
    importedDeviceIdentifier?: NullableOption<string>;
    // Type of Imported Device Identity. Possible values are: unknown, imei, serialNumber.
    importedDeviceIdentityType?: ImportedDeviceIdentityType;
    // Last Contacted Date Time of the device
    lastContactedDateTime?: string;
    // Last Modified DateTime of the description
    lastModifiedDateTime?: string;
    // The platform of the Device. Possible values are: unknown, ios, android, windows, windowsMobile, macOS.
    platform?: Platform;
}
// 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 WindowsAutopilotDeploymentProfile extends Entity {
    // Profile creation time
    createdDateTime?: string;
    // Description of the profile
    description?: NullableOption<string>;
    /**
     * The template used to name the AutoPilot Device. This can be a custom text and can also contain either the serial number
     * of the device, or a randomly generated number. The total length of the text generated by the template can be no more
     * than 15 characters.
     */
    deviceNameTemplate?: NullableOption<string>;
    // The AutoPilot device type that this profile is applicable to. Possible values are: windowsPc, surfaceHub2.
    deviceType?: WindowsAutopilotDeviceType;
    // Name of the profile
    displayName?: NullableOption<string>;
    // Enable Autopilot White Glove for the profile.
    enableWhiteGlove?: boolean;
    // Enrollment status screen setting
    enrollmentStatusScreenSettings?: NullableOption<WindowsEnrollmentStatusScreenSettings>;
    // HardwareHash Extraction for the profile
    extractHardwareHash?: boolean;
    // Language configured on the device
    language?: NullableOption<string>;
    // Profile last modified time
    lastModifiedDateTime?: string;
    // AzureAD management app ID used during client device-based enrollment discovery
    managementServiceAppId?: NullableOption<string>;
    // Out of box experience setting
    outOfBoxExperienceSettings?: NullableOption<OutOfBoxExperienceSettings>;
    // Scope tags for the profile.
    roleScopeTagIds?: NullableOption<string[]>;
    // The list of assigned devices for the profile.
    assignedDevices?: NullableOption<WindowsAutopilotDeviceIdentity[]>;
    // The list of group assignments for the profile.
    assignments?: NullableOption<WindowsAutopilotDeploymentProfileAssignment[]>;
}
export interface WindowsAutopilotDeviceIdentity extends Entity {
    // Addressable user name.
    addressableUserName?: NullableOption<string>;
    // AAD Device ID - to be deprecated
    azureActiveDirectoryDeviceId?: NullableOption<string>;
    // AAD Device ID
    azureAdDeviceId?: NullableOption<string>;
    // Profile set time of the Windows autopilot device.
    deploymentProfileAssignedDateTime?: string;
    /**
     * Profile assignment detailed status of the Windows autopilot device. Possible values are: none,
     * hardwareRequirementsNotMet, surfaceHubProfileNotSupported, holoLensProfileNotSupported, windowsPcProfileNotSupported,
     * surfaceHub2SProfileNotSupported, unknownFutureValue.
     */
    deploymentProfileAssignmentDetailedStatus?: WindowsAutopilotProfileAssignmentDetailedStatus;
    /**
     * Profile assignment status of the Windows autopilot device. Possible values are: unknown, assignedInSync,
     * assignedOutOfSync, assignedUnkownSyncState, notAssigned, pending, failed.
     */
    deploymentProfileAssignmentStatus?: WindowsAutopilotProfileAssignmentStatus;
    // Surface Hub Device Account Password
    deviceAccountPassword?: NullableOption<string>;
    // Surface Hub Device Account Upn
    deviceAccountUpn?: NullableOption<string>;
    // Surface Hub Device Friendly Name
    deviceFriendlyName?: NullableOption<string>;
    // Display Name
    displayName?: NullableOption<string>;
    /**
     * Intune enrollment state of the Windows autopilot device. Possible values are: unknown, enrolled, pendingReset, failed,
     * notContacted, blocked.
     */
    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>;
    /**
     * Device Remediation State. Possible values are: unknown, noRemediationRequired, automaticRemediationRequired,
     * manualRemediationRequired, unknownFutureValue.
     */
    remediationState?: WindowsAutopilotDeviceRemediationState;
    // RemediationState set time of Autopilot device.
    remediationStateLastModifiedDateTime?: 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>;
    // Enrollment status for userless enrollments.
    userlessEnrollmentStatus?: WindowsAutopilotUserlessEnrollmentStatus;
    // User Principal Name.
    userPrincipalName?: NullableOption<string>;
    // Deployment profile currently assigned to the Windows autopilot device.
    deploymentProfile?: NullableOption<WindowsAutopilotDeploymentProfile>;
    // Deployment profile intended to be assigned to the Windows autopilot device.
    intendedDeploymentProfile?: NullableOption<WindowsAutopilotDeploymentProfile>;
}
export interface WindowsAutopilotSettings extends Entity {
    // Last data sync date time with DDS service.
    lastManualSyncTriggerDateTime?: string;
    // Last data sync date time with DDS service.
    lastSyncDateTime?: string;
    /**
     * Indicates the status of sync with Device data sync (DDS) service. Possible values are: unknown, inProgress, completed,
     * failed.
     */
    syncStatus?: WindowsAutopilotSyncStatus;
}
export interface PrivilegeManagementElevationRequest extends Entity {
    /**
     * Details of the application which is being requested to elevate, allowing the admin to understand the identity of the
     * application. It includes file info such as FilePath, FileHash, FilePublisher, and etc. Returned by default. Read-only.
     */
    applicationDetail?: NullableOption<ApplicationDetail>;
    // The device name used to initiate the elevation request. For example: 'cotonso-laptop'. Returned by default. Read-only.
    deviceName?: NullableOption<string>;
    /**
     * The date and time when the elevation request was submitted/created. The value cannot be modified and is automatically
     * populated when the elevation request is submitted/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. Read-only.
     */
    requestCreatedDateTime?: string;
    /**
     * The Azure Active Directory (AAD) identifier of the end user who is requesting this elevation. For example:
     * 'F1A57311-B9EB-45B7-9415-8555E68EDC9E'. Returned by default. Read-only.
     */
    requestedByUserId?: NullableOption<string>;
    /**
     * The User Principal Name (UPN) of the end user who requested this elevation. For example: 'user1@contoso.com'. Returned
     * by default. Read-only.
     */
    requestedByUserPrincipalName?: NullableOption<string>;
    /**
     * The Intune Device Identifier of the managed device used to initiate the elevation request. For example:
     * '90F5F6E8-CA09-4811-97F6-4D0DD532D916'. Returned by default. Read-only.
     */
    requestedOnDeviceId?: NullableOption<string>;
    /**
     * Expiration set for the request when it was created, regardless of approved or denied status. For example:
     * '2023-08-03T14:24:22Z'. Returned by default. Returned by default. Read-only.
     */
    requestExpiryDateTime?: NullableOption<string>;
    /**
     * Justification provided by the end user for the elevation request. For example :'Need to elevate to install microsoft
     * word'. Read-only.
     */
    requestJustification?: NullableOption<string>;
    /**
     * The date and time when the elevation request was either submitted/created or approved/denied. 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. Read-only.
     */
    requestLastModifiedDateTime?: string;
    /**
     * This is the Azure Active Directory (AAD) user id of the administrator who approved or denied the request. For example:
     * 'F1A57311-B9EB-45B7-9415-8555E68EDC9E'. This field would be String.Empty before the request is either approved or
     * denied. Read-only.
     */
    reviewCompletedByUserId?: NullableOption<string>;
    /**
     * This is the User Principal Name (UPN) of the administrator who approved or denied the request. For example:
     * 'admin@contoso.com'. This field would be String.Empty before the request is either approved or denied. Read-only.
     */
    reviewCompletedByUserPrincipalName?: NullableOption<string>;
    /**
     * The DateTime for which the request was approved or denied. For example, midnight UTC on August 3rd, 2023 would look
     * like this: '2023-08-03T00:00:00Z'. Read-only.
     */
    reviewCompletedDateTime?: NullableOption<string>;
    /**
     * An optional justification provided by approver at approval or denied time. This field will be String.Empty if approver
     * decides to not provide a justification. For example: 'Run this installer today'
     */
    reviewerJustification?: NullableOption<string>;
    /**
     * This indicates the current state of the elevation request. Possible values are: 'none', 'pending', 'approved', 'denied'
     * or 'expired'. Defaults to 'none'. Returned by default. Read-only.
     */
    status?: ElevationRequestState;
}
export interface ZebraFotaArtifact extends Entity {
    // The version of the Board Support Package (BSP. E.g.: 01.18.02.00)
    boardSupportPackageVersion?: string;
    // Artifact description. (e.g.: `LifeGuard Update 98 (released 24-September-2021)
    description?: string;
    // Applicable device model (e.g.: TC8300)
    deviceModel?: string;
    // Artifact OS version (e.g.: 8.1.0)
    osVersion?: string;
    // Artifact patch version (e.g.: U00)
    patchVersion?: string;
    // Artifact release notes URL (e.g.: https://www.zebra.com/&amp;lt;filename.pdf&amp;gt;)
    releaseNotesUrl?: string;
}
export interface ZebraFotaConnector extends Entity {
    /**
     * Complete account enrollment authorization URL. This corresponds to verificationuricomplete in the Zebra API
     * documentations.
     */
    enrollmentAuthorizationUrl?: string;
    // Tenant enrollment token from Zebra. The token is used to enroll Zebra devices in the FOTA Service via app config.
    enrollmentToken?: string;
    // Flag indicating if required Firmware Over-the-Air (FOTA) Apps have been approved.
    fotaAppsApproved?: boolean;
    // Date and time when the account was last synched with Zebra
    lastSyncDateTime?: string;
    // The Zebra connector state.
    state?: ZebraFotaConnectorState;
}
export interface ZebraFotaDeployment extends Entity {
    // Collection of Android FOTA Assignment
    deploymentAssignments?: NullableOption<AndroidFotaDeploymentAssignment[]>;
    // Represents settings required to create a deployment such as deployment type, artifact info, download and installation
    deploymentSettings?: ZebraFotaDeploymentSettings;
    /**
     * Represents the deployment status from Zebra. The status is a high level status of the deployment as opposed being a
     * detailed status per device.
     */
    deploymentStatus?: NullableOption<ZebraFotaDeploymentStatus>;
    // A human readable description of the deployment.
    description?: NullableOption<string>;
    // A human readable name of the deployment.
    displayName?: string;
    // List of Scope Tags for this Entity instance
    roleScopeTagIds?: NullableOption<string[]>;
}
export interface GroupPolicyMigrationReport extends Entity {
    // The date and time at which the GroupPolicyMigrationReport was created.
    createdDateTime?: string;
    // The name of Group Policy Object from the GPO Xml Content
    displayName?: NullableOption<string>;
    // The date and time at which the GroupPolicyMigrationReport was created.
    groupPolicyCreatedDateTime?: string;
    // The date and time at which the GroupPolicyMigrationReport was last modified.
    groupPolicyLastModifiedDateTime?: string;
    // The Group Policy Object GUID from GPO Xml content
    groupPolicyObjectId?: string;
    // The date and time at which the GroupPolicyMigrationReport was last modified.
    lastModifiedDateTime?: string;
    /**
     * The Intune coverage for the associated Group Policy Object file. Possible values are: none, partial, complete, error,
     * notApplicable.
     */
    migrationReadiness?: GroupPolicyMigrationReadiness;
    // The distinguished name of the OU.
    ouDistinguishedName?: NullableOption<string>;
    // The list of scope tags for the configuration.
    roleScopeTagIds?: NullableOption<string[]>;
    // The number of Group Policy Settings supported by Intune.
    supportedSettingsCount?: number;
    // The Percentage of Group Policy Settings supported by Intune.
    supportedSettingsPercent?: number;
    // The Targeted in AD property from GPO Xml Content
    targetedInActiveDirectory?: boolean;
    // The total number of Group Policy Settings from GPO file.
    totalSettingsCount?: number;
    // A list of group policy settings to MDM/Intune mappings.
    groupPolicySettingMappings?: NullableOption<GroupPolicySettingMapping[]>;
    // A list of unsupported group policy extensions inside the Group Policy Object.
    unsupportedGroupPolicyExtensions?: NullableOption<UnsupportedGroupPolicyExtension[]>;
}
export interface GroupPolicyObjectFile extends Entity {
    // The Group Policy Object file content.
    content?: string;
    // The date and time at which the GroupPolicy was first uploaded.
    createdDateTime?: string;
    // The Group Policy Object GUID from GPO Xml content
    groupPolicyObjectId?: string;
    // The date and time at which the GroupPolicyObjectFile was last modified.
    lastModifiedDateTime?: string;
    // The distinguished name of the OU.
    ouDistinguishedName?: string;
    // The list of scope tags for the configuration.
    roleScopeTagIds?: NullableOption<string[]>;
}
export interface GroupPolicyCategory extends Entity {
    // The string id of the category's display name
    displayName?: NullableOption<string>;
    /**
     * Defines this category's ingestion source (0 - unknown, 1 - custom, 2 - global). Possible values are: unknown, custom,
     * builtIn, unknownFutureValue.
     */
    ingestionSource?: IngestionSource;
    // Defines if the category is a root category
    isRoot?: boolean;
    // The date and time the entity was last modified.
    lastModifiedDateTime?: string;
    // The children categories
    children?: NullableOption<GroupPolicyCategory[]>;
    // The id of the definition file the category came from
    definitionFile?: NullableOption<GroupPolicyDefinitionFile>;
    // The immediate GroupPolicyDefinition children of the category
    definitions?: NullableOption<GroupPolicyDefinition[]>;
    // The parent category
    parent?: NullableOption<GroupPolicyCategory>;
}
export interface GroupPolicyConfiguration extends Entity {
    // The date and time the object was created.
    createdDateTime?: string;
    // User provided description for the resource object.
    description?: NullableOption<string>;
    // User provided name for the resource object.
    displayName?: string;
    // The date and time the entity was last modified.
    lastModifiedDateTime?: string;
    /**
     * Type of definitions configured for this policy. Possible values are: unknown, custom, builtIn, mixed,
     * unknownFutureValue.
     */
    policyConfigurationIngestionType?: GroupPolicyConfigurationIngestionType;
    // The list of scope tags for the configuration.
    roleScopeTagIds?: NullableOption<string[]>;
    // The list of group assignments for the configuration.
    assignments?: NullableOption<GroupPolicyConfigurationAssignment[]>;
    // The list of enabled or disabled group policy definition values for the configuration.
    definitionValues?: NullableOption<GroupPolicyDefinitionValue[]>;
}
export interface GroupPolicyDefinitionFile extends Entity {
    // The localized description of the policy settings in the ADMX file. The default value is empty.
    description?: NullableOption<string>;
    // The localized friendly name of the ADMX file.
    displayName?: NullableOption<string>;
    // The file name of the ADMX file without the path. For example: edge.admx
    fileName?: NullableOption<string>;
    // The supported language codes for the ADMX file.
    languageCodes?: NullableOption<string[]>;
    // The date and time the entity was last modified.
    lastModifiedDateTime?: string;
    // Specifies the type of group policy. Possible values are: admxBacked, admxIngested.
    policyType?: GroupPolicyType;
    // The revision version associated with the file.
    revision?: NullableOption<string>;
    // Specifies the URI used to identify the namespace within the ADMX file.
    targetNamespace?: NullableOption<string>;
    // Specifies the logical name that refers to the namespace within the ADMX file.
    targetPrefix?: NullableOption<string>;
    // The group policy definitions associated with the file.
    definitions?: NullableOption<GroupPolicyDefinition[]>;
}
export interface GroupPolicyDefinition extends Entity {
    // The localized full category path for the policy.
    categoryPath?: NullableOption<string>;
    // Identifies the type of groups the policy can be applied to. Possible values are: user, machine.
    classType?: GroupPolicyDefinitionClassType;
    // The localized policy name.
    displayName?: NullableOption<string>;
    // The localized explanation or help text associated with the policy. The default value is empty.
    explainText?: NullableOption<string>;
    // The category id of the parent category
    groupPolicyCategoryId?: string;
    // Signifies whether or not there are related definitions to this definition
    hasRelatedDefinitions?: boolean;
    // The date and time the entity was last modified.
    lastModifiedDateTime?: string;
    // Minimum required CSP version for device configuration in this definition
    minDeviceCspVersion?: NullableOption<string>;
    // Minimum required CSP version for user configuration in this definition
    minUserCspVersion?: NullableOption<string>;
    // Specifies the type of group policy. Possible values are: admxBacked, admxIngested.
    policyType?: GroupPolicyType;
    // Localized string used to specify what operating system or application version is affected by the policy.
    supportedOn?: NullableOption<string>;
    // Setting definition version
    version?: NullableOption<string>;
    // The group policy category associated with the definition.
    category?: NullableOption<GroupPolicyCategory>;
    // The group policy file associated with the definition.
    definitionFile?: NullableOption<GroupPolicyDefinitionFile>;
    // Definition of the next version of this definition
    nextVersionDefinition?: NullableOption<GroupPolicyDefinition>;
    // The group policy presentations associated with the definition.
    presentations?: NullableOption<GroupPolicyPresentation[]>;
    // Definition of the previous version of this definition
    previousVersionDefinition?: NullableOption<GroupPolicyDefinition>;
}
export interface GroupPolicyUploadedDefinitionFile extends GroupPolicyDefinitionFile {
    // The contents of the uploaded ADMX file.
    content?: NullableOption<string>;
    // The default language of the uploaded ADMX file.
    defaultLanguageCode?: NullableOption<string>;
    // The list of ADML files associated with the uploaded ADMX file.
    groupPolicyUploadedLanguageFiles?: NullableOption<GroupPolicyUploadedLanguageFile[]>;
    /**
     * The upload status of the uploaded ADMX file. Possible values are: none, uploadInProgress, available, assigned,
     * removalInProgress, uploadFailed, removalFailed.
     */
    status?: GroupPolicyUploadedDefinitionFileStatus;
    // The uploaded time of the uploaded ADMX file.
    uploadDateTime?: string;
    // The list of operations on the uploaded ADMX file.
    groupPolicyOperations?: NullableOption<GroupPolicyOperation[]>;
}
export interface MicrosoftTunnelConfiguration extends Entity {
    // Additional settings that may be applied to the server
    advancedSettings?: NullableOption<KeyValuePair[]>;
    // The Default Domain appendix that will be used by the clients
    defaultDomainSuffix?: NullableOption<string>;
    // The configuration's description (optional)
    description?: NullableOption<string>;
    // When DisableUdpConnections is set, the clients and VPN server will not use DTLS connections to transfer data.
    disableUdpConnections?: NullableOption<boolean>;
    // The display name for the server configuration. This property is required when a server is created.
    displayName?: NullableOption<string>;
    // The DNS servers that will be used by the clients
    dnsServers?: NullableOption<string[]>;
    // When the configuration was last updated
    lastUpdateDateTime?: string;
    // The port that both TCP and UPD will listen over on the server
    listenPort?: NullableOption<number>;
    // The subnet that will be used to allocate virtual address for the clients
    network?: NullableOption<string>;
    // List of Scope Tags for this Entity instance
    roleScopeTagIds?: NullableOption<string[]>;
    // Subsets of the routes that will not be routed by the server
    routeExcludes?: NullableOption<string[]>;
    // The routes that will be routed by the server
    routeIncludes?: NullableOption<string[]>;
    /**
     * Subsets of the routes that will not be routed by the server. This property is going to be deprecated with the option of
     * using the new property, 'RouteExcludes'.
     */
    routesExclude?: NullableOption<string[]>;
    /**
     * The routes that will be routed by the server. This property is going to be deprecated with the option of using the new
     * property, 'RouteIncludes'.
     */
    routesInclude?: NullableOption<string[]>;
    // The domains that will be resolved using the provided dns servers
    splitDNS?: NullableOption<string[]>;
}
export interface MicrosoftTunnelHealthThreshold extends Entity {
    /**
     * The threshold for being healthy based on default health status metrics: CPU usage healthy &amp;lt; 50%, Memory usage
     * healthy &amp;lt; 50%, Disk space healthy &amp;gt; 5GB, Latency healthy &amp;lt; 10ms, health metrics can be customized.
     * Read-only.
     */
    defaultHealthyThreshold?: number;
    /**
     * The threshold for being unhealthy based on default health status metrics: CPU usage unhealthy &amp;gt; 75%, Memory
     * usage unhealthy &amp;gt; 75%, Disk space &amp;lt; 3GB, Latency unhealthy &amp;gt; 20ms, health metrics can be
     * customized. Read-only.
     */
    defaultUnhealthyThreshold?: number;
    /**
     * The threshold for being healthy based on default health status metrics: CPU usage healthy &amp;lt; 50%, Memory usage
     * healthy &amp;lt; 50%, Disk space healthy &amp;gt; 5GB, Latency healthy &amp;lt; 10ms, health metrics can be customized.
     */
    healthyThreshold?: number;
    /**
     * The threshold for being unhealthy based on default health status metrics: CPU usage unhealthy &amp;gt; 75%, Memory
     * usage unhealthy &amp;gt; 75%, Disk space &amp;lt; 3GB, Latency Unhealthy &amp;gt; 20ms, health metrics can be
     * customized.
     */
    unhealthyThreshold?: number;
}
export interface MicrosoftTunnelServerLogCollectionResponse extends Entity {
    // The end time of the logs collected
    endDateTime?: string;
    // The time when the log collection is expired
    expiryDateTime?: string;
    // The time when the log collection was requested
    requestDateTime?: string;
    // ID of the server the log collection is requested upon
    serverId?: NullableOption<string>;
    // The size of the logs in bytes
    sizeInBytes?: number;
    // The start time of the logs collected
    startDateTime?: string;
    /**
     * The status of log collection. Possible values are: pending, completed, failed. Possible values are: pending, completed,
     * failed, unknownFutureValue.
     */
    status?: MicrosoftTunnelLogCollectionStatus;
}
export interface MicrosoftTunnelSite extends Entity {
    // The site's description (optional)
    description?: NullableOption<string>;
    // The display name for the site. This property is required when a site is created.
    displayName?: NullableOption<string>;
    // The site's Internal Network Access Probe URL
    internalNetworkProbeUrl?: NullableOption<string>;
    // The site's public domain name or IP address
    publicAddress?: NullableOption<string>;
    // List of Scope Tags for this Entity instance
    roleScopeTagIds?: NullableOption<string[]>;
    // The site's automatic upgrade setting. True for automatic upgrades, false for manual control
    upgradeAutomatically?: boolean;
    // The site provides the state of when an upgrade is available
    upgradeAvailable?: boolean;
    // The site's upgrade window end time of day
    upgradeWindowEndTime?: NullableOption<string>;
    // The site's upgrade window start time of day
    upgradeWindowStartTime?: NullableOption<string>;
    // The site's timezone represented as a minute offset from UTC
    upgradeWindowUtcOffsetInMinutes?: NullableOption<number>;
    // The MicrosoftTunnelConfiguration that has been applied to this MicrosoftTunnelSite
    microsoftTunnelConfiguration?: NullableOption<MicrosoftTunnelConfiguration>;
    // A list of MicrosoftTunnelServers that are registered to this MicrosoftTunnelSite
    microsoftTunnelServers?: NullableOption<MicrosoftTunnelServer[]>;
}
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 DeviceManagementDomainJoinConnector extends Entity {
    // The connector display name.
    displayName?: NullableOption<string>;
    // Last time connector contacted Intune.
    lastConnectionDateTime?: string;
    // The connector state. Possible values are: active, error, inactive.
    state?: DeviceManagementDomainJoinConnectorState;
    // The version of the connector.
    version?: string;
}
export interface ConfigManagerCollection extends Entity {
    // The collection identifier in SCCM.
    collectionIdentifier?: NullableOption<string>;
    // The created date.
    createdDateTime?: string;
    // The DisplayName.
    displayName?: NullableOption<string>;
    // The Hierarchy Identifier.
    hierarchyIdentifier?: NullableOption<string>;
    // The HierarchyName.
    hierarchyName?: NullableOption<string>;
    // The last modified date.
    lastModifiedDateTime?: string;
}
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>;
    // Determines whether the Permission is validated for Scopes defined per Role Assignment. This property is read-only.
    enabledForScopeValidation?: boolean;
    // Resource category to which this Operation belongs. This property is read-only.
    resource?: 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[]>;
    // List of ids of role scope member security groups. These are IDs from Azure Active Directory.
    scopeMembers?: NullableOption<string[]>;
    /**
     * Specifies the type of scope for a Role Assignment. Default type 'ResourceScope' allows assignment of ResourceScopes.
     * For 'AllDevices', 'AllLicensedUsers', and 'AllDevicesAndLicensedUsers', the ResourceScopes property should be left
     * empty. Possible values are: resourceScope, allDevices, allLicensedUsers, allDevicesAndLicensedUsers.
     */
    scopeType?: RoleAssignmentScopeType;
    // 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[]>;
    // The set of Role Scope Tags defined on the Role Assignment.
    roleScopeTags?: NullableOption<RoleScopeTag[]>;
}
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;
    // Type of Role. Set to True if it is built-in, or set to False if it is a custom role definition.
    isBuiltInRoleDefinition?: boolean;
    /**
     * List of Role Permissions this role is allowed to perform. These must match the actionName that is defined as part of
     * the rolePermission.
     */
    permissions?: NullableOption<RolePermission[]>;
    /**
     * 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 Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // List of Role assignments for this role definition.
    roleAssignments?: NullableOption<RoleAssignment[]>;
}
export interface RoleScopeTag extends Entity {
    // Description of the Role Scope Tag.
    description?: NullableOption<string>;
    // The display or friendly name of the Role Scope Tag.
    displayName?: NullableOption<string>;
    // Description of the Role Scope Tag. This property is read-only.
    isBuiltIn?: boolean;
    // The list of assignments for this Role Scope Tag.
    assignments?: NullableOption<RoleScopeTagAutoAssignment[]>;
}
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;
    // When the OnboardingStatus is Onboarding, This is the date time when the onboarding request expires.
    onboardingRequestExpiryDateTime?: 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 RemoteAssistanceSettings extends Entity {
    /**
     * Indicates if sessions to unenrolled devices are allowed for the account. This setting is configurable by the admin.
     * Default value is false.
     */
    allowSessionsToUnenrolledDevices?: boolean;
    // Indicates if sessions to block chat function. This setting is configurable by the admin. Default value is false.
    blockChat?: boolean;
    /**
     * The current state of remote assistance for the account. Possible values are: disabled, enabled. This setting is
     * configurable by the admin. Remote assistance settings that have not yet been configured by the admin have a disabled
     * state. Returned by default. Possible values are: disabled, enabled.
     */
    remoteAssistanceState?: RemoteAssistanceState;
}
export interface DeviceManagementReports extends Entity {
    // Entity representing the configuration of a cached report
    cachedReportConfigurations?: NullableOption<DeviceManagementCachedReportConfiguration[]>;
    // Entity representing a job to export a report
    exportJobs?: NullableOption<DeviceManagementExportJob[]>;
}
export interface EmbeddedSIMActivationCodePool extends Entity {
    // The total count of activation codes which belong to this pool.
    activationCodeCount?: number;
    /**
     * The activation codes which belong to this pool. This navigation property is used to post activation codes to Intune but
     * cannot be used to read activation codes from Intune.
     */
    activationCodes?: EmbeddedSIMActivationCode[];
    // The time the embedded SIM activation code pool was created. Generated service side.
    createdDateTime?: string;
    // The admin defined name of the embedded SIM activation code pool.
    displayName?: string;
    // The time the embedded SIM activation code pool was last modified. Updated service side.
    modifiedDateTime?: string;
    // Navigational property to a list of targets to which this pool is assigned.
    assignments?: NullableOption<EmbeddedSIMActivationCodePoolAssignment[]>;
    // Navigational property to a list of device states for this pool.
    deviceStates?: NullableOption<EmbeddedSIMDeviceState[]>;
}
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 DeviceManagementAutopilotEvent extends Entity {
    // Time spent in user ESP.
    accountSetupDuration?: string;
    /**
     * Deployment status for the enrollment status page account setup phase. Possible values are: unknown, success,
     * inProgress, failure, successWithTimeout, notAttempted, disabled.
     */
    accountSetupStatus?: WindowsAutopilotDeploymentState;
    // Autopilot deployment duration including enrollment.
    deploymentDuration?: string;
    // Deployment end time.
    deploymentEndDateTime?: string;
    // Deployment start time.
    deploymentStartDateTime?: string;
    /**
     * Deployment state like Success, Failure, InProgress, SuccessWithTimeout. Possible values are: unknown, success,
     * inProgress, failure, successWithTimeout, notAttempted, disabled.
     */
    deploymentState?: WindowsAutopilotDeploymentState;
    // Total deployment duration from enrollment to Desktop screen.
    deploymentTotalDuration?: string;
    // Device id associated with the object
    deviceId?: NullableOption<string>;
    // Time spent in device enrollment.
    devicePreparationDuration?: string;
    // Device registration date.
    deviceRegisteredDateTime?: string;
    // Device serial number.
    deviceSerialNumber?: NullableOption<string>;
    // Time spent in device ESP.
    deviceSetupDuration?: string;
    /**
     * Deployment status for the enrollment status page device setup phase. Possible values are: unknown, success, inProgress,
     * failure, successWithTimeout, notAttempted, disabled.
     */
    deviceSetupStatus?: WindowsAutopilotDeploymentState;
    // Enrollment failure details.
    enrollmentFailureDetails?: NullableOption<string>;
    // Device enrollment start date.
    enrollmentStartDateTime?: string;
    /**
     * Enrollment state like Enrolled, Failed. Possible values are: unknown, enrolled, pendingReset, failed, notContacted,
     * blocked.
     */
    enrollmentState?: EnrollmentState;
    /**
     * Enrollment type. Possible values are: unknown, azureADJoinedWithAutopilotProfile, offlineDomainJoined,
     * azureADJoinedUsingDeviceAuthWithAutopilotProfile, azureADJoinedUsingDeviceAuthWithoutAutopilotProfile,
     * azureADJoinedWithOfflineAutopilotProfile, azureADJoinedWithWhiteGlove, offlineDomainJoinedWithWhiteGlove,
     * offlineDomainJoinedWithOfflineAutopilotProfile.
     */
    enrollmentType?: WindowsAutopilotEnrollmentType;
    // Time when the event occurred .
    eventDateTime?: string;
    // Managed device name.
    managedDeviceName?: NullableOption<string>;
    // Device operating system version.
    osVersion?: NullableOption<string>;
    // Count of applications targeted.
    targetedAppCount?: number;
    // Count of policies targeted.
    targetedPolicyCount?: number;
    // User principal name used to enroll the device.
    userPrincipalName?: NullableOption<string>;
    // Enrollment Status Page profile name
    windows10EnrollmentCompletionPageConfigurationDisplayName?: NullableOption<string>;
    // Enrollment Status Page profile ID
    windows10EnrollmentCompletionPageConfigurationId?: NullableOption<string>;
    // Autopilot profile name.
    windowsAutopilotDeploymentProfileDisplayName?: NullableOption<string>;
    // Policy and application status details for this device.
    policyStatusDetails?: NullableOption<DeviceManagementAutopilotPolicyStatusDetail[]>;
}
export interface WindowsDriverUpdateProfile extends Entity {
    // Driver update profile approval type. For example, manual or automatic approval. Possible values are: manual, automatic.
    approvalType?: DriverUpdateProfileApprovalType;
    // The date time that the profile was created.
    createdDateTime?: string;
    // Deployment deferral settings in days, only applicable when ApprovalType is set to automatic approval.
    deploymentDeferralInDays?: NullableOption<number>;
    // The description of the profile which is specified by the user.
    description?: NullableOption<string>;
    // Number of devices reporting for this profile
    deviceReporting?: NullableOption<number>;
    // The display name for the profile.
    displayName?: string;
    // Driver inventory sync status for this profile.
    inventorySyncStatus?: NullableOption<WindowsDriverUpdateProfileInventorySyncStatus>;
    // The date time that the profile was last modified.
    lastModifiedDateTime?: string;
    // Number of new driver updates available for this profile.
    newUpdates?: number;
    // List of Scope Tags for this Driver Update entity.
    roleScopeTagIds?: NullableOption<string[]>;
    // The list of group assignments of the profile.
    assignments?: NullableOption<WindowsDriverUpdateProfileAssignment[]>;
    // Driver inventories for this profile.
    driverInventories?: NullableOption<WindowsDriverUpdateInventory[]>;
}
export interface WindowsFeatureUpdateProfile extends Entity {
    // The date time that the profile was created.
    createdDateTime?: string;
    // Friendly display name of the quality update profile deployable content
    deployableContentDisplayName?: NullableOption<string>;
    // The description of the profile which is specified by the user.
    description?: NullableOption<string>;
    // The display name of the profile.
    displayName?: string;
    // The last supported date for a feature update
    endOfSupportDate?: NullableOption<string>;
    /**
     * The feature update version that will be deployed to the devices targeted by this profile. The version could be any
     * supported version for example 1709, 1803 or 1809 and so on.
     */
    featureUpdateVersion?: string;
    // If true, the latest Microsoft Windows 10 update will be installed on devices ineligible for Microsoft Windows 11
    installLatestWindows10OnWindows11IneligibleDevice?: boolean;
    // The date time that the profile was last modified.
    lastModifiedDateTime?: string;
    // List of Scope Tags for this Feature Update entity.
    roleScopeTagIds?: NullableOption<string[]>;
    /**
     * The windows update rollout settings, including offer start date time, offer end date time, and days between each set of
     * offers.
     */
    rolloutSettings?: NullableOption<WindowsUpdateRolloutSettings>;
    // The list of group assignments of the profile.
    assignments?: NullableOption<WindowsFeatureUpdateProfileAssignment[]>;
}
export interface WindowsQualityUpdateProfile extends Entity {
    // The date time that the profile was created.
    createdDateTime?: string;
    // Friendly display name of the quality update profile deployable content
    deployableContentDisplayName?: NullableOption<string>;
    // The description of the profile which is specified by the user.
    description?: NullableOption<string>;
    // The display name for the profile.
    displayName?: string;
    // Expedited update settings.
    expeditedUpdateSettings?: NullableOption<ExpeditedWindowsQualityUpdateSettings>;
    // The date time that the profile was last modified.
    lastModifiedDateTime?: string;
    // Friendly release date to display for a Quality Update release
    releaseDateDisplayName?: NullableOption<string>;
    // List of Scope Tags for this Quality Update entity.
    roleScopeTagIds?: NullableOption<string[]>;
    // The list of group assignments of the profile.
    assignments?: NullableOption<WindowsQualityUpdateProfileAssignment[]>;
}
export interface WindowsUpdateCatalogItem extends Entity {
    // The display name for the catalog item.
    displayName?: string;
    // The last supported date for a catalog item
    endOfSupportDate?: NullableOption<string>;
    // The date the catalog item was released
    releaseDateTime?: string;
}
// tslint:disable-next-line: interface-name
export interface IntuneBrandingProfile extends Entity {
    // Collection of blocked actions on the company portal as per platform and device ownership types.
    companyPortalBlockedActions?: NullableOption<CompanyPortalBlockedAction[]>;
    // E-mail 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>;
    // Time when the BrandingProfile was created
    createdDateTime?: string;
    // Text comments regarding what the admin has access to on the device
    customCanSeePrivacyMessage?: NullableOption<string>;
    // Text comments regarding what the admin doesn't have access to on the device
    customCantSeePrivacyMessage?: NullableOption<string>;
    // Text comments regarding what the admin doesn't have access to on the device
    customPrivacyMessage?: NullableOption<string>;
    /**
     * Applies to telemetry sent from all clients to the Intune service. When disabled, all proactive troubleshooting and
     * issue warnings within the client are turned off, and telemetry settings appear inactive or hidden to the device user.
     */
    disableClientTelemetry?: boolean;
    // Boolean that indicates if Device Category Selection will be shown in Company Portal
    disableDeviceCategorySelection?: boolean;
    // Company/organization name that is displayed to end users
    displayName?: NullableOption<string>;
    /**
     * Customized device enrollment flow displayed to the end user . Possible values are: availableWithPrompts,
     * availableWithoutPrompts, unavailable.
     */
    enrollmentAvailability?: EnrollmentAvailabilityOptions;
    // Boolean that represents whether the profile is used as default or not
    isDefaultProfile?: boolean;
    // Boolean that represents whether the adminsistrator has disabled the 'Factory Reset' action on corporate owned devices.
    isFactoryResetDisabled?: boolean;
    // Boolean that represents whether the adminsistrator has disabled the 'Remove Device' action on corporate owned devices.
    isRemoveDeviceDisabled?: boolean;
    // Customized image displayed in Company Portal apps landing page
    landingPageCustomizedImage?: NullableOption<MimeContent>;
    // Time when the BrandingProfile was last modified
    lastModifiedDateTime?: 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>;
    // Description of the profile
    profileDescription?: NullableOption<string>;
    // Name of the profile
    profileName?: NullableOption<string>;
    // List of scope tags assigned to the branding profile
    roleScopeTagIds?: NullableOption<string[]>;
    /**
     * Boolean that indicates if a push notification is sent to users when their device ownership type changes from personal
     * to corporate
     */
    sendDeviceOwnershipChangePushNotification?: boolean;
    // Boolean that indicates if AzureAD Enterprise Apps will be shown in Company Portal
    showAzureADEnterpriseApps?: boolean;
    // Boolean that indicates if Configuration Manager Apps will be shown in Company Portal
    showConfigurationManagerApps?: boolean;
    // Boolean that represents whether the administrator-supplied display name will be shown next to the logo image or not
    showDisplayNameNextToLogo?: boolean;
    // Boolean that represents whether the administrator-supplied logo images are shown or not
    showLogo?: boolean;
    // Boolean that indicates if Office WebApps will be shown in Company Portal
    showOfficeWebApps?: boolean;
    // Primary theme color used in the Company Portal applications and web portal
    themeColor?: NullableOption<RgbColor>;
    // Logo image displayed in Company Portal apps which have a theme color background behind the logo
    themeColorLogo?: NullableOption<MimeContent>;
    // The list of group assignments for the branding profile
    assignments?: NullableOption<IntuneBrandingProfileAssignment[]>;
}
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 CertificateConnectorDetails extends Entity {
    // Connector name (set during enrollment).
    connectorName?: NullableOption<string>;
    // Version of the connector installed.
    connectorVersion?: NullableOption<string>;
    // Date/time when this connector was enrolled.
    enrollmentDateTime?: string;
    // Date/time when this connector last connected to the service.
    lastCheckinDateTime?: string;
    // Name of the machine hosting this connector service.
    machineName?: NullableOption<string>;
}
export interface UserPFXCertificate extends Entity {
    // Date/time when this PFX certificate was imported.
    createdDateTime?: string;
    // Encrypted PFX blob.
    encryptedPfxBlob?: NullableOption<string>;
    // Encrypted PFX password.
    encryptedPfxPassword?: NullableOption<string>;
    // Certificate's validity expiration date/time.
    expirationDateTime?: string;
    /**
     * Certificate's intended purpose from the point-of-view of deployment. Possible values are: unassigned, smimeEncryption,
     * smimeSigning, vpn, wifi.
     */
    intendedPurpose?: UserPfxIntendedPurpose;
    // Name of the key (within the provider) used to encrypt the blob.
    keyName?: NullableOption<string>;
    // Date/time when this PFX certificate was last modified.
    lastModifiedDateTime?: string;
    /**
     * Padding scheme used by the provider during encryption/decryption. Possible values are: none, pkcs1, oaepSha1,
     * oaepSha256, oaepSha384, oaepSha512.
     */
    paddingScheme?: UserPfxPaddingScheme;
    // Crypto provider used to encrypt this blob.
    providerName?: NullableOption<string>;
    // Certificate's validity start date/time.
    startDateTime?: string;
    // SHA-1 thumbprint of the PFX certificate.
    thumbprint?: NullableOption<string>;
    // User Principal Name of the PFX certificate.
    userPrincipalName?: NullableOption<string>;
}
export interface AssignmentFilterEvaluationStatusDetails extends Entity {
    // PayloadId on which filter has been applied.
    payloadId?: 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;
    // User unique identifier, must be Guid
    userId?: NullableOption<string>;
    // User Principal Name
    userPrincipalName?: NullableOption<string>;
    // The version of the policy
    version?: 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;
    // User unique identifier, must be Guid
    userId?: NullableOption<string>;
    // User Principal Name
    userPrincipalName?: NullableOption<string>;
    // The version of the policy
    version?: number;
}
export interface ManagedDeviceMobileAppConfigurationState 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<ManagedDeviceMobileAppConfigurationSettingState[]>;
    // The compliance state of the policy
    state?: ComplianceStatus;
    // User unique identifier, must be Guid
    userId?: NullableOption<string>;
    // User Principal Name
    userPrincipalName?: NullableOption<string>;
    // The version of the policy
    version?: number;
}
export interface SecurityBaselineState extends Entity {
    // The display name of the security baseline
    displayName?: string;
    // The security baseline template id
    securityBaselineTemplateId?: NullableOption<string>;
    // Security baseline compliance state
    state?: SecurityBaselineComplianceState;
    // User Principal Name
    userPrincipalName?: NullableOption<string>;
    // The security baseline state for different settings for a device
    settingStates?: NullableOption<SecurityBaselineSettingState[]>;
}
export interface DeviceHealthScriptPolicyState {
    // A list of the assignment filter ids used for health script applicability evaluation
    assignmentFilterIds?: NullableOption<string[]>;
    /**
     * Detection state from the lastest device health script execution. Possible values are: unknown, success, fail,
     * scriptError, pending, notApplicable.
     */
    detectionState?: RunState;
    // The Intune device Id
    deviceId?: string;
    // Display name of the device
    deviceName?: NullableOption<string>;
    // The next timestamp of when the device health script is expected to execute
    expectedStateUpdateDateTime?: NullableOption<string>;
    // Key of the device health script policy state is a concatenation of the MT sideCar policy Id and Intune device Id
    id?: string;
    // The last timestamp of when the device health script executed
    lastStateUpdateDateTime?: string;
    // The last time that Intune Managment Extension synced with Intune
    lastSyncDateTime?: string;
    // Value of the OS Version in string
    osVersion?: NullableOption<string>;
    // The MT sideCar policy Id
    policyId?: string;
    // Display name of the device health script
    policyName?: NullableOption<string>;
    // Error from the detection script after remediation
    postRemediationDetectionScriptError?: NullableOption<string>;
    // Detection script output after remediation
    postRemediationDetectionScriptOutput?: NullableOption<string>;
    // Error from the detection script before remediation
    preRemediationDetectionScriptError?: NullableOption<string>;
    // Output of the detection script before remediation
    preRemediationDetectionScriptOutput?: NullableOption<string>;
    // Error output of the remediation script
    remediationScriptError?: NullableOption<string>;
    /**
     * Remediation state from the lastest device health script execution. Possible values are: unknown, skipped, success,
     * remediationFailed, scriptError, unknownFutureValue.
     */
    remediationState?: RemediationState;
    // Name of the user whom ran the device health script
    userName?: NullableOption<string>;
}
export interface DeviceLogCollectionResponse extends Entity {
    // The User Principal Name (UPN) of the user that enrolled the device.
    enrolledByUser?: NullableOption<string>;
    // The error code, if any. Valid values -9.22337203685478E+18 to 9.22337203685478E+18
    errorCode?: number;
    // 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. Valid values -1.79769313486232E+308 to 1.79769313486232E+308
    size?: number;
    // 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 RbacApplicationMultiple extends Entity {
    resourceNamespaces?: NullableOption<UnifiedRbacResourceNamespace[]>;
    roleAssignments?: NullableOption<UnifiedRoleAssignmentMultiple[]>;
    roleDefinitions?: NullableOption<UnifiedRoleDefinition[]>;
}
export interface UnifiedRbacResourceNamespace extends Entity {
    /**
     * Name of the resource namespace. Typically, the same name as the id property, such as microsoft.aad.b2c. Required.
     * Supports $filter (eq, startsWith).
     */
    name?: string;
    // Operations that an authorized principal is allowed to perform.
    resourceActions?: NullableOption<UnifiedRbacResourceAction[]>;
}
export interface UnifiedRoleAssignmentMultiple extends Entity {
    /**
     * Ids of the app specific scopes when the assignment scopes are app specific. The scopes 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. App scopes are scopes that are
     * defined and understood by this application only.
     */
    appScopeIds?: NullableOption<string[]>;
    condition?: NullableOption<string>;
    // Description of the role assignment.
    description?: NullableOption<string>;
    /**
     * Ids of the directory objects that represent the scopes of the assignment. The scopes of an assignment determine the set
     * of resources for which the principals have been granted access. Directory scopes are shared scopes stored in the
     * directory that are understood by multiple applications. App scopes are scopes that are defined and understood by this
     * application only.
     */
    directoryScopeIds?: NullableOption<string[]>;
    // Name of the role assignment. Required.
    displayName?: NullableOption<string>;
    // Identifiers of the principals to which the assignment is granted. Supports $filter (any operator only).
    principalIds?: NullableOption<string[]>;
    // Identifier of the unifiedRoleDefinition the assignment is for.
    roleDefinitionId?: string;
    /**
     * Read-only collection with details of the app specific scopes when the assignment scopes are app specific. Containment
     * entity. Read-only.
     */
    appScopes?: NullableOption<AppScope[]>;
    /**
     * Read-only collection that references the directory objects that are scope of the assignment. Provided so that callers
     * can get the directory objects using $expand at the same time as getting the role assignment. Read-only. Supports
     * $expand.
     */
    directoryScopes?: NullableOption<DirectoryObject[]>;
    /**
     * Read-only collection that references the assigned principals. Provided so that callers can get the principals using
     * $expand at the same time as getting the role assignment. Read-only. Supports $expand.
     */
    principals?: NullableOption<DirectoryObject[]>;
    /**
     * Specifies the roleDefinition that the assignment is for. Provided so that callers can get the role definition using
     * $expand at the same time as getting the role assignment. Supports $filter (eq operator on id, isBuiltIn, and
     * displayName, and startsWith operator on displayName) and $expand.
     */
    roleDefinition?: NullableOption<UnifiedRoleDefinition>;
}
export interface UnifiedRoleDefinition extends Entity {
    /**
     * Types of principals that can be assigned the role. Read-only. The possible values are: user, servicePrincipal, group,
     * unknownFutureValue. This is a multi-valued enumeration that can contain up to three values as a comma-separated string.
     * For example, user, group. Supports $filter (eq).
     */
    allowedPrincipalTypes?: NullableOption<AllowedRolePrincipalTypes>;
    // 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 and
     * startsWith).
     */
    displayName?: NullableOption<string>;
    /**
     * Flag indicating if the unifiedRoleDefinition is part of the default set included with the product or custom. Read-only.
     * Supports $filter (eq).
     */
    isBuiltIn?: NullableOption<boolean>;
    /**
     * Flag indicating if the role is enabled for assignment. If false the role is not available for assignment. Read-only
     * when isBuiltIn is true.
     */
    isEnabled?: NullableOption<boolean>;
    /**
     * Flag indicating if the role is privileged. Microsoft Entra ID defines a role as privileged if it contains at least one
     * sensitive resource action in the rolePermissions and allowedResourceActions objects. Applies only for actions in the
     * microsoft.directory resource namespace. Read-only. Supports $filter (eq).
     */
    isPrivileged?: NullableOption<boolean>;
    /**
     * List of scopes permissions granted by the role definition apply 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. This identifier is typically used if one needs an
     * identifier to be the same across different directories. Read-only when isBuiltIn is true.
     */
    templateId?: NullableOption<string>;
    // Indicates the version of the unifiedRoleDefinition object. 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 support this attribute.
     */
    inheritsPermissionsFrom?: NullableOption<UnifiedRoleDefinition[]>;
}
export interface RoleManagement {
    directory?: NullableOption<RbacApplication>;
    cloudPC?: NullableOption<RbacApplicationMultiple>;
    enterpriseApps?: NullableOption<RbacApplication[]>;
    exchange?: NullableOption<UnifiedRbacApplication>;
    // The RbacApplication for Entitlement Management
    entitlementManagement?: NullableOption<RbacApplication>;
    // The RbacApplication for Device Management
    deviceManagement?: NullableOption<RbacApplicationMultiple>;
}
export interface RbacApplication extends Entity {
    resourceNamespaces?: NullableOption<UnifiedRbacResourceNamespace[]>;
    roleAssignments?: NullableOption<UnifiedRoleAssignment[]>;
    roleDefinitions?: NullableOption<UnifiedRoleDefinition[]>;
    transitiveRoleAssignments?: NullableOption<UnifiedRoleAssignment[]>;
    roleAssignmentApprovals?: NullableOption<Approval[]>;
    roleAssignmentScheduleInstances?: NullableOption<UnifiedRoleAssignmentScheduleInstance[]>;
    roleAssignmentScheduleRequests?: NullableOption<UnifiedRoleAssignmentScheduleRequest[]>;
    roleAssignmentSchedules?: NullableOption<UnifiedRoleAssignmentSchedule[]>;
    roleEligibilityScheduleInstances?: NullableOption<UnifiedRoleEligibilityScheduleInstance[]>;
    roleEligibilityScheduleRequests?: NullableOption<UnifiedRoleEligibilityScheduleRequest[]>;
    roleEligibilitySchedules?: NullableOption<UnifiedRoleEligibilitySchedule[]>;
}
export interface UnifiedRbacApplication extends Entity {
    // Workload-specific scope object that represents the resources for which the principal has been granted access.
    customAppScopes?: NullableOption<CustomAppScope[]>;
    // Resource that represents a collection of related actions.
    resourceNamespaces?: NullableOption<UnifiedRbacResourceNamespace[]>;
    // Resource to grant access to users or groups.
    roleAssignments?: NullableOption<UnifiedRoleAssignment[]>;
    // The roles allowed by RBAC providers and the permissions assigned to the roles.
    roleDefinitions?: NullableOption<UnifiedRoleDefinition[]>;
    // Resource to grant access to users or groups that are transitive.
    transitiveRoleAssignments?: NullableOption<UnifiedRoleAssignment[]>;
}
export interface UnifiedRbacResourceAction extends Entity {
    /**
     * HTTP method for the action, such as DELETE, GET, PATCH, POST, PUT, or null. Supports $filter (eq) but not for null
     * values.
     */
    actionVerb?: NullableOption<string>;
    authenticationContextId?: NullableOption<string>;
    // Description for the action. Supports $filter (eq).
    description?: NullableOption<string>;
    isAuthenticationContextSettable?: NullableOption<boolean>;
    /**
     * Flag indicating if the action is a sensitive resource action. Applies only for actions in the microsoft.directory
     * resource namespace. Read-only. Supports $filter (eq).
     */
    isPrivileged?: NullableOption<boolean>;
    /**
     * Name for the action within the resource namespace, such as microsoft.insights/programs/update. Can include slash
     * character (/). Case insensitive. Required. Supports $filter (eq).
     */
    name?: string;
    // Not implemented.
    resourceScopeId?: NullableOption<string>;
    authenticationContext?: NullableOption<AuthenticationContextClassReference>;
    resourceScope?: NullableOption<UnifiedRbacResourceScope>;
}
export interface UnifiedRbacResourceScope extends Entity {
    displayName?: NullableOption<string>;
    scope?: string;
    type?: NullableOption<string>;
}
export interface Command extends Entity {
    appServiceName?: NullableOption<string>;
    error?: NullableOption<string>;
    packageFamilyName?: NullableOption<string>;
    payload?: NullableOption<PayloadRequest>;
    permissionTicket?: NullableOption<string>;
    postBackUri?: NullableOption<string>;
    status?: NullableOption<string>;
    type?: NullableOption<string>;
    responsepayload?: NullableOption<PayloadResponse>;
}
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 time. 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 time. 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 will be returned. If SharePoint
     * sites have versioning enabled, including all versions include 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 time. 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 time. 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 fulfills.
    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>;
    approvers?: NullableOption<User[]>;
    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 {
    providerStatus?: NullableOption<SecurityProviderStatus[]>;
    subjectRightsRequests?: NullableOption<SubjectRightsRequest[]>;
    cases?: NullableOption<SecurityNamespace.CasesRoot>;
    informationProtection?: NullableOption<SecurityNamespace.InformationProtection>;
    // 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[]>;
    // Provides tenants capability to launch a simulated and realistic phishing attack and learn from it.
    attackSimulation?: NullableOption<AttackSimulationRoot>;
    labels?: NullableOption<SecurityNamespace.LabelsRoot>;
    triggers?: NullableOption<SecurityNamespace.TriggersRoot>;
    triggerTypes?: NullableOption<SecurityNamespace.TriggerTypesRoot>;
    // A threat submission sent to Microsoft; for example, a suspicious email threat, URL threat, or file threat.
    threatSubmission?: NullableOption<SecurityNamespace.ThreatSubmissionRoot>;
    // Notifications for suspicious or potential security issues in a customer’s tenant.
    alerts?: NullableOption<Alert[]>;
    cloudAppSecurityProfiles?: NullableOption<CloudAppSecurityProfile[]>;
    domainSecurityProfiles?: NullableOption<DomainSecurityProfile[]>;
    fileSecurityProfiles?: NullableOption<FileSecurityProfile[]>;
    hostSecurityProfiles?: NullableOption<HostSecurityProfile[]>;
    ipSecurityProfiles?: NullableOption<IpSecurityProfile[]>;
    providerTenantSettings?: NullableOption<ProviderTenantSetting[]>;
    secureScoreControlProfiles?: NullableOption<SecureScoreControlProfile[]>;
    // Measurements of tenants’ security posture to help protect them from threats.
    secureScores?: NullableOption<SecureScore[]>;
    securityActions?: NullableOption<SecurityAction[]>;
    tiIndicators?: NullableOption<TiIndicator[]>;
    userSecurityProfiles?: NullableOption<UserSecurityProfile[]>;
    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[]>;
    // A collection of alertHistoryStates comprising an audit log of all updates made to an alert.
    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 CloudAppSecurityProfile extends Entity {
    azureSubscriptionId?: NullableOption<string>;
    azureTenantId?: NullableOption<string>;
    createdDateTime?: NullableOption<string>;
    deploymentPackageUrl?: NullableOption<string>;
    destinationServiceName?: NullableOption<string>;
    isSigned?: NullableOption<boolean>;
    lastModifiedDateTime?: NullableOption<string>;
    manifest?: NullableOption<string>;
    name?: NullableOption<string>;
    permissionsRequired?: NullableOption<ApplicationPermissionsRequired>;
    platform?: NullableOption<string>;
    policyName?: NullableOption<string>;
    publisher?: NullableOption<string>;
    riskScore?: NullableOption<string>;
    tags?: NullableOption<string[]>;
    type?: NullableOption<string>;
    vendorInformation?: NullableOption<SecurityVendorInformation>;
}
export interface DomainSecurityProfile extends Entity {
    activityGroupNames?: NullableOption<string[]>;
    azureSubscriptionId?: NullableOption<string>;
    azureTenantId?: string;
    countHits?: NullableOption<number>;
    countInOrg?: NullableOption<number>;
    domainCategories?: NullableOption<ReputationCategory[]>;
    domainRegisteredDateTime?: NullableOption<string>;
    firstSeenDateTime?: NullableOption<string>;
    lastSeenDateTime?: NullableOption<string>;
    name?: NullableOption<string>;
    registrant?: NullableOption<DomainRegistrant>;
    riskScore?: NullableOption<string>;
    tags?: NullableOption<string[]>;
    vendorInformation?: NullableOption<SecurityVendorInformation>;
}
export interface FileSecurityProfile extends Entity {
    activityGroupNames?: NullableOption<string[]>;
    azureSubscriptionId?: NullableOption<string>;
    azureTenantId?: string;
    certificateThumbprint?: NullableOption<string>;
    extensions?: NullableOption<string[]>;
    fileType?: NullableOption<string>;
    firstSeenDateTime?: NullableOption<string>;
    hashes?: NullableOption<FileHash[]>;
    lastSeenDateTime?: NullableOption<string>;
    malwareStates?: NullableOption<MalwareState[]>;
    names?: NullableOption<string[]>;
    riskScore?: NullableOption<string>;
    size?: NullableOption<number>;
    tags?: NullableOption<string[]>;
    vendorInformation?: NullableOption<SecurityVendorInformation>;
    vulnerabilityStates?: NullableOption<VulnerabilityState[]>;
}
export interface HostSecurityProfile extends Entity {
    azureSubscriptionId?: NullableOption<string>;
    azureTenantId?: string;
    firstSeenDateTime?: NullableOption<string>;
    fqdn?: NullableOption<string>;
    isAzureAdJoined?: NullableOption<boolean>;
    isAzureAdRegistered?: NullableOption<boolean>;
    isHybridAzureDomainJoined?: NullableOption<boolean>;
    lastSeenDateTime?: NullableOption<string>;
    logonUsers?: NullableOption<LogonUser[]>;
    netBiosName?: NullableOption<string>;
    networkInterfaces?: NullableOption<NetworkInterface[]>;
    os?: NullableOption<string>;
    osVersion?: NullableOption<string>;
    parentHost?: NullableOption<string>;
    relatedHostIds?: NullableOption<string[]>;
    riskScore?: NullableOption<string>;
    tags?: NullableOption<string[]>;
    vendorInformation?: NullableOption<SecurityVendorInformation>;
}
// tslint:disable-next-line: interface-name
export interface IpSecurityProfile extends Entity {
    activityGroupNames?: NullableOption<string[]>;
    address?: NullableOption<string>;
    azureSubscriptionId?: NullableOption<string>;
    azureTenantId?: string;
    countHits?: NullableOption<number>;
    countHosts?: NullableOption<number>;
    firstSeenDateTime?: NullableOption<string>;
    ipCategories?: NullableOption<IpCategory[]>;
    ipReferenceData?: NullableOption<IpReferenceData[]>;
    lastSeenDateTime?: NullableOption<string>;
    riskScore?: NullableOption<string>;
    tags?: NullableOption<string[]>;
    vendorInformation?: NullableOption<SecurityVendorInformation>;
}
export interface ProviderTenantSetting extends Entity {
    azureTenantId?: string;
    enabled?: NullableOption<boolean>;
    lastModifiedDateTime?: NullableOption<string>;
    provider?: NullableOption<string>;
    vendor?: NullableOption<string>;
}
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 (Account, Data, Device, Apps, Infrastructure).
    controlCategory?: NullableOption<string>;
    // Flag to indicate where the tenant has marked a control (ignore, 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>;
    lastModifiedDateTime?: NullableOption<string>;
    // Current obtained max score on specified date.
    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,elevationOfPrivilege,maliciousInsider,passwordCracking,phishingOrWhaling,spoofing).
     */
    threats?: NullableOption<string[]>;
    // Control tier (Core, Defense in Depth, Advanced.)
    tier?: NullableOption<string>;
    // Title of the control.
    title?: NullableOption<string>;
    // User impact of implementing control (low, moderate, high).
    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>;
    vendorInformation?: NullableOption<SecurityVendorInformation>;
}
export interface SecurityAction extends Entity {
    // Reason for invoking this action.
    actionReason?: NullableOption<string>;
    /**
     * The Application ID of the calling application that submitted (POST) the action. The appId should be extracted from the
     * auth token and not entered manually by the calling application.
     */
    appId?: NullableOption<string>;
    /**
     * Azure tenant ID of the entity to determine which tenant the entity belongs to (multi-tenancy support). The
     * azureTenantId should be extracted from the auth token and not entered manually by the calling application.
     */
    azureTenantId?: NullableOption<string>;
    clientContext?: NullableOption<string>;
    /**
     * Timestamp when the action was completed. 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>;
    /**
     * Timestamp when the action 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>;
    // Error info when the action fails.
    errorInfo?: NullableOption<ResultInfo>;
    /**
     * Timestamp when this action was last 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.
     */
    lastActionDateTime?: NullableOption<string>;
    // Action name.
    name?: NullableOption<string>;
    /**
     * Collection of parameters (key-value pairs) necessary to invoke the action, for example, URL or fileHash to block.).
     * Required.
     */
    parameters?: NullableOption<KeyValuePair[]>;
    // Collection of securityActionState to keep the history of an action.
    states?: NullableOption<SecurityActionState[]>;
    // Status of the action. Possible values are: NotStarted, Running, Completed, Failed.
    status?: NullableOption<OperationStatus>;
    /**
     * The user principal name of the signed-in user that submitted (POST) the action. The user should be extracted from the
     * auth token and not entered manually by the calling application.
     */
    user?: NullableOption<string>;
    /**
     * Complex Type containing details about the Security product/service vendor, provider, and sub-provider (for example,
     * vendor=Microsoft; provider=Windows Defender ATP; sub-provider=AppLocker).
     */
    vendorInformation?: NullableOption<SecurityVendorInformation>;
}
export interface TiIndicator extends Entity {
    /**
     * The action to apply if the indicator is matched from within the targetProduct security tool. Possible values are:
     * unknown, allow, block, alert. Required.
     */
    action?: NullableOption<TiAction>;
    /**
     * The cyber threat intelligence name(s) for the parties responsible for the malicious activity covered by the threat
     * indicator.
     */
    activityGroupNames?: NullableOption<string[]>;
    /**
     * A catchall area for extra data from the indicator that is not specifically covered by other tiIndicator properties. The
     * security tool specified by targetProduct typically does not utilize this data.
     */
    additionalInformation?: NullableOption<string>;
    // Stamped by the system when the indicator is ingested. The Microsoft Entra tenant id of submitting client. Required.
    azureTenantId?: NullableOption<string>;
    /**
     * An integer representing the confidence the data within the indicator accurately identifies malicious behavior.
     * Acceptable values are 0 – 100 with 100 being the highest.
     */
    confidence?: NullableOption<number>;
    // Brief description (100 characters or less) of the threat represented by the indicator. Required.
    description?: NullableOption<string>;
    /**
     * The area of the Diamond Model in which this indicator exists. Possible values are: unknown, adversary, capability,
     * infrastructure, victim.
     */
    diamondModel?: NullableOption<DiamondModel>;
    domainName?: NullableOption<string>;
    emailEncoding?: NullableOption<string>;
    emailLanguage?: NullableOption<string>;
    emailRecipient?: NullableOption<string>;
    emailSenderAddress?: NullableOption<string>;
    emailSenderName?: NullableOption<string>;
    emailSourceDomain?: NullableOption<string>;
    emailSourceIpAddress?: NullableOption<string>;
    emailSubject?: NullableOption<string>;
    emailXMailer?: NullableOption<string>;
    /**
     * DateTime string indicating when the Indicator expires. All indicators must have an expiration date to avoid stale
     * indicators persisting in the system. 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.
     */
    expirationDateTime?: NullableOption<string>;
    // An identification number that ties the indicator back to the indicator provider’s system (for example, a foreign key).
    externalId?: NullableOption<string>;
    fileCompileDateTime?: NullableOption<string>;
    fileCreatedDateTime?: NullableOption<string>;
    fileHashType?: NullableOption<FileHashType>;
    fileHashValue?: NullableOption<string>;
    fileMutexName?: NullableOption<string>;
    fileName?: NullableOption<string>;
    filePacker?: NullableOption<string>;
    filePath?: NullableOption<string>;
    fileSize?: NullableOption<number>;
    fileType?: NullableOption<string>;
    /**
     * Stamped by the system when the indicator is ingested. 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
     */
    ingestedDateTime?: NullableOption<string>;
    /**
     * Used to deactivate indicators within system. By default, any indicator submitted is set as active. However, providers
     * may submit existing indicators with this set to ‘False’ to deactivate indicators in the system.
     */
    isActive?: NullableOption<boolean>;
    /**
     * A JSON array of strings that describes which point or points on the Kill Chain this indicator targets. See ‘killChain
     * values’ below for exact values.
     */
    killChain?: NullableOption<string[]>;
    // Scenarios in which the indicator may cause false positives. This should be human-readable text.
    knownFalsePositives?: NullableOption<string>;
    /**
     * The last time the indicator was 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
     */
    lastReportedDateTime?: NullableOption<string>;
    /**
     * The malware family name associated with an indicator if it exists. Microsoft prefers the Microsoft malware family name
     * if at all possible that can be found via the Windows Defender Security Intelligence threat encyclopedia.
     */
    malwareFamilyNames?: NullableOption<string[]>;
    networkCidrBlock?: NullableOption<string>;
    networkDestinationAsn?: NullableOption<number>;
    networkDestinationCidrBlock?: NullableOption<string>;
    networkDestinationIPv4?: NullableOption<string>;
    networkDestinationIPv6?: NullableOption<string>;
    networkDestinationPort?: NullableOption<number>;
    networkIPv4?: NullableOption<string>;
    networkIPv6?: NullableOption<string>;
    networkPort?: NullableOption<number>;
    networkProtocol?: NullableOption<number>;
    networkSourceAsn?: NullableOption<number>;
    networkSourceCidrBlock?: NullableOption<string>;
    networkSourceIPv4?: NullableOption<string>;
    networkSourceIPv6?: NullableOption<string>;
    networkSourcePort?: NullableOption<number>;
    /**
     * Determines if the indicator should trigger an event that is visible to an end-user. When set to ‘true,’ security tools
     * won't notify the end user that a ‘hit’ has occurred. This is most often treated as audit or silent mode by security
     * products where they'll simply log that a match occurred but won't perform the action. Default value is false.
     */
    passiveOnly?: NullableOption<boolean>;
    /**
     * An integer representing the severity of the malicious behavior identified by the data within the indicator. Acceptable
     * values are 0 – 5 where 5 is the most severe and zero isn't severe at all. Default value is 3.
     */
    severity?: NullableOption<number>;
    // A JSON array of strings that stores arbitrary tags/keywords.
    tags?: NullableOption<string[]>;
    /**
     * A string value representing a single security product to which the indicator should be applied. Acceptable values are:
     * Azure Sentinel, Microsoft Defender ATP. Required
     */
    targetProduct?: string;
    /**
     * Each indicator must have a valid Indicator Threat Type. Possible values are: Botnet, C2, CryptoMining, Darknet, DDoS,
     * MaliciousUrl, Malware, Phishing, Proxy, PUA, WatchList. Required.
     */
    threatType?: NullableOption<string>;
    // Traffic Light Protocol value for the indicator. Possible values are: unknown, white, green, amber, red. Required.
    tlpLevel?: NullableOption<TlpLevel>;
    url?: NullableOption<string>;
    userAgent?: NullableOption<string>;
}
export interface UserSecurityProfile extends Entity {
    accounts?: NullableOption<UserAccount[]>;
    azureSubscriptionId?: NullableOption<string>;
    azureTenantId?: string;
    createdDateTime?: NullableOption<string>;
    displayName?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    riskScore?: NullableOption<string>;
    tags?: NullableOption<string[]>;
    userPrincipalName?: NullableOption<string>;
    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>;
    // Settings to configure channel moderation to control who can start new posts and reply to posts in that channel.
    moderationSettings?: NullableOption<ChannelModerationSettings>;
    /**
     * Contains summary information about the channel, including number of guests, members, owners, 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 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 the type of operation 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 TeamworkTag extends Entity {
    /**
     * Tag description as it appears to the user in Microsoft Teams. A teamworkTag can't have more than 200
     * teamworkTagMembers.
     */
    description?: NullableOption<string>;
    // Tag name 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 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 TeamTemplateDefinition extends Entity {
    /**
     * Describes the audience the team template is available to. The possible values are: organization, user, public,
     * unknownFutureValue.
     */
    audience?: NullableOption<TeamTemplateAudience>;
    // The assigned categories for the team template.
    categories?: NullableOption<string[]>;
    // A brief description of the team template as it will appear to the users in Microsoft Teams.
    description?: NullableOption<string>;
    // The user defined name of the team template.
    displayName?: NullableOption<string>;
    // The icon url for the team template.
    iconUrl?: NullableOption<string>;
    // Language the template is available in.
    languageTag?: NullableOption<string>;
    // The identity of the user who last modified the team template.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // The date time of when the team template was last modified.
    lastModifiedDateTime?: NullableOption<string>;
    // The templateId for the team template
    parentTemplateId?: NullableOption<string>;
    // The organization which published the team template.
    publisherName?: NullableOption<string>;
    // A short-description of the team template as it will appear to the users in Microsoft Teams.
    shortDescription?: NullableOption<string>;
    /**
     * Collection of channel objects. A channel represents a topic, and therefore a logical isolation of discussion, within a
     * team.
     */
    teamDefinition?: NullableOption<Team>;
}
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>;
    timeClockSettings?: NullableOption<TimeClockSettings>;
    // 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[]>;
    dayNotes?: NullableOption<DayNote[]>;
    // 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[]>;
    timeCards?: NullableOption<TimeCard[]>;
    // 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[]>;
}
export interface Compliance {
    ediscovery?: NullableOption<Ediscovery.Ediscoveryroot>;
}
// 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 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. Used only to fetch contentTypes columns.
    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 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 contains 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 recent activities that took place within this list.
    activities?: NullableOption<ItemActivityOLD[]>;
    // 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 due to which the operation failed.
    error?: NullableOption<PublicError>;
    // A value between 0 and 100 that indicates the progress of the operation.
    percentageComplete?: NullableOption<number>;
    // A unique identifier for the result.
    resourceId?: NullableOption<string>;
    // Type of the operation.
    type?: NullableOption<string>;
}
export interface BaseSitePage extends BaseItem {
    // The name of the page layout of the page. The possible values are: microsoftReserved, article, home, unknownFutureValue.
    pageLayout?: NullableOption<PageLayoutType>;
    // The publishing status and the MM.mm version of the page.
    publishingState?: NullableOption<PublicationFacet>;
    // Title of the sitePage.
    title?: 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 the Roles property values section 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>;
}
export interface RecycleBin extends BaseItem {
    // List of the recycleBinItems deleted by a user.
    items?: NullableOption<RecycleBinItem[]>;
}
export interface AuthenticationConditionApplication {
    // The identifier for an application corresponding to a condition which will trigger an authenticationEventListener.
    appId?: string;
}
export interface OnTokenIssuanceStartCustomExtension extends CustomAuthenticationExtension {
    // Collection of claims to be returned by the API called by this custom authentication extension.
    claimsForTokenConfiguration?: NullableOption<OnTokenIssuanceStartReturnClaim[]>;
}
export interface AppleManagedIdentityProvider extends IdentityProviderBase {
    // The certificate data that 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>;
}
export interface AuthenticationEventsPolicy extends Entity {
    // A list of applicable actions to be taken on sign-up.
    onSignupStart?: NullableOption<AuthenticationListener[]>;
}
export interface AuthenticationListener extends Entity {
    /**
     * The priority of the listener. Determines the order of evaluation when an event has multiple listeners. The priority is
     * evaluated from low to high.
     */
    priority?: number;
    /**
     * Filter based on the source of the authentication that is used to determine whether the listener is evaluated, and is
     * currently limited to evaluations based on application the user is authenticating to.
     */
    sourceFilter?: NullableOption<AuthenticationSourceFilter>;
}
// tslint:disable-next-line: interface-name
export interface IdentityProvider extends Entity {
    /**
     * The client ID for the application obtained when registering the application with the identity provider. This is a
     * required field. Required. Not nullable.
     */
    clientId?: NullableOption<string>;
    /**
     * The client secret for the application obtained when registering the application with the identity provider. This is
     * write-only. A read operation will return . This is a required field. 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 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. This 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>;
    state?: NullableOption<IdentityProviderState>;
}
export interface ExternalUsersSelfServiceSignUpEventsFlow extends AuthenticationEventsFlow {
    // The configuration for what to invoke when attributes are ready to be collected from the user.
    onAttributeCollection?: NullableOption<OnAttributeCollectionHandler>;
    /**
     * Required. The configuration for what to invoke when authentication methods are ready to be presented to the user. Must
     * have at least one identity provider linked.
     */
    onAuthenticationMethodLoadStart?: NullableOption<OnAuthenticationMethodLoadStartHandler>;
    // Required. The configuration for what to invoke when an authentication flow is ready to be initiated.
    onInteractiveAuthFlowStart?: NullableOption<OnInteractiveAuthFlowStartHandler>;
    // The configuration for what to invoke during user creation.
    onUserCreateStart?: NullableOption<OnUserCreateStartHandler>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IdentityBuiltInUserFlowAttribute extends IdentityUserFlowAttribute {}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IdentityCustomUserFlowAttribute extends IdentityUserFlowAttribute {}
// tslint:disable-next-line: interface-name
export interface InvokeUserFlowListener extends AuthenticationListener {
    // The user flow that is invoked when this action executes.
    userFlow?: NullableOption<B2xIdentityUserFlow>;
}
export interface OnAttributeCollectionListener extends AuthenticationEventListener {
    // Required. Configuration for what to invoke if the event resolves to this listener.
    handler?: NullableOption<OnAttributeCollectionHandler>;
}
export interface OnAuthenticationMethodLoadStartListener extends AuthenticationEventListener {
    /**
     * Required. Configuration for what to invoke if the event resolves to this listener. This lets us define potential
     * handler configurations per-event.
     */
    handler?: NullableOption<OnAuthenticationMethodLoadStartHandler>;
}
export interface OnInteractiveAuthFlowStartListener extends AuthenticationEventListener {
    /**
     * Required. Configuration for what to invoke if the event resolves to this listener. This lets us define potential
     * handler configurations per-event.
     */
    handler?: NullableOption<OnInteractiveAuthFlowStartHandler>;
}
export interface OnTokenIssuanceStartListener extends AuthenticationEventListener {
    // The handler to invoke when conditions are met for this onTokenIssuanceStartListener.
    handler?: NullableOption<OnTokenIssuanceStartHandler>;
}
export interface OnUserCreateStartListener extends AuthenticationEventListener {
    /**
     * Required. Configuration for what to invoke if the event resolves to this listener. This lets us define potential
     * handler configurations per-event.
     */
    handler?: NullableOption<OnUserCreateStartHandler>;
}
export interface OpenIdConnectIdentityProvider extends IdentityProviderBase {
    /**
     * After the OIDC provider sends an ID token back to Microsoft Entra ID, Microsoft Entra ID needs to be able to map the
     * claims from the received token to the claims that Microsoft Entra ID recognizes and uses. This complex type captures
     * that mapping. Required.
     */
    claimsMapping?: NullableOption<ClaimsMapping>;
    /**
     * The client identifier for the application obtained when registering the application with the identity provider.
     * Required.
     */
    clientId?: NullableOption<string>;
    /**
     * The client secret for the application obtained when registering the application with the identity provider. The
     * clientSecret has a dependency on responseType. When responseType is code, a secret is required for the auth code
     * exchange.When responseType is idtoken the secret is not required because there is no code exchange. The idtoken is
     * returned directly from the authorization response. This is write-only. A read operation returns .
     */
    clientSecret?: NullableOption<string>;
    /**
     * The domain hint can be used to skip directly to the sign-in page of the specified identity provider, instead of having
     * the user make a selection among the list of available identity providers.
     */
    domainHint?: NullableOption<string>;
    /**
     * The URL for the metadata document of the OpenID Connect identity provider. Every OpenID Connect identity provider
     * describes a metadata document that contains most of the information required to perform sign-in. This includes
     * information such as the URLs to use and the location of the service's public signing keys. The OpenID Connect metadata
     * document is always located at an endpoint that ends in .well-known/openid-configuration. Provide the metadata URL for
     * the OpenID Connect identity provider you add. Read-only. Required.
     */
    metadataUrl?: NullableOption<string>;
    /**
     * The response mode defines the method used to send data back from the custom identity provider to Azure AD B2C. Possible
     * values: form_post, query. Required.
     */
    responseMode?: OpenIdConnectResponseMode;
    /**
     * The response type describes the type of information sent back in the initial call to the authorizationendpoint of the
     * custom identity provider. Possible values: code , idtoken , token. Required.
     */
    responseType?: OpenIdConnectResponseTypes;
    /**
     * Scope defines the information and permissions you are looking to gather from your custom identity provider. OpenID
     * Connect requests must contain the openid scope value in order to receive the ID token from the identity provider.
     * Without the ID token, users are not able to sign in to Azure AD B2C using the custom identity provider. Other scopes
     * can be appended, separated by a space. For more details about the scope limitations, see RFC6749 Section 3.3. Required.
     */
    scope?: NullableOption<string>;
}
export interface OpenIdConnectProvider extends IdentityProvider {
    /**
     * After the OIDC provider sends an ID token back to Microsoft Entra ID, Microsoft Entra ID needs to be able to map the
     * claims from the received token to the claims that Microsoft Entra ID recognizes and uses. This complex type captures
     * that mapping. It's a required property.
     */
    claimsMapping?: NullableOption<ClaimsMapping>;
    /**
     * The domain hint can be used to skip directly to the sign-in page of the specified identity provider, instead of having
     * the user make a selection among the list of available identity providers.
     */
    domainHint?: NullableOption<string>;
    /**
     * The URL for the metadata document of the OpenID Connect identity provider. Every OpenID Connect identity provider
     * describes a metadata document that contains most of the information required to perform sign-in. This includes
     * information such as the URLs to use and the location of the service's public signing keys. The OpenID Connect metadata
     * document is always located at an endpoint that ends in a well-known/openid-configuration. For the OpenID Connect
     * identity provider you're looking to add, you need to provide the metadata URL. It's a required property and is read
     * only after creation.
     */
    metadataUrl?: NullableOption<string>;
    /**
     * The response mode defines the method that should be used to send the data back from the custom identity provider to
     * Azure AD B2C. The following response modes can be used: formpost, query. query response mode means the code or token is
     * returned as a query parameter. formpost response mode is recommended for the best security. The response is transmitted
     * via the HTTP POST method, with the code or token being encoded in the body using the application/x-www-form-urlencoded
     * format. It's a required property.
     */
    responseMode?: OpenIdConnectResponseMode;
    /**
     * response type describes what kind of information is sent back in the initial call to the authorizationendpoint of the
     * custom identity provider. The following response types can be used: code , idtoken , token. It's a required property.
     */
    responseType?: OpenIdConnectResponseTypes;
    /**
     * Scope defines the information and permissions you're looking to gather from your custom identity provider. OpenID
     * Connect requests must contain the openid scope value in order to receive the ID token from the identity provider.
     * Without the ID token, users aren't able to sign in to Azure AD B2C using the custom identity provider. Other scopes can
     * be appended separated by space. For more information about the scope limitations, see RFC6749 Section 3.3. It's a
     * required property.
     */
    scope?: NullableOption<string>;
}
export interface SocialIdentityProvider extends IdentityProviderBase {
    /**
     * The client identifier for the 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>;
}
export interface TrustFramework {
    keySets?: NullableOption<TrustFrameworkKeySet[]>;
    policies?: NullableOption<TrustFrameworkPolicy[]>;
}
export interface TrustFrameworkKeySet extends Entity {
    // A collection of the keys.
    keys?: NullableOption<TrustFrameworkKey[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface TrustFrameworkPolicy extends Entity {}
// tslint:disable-next-line: no-empty-interface
export interface UserFlowLanguagePage extends Entity {}
export interface JobResponseBase extends Entity {
    creationDateTime?: NullableOption<string>;
    endDateTime?: NullableOption<string>;
    error?: NullableOption<ClassificationError>;
    startDateTime?: NullableOption<string>;
    status?: NullableOption<string>;
    tenantId?: NullableOption<string>;
    type?: NullableOption<string>;
    userId?: NullableOption<string>;
}
export interface ClassificationJobResponse extends JobResponseBase {
    result?: NullableOption<DetectedSensitiveContentWrapper>;
}
export interface DataClassificationService extends Entity {
    exactMatchDataStores?: NullableOption<ExactMatchDataStore[]>;
    classifyFileJobs?: NullableOption<JobResponseBase[]>;
    classifyTextJobs?: NullableOption<JobResponseBase[]>;
    evaluateDlpPoliciesJobs?: NullableOption<JobResponseBase[]>;
    evaluateLabelJobs?: NullableOption<JobResponseBase[]>;
    jobs?: NullableOption<JobResponseBase[]>;
    sensitiveTypes?: NullableOption<SensitiveType[]>;
    sensitivityLabels?: NullableOption<SensitivityLabel[]>;
    exactMatchUploadAgents?: NullableOption<ExactMatchUploadAgent[]>;
}
export interface ExactMatchDataStoreBase extends Entity {
    columns?: NullableOption<ExactDataMatchStoreColumn[]>;
    dataLastUpdatedDateTime?: NullableOption<string>;
    description?: NullableOption<string>;
    displayName?: NullableOption<string>;
}
export interface ExactMatchDataStore extends ExactMatchDataStoreBase {
    sessions?: NullableOption<ExactMatchSession[]>;
}
export interface SensitiveType extends Entity {
    classificationMethod?: NullableOption<ClassificationMethod>;
    description?: NullableOption<string>;
    name?: NullableOption<string>;
    publisherName?: NullableOption<string>;
    rulePackageId?: NullableOption<string>;
    rulePackageType?: NullableOption<string>;
    scope?: NullableOption<SensitiveTypeScope>;
    sensitiveTypeSource?: NullableOption<SensitiveTypeSource>;
    state?: NullableOption<string>;
}
export interface ExactMatchUploadAgent extends Entity {
    creationDateTime?: NullableOption<string>;
    description?: NullableOption<string>;
}
export interface DlpEvaluatePoliciesJobResponse extends JobResponseBase {
    result?: NullableOption<DlpPoliciesJobResult>;
}
export interface EvaluateLabelJobResponse extends JobResponseBase {
    result?: NullableOption<EvaluateLabelJobResultGroup>;
}
export interface FileClassificationRequest extends Entity {
    file?: NullableOption<any>;
    sensitiveTypeIds?: NullableOption<string[]>;
}
export interface TextClassificationRequest extends Entity {
    contentMetaData?: NullableOption<ClassificationRequestContentMetaData>;
    fileExtension?: NullableOption<string>;
    matchTolerancesToInclude?: NullableOption<MlClassificationMatchTolerance>;
    scopesToRun?: NullableOption<SensitiveTypeScope>;
    sensitiveTypeIds?: NullableOption<string[]>;
    text?: NullableOption<string>;
}
export interface AllowedDataLocation extends Entity {
    appId?: NullableOption<string>;
    domain?: NullableOption<string>;
    isDefault?: NullableOption<boolean>;
    location?: NullableOption<string>;
}
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 more supported directory objects.
     */
    isActive?: NullableOption<boolean>;
}
export interface DefaultUserRoleOverride extends Entity {
    isDefault?: NullableOption<boolean>;
    rolePermissions?: NullableOption<UnifiedRolePermission[]>;
}
export interface CertificateAuthorityAsEntity extends Entity {
    // The trusted certificate.
    certificate?: string;
    /**
     * Indicates if the certificate is a root authority. In a certificateBasedApplicationConfiguration object, at least one
     * object in the trustedCertificateAuthorities collection must be a root authority.
     */
    isRootAuthority?: boolean;
    // The issuer of the trusted certificate.
    issuer?: string;
    // The subject key identifier of the trusted certificate.
    issuerSubjectKeyIdentifier?: string;
}
export interface TrustedCertificateAuthorityAsEntityBase extends DirectoryObject {
    // Collection of trusted certificate authorities.
    trustedCertificateAuthorities?: NullableOption<CertificateAuthorityAsEntity[]>;
}
export interface CertificateBasedApplicationConfiguration extends TrustedCertificateAuthorityAsEntityBase {
    // The description of the trusted certificate authorities.
    description?: NullableOption<string>;
    // The display name of the trusted certificate authorities.
    displayName?: 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 isn't 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 can't 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>;
    /**
     * Defines the priority order based on which an identity provider is selected during invitation redemption for a guest
     * user.
     */
    invitationRedemptionIdentityProviderConfiguration?: NullableOption<DefaultInvitationRedemptionIdentityProviderConfiguration>;
    /**
     * If true, the default configuration is set to the system default configuration. If false, the default settings are
     * customized.
     */
    isServiceDefault?: NullableOption<boolean>;
    /**
     * Defines the default tenant restrictions configuration for your organization users accessing an external organization on
     * your network or devices.
     */
    tenantRestrictions?: NullableOption<CrossTenantAccessPolicyTenantRestrictions>;
}
export interface CrossTenantAccessPolicyConfigurationPartner {
    /**
     * Determines the partner-specific configuration for automatic user consent settings. Unless 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 a tenant is a member of a multitenant organization.
    isInMultiTenantOrganization?: NullableOption<boolean>;
    // 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 partner-specific tenant restrictions configuration for your organization users accessing a partner
     * organization using partner supplied identities on your network or devices.
     */
    tenantRestrictions?: NullableOption<CrossTenantAccessPolicyTenantRestrictions>;
    /**
     * 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 PolicyTemplate extends Entity {
    /**
     * Defines an optional cross-tenant access policy template with user synchronization settings for a multi-tenant
     * organization.
     */
    multiTenantOrganizationIdentitySynchronization?: NullableOption<MultiTenantOrganizationIdentitySyncPolicyTemplate>;
    /**
     * Defines an optional cross-tenant access policy template with inbound and outbound partner configuration settings for a
     * multi-tenant organization.
     */
    multiTenantOrganizationPartnerConfiguration?: NullableOption<MultiTenantOrganizationPartnerConfigurationTemplate>;
}
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 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 DirectorySettingTemplate extends DirectoryObject {
    // Description of the template. Read-only.
    description?: NullableOption<string>;
    // Display name of the template. Read-only.
    displayName?: NullableOption<string>;
    /**
     * Collection of settingTemplateValues that list the set of available settings, defaults and types that make up this
     * template. Read-only.
     */
    values?: SettingTemplateValue[];
}
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;
    /**
     * 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 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[]>;
    sharedEmailDomainInvitations?: NullableOption<SharedEmailDomainInvitation[]>;
    /**
     * 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. Supported values include saml or wsfed.
    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 one of the following: CName, Mx, Srv, 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 SharedEmailDomainInvitation extends Entity {
    expiryTime?: NullableOption<string>;
    invitationDomain?: NullableOption<string>;
    invitationStatus?: NullableOption<string>;
}
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 MultiTenantOrganization extends Entity {
    // Date when multitenant organization was created. Read-only.
    createdDateTime?: NullableOption<string>;
    // Description of the multitenant organization.
    description?: NullableOption<string>;
    // Display name of the multitenant organization.
    displayName?: NullableOption<string>;
    /**
     * State of the multitenant organization. The possible values are: active, inactive, unknownFutureValue. active indicates
     * the multitenant organization is created. inactive indicates the multitenant organization isn't created. Read-only.
     */
    state?: NullableOption<MultiTenantOrganizationState>;
    // Defines the status of a tenant joining a multitenant organization.
    joinRequest?: NullableOption<MultiTenantOrganizationJoinRequestRecord>;
    // Defines tenants added to a multitenant organization.
    tenants?: NullableOption<MultiTenantOrganizationMember[]>;
}
export interface MultiTenantOrganizationJoinRequestRecord extends Entity {
    /**
     * Tenant ID of the Microsoft Entra tenant that added a tenant to the multi-tenant organization. To reset a failed join
     * request, set addedByTenantId to 00000000-0000-0000-0000-000000000000. Required.
     */
    addedByTenantId?: NullableOption<string>;
    /**
     * State of the tenant in the multi-tenant organization. The possible values are: pending, active, removed,
     * unknownFutureValue. Tenants in the pending state must join the multi-tenant organization to participate in the
     * multi-tenant organization. Tenants in the active state can participate in the multi-tenant organization. Tenants in the
     * removed state are in the process of being removed from the multi-tenant organization. Read-only.
     */
    memberState?: NullableOption<MultiTenantOrganizationMemberState>;
    /**
     * Role of the tenant in the multi-tenant organization. The possible values are: owner, member (default),
     * unknownFutureValue. Tenants with the owner role can manage the multi-tenant organization. There can be multiple tenants
     * with the owner role in a multi-tenant organization. Tenants with the member role can participate in a multi-tenant
     * organization.
     */
    role?: NullableOption<MultiTenantOrganizationMemberRole>;
    // Details of the processing status for a tenant joining a multi-tenant organization. Read-only.
    transitionDetails?: NullableOption<MultiTenantOrganizationJoinRequestTransitionDetails>;
}
export interface MultiTenantOrganizationMember extends DirectoryObject {
    // Tenant ID of the tenant that added the tenant to the multitenant organization. Read-only.
    addedByTenantId?: NullableOption<string>;
    // Date and time when the tenant was added to the multitenant organization. Read-only.
    addedDateTime?: NullableOption<string>;
    // Display name of the tenant added to the multitenant organization.
    displayName?: NullableOption<string>;
    // Date and time when the tenant joined the multitenant organization. Read-only.
    joinedDateTime?: NullableOption<string>;
    /**
     * Role of the tenant in the multitenant organization. The possible values are: owner, member (default),
     * unknownFutureValue. Tenants with the owner role can manage the multitenant organization but tenants with the member
     * role can only participate in a multitenant organization. There can be multiple tenants with the owner role in a
     * multitenant organization.
     */
    role?: NullableOption<MultiTenantOrganizationMemberRole>;
    /**
     * State of the tenant in the multitenant organization. The possible values are: pending, active, removed,
     * unknownFutureValue. Tenants in the pending state must join the multitenant organization to participate in the
     * multitenant organization. Tenants in the active state can participate in the multitenant organization. Tenants in the
     * removed state are in the process of being removed from the multitenant organization. Read-only.
     */
    state?: NullableOption<MultiTenantOrganizationMemberState>;
    /**
     * Tenant ID of the Microsoft Entra tenant added to the multitenant organization. Set at the time tenant is added.Supports
     * $filter. Key.
     */
    tenantId?: string;
    // Details of the processing status for a tenant in a multitenant organization. Read-only. Nullable.
    transitionDetails?: NullableOption<MultiTenantOrganizationMemberTransitionDetails>;
}
export interface MultiTenantOrganizationIdentitySyncPolicyTemplate extends Entity {
    /**
     * Specifies whether the template will be applied to user synchronization settings of certain tenants. The possible values
     * are: none, newPartners, existingPartners, unknownFutureValue. You can also specify multiple values like
     * newPartners,existingPartners (default). none indicates the template isn't applied to any new or existing partner
     * tenants. newPartners indicates the template is applied to new partner tenants. existingPartners indicates the template
     * is applied to existing partner tenants, those who already had partner-specific user synchronization settings in place.
     */
    templateApplicationLevel?: TemplateApplicationLevel;
    // Defines whether users can be synchronized from the partner tenant.
    userSyncInbound?: NullableOption<CrossTenantUserSyncInbound>;
}
export interface MultiTenantOrganizationPartnerConfigurationTemplate extends Entity {
    /**
     * Determines the partner-specific configuration for automatic user consent settings. Unless 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>;
    /**
     * Specifies whether the template will be applied to partner configuration settings of certain tenants. The possible
     * values are: none, newPartners, existingPartners, unknownFutureValue. You can also specify multiple values like
     * newPartners,existingPartners (default). none indicates the template isn't applied to any new or existing partner
     * tenants. newPartners indicates the template is applied to new partner tenants. existingPartners indicates the template
     * is applied to existing partner tenants, those who already had partner-specific partner configurations in place.
     */
    templateApplicationLevel?: TemplateApplicationLevel;
}
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 directory size quota information of an organization.
    directorySizeQuota?: NullableOption<DirectorySizeQuota>;
    // The display name for the tenant.
    displayName?: NullableOption<string>;
    /**
     * true if organization is Multi-Geo enabled; false if organization is not Multi-Geo enabled; null (default). Read-only.
     * For more information, see OneDrive Online Multi-Geo.
     */
    isMultipleDataLocationsForServicesEnabled?: NullableOption<boolean>;
    // Not nullable.
    marketingNotificationEmails?: string[];
    // The last time a password sync request was received for the tenant.
    onPremisesLastPasswordSyncDateTime?: NullableOption<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.
     */
    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[];
    // The collection of domains associated with this tenant. Not nullable.
    verifiedDomains?: VerifiedDomain[];
    // Certificate connector setting.
    certificateConnectorSetting?: NullableOption<CertificateConnectorSetting>;
    // Mobile device management authority. Possible values are: unknown, intune, sccm, office365.
    mobileDeviceManagementAuthority?: MdmAuthority;
    // Resource to manage the default 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[]>;
    partnerInformation?: NullableOption<PartnerInformation>;
    // The collection of open extensions defined for the organization resource. Nullable.
    extensions?: NullableOption<Extension[]>;
    // Retrieve the properties and relationships of organizationSettings object. Nullable.
    settings?: NullableOption<OrganizationSettings>;
}
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[]>;
    /**
     * Represents the various content options to be customized throughout the authentication flow for a tenant. NOTE:
     * Supported by Microsoft Entra ID for customers tenants only.
     */
    contentCustomization?: NullableOption<ContentCustomization>;
    /**
     * 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[]>;
}
export interface PartnerInformation {
    commerceUrl?: NullableOption<string>;
    companyName?: NullableOption<string>;
    companyType?: NullableOption<PartnerTenantType>;
    helpUrl?: NullableOption<string>;
    partnerTenantId?: string;
    supportEmails?: NullableOption<string[]>;
    supportTelephones?: NullableOption<string[]>;
    supportUrl?: NullableOption<string>;
}
export interface OrganizationSettings extends Entity {
    microsoftApplicationDataAccess?: NullableOption<MicrosoftApplicationDataAccessSettings>;
    /**
     * Contains the properties that are configured by an administrator as a tenant-level privacy control whether to identify
     * duplicate contacts among a user's contacts list and suggest the user to merge those contacts to have a cleaner contacts
     * list. List contactInsights returns the settings to display or return contact insights in an organization.
     */
    contactInsights?: NullableOption<InsightsSettings>;
    /**
     * Contains the properties that are configured by an administrator for the visibility of Microsoft Graph-derived insights,
     * between a user and other items in Microsoft 365, such as documents or sites. List itemInsights returns the settings to
     * display or return item insights in an organization.
     */
    itemInsights?: NullableOption<InsightsSettings>;
    /**
     * Contains the properties that are configured by an administrator for the visibility of a list of people relevant and
     * working with a user in Microsoft 365. List peopleInsights returns the settings to display or return people insights in
     * an organization.
     */
    peopleInsights?: NullableOption<InsightsSettings>;
}
// 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 belong 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. 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, 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. Supports $filter (eq, ne, not, in).
     */
    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[];
    /**
     * Errors published by a federated service describing a non-transient, service-specific error regarding the properties or
     * link from an orgContact object . Supports $filter (eq, not, for isResolved and serviceInstance).
     */
    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[]>;
    transitiveMemberOf?: NullableOption<DirectoryObject[]>;
    // The transitive reports for a contact. Read-only.
    transitiveReports?: NullableOption<DirectoryObject[]>;
}
export interface TenantReference {
    // The identifier of the Microsoft Entra tenant. Read-only. Key.
    tenantId?: string;
}
export interface PermissionGrantConditionSet extends Entity {
    /**
     * Set to true to only match on client applications that are Microsoft 365 certified. Set to false to match on any other
     * client app. Default is false.
     */
    certifiedClientApplicationsOnly?: NullableOption<boolean>;
    /**
     * 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 does not 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 which are not 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 publishedPermissionScopes 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 (e.g. app
     * roles), or delegated for delegated permissions. The value delegatedUserConsentable indicates delegated permissions
     * which have not been configured by the API publisher to require admin consent—this value may be used in built-in
     * permission grant policies, but cannot be used in custom permission grant policies. Required.
     */
    permissionType?: NullableOption<PermissionType>;
    /**
     * The appId of the resource application (e.g. 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 UnifiedRoleAssignment extends Entity {
    /**
     * Identifier of the app specific scope when the assignment scope is app specific. 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. App scopes are scopes that are
     * defined and understood by this application only. For the entitlement management provider, use app scopes to specify a
     * catalog, for example /AccessPackageCatalog/beedadfe-01d5-4025-910b-84abb9369997.
     */
    appScopeId?: NullableOption<string>;
    condition?: 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. App scopes are scopes that are defined and understood by this
     * application only.
     */
    directoryScopeId?: NullableOption<string>;
    // Identifier of the principal to which the assignment is granted. Supports $filter (eq operator only).
    principalId?: NullableOption<string>;
    principalOrganizationId?: NullableOption<string>;
    /**
     * The scope at which the unifiedRoleAssignment applies. This is / for service-wide. DO NOT USE. This property will be
     * deprecated soon.
     */
    resourceScope?: NullableOption<string>;
    // Identifier of the unifiedRoleDefinition the assignment is for. Read-only. Supports $filter (eq operator only).
    roleDefinitionId?: NullableOption<string>;
    // Details of the app specific scope when the assignment scope is app specific. Containment entity.
    appScope?: NullableOption<AppScope>;
    /**
     * The directory object that is the scope of the assignment. Provided so that callers can get the directory object using
     * $expand at the same time as getting the role assignment. Read-only. Supports $expand.
     */
    directoryScope?: NullableOption<DirectoryObject>;
    /**
     * The assigned principal. Provided so that callers can get the principal using $expand at the same time as getting the
     * role assignment. Read-only. Supports $expand.
     */
    principal?: NullableOption<DirectoryObject>;
    /**
     * The roleDefinition the assignment is for. Provided so that callers can get the role definition using $expand at the
     * same time as getting the role assignment. roleDefinition.id will be auto expanded. Supports $expand.
     */
    roleDefinition?: 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 Azure AD.
    roleAssignmentOriginId?: NullableOption<string>;
    // The identifier of the unifiedRoleAssignmentSchedule object from which this instance was created.
    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<string>;
    /**
     * 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 {
    // Time that the roleEligibilityScheduleInstance will expire.
    endDateTime?: NullableOption<string>;
    // Membership type of the assignment. It can either be Inherited, Direct, or Group.
    memberType?: NullableOption<string>;
    // Identifier of the parent roleEligibilitySchedule for this instance.
    roleEligibilityScheduleId?: NullableOption<string>;
    // Time that the roleEligibilityScheduleInstance will start.
    startDateTime?: NullableOption<string>;
}
export interface UnifiedRoleEligibilityScheduleRequest extends Request {
    /**
     * Represents the type of operation on the role eligibility request. The possible values are: 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.UserAdd: For users to
     * activate their eligible assignments.UserRemove: For users to deactivate their active eligible assignments.UserExtend:
     * For users to request to extend their expiring eligible assignments.UserRenew: For users to request to renew their
     * expired eligible assignments.
     */
    action?: NullableOption<string>;
    /**
     * 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 {
    // Membership type of the eligible assignment. It can either be Inherited, Direct, or Group. Supports $filter (eq).
    memberType?: NullableOption<string>;
    // The schedule object of the eligible role assignment request.
    scheduleInfo?: NullableOption<RequestSchedule>;
}
export interface TargetDeviceGroup extends Entity {
    // Display name for the target device group.
    displayName?: NullableOption<string>;
}
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 ServicePrincipalCreationConditionSet extends Entity {
    applicationIds?: NullableOption<string[]>;
    applicationPublisherIds?: NullableOption<string[]>;
    applicationsFromVerifiedPublisherOnly?: NullableOption<boolean>;
    applicationTenantIds?: NullableOption<string[]>;
    certifiedApplicationsOnly?: NullableOption<boolean>;
}
export interface StrongAuthenticationDetail extends Entity {
    encryptedPinHashHistory?: NullableOption<string>;
    proofupTime?: NullableOption<number>;
}
export interface StrongAuthenticationPhoneAppDetail extends Entity {
    authenticationType?: string;
    authenticatorFlavor?: NullableOption<string>;
    deviceId?: NullableOption<string>;
    deviceName?: NullableOption<string>;
    deviceTag?: NullableOption<string>;
    deviceToken?: NullableOption<string>;
    hashFunction?: NullableOption<string>;
    lastAuthenticatedDateTime?: NullableOption<string>;
    notificationType?: NullableOption<string>;
    oathSecretKey?: NullableOption<string>;
    oathTokenMetadata?: NullableOption<OathTokenMetadata>;
    oathTokenTimeDriftInSeconds?: number;
    phoneAppVersion?: NullableOption<string>;
    tenantDeviceId?: NullableOption<string>;
    tokenGenerationIntervalInSeconds?: NullableOption<number>;
}
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 cancelled 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 {
    // Defines an organization with more than one instance of Microsoft Entra ID.
    multiTenantOrganization?: NullableOption<MultiTenantOrganization>;
    // The operations available to interact with the multi-tenant management platform.
    managedTenants?: NullableOption<ManagedTenants.ManagedTenant>;
    // 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. This 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 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>;
    // A container for administrative resources to manage reports.
    reportSettings?: NullableOption<AdminReportSettings>;
    appsAndServices?: NullableOption<AdminAppsAndServices>;
    dynamics?: NullableOption<AdminDynamics>;
    forms?: NullableOption<AdminForms>;
    todo?: NullableOption<AdminTodo>;
    // Represents a setting to control people-related admin settings in the tenant.
    people?: NullableOption<PeopleAdminSettings>;
    // A container for all Windows administrator functionalities. Read-only.
    windows?: NullableOption<AdminWindows>;
}
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 AdminReportSettings extends Entity {
    /**
     * If set to true, all reports will conceal user information such as usernames, groups, and sites. If false, all reports
     * will show identifiable information. This property represents a setting in the Microsoft 365 admin center. Required.
     */
    displayConcealedNames?: boolean;
}
export interface AdminAppsAndServices extends Entity {
    // Company-wide settings for apps and services.
    settings?: AppsAndServicesSettings;
}
export interface AdminDynamics extends Entity {
    // Company-wide settings for Microsoft Dynamics 365 Customer Voice.
    customerVoice?: CustomerVoiceSettings;
}
export interface AdminForms extends Entity {
    // Company-wide settings for Microsoft Forms.
    settings?: FormsSettings;
}
export interface AdminTodo extends Entity {
    // Company-wide settings for Microsoft Todo.
    settings?: TodoSettings;
}
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[]>;
    // Represents administrator settings that manage the support of pronouns in an organization.
    pronouns?: NullableOption<PronounsSettings>;
}
export interface AdminWindows extends Entity {
    // Entity that acts as a container for all Windows Update for Business deployment service functionalities. Read-only.
    updates?: NullableOption<AdminWindowsUpdates>;
}
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 is not 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 is not 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>;
    // The URL of the module from which to access the assignment.
    moduleUrl?: 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 is not 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 not PATCH this value. Possible values are: draft, scheduled, published, assigned,
     * unknownFutureValue and inactive. Note that you must use the Prefer: include-unknown-enum-members request header to get
     * the following value(s) in this evolvable enum: inactive.
     */
    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[]>;
    gradingCategory?: NullableOption<EducationGradingCategory>;
    // 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 EducationGradingCategory extends Entity {
    // The name of the grading category.
    displayName?: string;
    // The weight of the category; an integer between 0 and 100.
    percentageWeight?: number;
}
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>;
    dependentResources?: NullableOption<EducationAssignmentResource[]>;
}
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, unknownFutureValue 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>;
    // The deep link URL for the given submission.
    webUrl?: 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. 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 will be shown. If true, the animation won't be shown. The default value
     * is false.
     */
    submissionAnimationDisabled?: NullableOption<boolean>;
    gradingCategories?: NullableOption<EducationGradingCategory[]>;
}
export interface EducationClass extends Entity {
    // Class code used by the school to identify the class.
    classCode?: NullableOption<string>;
    // Course information for the class.
    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>;
    /**
     * The type of external source this resource was generated from (automatically determined from externalSourceDetail).
     * Possible values are: sis, lms, or 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 the 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>;
    // All modules in the class. Nullable.
    modules?: NullableOption<EducationModule[]>;
    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 EducationModule extends Entity {
    // The display name of the user that created the module.
    createdBy?: NullableOption<IdentitySet>;
    /**
     * Date time the module 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 module.
    description?: NullableOption<string>;
    // Name of the module.
    displayName?: NullableOption<string>;
    // Indicates whether the module is pinned or not.
    isPinned?: NullableOption<boolean>;
    // The last user that modified the module.
    lastModifiedBy?: NullableOption<IdentitySet>;
    /**
     * Date time the module 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>;
    // Folder URL where all the file resources for this module are stored.
    resourcesFolderUrl?: NullableOption<string>;
    // Status of the module. You can't use a PATCH operation to update this value. Possible values are: draft and published.
    status?: NullableOption<EducationModuleStatus>;
    // Learning objects that are associated with this module. Only teachers can modify this list. Nullable.
    resources?: NullableOption<EducationModuleResource[]>;
}
export interface EducationUser extends Entity {
    /**
     * Related records related to the user. Possible relationships are parent, relative, aide, doctor, guardian, child, other,
     * unknownFutureValue
     */
    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[];
    // 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. Supports $filter and $orderby.
    displayName?: NullableOption<string>;
    /**
     * The type of external source this resource was generated from (automatically determined from externalSourceDetail).
     * Possible values are: sis, lms, or 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>;
    // Mail address of user. Note: type and postOfficeBox aren't supported for educationUser resources.
    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 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. See standard [user] resource for more details.
    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. See standard [user] resource for more details.
     */
    passwordProfile?: NullableOption<PasswordProfile>;
    // The preferred language for the user. Should follow 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, faculty. Supports /$filter.
     */
    primaryRole?: EducationUserRole;
    // The plans that are provisioned for the user. Read-only. Not nullable.
    provisionedPlans?: ProvisionedPlan[];
    refreshTokensValidFromDateTime?: NullableOption<string>;
    // Address where user lives. Note: type and postOfficeBox aren't supported for educationUser resources.
    residenceAddress?: NullableOption<PhysicalAddress>;
    showInAddressList?: NullableOption<boolean>;
    // If the primary role is student, this block contains 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 3166 Alpha-2]). Required for users who will be assigned licenses. Not nullable.
     * Supports /$filter.
     */
    usageLocation?: NullableOption<string>;
    /**
     * The user principal name (UPN) for the user. Supports $filter and $orderby. See standard [user] resource for additional
     * details.
     */
    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>;
    // List of assignments for the user. Nullable.
    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[]>;
    user?: NullableOption<User>;
}
export interface EducationOrganization extends Entity {
    // Organization description.
    description?: NullableOption<string>;
    // Organization display name.
    displayName?: string;
    // Where this user was created from. Possible values are: sis, lms, or manual.
    externalSource?: NullableOption<EducationExternalSource>;
    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>;
    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 EducationModuleResource extends Entity {
    // Resource object that has been associated with this module.
    resource?: NullableOption<EducationResource>;
}
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 {
    synchronizationProfiles?: NullableOption<EducationSynchronizationProfile[]>;
    classes?: NullableOption<EducationClass[]>;
    me?: NullableOption<EducationUser>;
    schools?: NullableOption<EducationSchool[]>;
    users?: NullableOption<EducationUser[]>;
}
export interface EducationSynchronizationProfile extends Entity {
    // The data provider used for the profile.
    dataProvider?: EducationSynchronizationDataProvider;
    // Name of the configuration profile for syncing identities.
    displayName?: string;
    /**
     * The date the profile should be considered expired and cease syncing. Provide the date in YYYY-MM-DD format, following
     * ISO 8601. Maximum value is 18 months from profile creation. (optional)
     */
    expirationDate?: NullableOption<string>;
    // Determines if School Data Sync should automatically replace unsupported special characters while syncing from source.
    handleSpecialCharacterConstraint?: NullableOption<boolean>;
    // Determines how the Profile should [create new][fullsync] or [match existing][dirsync] Microsoft Entra users.
    identitySynchronizationConfiguration?: EducationIdentitySynchronizationConfiguration;
    // License setup configuration.
    licensesToAssign?: NullableOption<EducationSynchronizationLicenseAssignment[]>;
    // The state of the profile. Possible values are: provisioning, provisioned, provisioningFailed, deleting, deletionFailed.
    state?: NullableOption<EducationSynchronizationProfileState>;
    // All errors associated with this synchronization profile.
    errors?: NullableOption<EducationSynchronizationError[]>;
    // The synchronization status.
    profileStatus?: NullableOption<EducationSynchronizationProfileStatus>;
}
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. If the value is null, the student uploaded the resource.
    assignmentResourceUrl?: NullableOption<string>;
    // Resource object.
    resource?: NullableOption<EducationResource>;
    dependentResources?: NullableOption<EducationSubmissionResource[]>;
}
export interface EducationSynchronizationError extends Entity {
    // Represents the sync entity (school, section, student, teacher).
    entryType?: NullableOption<string>;
    // Represents the error code for this error.
    errorCode?: NullableOption<string>;
    // Contains a description of the error.
    errorMessage?: NullableOption<string>;
    // The unique identifier for the entry.
    joiningValue?: NullableOption<string>;
    // The time of occurrence of this error.
    recordedDateTime?: NullableOption<string>;
    // The identifier of this error entry.
    reportableIdentifier?: NullableOption<string>;
}
export interface EducationSynchronizationProfileStatus extends Entity {
    // Number of errors during synchronization.
    errorCount?: number;
    // Date and time when most recent changes were observed in the profile.
    lastActivityDateTime?: NullableOption<string>;
    // Date and time of the most recent successful synchronization.
    lastSynchronizationDateTime?: NullableOption<string>;
    /**
     * The status of a sync. The possible values are: paused, inProgress, success, error, validationError, quarantined,
     * unknownFutureValue, extracting, validating. Note that you must use the Prefer: include-unknown-enum-members request
     * header to get the following values in this evolvable enum: extracting, validating.
     */
    status?: NullableOption<EducationSynchronizationStatus>;
    // Status message for the synchronization stage of the current profile.
    statusMessage?: string;
}
export interface ExactMatchJobBase extends Entity {
    completionDateTime?: NullableOption<string>;
    creationDateTime?: NullableOption<string>;
    error?: NullableOption<ClassificationError>;
    lastUpdatedDateTime?: NullableOption<string>;
    startDateTime?: NullableOption<string>;
}
export interface ExactMatchSessionBase extends ExactMatchJobBase {
    dataStoreId?: NullableOption<string>;
    processingCompletionDateTime?: NullableOption<string>;
    remainingBlockCount?: NullableOption<number>;
    remainingJobCount?: NullableOption<number>;
    state?: NullableOption<string>;
    totalBlockCount?: NullableOption<number>;
    totalJobCount?: NullableOption<number>;
    uploadCompletionDateTime?: NullableOption<string>;
}
export interface ExactMatchSession extends ExactMatchSessionBase {
    checksum?: NullableOption<string>;
    dataUploadURI?: NullableOption<string>;
    fields?: NullableOption<string[]>;
    fileName?: NullableOption<string>;
    rowsPerBlock?: NullableOption<number>;
    salt?: NullableOption<string>;
    uploadAgentId?: NullableOption<string>;
    uploadAgent?: NullableOption<ExactMatchUploadAgent>;
}
export interface ExactMatchLookupJob extends ExactMatchJobBase {
    state?: NullableOption<string>;
    matchingRows?: NullableOption<LookupResultRow[]>;
}
export interface LookupResultRow extends Entity {
    row?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface ItemActivityOLD extends Entity {
    action?: NullableOption<ItemActionSet>;
    actor?: NullableOption<IdentitySet>;
    times?: NullableOption<ItemActivityTimeSet>;
    driveItem?: NullableOption<DriveItem>;
    listItem?: NullableOption<ListItem>;
}
export interface DriveItem extends BaseItem {
    // Audio metadata, if the item is an audio file. 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>;
    // Information about the media (audio or video) item. Read-write. Only on OneDrive for Business and SharePoint.
    media?: NullableOption<Media>;
    /**
     * 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 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>;
    // Information about the drive item source. Read-only. Only on OneDrive for Business and SharePoint.
    source?: NullableOption<DriveItemSource>;
    // 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>;
    // The list of recent activities that took place on this item.
    activities?: NullableOption<ItemActivityOLD[]>;
    // 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>;
    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. Nullable.
     */
    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>;
    deleted?: NullableOption<Deleted>;
    // Returns identifiers useful for SharePoint REST compatibility. Read-only.
    sharepointIds?: NullableOption<SharepointIds>;
    // The list of recent activities that took place on this item.
    activities?: NullableOption<ItemActivityOLD[]>;
    // 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 255 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. Required
     * when includeResourceData is true.
     */
    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. Desired content-type for Microsoft Graph change notifications for supported resource types. The default
     * content-type is application/json.
     */
    notificationContentType?: NullableOption<string>;
    /**
     * Optional. OData query options for specifying the value for the targeting resource. Clients receive notifications when
     * the 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 receives 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/beta/). 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 that last modified the version. Read-only.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // Date and time when 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 {
    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 the comment.
    content?: NullableOption<string>;
    // Indicates the type for the comment.
    contentType?: string;
    replies?: NullableOption<WorkbookCommentReply[]>;
    // The task associated with the comment. Read-only. Nullable.
    task?: NullableOption<WorkbookDocumentTask>;
}
// 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. 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 and =4.75. 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, succeeded, 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. 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[]>;
    // Collection of document tasks on this worksheet. Read-only.
    tasks?: NullableOption<WorkbookDocumentTask[]>;
}
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 replied comment.
    content?: NullableOption<string>;
    // Indicates the type for the replied comment.
    contentType?: string;
    // The task associated with the comment thread.
    task?: NullableOption<WorkbookDocumentTask>;
}
export interface WorkbookDocumentTask extends Entity {
    // A collection of user identities the task is assigned to.
    assignees?: NullableOption<WorkbookEmailIdentity[]>;
    // The identity of the user who completed the task. Nullable.
    completedBy?: NullableOption<WorkbookEmailIdentity>;
    /**
     * Date and time when the task was completed. Nullable. 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>;
    // A user identity that creates the task. Nullable.
    createdBy?: NullableOption<WorkbookEmailIdentity>;
    /**
     * Date and time when the task was created. Nullable. 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>;
    /**
     * An integer value from 0 to 100 that represents the percentage of the completion of the task. 100 means that the task is
     * completed. Nullable.
     */
    percentComplete?: NullableOption<number>;
    /**
     * An integer value from 0 to 10 that represents the priority of the task. A lower value indicates a higher priority.
     * Nullable.
     */
    priority?: NullableOption<number>;
    // Start and due date of the task. Nullable.
    startAndDueDateTime?: NullableOption<WorkbookDocumentTaskSchedule>;
    // The title of the task.
    title?: NullableOption<string>;
    // A collection of task change histories.
    changes?: NullableOption<WorkbookDocumentTaskChange[]>;
    // The comment that the task is associated with.
    comment?: NullableOption<WorkbookComment>;
}
export interface WorkbookDocumentTaskChange extends Entity {
    // The user identity the task is assigned to. Only present when the type property is assign. Nullable.
    assignee?: NullableOption<WorkbookEmailIdentity>;
    // The identity of the user who performs the change.
    changedBy?: WorkbookEmailIdentity;
    // The identifier of the associated comment.
    commentId?: NullableOption<string>;
    /**
     * Date and time when the task was changed. Nullable. 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 due date and time for the task. Only present when the type property is setSchedule. Nullable. 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>;
    /**
     * An integer value from 0 to 100 that represents the percentage of the completion of the task and associated comment. 100
     * means that the task and associated comment are completed. If you change the completion from 100 to a lower value, the
     * associated task and comment are reactivated. Only present when the type property is setPercentComplete. Nullable.
     */
    percentComplete?: NullableOption<number>;
    /**
     * An integer value from 0 to 10 that represents the priority of the task. A lower value indicates a higher priority. 5
     * indicates the default priority if not set. Only present when the type property is setPriority. Nullable.
     */
    priority?: NullableOption<number>;
    /**
     * The start date and time for the task. Only present when the type property is setSchedule. Nullable. 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 title of the task. Only present when the type property is setTitle. Nullable.
    title?: NullableOption<string>;
    /**
     * The type of the change history. Possible values are: create, assign, unassign, unassignAll, setPriority, setTitle,
     * setPercentComplete, setSchedule, remove, restore, undo.
     */
    type?: string;
    /**
     * The ID of the workbookDocumentTaskChange that was undone for the undo change action. Only exists on an undo change
     * history. Nullable.
     */
    undoChangeId?: NullableOption<string>;
}
export interface WorkbookFilter extends Entity {
    criteria?: NullableOption<WorkbookFilterCriteria>;
}
export interface WorkbookFormatProtection extends Entity {
    formulaHidden?: NullableOption<boolean>;
    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 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. 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. 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. 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. 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. 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. Possible values are: None, Continuous,
     * Dash, DashDot, DashDotDot, Dot, Double, SlantDashDot.
     */
    style?: NullableOption<string>;
    // Specifies the weight of the border around a range. 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. Possible values are: None, Single, Double, SingleAccountant, DoubleAccountant.
    underline?: NullableOption<string>;
}
export interface WorkbookRangeView extends Entity {
    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. 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 contains an error returns 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 {
    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. 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[]>;
    workspaces?: NullableOption<Workspace[]>;
}
export interface Workspace extends Place {
    // Specifies the building name or building number that the workspace is in.
    building?: NullableOption<string>;
    // Specifies the capacity of the workspace.
    capacity?: NullableOption<number>;
    // Email address of the workspace.
    emailAddress?: NullableOption<string>;
    // Specifies a descriptive label for the floor, for example, P.
    floorLabel?: NullableOption<string>;
    // Specifies the floor number that the workspace is on.
    floorNumber?: NullableOption<number>;
    // Specifies whether the workspace is wheelchair accessible.
    isWheelChairAccessible?: NullableOption<boolean>;
    // Specifies a descriptive label for the workspace, for example, a number or name.
    label?: NullableOption<string>;
    // Specifies a nickname for the workspace, for example, 'quiet workspace'.
    nickname?: string;
    // Specifies additional features of the workspace, for example, details like the type of view or furniture type.
    tags?: NullableOption<string[]>;
}
export interface CustomAppScope extends AppScope {
    // An open dictionary type that holds workload-specific properties for the scope object.
    customAttributes?: CustomAppScopeAttributesDictionary;
}
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 display name of the attachment. This does not need to be the actual 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 (share 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 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;
    // The importance of a group post: low, normal, high.
    importance?: NullableOption<Importance>;
    // 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>;
    /**
     * The collection of fileAttachment, itemAttachment, and referenceAttachment attachments for the post. 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[]>;
    // The earlier post that this post is replying to in the conversationThread. Read-only. Supports $expand.
    inReplyTo?: NullableOption<Post>;
    mentions?: NullableOption<Mention[]>;
    // 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 {
    // The end time of the requested meeting.
    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>;
    // 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. 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 contact, 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 UserConfiguration extends Entity {
    binaryData?: NullableOption<string>;
}
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 Mention extends Entity {
    // The name of the application where the mention is created. Optional. Not used and defaulted as null for message.
    application?: NullableOption<string>;
    /**
     * A unique identifier that represents a parent of the resource instance. Optional. Not used and defaulted as null for
     * message.
     */
    clientReference?: NullableOption<string>;
    // The email information of the user who made the mention.
    createdBy?: NullableOption<EmailAddress>;
    // The date and time that the mention is created on the client.
    createdDateTime?: NullableOption<string>;
    /**
     * A deep web link to the context of the mention in the resource instance. Optional. Not used and defaulted as null for
     * message.
     */
    deepLink?: NullableOption<string>;
    // The email information of the mentioned person. Required.
    mentioned?: EmailAddress;
    /**
     * Optional. Not used and defaulted as null for message. To get the mentions in a message, see the bodyPreview property of
     * the message instead.
     */
    mentionText?: NullableOption<string>;
    // The date and time that the mention is created on the server. Optional. Not used and defaulted as null for message.
    serverCreatedDateTime?: NullableOption<string>;
}
export interface Note extends OutlookItem {
    body?: NullableOption<ItemBody>;
    hasAttachments?: NullableOption<boolean>;
    isDeleted?: NullableOption<boolean>;
    subject?: NullableOption<string>;
    attachments?: NullableOption<Attachment[]>;
    extensions?: NullableOption<Extension[]>;
    multiValueExtendedProperties?: NullableOption<MultiValueLegacyExtendedProperty[]>;
    singleValueExtendedProperties?: NullableOption<SingleValueLegacyExtendedProperty[]>;
}
export interface OpenTypeExtension extends Extension {
    // A unique text identifier for an open type data extension. Required.
    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>;
}
export interface OutlookTask extends OutlookItem {
    // The name of the person who has been assigned the task in Outlook. Read-only.
    assignedTo?: NullableOption<string>;
    // The task body that typically contains information about the task. Note that only HTML type is supported.
    body?: NullableOption<ItemBody>;
    // The date in the specified time zone that the task was finished.
    completedDateTime?: NullableOption<DateTimeTimeZone>;
    // The date in the specified time zone that the task is to be finished.
    dueDateTime?: NullableOption<DateTimeTimeZone>;
    // Set to true if the task has attachments.
    hasAttachments?: NullableOption<boolean>;
    importance?: NullableOption<Importance>;
    isReminderOn?: NullableOption<boolean>;
    owner?: NullableOption<string>;
    parentFolderId?: NullableOption<string>;
    recurrence?: NullableOption<PatternedRecurrence>;
    reminderDateTime?: NullableOption<DateTimeTimeZone>;
    sensitivity?: NullableOption<Sensitivity>;
    startDateTime?: NullableOption<DateTimeTimeZone>;
    status?: NullableOption<TaskStatus>;
    subject?: NullableOption<string>;
    /**
     * The collection of fileAttachment, itemAttachment, and referenceAttachment attachments for the task. Read-only.
     * Nullable.
     */
    attachments?: NullableOption<Attachment[]>;
    // The collection of multi-value extended properties defined for the task. Read-only. Nullable.
    multiValueExtendedProperties?: NullableOption<MultiValueLegacyExtendedProperty[]>;
    // The collection of single-value extended properties defined for the task. Read-only. Nullable.
    singleValueExtendedProperties?: NullableOption<SingleValueLegacyExtendedProperty[]>;
}
export interface OutlookTaskFolder extends Entity {
    // The version of the task folder.
    changeKey?: NullableOption<string>;
    // True if the folder is the default task folder.
    isDefaultFolder?: NullableOption<boolean>;
    // The name of the task folder.
    name?: NullableOption<string>;
    // The unique GUID identifier for the task folder's parent group.
    parentGroupKey?: NullableOption<string>;
    // The collection of multi-value extended properties defined for the task folder. Read-only. Nullable.
    multiValueExtendedProperties?: NullableOption<MultiValueLegacyExtendedProperty[]>;
    // The collection of single-value extended properties defined for the task folder. Read-only. Nullable.
    singleValueExtendedProperties?: NullableOption<SingleValueLegacyExtendedProperty[]>;
    // The tasks in this task folder. Read-only. Nullable.
    tasks?: NullableOption<OutlookTask[]>;
}
export interface OutlookTaskGroup extends Entity {
    // The version of the task group.
    changeKey?: NullableOption<string>;
    // The unique GUID identifier for the task group.
    groupKey?: NullableOption<string>;
    // True if the task group is the default task group.
    isDefaultGroup?: NullableOption<boolean>;
    // The name of the task group.
    name?: NullableOption<string>;
    // The collection of task folders in the task group. Read-only. Nullable.
    taskFolders?: NullableOption<OutlookTaskFolder[]>;
}
export interface ReferenceAttachment extends Attachment {
    /**
     * Specifies whether the attachment is a link to a folder. Must set this to true if sourceUrl is a link to a folder.
     * Optional.
     */
    isFolder?: NullableOption<boolean>;
    /**
     * Specifies the permissions granted for the attachment by the type of provider in providerType. Possible values are:
     * other, view, edit, anonymousView, anonymousEdit, organizationView, organizationEdit. Optional.
     */
    permission?: NullableOption<ReferenceAttachmentPermission>;
    /**
     * Applies to only a reference attachment of an image - URL to get a preview image. Use thumbnailUrl and previewUrl only
     * when sourceUrl identifies an image file. Optional.
     */
    previewUrl?: NullableOption<string>;
    /**
     * The type of provider that supports an attachment of this contentType. Possible values are: other, oneDriveBusiness,
     * oneDriveConsumer, dropbox. Optional.
     */
    providerType?: NullableOption<ReferenceAttachmentProvider>;
    /**
     * URL to get the attachment content. If this is a URL to a folder, then for the folder to be displayed correctly in
     * Outlook or Outlook on the web, set isFolder to true. Required.
     */
    sourceUrl?: NullableOption<string>;
    /**
     * Applies to only a reference attachment of an image - URL to get a thumbnail image. Use thumbnailUrl and previewUrl only
     * when sourceUrl identifies an image file. Optional.
     */
    thumbnailUrl?: NullableOption<string>;
}
export interface UserInsightsSettings extends Entity {
    /**
     * true if user's itemInsights and meeting hours insights are enabled; false if user's itemInsights and meeting hours
     * insights are disabled. Default is true. Optional.
     */
    isEnabled?: boolean;
}
export interface ContactMergeSuggestions extends Entity {
    /**
     * true if the duplicate contact merge suggestions feature is enabled for the user; false if the feature is disabled.
     * Default value is true.
     */
    isEnabled?: NullableOption<boolean>;
}
export interface RegionalAndLanguageSettings extends Entity {
    // Prioritized list of languages the user reads and authors in.Returned by default. Not nullable.
    authoringLanguages?: NullableOption<LocaleInfo[]>;
    /**
     * The user's preferred user interface language (menus, buttons, ribbons, warning messages) for Microsoft web
     * applications.Returned by default. Not nullable.
     */
    defaultDisplayLanguage?: NullableOption<LocaleInfo>;
    // The locale that drives the default date, time, and calendar formatting.Returned by default.
    defaultRegionalFormat?: NullableOption<LocaleInfo>;
    // The language a user expected to use as input for text to speech scenarios.Returned by default.
    defaultSpeechInputLanguage?: NullableOption<LocaleInfo>;
    // The language a user expects to have documents, emails, and messages translated into.Returned by default.
    defaultTranslationLanguage?: NullableOption<LocaleInfo>;
    // Allows a user to override their defaultRegionalFormat with field specific formats.Returned by default.
    regionalFormatOverrides?: NullableOption<RegionalFormatOverrides>;
    /**
     * The user's preferred settings when consuming translated documents, emails, messages, and websites.Returned by default.
     * Not nullable.
     */
    translationPreferences?: NullableOption<TranslationPreferences>;
}
export interface ChangeTrackedEntity extends Entity {
    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>;
    // 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 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 whetherif 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>;
}
// tslint:disable-next-line: no-empty-interface
export interface Storage {}
export interface CanvasLayout extends Entity {
    // Collection of horizontal sections on the SharePoint page.
    horizontalSections?: NullableOption<HorizontalSection[]>;
    // Vertical section on the SharePoint page.
    verticalSection?: NullableOption<VerticalSection>;
}
export interface HorizontalSection extends Entity {
    /**
     * Enumeration value that indicates the emphasis of the section background. The possible values are: none, netural, soft,
     * strong, unknownFutureValue.
     */
    emphasis?: NullableOption<SectionEmphasisType>;
    /**
     * Layout type of the section. The possible values are: none, oneColumn, twoColumns, threeColumns, oneThirdLeftColumn,
     * oneThirdRightColumn, fullWidth, unknownFutureValue.
     */
    layout?: NullableOption<HorizontalSectionLayoutType>;
    // The set of vertical columns in this section.
    columns?: NullableOption<HorizontalSectionColumn[]>;
}
export interface VerticalSection extends Entity {
    /**
     * Enumeration value that indicates the emphasis of the section background. The possible values are: none, netural, soft,
     * strong, unknownFutureValue.
     */
    emphasis?: NullableOption<SectionEmphasisType>;
    // The set of web parts in this section.
    webparts?: NullableOption<WebPart[]>;
}
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>;
}
export interface EmployeeExperience {
    // Represents a collection of goals in a Viva Goals organization.
    goals?: NullableOption<Goals>;
    learningCourseActivities?: NullableOption<LearningCourseActivity[]>;
    // A collection of learning providers.
    learningProviders?: NullableOption<LearningProvider[]>;
}
export interface Goals extends Entity {
    // Represents a collection of goals export jobs for Viva Goals.
    exportJobs?: NullableOption<GoalsExportJob[]>;
}
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[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface FieldValueSet extends Entity {}
export interface HorizontalSectionColumn extends Entity {
    /**
     * Width of the column. A horizontal section is divided into 12 grids. A column should have a value of 1-12 to represent
     * its range spans. For example, there can be two columns both have a width of 6 in a section.
     */
    width?: NullableOption<number>;
    // The collection of WebParts in this column.
    webparts?: NullableOption<WebPart[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface WebPart extends Entity {}
// tslint:disable-next-line: interface-name
export interface ItemActivity extends Entity {
    // An item was accessed.
    access?: NullableOption<AccessAction>;
    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 RecycleBinItem extends BaseItem {
    /**
     * Date and time when the item was deleted. 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.
     */
    deletedDateTime?: NullableOption<string>;
    // Relative URL of the list or folder that originally contained the item.
    deletedFromLocation?: NullableOption<string>;
    // Size of the item in bytes.
    size?: NullableOption<number>;
}
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>;
    root?: NullableOption<DriveItem>;
    // Used to access the underlying site
    site?: NullableOption<Site>;
}
export interface SitePage extends BaseSitePage {
    /**
     * Indicates the promotion kind of the sitePage. The possible values are: microsoftReserved, page, newsPost,
     * unknownFutureValue.
     */
    promotionKind?: NullableOption<PagePromotionType>;
    // Reactions information for the page.
    reactions?: NullableOption<ReactionsFacet>;
    // Determines whether or not to show comments at the bottom of the page.
    showComments?: NullableOption<boolean>;
    // Determines whether or not to show recommended pages at the bottom of the page.
    showRecommendedPages?: NullableOption<boolean>;
    // Url of the sitePage's thumbnail image
    thumbnailWebUrl?: NullableOption<string>;
    // Title area on the SharePoint page.
    titleArea?: NullableOption<TitleArea>;
    // Indicates the layout of the content in a given SharePoint page, including horizontal sections and vertical sections.
    canvasLayout?: NullableOption<CanvasLayout>;
    // Collection of webparts on the SharePoint page.
    webParts?: NullableOption<WebPart[]>;
}
export interface StandardWebPart extends WebPart {
    // The instance identifier of the container text webPart. It only works for inline standard webPart in rich text webParts.
    containerTextWebPartId?: NullableOption<string>;
    // Data of the webPart.
    data?: NullableOption<WebPartData>;
    // A Guid that indicates the webPart type.
    webPartType?: NullableOption<string>;
}
export interface TextWebPart extends WebPart {
    // The HTML string in text web part.
    innerHtml?: NullableOption<string>;
}
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[]>;
}
export interface MeetingRegistrationBase extends Entity {
    // Specifies who can register for the meeting.
    allowedRegistrant?: NullableOption<MeetingAudience>;
    // Registrants of the online meeting.
    registrants?: NullableOption<MeetingRegistrantBase[]>;
}
export interface MeetingRegistration extends MeetingRegistrationBase {
    // The description of the meeting.
    description?: NullableOption<string>;
    // The meeting end time in UTC.
    endDateTime?: NullableOption<string>;
    // The number of times the registration page has been visited. Read-only.
    registrationPageViewCount?: NullableOption<number>;
    // The URL of the registration page. Read-only.
    registrationPageWebUrl?: NullableOption<string>;
    // The meeting speaker's information.
    speakers?: NullableOption<MeetingSpeaker[]>;
    // The meeting start time in UTC.
    startDateTime?: NullableOption<string>;
    // The subject of the meeting.
    subject?: NullableOption<string>;
    // Custom registration questions.
    customQuestions?: NullableOption<MeetingRegistrationQuestion[]>;
}
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 unique identifier of the organizer of the onlineMeeting related to this recording. Read-only.
    meetingOrganizerId?: NullableOption<string>;
    // The URL which 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 unique identifier of the organizer of the onlineMeeting related to this transcript. Read-only.
    meetingOrganizerId?: NullableOption<string>;
    // The time-aligned metadata of the utterances in the transcript. Read-only.
    metadataContent?: NullableOption<any>;
    // The URL which can be used to access the content of the transcript. Read-only.
    transcriptContentUrl?: NullableOption<string>;
}
export interface MessageEvent extends Entity {
    dateTime?: string;
    description?: NullableOption<string>;
    eventType?: MessageEventType;
}
export interface MessageRecipient extends Entity {
    deliveryStatus?: MessageStatus;
    recipientEmail?: string;
    events?: NullableOption<MessageEvent[]>;
}
export interface MessageTrace extends Entity {
    destinationIPAddress?: NullableOption<string>;
    messageId?: NullableOption<string>;
    receivedDateTime?: string;
    senderEmail?: NullableOption<string>;
    size?: number;
    sourceIPAddress?: NullableOption<string>;
    subject?: NullableOption<string>;
    recipients?: NullableOption<MessageRecipient[]>;
}
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[];
}
// tslint:disable-next-line: no-empty-interface
export interface ApplicationSegment extends Entity {}
// tslint:disable-next-line: interface-name
export interface IpApplicationSegment extends ApplicationSegment {
    destinationHost?: NullableOption<string>;
    destinationType?: NullableOption<PrivateNetworkDestinationType>;
    port?: NullableOption<number>;
    ports?: NullableOption<string[]>;
    protocol?: NullableOption<PrivateNetworkProtocol>;
}
export interface WebApplicationSegment extends ApplicationSegment {
    /**
     * If you're configuring a traffic manager in front of multiple App Proxy application segments, this property contains the
     * user-friendly URL that will point to the traffic manager.
     */
    alternateUrl?: NullableOption<string>;
    // The published external URL for the application segment; for example, https://intranet.contoso.com/.
    externalUrl?: NullableOption<string>;
    // The internal URL of the application segment; for example, https://intranet/.
    internalUrl?: NullableOption<string>;
    // A collection of CORS Rule definitions for a particular application segment.
    corsConfigurations?: NullableOption<CorsConfiguration_v2[]>;
}
export interface Connector extends Entity {
    // The external IP address as detected by the the connector server. Read-only.
    externalIp?: string;
    // The machine name the connector is installed and running on.
    machineName?: string;
    // Indicates the status of the connector. Possible values are: active, inactive. Read-only.
    status?: ConnectorStatus;
    version?: string;
    // The connectorGroup that the connector is a member of. Read-only.
    memberOf?: NullableOption<ConnectorGroup[]>;
}
export interface CorsConfiguration_v2 extends Entity {
    /**
     * The request headers that the origin domain may specify on the CORS request. The wildcard character * indicates that any
     * header beginning with the specified prefix is allowed.
     */
    allowedHeaders?: NullableOption<string[]>;
    // The HTTP request methods that the origin domain may use for a CORS request.
    allowedMethods?: NullableOption<string[]>;
    /**
     * The origin domains that are permitted to make a request against the service via CORS. The origin domain is the domain
     * from which the request originates. The origin must be an exact case-sensitive match with the origin that the user agent
     * sends to the service.
     */
    allowedOrigins?: NullableOption<string[]>;
    // The maximum amount of time that a browser should cache the response to the preflight OPTIONS request.
    maxAgeInSeconds?: NullableOption<number>;
    /**
     * Resource within the application segment for which CORS permissions are granted. / grants permission for the whole app
     * segment.
     */
    resource?: string;
}
export interface OnPremisesAgent extends Entity {
    // The external IP address as detected by the service for the agent machine. Read-only
    externalIp?: string;
    // The name of the machine that the agent is running on. Read-only
    machineName?: string;
    // Possible values are: active, inactive.
    status?: AgentStatus;
    supportedPublishingTypes?: OnPremisesPublishingType[];
    // List of onPremisesAgentGroups that an onPremisesAgent is assigned to. Read-only. Nullable.
    agentGroups?: NullableOption<OnPremisesAgentGroup[]>;
}
export interface OnPremisesAgentGroup extends Entity {
    // Display name of the onPremisesAgentGroup.
    displayName?: string;
    /**
     * Indicates if the onPremisesAgentGroup is the default agent group. Only a single agent group can be the default
     * onPremisesAgentGroup and is set by the system.
     */
    isDefault?: boolean;
    // Possible values are: applicationProxy, exchangeOnline, authentication, provisioning, adAdministration.
    publishingType?: OnPremisesPublishingType;
    // List of onPremisesAgent that are assigned to an onPremisesAgentGroup. Read-only. Nullable.
    agents?: NullableOption<OnPremisesAgent[]>;
    // List of publishedResource that are assigned to an onPremisesAgentGroup. Read-only. Nullable.
    publishedResources?: NullableOption<PublishedResource[]>;
}
export interface PublishedResource extends Entity {
    // Display Name of the publishedResource.
    displayName?: NullableOption<string>;
    // Possible values are: applicationProxy, exchangeOnline, authentication, provisioning, adAdministration.
    publishingType?: OnPremisesPublishingType;
    // Name of the publishedResource.
    resourceName?: NullableOption<string>;
    // List of onPremisesAgentGroups that a publishedResource is assigned to. Read-only. Nullable.
    agentGroups?: NullableOption<OnPremisesAgentGroup[]>;
}
export interface OnPremisesPublishingProfile extends Entity {
    // Represents a hybridAgentUpdaterConfiguration object.
    hybridAgentUpdaterConfiguration?: NullableOption<HybridAgentUpdaterConfiguration>;
    isDefaultAccessEnabled?: NullableOption<boolean>;
    // Represents if Microsoft Entra application proxy is enabled for the tenant.
    isEnabled?: NullableOption<boolean>;
    // List of existing onPremisesAgentGroup objects. Read-only. Nullable.
    agentGroups?: NullableOption<OnPremisesAgentGroup[]>;
    // List of existing onPremisesAgent objects. Read-only. Nullable.
    agents?: NullableOption<OnPremisesAgent[]>;
    // List of existing connectorGroup objects for applications published through Application Proxy. Read-only. Nullable.
    connectorGroups?: NullableOption<ConnectorGroup[]>;
    // List of existing connector objects for applications published through Application Proxy. Read-only. Nullable.
    connectors?: NullableOption<Connector[]>;
    // List of existing publishedResource objects. Read-only. Nullable.
    publishedResources?: NullableOption<PublishedResource[]>;
}
export interface AttributeMappingFunctionSchema extends Entity {
    // Collection of function parameters.
    parameters?: NullableOption<AttributeMappingParameterSchema[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface BulkUpload extends Entity {}
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 bulk upload operation for the job.
    bulkUpload?: NullableOption<BulkUpload>;
    // 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 shouldn't 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 list of active modalities. Possible values are: unknown, audio, video, videoBasedScreenSharing, data. Read-only.
    activeModalities?: NullableOption<Modality[]>;
    // The participant that answered the call. Read-only.
    answeredBy?: NullableOption<ParticipantInfo>;
    // 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 meeting scenarios.
    chatInfo?: NullableOption<ChatInfo>;
    // The direction of the call. The possible values are incoming or outgoing. Read-only.
    direction?: NullableOption<CallDirection>;
    // The context associated with an incoming call. Read-only. Server generated.
    incomingContext?: NullableOption<IncomingContext>;
    // The media configuration. Required information for creating peer to peer calls or joining meetings.
    mediaConfig?: NullableOption<MediaConfig>;
    // Read-only. The call media state.
    mediaState?: NullableOption<CallMediaState>;
    // Contains the capabilities of a meeting. Read-only.
    meetingCapability?: NullableOption<MeetingCapability>;
    // The meeting information. Required information for meeting scenarios.
    meetingInfo?: NullableOption<MeetingInfo>;
    myParticipantId?: NullableOption<string>;
    requestedModalities?: NullableOption<Modality[]>;
    resultInfo?: NullableOption<ResultInfo>;
    ringingTimeoutInSeconds?: NullableOption<number>;
    routingPolicies?: NullableOption<RoutingPolicy[]>;
    source?: NullableOption<ParticipantInfo>;
    state?: NullableOption<CallState>;
    subject?: NullableOption<string>;
    targets?: NullableOption<InvitationParticipantInfo[]>;
    tenantId?: NullableOption<string>;
    terminationReason?: 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 AccessReview extends Entity {
    // The business flow template identifier. Required on create. This value is case sensitive.
    businessFlowTemplateId?: string;
    // The user who created this review.
    createdBy?: NullableOption<UserIdentity>;
    // The description provided by the access review creator, to show to the reviewers.
    description?: NullableOption<string>;
    // The access review name. Required on create.
    displayName?: string;
    /**
     * The DateTime when the review is scheduled to end. This must be at least one day later than the start date. Required on
     * create.
     */
    endDateTime?: string;
    /**
     * The object for which the access reviews is reviewing the access rights assignments. This can be the group for the
     * review of memberships of users in a group, or the app for a review of assignments of users to an application. Required
     * on create.
     */
    reviewedEntity?: NullableOption<Identity>;
    // The relationship type of reviewer to the target object, one of self, delegated or entityOwners. Required on create.
    reviewerType?: NullableOption<string>;
    // The settings of an accessReview, see type definition below.
    settings?: NullableOption<AccessReviewSettings>;
    // The DateTime when the review is scheduled to be start. This could be a date in the future. Required on create.
    startDateTime?: string;
    /**
     * This read-only field specifies the status of an accessReview. The typical states include Initializing, NotStarted,
     * Starting,InProgress, Completing, Completed, AutoReviewing, and AutoReviewed.
     */
    status?: NullableOption<string>;
    // The collection of decisions for this access review.
    decisions?: NullableOption<AccessReviewDecision[]>;
    // The collection of access reviews instances past, present and future, if this object is a recurring access review.
    instances?: NullableOption<AccessReview[]>;
    // The collection of decisions for the caller, if the caller is a reviewer.
    myDecisions?: NullableOption<AccessReviewDecision[]>;
    // The collection of reviewers for an access review, if access review reviewerType is of type delegated.
    reviewers?: NullableOption<AccessReviewReviewer[]>;
}
export interface AccessReviewDecision extends Entity {
    // The feature- generated recommendation shown to the reviewer, one of Approve, Deny or NotAvailable.
    accessRecommendation?: NullableOption<string>;
    // The feature-generated ID of the access review.
    accessReviewId?: NullableOption<string>;
    /**
     * When the review completes, if the results were manually applied, the user identity of the user who applied the
     * decision. If the review was autoapplied, the userPrincipalName is empty.
     */
    appliedBy?: NullableOption<UserIdentity>;
    // The date and time when the review decision was applied.
    appliedDateTime?: NullableOption<string>;
    // The outcome of applying the decision, one of NotApplied, Success, Failed, NotFound or NotSupported.
    applyResult?: NullableOption<string>;
    // The reviewer's business justification, if supplied.
    justification?: NullableOption<string>;
    // The identity of the reviewer. If the recommendation was used as the review, the userPrincipalName is empty.
    reviewedBy?: NullableOption<UserIdentity>;
    reviewedDateTime?: NullableOption<string>;
    // The result of the review, one of NotReviewed, Deny, DontKnow or Approve.
    reviewResult?: NullableOption<string>;
}
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 user.
    userPrincipalName?: NullableOption<string>;
}
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;
    downloadUri?: NullableOption<string>;
    fulfilledDateTime?: NullableOption<string>;
    /**
     * A timestamp. Reviews ending on or before this date will be included in the fetched history data. Only required if
     * scheduleSettings is not 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. This will be set after this instance's status
     * is set to done. Required.
     */
    fulfilledDateTime?: NullableOption<string>;
    // Timestamp, reviews ending on or before this date are in the fetched history data.
    reviewHistoryPeriodEndDateTime?: NullableOption<string>;
    // Timestamp, reviews starting on or after this date are 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 AccessReviewInstanceDecisionItem extends Entity {
    // The identifier of the accessReviewInstance parent. Supports $select. Read-only.
    accessReviewId?: string;
    /**
     * The identifier of the user who applied the decision. 00000000-0000-0000-0000-000000000000 if the assigned reviewer
     * hasn't applied the decision or it was automatically applied. Read-only.
     */
    appliedBy?: NullableOption<UserIdentity>;
    /**
     * The timestamp when the approval decision was 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>;
    /**
     * Link to the principal object. For example: https://graph.microsoft.com/v1.0/users/a6c7aecb-cbfd-4763-87ef-e91b4bd509d9.
     * Read-only.
     */
    principalLink?: NullableOption<string>;
    /**
     * Every decision item in an access review represents a principal's membership to a resource. This property provides the
     * details of the membership. For example, whether the principal has direct access or indirect access to the resource.
     * Supports $select. Read-only.
     */
    principalResourceMembership?: NullableOption<DecisionItemPrincipalResourceMembership>;
    /**
     * 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>;
    /**
     * The target of this specific decision. Decision targets can be of different types – each one with its own specific
     * properties. See accessReviewInstanceDecisionItemTarget. Read-only. This property has been replaced by the principal and
     * resource properties in v1.0.
     */
    target?: NullableOption<AccessReviewInstanceDecisionItemTarget>;
    /**
     * 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[]>;
    /**
     * There is exactly one accessReviewInstance associated with each decision. The instance is the parent of the decision
     * item, representing the recurrence of the access review the decision is made on.
     */
    instance?: NullableOption<AccessReviewInstance>;
}
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[]>;
    backupReviewers?: NullableOption<AccessReviewReviewerScope[]>;
    // 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 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 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>;
    /**
     * Set of access reviews instances for this access review series. Access reviews that don't recur will only have one
     * instance; otherwise, there's an instance for each recurrence.
     */
    instances?: NullableOption<AccessReviewInstance[]>;
}
export interface AccessReviewStage extends Entity {
    /**
     * DateTime when review stage 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. 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 can 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.
     */
    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[]>;
    /**
     * DateTime when review stage 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. 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 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 ApprovalStep extends Entity {
    // Indicates whether the step is assigned to the calling user to review. Read-only.
    assignedToMe?: NullableOption<boolean>;
    // The label provided by the policy creator to identify an approval step. Read-only.
    displayName?: NullableOption<string>;
    // The justification associated with the approval step 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 step status. Possible values: InProgress, Initializing, Completed, Expired. Read-only.
    status?: NullableOption<string>;
}
export interface ApprovalWorkflowProvider extends Entity {
    displayName?: string;
    businessFlows?: NullableOption<BusinessFlow[]>;
    businessFlowsWithRequestsAwaitingMyDecision?: NullableOption<BusinessFlow[]>;
    policyTemplates?: NullableOption<GovernancePolicyTemplate[]>;
}
export interface BusinessFlow extends Entity {
    customData?: NullableOption<string>;
    deDuplicationId?: NullableOption<string>;
    description?: NullableOption<string>;
    displayName?: NullableOption<string>;
    policy?: NullableOption<GovernancePolicy>;
    policyTemplateId?: NullableOption<string>;
    recordVersion?: NullableOption<string>;
    schemaId?: NullableOption<string>;
    settings?: NullableOption<BusinessFlowSettings>;
}
export interface GovernancePolicyTemplate extends Entity {
    displayName?: NullableOption<string>;
    policy?: NullableOption<GovernancePolicy>;
    settings?: NullableOption<BusinessFlowSettings>;
}
export interface BusinessFlowTemplate extends Entity {
    // The name of the business flow template
    displayName?: NullableOption<string>;
}
export interface AccessPackageAssignmentPolicy extends Entity {
    // Identifier of the access package.
    accessPackageId?: NullableOption<string>;
    /**
     * Who must review, and how often, the assignments to the access package from this policy. This property is null if
     * reviews aren't required.
     */
    accessReviewSettings?: NullableOption<AssignmentReviewSettings>;
    // Indicates whether a user can extend the access package assignment duration after approval.
    canExtend?: NullableOption<boolean>;
    createdBy?: 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 description of the policy.
    description?: NullableOption<string>;
    // The display name of the policy. Supports $filter (eq).
    displayName?: NullableOption<string>;
    // The number of days in which assignments from this policy last until they're expired.
    durationInDays?: NullableOption<number>;
    /**
     * The expiration date for assignments created in this policy. 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
     */
    expirationDateTime?: NullableOption<string>;
    modifiedBy?: 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
     */
    modifiedDateTime?: NullableOption<string>;
    // Questions that are posed to the requestor.
    questions?: NullableOption<AccessPackageQuestion[]>;
    // Who must approve requests for access package in this policy.
    requestApprovalSettings?: NullableOption<ApprovalSettings>;
    // Who can request this access package from this policy.
    requestorSettings?: NullableOption<RequestorSettings>;
    /**
     * Settings for verifiable credentials set up through the Microsoft Entra Verified I D service. These settings represent
     * the verifiable credentials that a requestor of an access package in this policy can present to be assigned the access
     * package.
     */
    verifiableCredentialSettings?: NullableOption<VerifiableCredentialSettings>;
    // The access package with this policy. Read-only. Nullable. Supports $expand.
    accessPackage?: NullableOption<AccessPackage>;
    accessPackageCatalog?: NullableOption<AccessPackageCatalog>;
    // The collection of stages when to execute one or more custom access package workflow extensions. Supports $expand.
    customExtensionHandlers?: NullableOption<CustomExtensionHandler[]>;
    // The collection of stages when to execute one or more custom access package workflow extensions. Supports $expand.
    customExtensionStageSettings?: NullableOption<CustomExtensionStageSetting[]>;
}
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.
     */
    completedDate?: 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.
     */
    createdDateTime?: NullableOption<string>;
    // Information about all the custom extension calls that were made during the access package assignment request workflow.
    customExtensionCalloutInstances?: NullableOption<CustomExtensionCalloutInstance[]>;
    // A collection of custom workflow extension instances being run on an assignment request. Read-only.
    customExtensionHandlerInstances?: NullableOption<CustomExtensionHandlerInstance[]>;
    expirationDateTime?: NullableOption<string>;
    // True if the request is not to be processed for assignment.
    isValidationOnly?: NullableOption<boolean>;
    // The requestor's supplied justification.
    justification?: NullableOption<string>;
    /**
     * One of PendingApproval, Canceled, Denied, Delivering, Delivered, PartiallyDelivered, DeliveryFailed, Submitted or
     * Scheduled. Read-only.
     */
    requestState?: NullableOption<string>;
    // More information on the request processing status. Read-only.
    requestStatus?: NullableOption<string>;
    /**
     * One of UserAdd, UserExtend, UserUpdate, UserRemove, AdminAdd, AdminRemove or SystemRemove. A request from the user
     * themselves would have requestType of UserAdd, UserUpdate or UserRemove. Read-only.
     */
    requestType?: NullableOption<string>;
    // The range of dates that access is to be assigned to the requestor. Read-only.
    schedule?: NullableOption<RequestSchedule>;
    // The details of the verifiable credential that was presented by the requestor, such as the issuer and claims. Read-only.
    verifiedCredentialsData?: NullableOption<VerifiedCredentialData[]>;
    /**
     * 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.
     */
    accessPackageAssignment?: NullableOption<AccessPackageAssignment>;
    // The subject who requested or, if a direct assignment, was assigned. Read-only. Nullable. Supports $expand.
    requestor?: NullableOption<AccessPackageSubject>;
}
export interface AccessPackageAssignmentResourceRole extends Entity {
    /**
     * A unique identifier relative to the origin system, corresponding to the originId property of the
     * accessPackageResourceRole.
     */
    originId?: NullableOption<string>;
    /**
     * The system where the role assignment is to be created or has been created for an access package assignment, such as
     * SharePointOnline, AadGroup or AadApplication, corresponding to the originSystem property of the
     * accessPackageResourceRole.
     */
    originSystem?: NullableOption<string>;
    /**
     * The value is PendingFulfillment when the access package assignment hasn't yet been delivered to the origin system, and
     * Fulfilled when the access package assignment has been delivered to the origin system.
     */
    status?: NullableOption<string>;
    // The access package assignments resulting in this role assignment. Read-only. Nullable.
    accessPackageAssignments?: NullableOption<AccessPackageAssignment[]>;
    accessPackageResourceRole?: NullableOption<AccessPackageResourceRole>;
    accessPackageResourceScope?: NullableOption<AccessPackageResourceScope>;
    // Read-only. Nullable. Supports $filter (eq) on objectId and $expand query parameters.
    accessPackageSubject?: NullableOption<AccessPackageSubject>;
}
export interface AccessPackageAssignment extends Entity {
    // The identifier of the access package. Read-only.
    accessPackageId?: NullableOption<string>;
    // The identifier of the access package assignment policy. Read-only.
    assignmentPolicyId?: NullableOption<string>;
    /**
     * The state of the access package assignment. Possible values are Delivering, Delivered, or Expired. Read-only. Supports
     * $filter (eq).
     */
    assignmentState?: NullableOption<string>;
    /**
     * More information about the assignment lifecycle. Possible values include Delivering, Delivered,
     * NearExpiry1DayNotificationTriggered, or ExpiredNotificationTriggered. Read-only.
     */
    assignmentStatus?: NullableOption<string>;
    // The identifier of the catalog containing the access package. Read-only.
    catalogId?: NullableOption<string>;
    // 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
     */
    expiredDateTime?: NullableOption<string>;
    // Indicates whether the access package assignment is extended. Read-only.
    isExtended?: NullableOption<boolean>;
    // When the access assignment is to be in place. Read-only.
    schedule?: NullableOption<RequestSchedule>;
    // The ID of the subject with the assignment. Read-only.
    targetId?: NullableOption<string>;
    // Read-only. Nullable. Supports $filter (eq) on the id property and $expand query parameters.
    accessPackage?: NullableOption<AccessPackage>;
    // Read-only. Nullable. Supports $filter (eq) on the id property
    accessPackageAssignmentPolicy?: NullableOption<AccessPackageAssignmentPolicy>;
    accessPackageAssignmentRequests?: NullableOption<AccessPackageAssignmentRequest[]>;
    // The resource roles delivered to the target user for this assignment. Read-only. Nullable.
    accessPackageAssignmentResourceRoles?: NullableOption<AccessPackageAssignmentResourceRole[]>;
    // 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 {
    // Has the value Published if the access packages are available for management.
    catalogStatus?: NullableOption<string>;
    // One of UserManaged or ServiceDefault.
    catalogType?: NullableOption<string>;
    // UPN of the user who created this resource. Read-only.
    createdBy?: 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.
     */
    createdDateTime?: NullableOption<string>;
    // The description of the access package catalog.
    description?: NullableOption<string>;
    // The display name of the access package catalog. Supports $filter (eq, contains).
    displayName?: NullableOption<string>;
    // Whether the access packages in this catalog can be requested by users outside of the tenant.
    isExternallyVisible?: NullableOption<boolean>;
    // The UPN of the user who last modified this resource. Read-only.
    modifiedBy?: 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 attributes of a logic app, which can be called at various stages of an access package request and assignment cycle.
    accessPackageCustomWorkflowExtensions?: NullableOption<CustomCalloutExtension[]>;
    // The roles in each resource in a catalog. Read-only.
    accessPackageResourceRoles?: NullableOption<AccessPackageResourceRole[]>;
    accessPackageResources?: NullableOption<AccessPackageResource[]>;
    accessPackageResourceScopes?: NullableOption<AccessPackageResourceScope[]>;
    // The access packages in this catalog. Read-only. Nullable. Supports $expand.
    accessPackages?: NullableOption<AccessPackage[]>;
    customAccessPackageWorkflowExtensions?: NullableOption<CustomAccessPackageWorkflowExtension[]>;
}
export interface AccessPackageResourceEnvironment extends Entity {
    // Connection information of an environment used to connect to a resource.
    connectionInfo?: NullableOption<ConnectionInfo>;
    // The display name of the user that created this object.
    createdBy?: NullableOption<string>;
    /**
     * 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 display name of the entity that last modified this object.
    modifiedBy?: NullableOption<string>;
    /**
     * 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?: string;
    // The type of the resource in the origin system, that is, SharePointOnline. Requires $filter (eq).
    originSystem?: string;
    // Read-only. Required.
    accessPackageResources?: NullableOption<AccessPackageResource[]>;
}
export interface AccessPackageResourceRequest extends Entity {
    // The unique ID of the access package catalog.
    catalogId?: NullableOption<string>;
    executeImmediately?: 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
     */
    expirationDateTime?: NullableOption<string>;
    // If set, does not add the resource.
    isValidationOnly?: NullableOption<boolean>;
    // The requestor's justification for adding or removing the resource.
    justification?: NullableOption<string>;
    /**
     * 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. Read-Only.
     */
    requestState?: NullableOption<string>;
    requestStatus?: NullableOption<string>;
    /**
     * 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<string>;
    accessPackageResource?: NullableOption<AccessPackageResource>;
    // Read-only. Nullable. Supports $expand.
    requestor?: NullableOption<AccessPackageSubject>;
}
export interface AccessPackageResourceRoleScope extends Entity {
    createdBy?: 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>;
    modifiedBy?: 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
     */
    modifiedDateTime?: NullableOption<string>;
    // Read-only. Nullable. Supports $expand.
    accessPackageResourceRole?: NullableOption<AccessPackageResourceRole>;
    accessPackageResourceScope?: NullableOption<AccessPackageResourceScope>;
}
export interface AccessPackageResource extends Entity {
    // The name of the user or application that first added this resource. Read-only.
    addedBy?: 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.
     */
    addedOn?: NullableOption<string>;
    // Contains information about the attributes to be collected from the requestor and sent to the resource application.
    attributes?: NullableOption<AccessPackageResourceAttribute[]>;
    // 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>;
    // True if the resource is not yet available for assignment. Read-only.
    isPendingOnboarding?: NullableOption<boolean>;
    /**
     * 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>;
    /**
     * The type of the resource, such as Application if it is a Microsoft Entra connected application, or SharePoint Online
     * Site for a SharePoint Online site.
     */
    resourceType?: NullableOption<string>;
    // A unique resource locator for the resource, such as the URL for signing a user into an application.
    url?: 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.
     */
    accessPackageResourceEnvironment?: NullableOption<AccessPackageResourceEnvironment>;
    // Read-only. Nullable. Supports $expand.
    accessPackageResourceRoles?: NullableOption<AccessPackageResourceRole[]>;
    // Read-only. Nullable. Supports $expand.
    accessPackageResourceScopes?: NullableOption<AccessPackageResourceScope[]>;
}
export interface AccessPackage extends Entity {
    // Identifier of the access package catalog referencing this access package. Read-only.
    catalogId?: NullableOption<string>;
    // The userPrincipalName of the user or identity of the subject who created this resource. Read-only.
    createdBy?: 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.
     */
    createdDateTime?: NullableOption<string>;
    // The description of the access package.
    description?: NullableOption<string>;
    // 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>;
    // Indicates whether role scopes are visible.
    isRoleScopesVisible?: NullableOption<boolean>;
    // The userPrincipalName of the user who last modified this resource. Read-only.
    modifiedBy?: 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>;
    // Read-only. Nullable. Supports $expand.
    accessPackageAssignmentPolicies?: NullableOption<AccessPackageAssignmentPolicy[]>;
    accessPackageCatalog?: NullableOption<AccessPackageCatalog>;
    accessPackageResourceRoleScopes?: NullableOption<AccessPackageResourceRoleScope[]>;
    // The access packages that are incompatible with this package. Read-only.
    accessPackagesIncompatibleWith?: NullableOption<AccessPackage[]>;
    // 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[]>;
}
export interface ConnectedOrganization extends Entity {
    // UPN of the user who created this resource. Read-only.
    createdBy?: 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.
     */
    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,
     * crossCloudAzureActiveDirectoryTenant, domainIdentitySource or externalDomainFederation. Read-only. Nullable. Supports
     * $select and $filter(eq). To filter by the derived types, you must declare the resource using its full OData cast, for
     * example, $filter=identitySources/any(is:is/microsoft.graph.azureActiveDirectoryTenant/tenantId eq
     * 'bcfdfff4-cbc3-43f2-9000-ba7b7515054f').
     */
    identitySources?: NullableOption<IdentitySource[]>;
    // UPN of the user who last modified this resource. Read-only.
    modifiedBy?: 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 state of a connected organization defines whether assignment policies with requestor scope type
     * AllConfiguredConnectedOrganizationSubjects are applicable or not. Possible values are: configured, proposed.
     */
    state?: NullableOption<ConnectedOrganizationState>;
    externalSponsors?: NullableOption<DirectoryObject[]>;
    internalSponsors?: NullableOption<DirectoryObject[]>;
}
export interface EntitlementManagementSettings extends Entity {
    /**
     * If externalUserLifecycleAction is BlockSignInAndDelete, the number of days after an external user is blocked from sign
     * in before their account is deleted.
     */
    daysUntilExternalUserDeletedAfterBlocked?: NullableOption<number>;
    // One of None, BlockSignIn, or BlockSignInAndDelete.
    externalUserLifecycleAction?: NullableOption<string>;
}
export interface AccessPackageSubject extends Entity {
    // Not Supported.
    altSecId?: NullableOption<string>;
    /**
     * The date and time the subject is marked to be blocked from sign in or deleted. The Timestamp type represents date and
     * time information using ISO 8601 format and is always in UTC time.
     */
    cleanupScheduledDateTime?: NullableOption<string>;
    // The identifier of the connected organization of the subject.
    connectedOrganizationId?: NullableOption<string>;
    // 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. Alternate key.
    objectId?: NullableOption<string>;
    onPremisesSecurityIdentifier?: NullableOption<string>;
    // The principal name, if known, of the subject.
    principalName?: NullableOption<string>;
    /**
     * The lifecycle of the subject user, if a guest. The possible values are: notDefined, notGoverned, governed,
     * unknownFutureValue.
     */
    subjectLifecycle?: NullableOption<AccessPackageSubjectLifecycle>;
    // The resource type of the subject.
    type?: NullableOption<string>;
    // The connected organization of the subject. Read-only. Nullable.
    connectedOrganization?: NullableOption<ConnectedOrganization>;
}
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, and is required.
    endDateTime?: NullableOption<string>;
    // When this instance starts, and is 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's 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's 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 Program extends Entity {
    // The description of the program.
    description?: string;
    // The name of the program. Required on create.
    displayName?: string;
    // Controls associated with the program.
    controls?: NullableOption<ProgramControl[]>;
}
export interface ProgramControl extends Entity {
    // The controlId of the control, in particular the identifier of an access review. Required on create.
    controlId?: string;
    /**
     * The programControlType identifies the type of program control - for example, a control linking to guest access reviews.
     * Required on create.
     */
    controlTypeId?: string;
    // The creation date and time of the program control.
    createdDateTime?: string;
    // The name of the control.
    displayName?: NullableOption<string>;
    // The user who created the program control.
    owner?: NullableOption<UserIdentity>;
    // The programId of the program this control is a part of. Required on create.
    programId?: string;
    // The resource, a group or an app, targeted by this program control's access review.
    resource?: NullableOption<ProgramResource>;
    // The life cycle status of the control.
    status?: NullableOption<string>;
    // The program this control is part of.
    program?: NullableOption<Program>;
}
export interface ProgramControlType extends Entity {
    controlTypeGroupId?: NullableOption<string>;
    // The name of the program control type
    displayName?: NullableOption<string>;
}
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>;
    /**
     * This setting enables you to require end users to accept this agreement on every device that they are accessing it from.
     * The end user will be 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.
     */
    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. Note: This property is in the process of being deprecated. Use the file property
     * instead.
     */
    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.
    countriesAndRegions?: string[];
    /**
     * Determines what method is used to decide which country the user is located in. Possible values are clientIpAddress
     * (default) and authenticatorAppGps.
     */
    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. The 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 2014-01-01T00:00:00Z
     */
    activityDateTime?: NullableOption<string>;
    // Additional information associated with the risk detection in JSON format.
    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 is 2014-01-01T00:00:00Z
     */
    detectedDateTime?: NullableOption<string>;
    /**
     * Timing of the detected risk (real-time/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>;
    // Date and time that the risk detection was last updated.
    lastUpdatedDateTime?: NullableOption<string>;
    // Location of the sign-in.
    location?: NullableOption<SignInLocation>;
    mitreTechniqueId?: NullableOption<string>;
    /**
     * 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, adminConfirmedServicePrincipalCompromised,
     * adminDismissedAllRiskForServicePrincipal, m365DAdminDismissedDetection. 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 , m365DAdminDismissedDetection.
     * Note: Details for this property are only available for Microsoft Entra ID P2 customers. P1 customers will be returned
     * hidden.
     */
    riskDetail?: NullableOption<RiskDetail>;
    /**
     * The type of risk event detected. The possible values are unlikelyTravel, anonymizedIPAddress, maliciousIPAddress,
     * unfamiliarFeatures, malwareInfectedIPAddress, suspiciousIPAddress, leakedCredentials, investigationsThreatIntelligence,
     * generic,adminConfirmedUserCompromised, mcasImpossibleTravel, mcasSuspiciousInboxManipulationRules,
     * investigationsThreatIntelligenceSigninLinked, maliciousIPAddressValidCredentialsBlockedIP, anomalousUserActivity,
     * userReportedSuspiciousActivity. For more information about each value, see riskEventType values.
     */
    riskEventType?: NullableOption<string>;
    /**
     * Level of the detected risk. The possible values are low, medium, high, hidden, none, unknownFutureValue. Note: Details
     * for this property are only available for Microsoft Entra ID P2 customers. P1 customers will be returned hidden.
     */
    riskLevel?: NullableOption<RiskLevel>;
    /**
     * The state of a detected risky user or sign-in. The possible values are none, confirmedSafe, remediated, dismissed,
     * atRisk, confirmedCompromised, and unknownFutureValue.
     */
    riskState?: NullableOption<RiskState>;
    riskType?: NullableOption<RiskEventType>;
    // Source of the risk detection. For example, activeDirectory.
    source?: NullableOption<string>;
    /**
     * Indicates the type of token issuer for the detected sign-in risk. The possible values are AzureAD,
     * ADFederationServices, and unknownFutureValue.
     */
    tokenIssuerType?: NullableOption<TokenIssuerType>;
    // Name of the user.
    userDisplayName?: NullableOption<string>;
    /**
     * Unique ID of the user. 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
     */
    userId?: NullableOption<string>;
    // The user principal name (UPN) of the user.
    userPrincipalName?: NullableOption<string>;
}
export interface RiskyServicePrincipal extends Entity {
    // true if the service principal account is enabled; otherwise, false.
    accountEnabled?: NullableOption<boolean>;
    // 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>;
    isEnabled?: NullableOption<boolean>;
    // Indicates whether Microsoft Entra ID Protection 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>;
    /**
     * The 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. The 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>;
    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 (GUID) 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>;
    mitreTechniqueId?: NullableOption<string>;
    /**
     * 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>;
    // The identifier of the service principal.
    servicePrincipalId?: 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 CustomExtensionHandler 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?: NullableOption<AccessPackageCustomExtensionStage>;
    // Indicates which custom workflow extension is executed at this stage. Nullable. Supports $expand.
    customExtension?: NullableOption<CustomAccessPackageWorkflowExtension>;
}
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 is 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 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>;
    accessPackageResource?: 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>;
    // The origin system for the role, if different.
    roleOriginId?: NullableOption<string>;
    // A resource locator for the scope.
    url?: NullableOption<string>;
    accessPackageResource?: NullableOption<AccessPackageResource>;
}
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 CustomAccessPackageWorkflowExtension extends CustomCalloutExtension {
    /**
     * 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>;
    /**
     * 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 AuthorizationSystem extends Entity {
    /**
     * ID of the authorization system retrieved from the customer cloud environment. Supports $filter(eq, contains) and
     * $orderBy.
     */
    authorizationSystemId?: string;
    // Name of the authorization system detected after onboarding. Supports $filter(eq,contains) and $orderBy.
    authorizationSystemName?: string;
    // The type of authorization system. Can be gcp, azure, or aws. Supports $filter(eq).
    authorizationSystemType?: string;
    /**
     * Defines how and whether Permissions Management collects data from the onboarded authorization system. Supports $filter
     * (eq) as follows: $filter=dataCollectionInfo/entitlements/permissionsModificationCapability and
     * $filter=dataCollectionInfo/entitlements/status.
     */
    dataCollectionInfo?: NullableOption<DataCollectionInfo>;
}
// tslint:disable-next-line: interface-name
export interface InformationProtectionLabel extends Entity {
    // The color that the UI should display for the label, if configured.
    color?: NullableOption<string>;
    // The admin-defined description for the label.
    description?: NullableOption<string>;
    // Indicates whether the label is active or not. Active labels should be hidden or disabled in UI.
    isActive?: boolean;
    // The plaintext name of the label.
    name?: NullableOption<string>;
    // The parent label associated with a child label. Null if label has no parent.
    parent?: NullableOption<ParentLabelDetails>;
    // The sensitivity value of the label, where lower is less sensitive.
    sensitivity?: number;
    // The tooltip that should be displayed for the label in a UI.
    tooltip?: NullableOption<string>;
}
export interface MobileApp extends Entity {
    // The date and time the app was created.
    createdDateTime?: string;
    // The total number of dependencies the child app has.
    dependentAppCount?: number;
    // 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 assigned to at least one group.
    isAssigned?: boolean;
    // 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;
    // List of scope tag ids for this mobile app.
    roleScopeTagIds?: NullableOption<string[]>;
    // The total number of apps this app is directly or indirectly superseded by.
    supersededAppCount?: number;
    // The total number of apps this app directly or indirectly supersedes.
    supersedingAppCount?: number;
    // The upload state.
    uploadState?: number;
    // The list of group assignments for this mobile app.
    assignments?: NullableOption<MobileAppAssignment[]>;
    // The list of categories for this app.
    categories?: NullableOption<MobileAppCategory[]>;
    // List of relationships for this mobile app.
    relationships?: NullableOption<MobileAppRelationship[]>;
}
export interface AndroidForWorkApp extends MobileApp {
    // The Identity Name.
    appIdentifier?: NullableOption<string>;
    // The Play for Work Store app URL.
    appStoreUrl?: NullableOption<string>;
    // The package identifier.
    packageId?: NullableOption<string>;
    // The total number of VPP licenses.
    totalLicenseCount?: number;
    // The number of VPP licenses in use.
    usedLicenseCount?: number;
}
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;
    // List of Scope Tags for this App configuration entity.
    roleScopeTagIds?: NullableOption<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 AndroidForWorkMobileAppConfiguration extends ManagedDeviceMobileAppConfiguration {
    // Setting to specify whether to allow ConnectedApps experience for this app.
    connectedAppsEnabled?: boolean;
    // Android For Work app configuration package id.
    packageId?: NullableOption<string>;
    // Android For Work app configuration JSON payload.
    payloadJson?: NullableOption<string>;
    // List of Android app permissions and corresponding permission actions.
    permissionActions?: NullableOption<AndroidPermissionAction[]>;
    /**
     * Android Enterprise profile applicability (AndroidWorkProfile, DeviceOwner, or default (applies to both)). Possible
     * values are: default, androidWorkProfile, androidDeviceOwner.
     */
    profileApplicability?: AndroidProfileApplicability;
}
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 Identity Name. This property is being deprecated in 2302(February 2023).
    identityName?: NullableOption<string>;
    // The identity version. This property is being deprecated in 2302(February 2023).
    identityVersion?: NullableOption<string>;
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<AndroidMinimumOperatingSystem>;
    // The package identifier.
    packageId?: NullableOption<string>;
    /**
     * The platforms to which the application can be targeted. If not specified, will defauilt to Android Device
     * Administrator. Possible values are: androidDeviceAdministrator, androidOpenSourceProject, unknownFutureValue.
     */
    targetedPlatforms?: AndroidTargetedPlatforms;
    // 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 AndroidManagedStoreApp extends MobileApp {
    // The Identity Name.
    appIdentifier?: NullableOption<string>;
    // The Play for Work Store app URL.
    appStoreUrl?: NullableOption<string>;
    // The tracks that are visible to this enterprise.
    appTracks?: NullableOption<AndroidManagedStoreAppTrack[]>;
    // Indicates whether the app is only available to a given enterprise's users.
    isPrivate?: boolean;
    // Indicates whether the app is a preinstalled system app.
    isSystemApp?: boolean;
    // The package identifier.
    packageId?: NullableOption<string>;
    // Whether this app supports OEMConfig policy.
    supportsOemConfig?: boolean;
    // The total number of VPP licenses.
    totalLicenseCount?: number;
    // The number of VPP licenses in use.
    usedLicenseCount?: number;
}
export interface AndroidManagedStoreAppConfiguration extends ManagedDeviceMobileAppConfiguration {
    // Whether or not this AppConfig is an OEMConfig policy.
    appSupportsOemConfig?: boolean;
    // Setting to specify whether to allow ConnectedApps experience for this app.
    connectedAppsEnabled?: boolean;
    // Android Enterprise app configuration package id.
    packageId?: NullableOption<string>;
    // Android Enterprise app configuration JSON payload.
    payloadJson?: NullableOption<string>;
    // List of Android app permissions and corresponding permission actions.
    permissionActions?: NullableOption<AndroidPermissionAction[]>;
    /**
     * Android Enterprise profile applicability (AndroidWorkProfile, DeviceOwner, or default (applies to both)). Possible
     * values are: default, androidWorkProfile, androidDeviceOwner.
     */
    profileApplicability?: AndroidProfileApplicability;
}
// tslint:disable-next-line: no-empty-interface
export interface AndroidManagedStoreWebApp extends AndroidManagedStoreApp {}
export interface AndroidStoreApp extends MobileApp {
    // The Identity Name.
    appIdentifier?: NullableOption<string>;
    // 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 end user portal information is used to sync applications from the Microsoft Store for Business to Intune Company
     * Portal. There are three options to pick from ['Company portal only', 'Company portal and private store', 'Private store
     * only']. Possible values are: none, companyPortal, privateStore.
     */
    microsoftStoreForBusinessPortalSelection?: MicrosoftStoreForBusinessPortalSelectionOptions;
    // The mobile eBook categories.
    managedEBookCategories?: NullableOption<ManagedEBookCategory[]>;
    // The Windows Enterprise Code Signing Certificate.
    enterpriseCodeSigningCertificates?: NullableOption<EnterpriseCodeSigningCertificate[]>;
    // The IOS Lob App Provisioning Configurations.
    iosLobAppProvisioningConfigurations?: NullableOption<IosLobAppProvisioningConfiguration[]>;
    // The mobile app categories.
    mobileAppCategories?: NullableOption<MobileAppCategory[]>;
    // The Managed Device Mobile Application Configurations.
    mobileAppConfigurations?: NullableOption<ManagedDeviceMobileAppConfiguration[]>;
    // The mobile apps.
    mobileApps?: NullableOption<MobileApp[]>;
    // The WinPhone Symantec Code Signing Certificate.
    symantecCodeSigningCertificate?: NullableOption<SymantecCodeSigningCertificate>;
    // The Managed eBook.
    managedEBooks?: NullableOption<ManagedEBook[]>;
    // The PolicySet of Policies and Applications
    policySets?: NullableOption<PolicySet[]>;
    // List of Vpp tokens for this organization.
    vppTokens?: NullableOption<VppToken[]>;
    // Windows management app.
    windowsManagementApp?: NullableOption<WindowsManagementApp>;
    // 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 device registrations that are not MDM enrolled.
    windowsInformationProtectionDeviceRegistrations?: NullableOption<WindowsInformationProtectionDeviceRegistration[]>;
    // Windows information protection for apps running on devices which are not MDM enrolled.
    windowsInformationProtectionPolicies?: NullableOption<WindowsInformationProtectionPolicy[]>;
    // Windows information protection wipe actions.
    windowsInformationProtectionWipeActions?: NullableOption<WindowsInformationProtectionWipeAction[]>;
    // Windows managed app policies.
    windowsManagedAppProtections?: NullableOption<WindowsManagedAppProtection[]>;
    // Device app management tasks.
    deviceAppManagementTasks?: NullableOption<DeviceAppManagementTask[]>;
    // The collection of Windows Defender Application Control Supplemental Policies.
    wdacSupplementalPolicies?: NullableOption<WindowsDefenderApplicationControlSupplementalPolicy[]>;
}
export interface ManagedEBookCategory extends Entity {
    // The name of the eBook category.
    displayName?: NullableOption<string>;
    // The date and time the ManagedEBookCategory was last modified.
    lastModifiedDateTime?: string;
}
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 IosLobAppProvisioningConfiguration 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;
    // Optional profile expiration date and time.
    expirationDateTime?: NullableOption<string>;
    // DateTime the object was last modified.
    lastModifiedDateTime?: string;
    // Payload. (UTF8 encoded byte array)
    payload?: string;
    // Payload file name (.mobileprovision
    payloadFileName?: string;
    // List of Scope Tags for this iOS LOB app provisioning configuration entity.
    roleScopeTagIds?: NullableOption<string[]>;
    // Version of the device configuration.
    version?: number;
    // The associated group assignments for IosLobAppProvisioningConfiguration.
    assignments?: NullableOption<IosLobAppProvisioningConfigurationAssignment[]>;
    // The list of device installation states for this mobile app configuration.
    deviceStatuses?: NullableOption<ManagedDeviceMobileAppConfigurationDeviceStatus[]>;
    // The associated group assignments.
    groupAssignments?: NullableOption<MobileAppProvisioningConfigGroupAssignment[]>;
    // The list of user installation states for this mobile app configuration.
    userStatuses?: NullableOption<ManagedDeviceMobileAppConfigurationUserStatus[]>;
}
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 SymantecCodeSigningCertificate extends Entity {
    // The Windows Symantec Code-Signing Certificate in the raw data format.
    content?: NullableOption<string>;
    // The Cert Expiration Date.
    expirationDateTime?: string;
    // The Issuer value for the cert.
    issuer?: NullableOption<string>;
    // The Issuer Name for the cert.
    issuerName?: NullableOption<string>;
    // The Password required for .pfx file.
    password?: NullableOption<string>;
    // The Cert Status Provisioned or not Provisioned. Possible values are: notProvisioned, provisioned.
    status?: CertificateStatus;
    // The Subject value for the cert.
    subject?: NullableOption<string>;
    // The Subject Name for the cert.
    subjectName?: NullableOption<string>;
    // The Type of the CodeSigning Cert as Symantec Cert.
    uploadDateTime?: string;
}
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 categories for this eBook.
    categories?: NullableOption<ManagedEBookCategory[]>;
    // 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 PolicySet extends Entity {
    // Creation time of the PolicySet.
    createdDateTime?: string;
    // Description of the PolicySet.
    description?: NullableOption<string>;
    // DisplayName of the PolicySet.
    displayName?: string;
    // Error code if any occured. Possible values are: noError, unauthorized, notFound, deleted.
    errorCode?: ErrorCode;
    // Tags of the guided deployment
    guidedDeploymentTags?: NullableOption<string[]>;
    // Last modified time of the PolicySet.
    lastModifiedDateTime?: string;
    // RoleScopeTags of the PolicySet
    roleScopeTags?: NullableOption<string[]>;
    /**
     * Validation/assignment status of the PolicySet. Possible values are: unknown, validating, partialSuccess, success,
     * error, notAssigned.
     */
    status?: PolicySetStatus;
    // Assignments of the PolicySet.
    assignments?: NullableOption<PolicySetAssignment[]>;
    // Items of the PolicySet with maximum count 100.
    items?: NullableOption<PolicySetItem[]>;
}
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;
    // Admin consent to allow claiming token management from external MDM.
    claimTokenManagementFromExternalMdm?: boolean;
    // Whether or not apps for the VPP token will be automatically updated.
    countryOrRegion?: NullableOption<string>;
    // Consent granted for data sharing with the Apple Volume Purchase Program.
    dataSharingConsentGranted?: boolean;
    // An admin specified token friendly name.
    displayName?: 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;
    // Token location returned from Apple VPP.
    locationName?: NullableOption<string>;
    // The organization associated with the Apple Volume Purchase Program Token
    organizationName?: NullableOption<string>;
    // Role Scope Tags IDs assigned to this entity.
    roleScopeTagIds?: 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,
     * duplicateLocationId.
     */
    state?: VppTokenState;
    // The Apple Volume Purchase Program Token string downloaded from the Apple Volume Purchase Program.
    token?: NullableOption<string>;
    // The collection of statuses of the actions performed on the Apple Volume Purchase Program Token.
    tokenActionResults?: NullableOption<VppTokenActionResult[]>;
    /**
     * 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 WindowsManagementApp extends Entity {
    // Windows management app available version.
    availableVersion?: NullableOption<string>;
    // Managed Installer Status. Possible values are: disabled, enabled.
    managedInstaller?: ManagedInstallerStatus;
    // Managed Installer Configured Date Time
    managedInstallerConfiguredDateTime?: NullableOption<string>;
    // The list of health states for installed Windows management app.
    healthStates?: NullableOption<WindowsManagementAppHealthState[]>;
}
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;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
    // Version of the entity.
    version?: NullableOption<string>;
}
export interface ManagedAppProtection extends ManagedAppPolicy {
    // Data storage locations where a user may store managed data.
    allowedDataIngestionLocations?: ManagedAppDataIngestionLocation[];
    // 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;
    /**
     * Specify the number of characters that may be cut or copied from Org data and accounts to any application. This setting
     * overrides the AllowedOutboundClipboardSharingLevel restriction. Default value of '0' means no exception is allowed.
     */
    allowedOutboundClipboardSharingExceptionLength?: number;
    /**
     * 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;
    /**
     * Defines a managed app behavior, either block or wipe, when the device is either rooted or jailbroken, if
     * DeviceComplianceRequired is set to true. Possible values are: block, wipe, warn.
     */
    appActionIfDeviceComplianceRequired?: ManagedAppRemediationAction;
    /**
     * Defines a managed app behavior, either block or wipe, based on maximum number of incorrect pin retry attempts. Possible
     * values are: block, wipe, warn.
     */
    appActionIfMaximumPinRetriesExceeded?: ManagedAppRemediationAction;
    /**
     * If set, it will specify what action to take in the case where the user is unable to checkin because their
     * authentication token is invalid. This happens when the user is deleted or disabled in AAD. Possible values are: block,
     * wipe, warn.
     */
    appActionIfUnableToAuthenticateUser?: NullableOption<ManagedAppRemediationAction>;
    // Indicates whether a user can bring data into org documents.
    blockDataIngestionIntoOrganizationDocuments?: boolean;
    // 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;
    /**
     * The classes of dialer apps that are allowed to click-to-open a phone number. Possible values are: allApps, managedApps,
     * customApp, blocked.
     */
    dialerRestrictionLevel?: ManagedAppPhoneNumberRedirectLevel;
    // 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;
    // A grace period before blocking app access during off clock hours.
    gracePeriodToBlockAppsDuringOffClockHours?: NullableOption<string>;
    /**
     * 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 allowed device threat level, as reported by the MTD app. Possible values are: notConfigured, secured, low,
     * medium, high.
     */
    maximumAllowedDeviceThreatLevel?: ManagedAppDeviceThreatLevel;
    // Maximum number of incorrect pin retry attempts before the managed app is either blocked or wiped.
    maximumPinRetries?: number;
    // Versions bigger than the specified version will block the managed app from accessing company data.
    maximumRequiredOsVersion?: NullableOption<string>;
    // Versions bigger than the specified version will block the managed app from accessing company data.
    maximumWarningOsVersion?: NullableOption<string>;
    // Versions bigger than the specified version will block the managed app from accessing company data.
    maximumWipeOsVersion?: NullableOption<string>;
    // 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>;
    // Versions less than or equal to the specified version will wipe the managed app and the associated company data.
    minimumWipeAppVersion?: NullableOption<string>;
    // Versions less than or equal to the specified version will wipe the managed app and the associated company data.
    minimumWipeOsVersion?: NullableOption<string>;
    /**
     * Indicates how to prioritize which Mobile Threat Defense (MTD) partner is enabled for a given platform, when more than
     * one is enabled. An app can only be actively using a single Mobile Threat Defense partner. When NULL, Microsoft Defender
     * will be given preference. Otherwise setting the value to defenderOverThirdPartyPartner or thirdPartyPartnerOverDefender
     * will make explicit which partner to prioritize. Possible values are: null, defenderOverThirdPartyPartner,
     * thirdPartyPartnerOverDefender and unknownFutureValue. Default value is null. Possible values are:
     * defenderOverThirdPartyPartner, thirdPartyPartnerOverDefender, unknownFutureValue.
     */
    mobileThreatDefensePartnerPriority?: NullableOption<MobileThreatDefensePartnerPriority>;
    /**
     * Determines what action to take if the mobile threat defense threat threshold isn't met. Warn isn't a supported value
     * for this property. Possible values are: block, wipe, warn.
     */
    mobileThreatDefenseRemediationAction?: ManagedAppRemediationAction;
    // Specify app notification restriction. Possible values are: allow, blockOrganizationalData, block.
    notificationRestriction?: ManagedAppNotificationRestriction;
    // 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;
    // Timeout in minutes for an app pin instead of non biometrics passcode
    pinRequiredInsteadOfBiometricTimeout?: NullableOption<string>;
    // Requires a pin to be unique from the number specified in this property.
    previousPinBlockCount?: number;
    // Indicates whether printing is allowed from managed apps.
    printBlocked?: boolean;
    // Defines how app messaging redirection is protected by an App Protection Policy. Default is anyApp.
    protectedMessagingRedirectAppType?: MessagingRedirectAppType;
    // 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 {
    /**
     * Public Apps selection: group or individual. Possible values are: selectedPublicApps, allCoreMicrosoftApps,
     * allMicrosoftApps, allApps.
     */
    appGroupType?: TargetedManagedAppGroupType;
    // Indicates if the policy is deployed to any inclusion groups or not.
    isAssigned?: boolean;
    /**
     * The intended app management levels for this policy. Possible values are: unspecified, unmanaged, mdm,
     * androidEnterprise, androidEnterpriseDedicatedDevicesWithAzureAdSharedMode, androidOpenSourceProjectUserAssociated,
     * androidOpenSourceProjectUserless, unknownFutureValue.
     */
    targetedAppManagementLevels?: AppManagementLevel;
    // Navigation property to list of inclusion and exclusion groups to which the policy is deployed.
    assignments?: NullableOption<TargetedManagedAppPolicyAssignment[]>;
}
export interface AndroidManagedAppProtection extends TargetedManagedAppProtection {
    // Semicolon seperated list of device manufacturers allowed, as a string, for the managed app to work.
    allowedAndroidDeviceManufacturers?: NullableOption<string>;
    // List of device models allowed, as a string, for the managed app to work.
    allowedAndroidDeviceModels?: NullableOption<string[]>;
    // Defines a managed app behavior, either block or warn, if the user is clocked out (non-working time).
    appActionIfAccountIsClockedOut?: NullableOption<ManagedAppRemediationAction>;
    /**
     * Defines a managed app behavior, either block or wipe, if the specified device manufacturer is not allowed. Possible
     * values are: block, wipe, warn.
     */
    appActionIfAndroidDeviceManufacturerNotAllowed?: ManagedAppRemediationAction;
    // Defines a managed app behavior, either block or wipe, if the specified device model is not allowed.
    appActionIfAndroidDeviceModelNotAllowed?: ManagedAppRemediationAction;
    /**
     * Defines a managed app behavior, either warn or block, if the specified Android App Verification requirment fails.
     * Possible values are: block, wipe, warn.
     */
    appActionIfAndroidSafetyNetAppsVerificationFailed?: ManagedAppRemediationAction;
    /**
     * Defines a managed app behavior, either warn or block, if the specified Android SafetyNet Attestation requirment fails.
     * Possible values are: block, wipe, warn.
     */
    appActionIfAndroidSafetyNetDeviceAttestationFailed?: ManagedAppRemediationAction;
    /**
     * Defines a managed app behavior, either warn, block or wipe, if the screen lock is required on android device but is not
     * set.
     */
    appActionIfDeviceLockNotSet?: ManagedAppRemediationAction;
    // If the device does not have a passcode of high complexity or higher, trigger the stored action.
    appActionIfDevicePasscodeComplexityLessThanHigh?: NullableOption<ManagedAppRemediationAction>;
    // If the device does not have a passcode of low complexity or higher, trigger the stored action.
    appActionIfDevicePasscodeComplexityLessThanLow?: NullableOption<ManagedAppRemediationAction>;
    // If the device does not have a passcode of medium complexity or higher, trigger the stored action.
    appActionIfDevicePasscodeComplexityLessThanMedium?: NullableOption<ManagedAppRemediationAction>;
    /**
     * Defines the behavior of a managed app when Samsung Knox Attestation is required. Possible values are null, warn, block
     * &amp; wipe. If the admin does not set this action, the default is null, which indicates this setting is not configured.
     */
    appActionIfSamsungKnoxAttestationRequired?: NullableOption<ManagedAppRemediationAction>;
    /**
     * If Keyboard Restriction is enabled, only keyboards in this approved list will be allowed. A key should be Android
     * package id for a keyboard and value should be a friendly name
     */
    approvedKeyboards?: NullableOption<KeyValuePair[]>;
    // Indicates whether use of the biometric authentication is allowed in place of a pin if PinRequired is set to True.
    biometricAuthenticationBlocked?: boolean;
    // Maximum number of days Company Portal update can be deferred on the device or app access will be blocked.
    blockAfterCompanyPortalUpdateDeferralInDays?: number;
    // Whether the app should connect to the configured VPN on launch.
    connectToVpnOnLaunch?: boolean;
    // Friendly name of the preferred custom browser to open weblink on Android.
    customBrowserDisplayName?: NullableOption<string>;
    // Unique identifier of a custom browser to open weblink on Android.
    customBrowserPackageId?: NullableOption<string>;
    // Friendly name of a custom dialer app to click-to-open a phone number on Android.
    customDialerAppDisplayName?: NullableOption<string>;
    // PackageId of a custom dialer app to click-to-open a phone number on Android.
    customDialerAppPackageId?: NullableOption<string>;
    // Count of apps to which the current policy is deployed.
    deployedAppCount?: number;
    // Defines if any kind of lock must be required on android device
    deviceLockRequired?: boolean;
    // 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;
    // App packages in this list will be exempt from the policy and will be able to receive data from managed apps.
    exemptedAppPackages?: NullableOption<KeyValuePair[]>;
    /**
     * If null, this setting will be ignored. If false both fingerprints and biometrics will not be enabled. If true, both
     * fingerprints and biometrics will be enabled.
     */
    fingerprintAndBiometricEnabled?: NullableOption<boolean>;
    // Indicates if keyboard restriction is enabled. If enabled list of approved keyboards must be provided as well.
    keyboardsRestricted?: boolean;
    /**
     * When a specific app redirection is enforced by protectedMessagingRedirectAppType in an App Protection Policy, this
     * value defines the app name which is allowed to be used.
     */
    messagingRedirectAppDisplayName?: NullableOption<string>;
    /**
     * When a specific app redirection is enforced by protectedMessagingRedirectAppType in an App Protection Policy, this
     * value defines the app package id which is allowed to be used.
     */
    messagingRedirectAppPackageId?: NullableOption<string>;
    // Minimum version of the Company portal that must be installed on the device or app access will be blocked
    minimumRequiredCompanyPortalVersion?: NullableOption<string>;
    // Define the oldest required Android security patch level a user can have to gain secure access to the app.
    minimumRequiredPatchVersion?: NullableOption<string>;
    // Minimum version of the Company portal that must be installed on the device or the user will receive a warning
    minimumWarningCompanyPortalVersion?: NullableOption<string>;
    // Define the oldest recommended Android security patch level a user can have for secure access to the app.
    minimumWarningPatchVersion?: NullableOption<string>;
    // Minimum version of the Company portal that must be installed on the device or the company data on the app will be wiped
    minimumWipeCompanyPortalVersion?: NullableOption<string>;
    /**
     * Android security patch level less than or equal to the specified value will wipe the managed app and the associated
     * company data.
     */
    minimumWipePatchVersion?: NullableOption<string>;
    // Require user to apply Class 3 Biometrics on their Android device.
    requireClass3Biometrics?: boolean;
    /**
     * Defines the Android SafetyNet Apps Verification requirement for a managed app to work. Possible values are: none,
     * enabled.
     */
    requiredAndroidSafetyNetAppsVerificationType?: AndroidManagedAppSafetyNetAppsVerificationType;
    /**
     * Defines the Android SafetyNet Device Attestation requirement for a managed app to work. Possible values are: none,
     * basicIntegrity, basicIntegrityAndDeviceCertification.
     */
    requiredAndroidSafetyNetDeviceAttestationType?: AndroidManagedAppSafetyNetDeviceAttestationType;
    // Defines the Android SafetyNet evaluation type requirement for a managed app to work.
    requiredAndroidSafetyNetEvaluationType?: AndroidManagedAppSafetyNetEvaluationType;
    // A PIN prompt will override biometric prompts if class 3 biometrics are updated on the device.
    requirePinAfterBiometricChange?: boolean;
    // Indicates whether a managed user can take screen captures of managed apps
    screenCaptureBlocked?: boolean;
    // Maximum number of days Company Portal update can be deferred on the device or the user will receive the warning
    warnAfterCompanyPortalUpdateDeferralInDays?: number;
    // Maximum number of days Company Portal update can be deferred on the device or the company data on the app will be wiped
    wipeAfterCompanyPortalUpdateDeferralInDays?: number;
    // 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 {
    // Semicolon seperated list of device manufacturers allowed, as a string, for the managed app to work. (Android only)
    allowedAndroidDeviceManufacturers?: NullableOption<string>;
    // List of device models allowed, as a string, for the managed app to work. (Android Only)
    allowedAndroidDeviceModels?: NullableOption<string[]>;
    // Semicolon seperated list of device models allowed, as a string, for the managed app to work. (iOS Only)
    allowedIosDeviceModels?: NullableOption<string>;
    /**
     * Defines a managed app behavior, either block or warn, if the user is clocked out (non-working time). Possible values
     * are: block, wipe, warn.
     */
    appActionIfAccountIsClockedOut?: NullableOption<ManagedAppRemediationAction>;
    /**
     * Defines a managed app behavior, either block or wipe, if the specified device manufacturer is not allowed. (Android
     * only). Possible values are: block, wipe, warn.
     */
    appActionIfAndroidDeviceManufacturerNotAllowed?: ManagedAppRemediationAction;
    /**
     * Defines a managed app behavior, either block or wipe, if the specified device model is not allowed. (Android Only).
     * Possible values are: block, wipe, warn.
     */
    appActionIfAndroidDeviceModelNotAllowed?: ManagedAppRemediationAction;
    /**
     * Defines a managed app behavior, either warn or block, if the specified Android App Verification requirement fails.
     * Possible values are: block, wipe, warn.
     */
    appActionIfAndroidSafetyNetAppsVerificationFailed?: ManagedAppRemediationAction;
    /**
     * Defines a managed app behavior, either warn or block, if the specified Android SafetyNet Attestation requirement fails.
     * Possible values are: block, wipe, warn.
     */
    appActionIfAndroidSafetyNetDeviceAttestationFailed?: ManagedAppRemediationAction;
    /**
     * Defines a managed app behavior, either warn, block or wipe, if the screen lock is required on device but is not set.
     * (android only). Possible values are: block, wipe, warn.
     */
    appActionIfDeviceLockNotSet?: ManagedAppRemediationAction;
    /**
     * If the device does not have a passcode of high complexity or higher, trigger the stored action. Possible values are:
     * block, wipe, warn.
     */
    appActionIfDevicePasscodeComplexityLessThanHigh?: NullableOption<ManagedAppRemediationAction>;
    /**
     * If the device does not have a passcode of low complexity or higher, trigger the stored action. Possible values are:
     * block, wipe, warn.
     */
    appActionIfDevicePasscodeComplexityLessThanLow?: NullableOption<ManagedAppRemediationAction>;
    /**
     * If the device does not have a passcode of medium complexity or higher, trigger the stored action. Possible values are:
     * block, wipe, warn.
     */
    appActionIfDevicePasscodeComplexityLessThanMedium?: NullableOption<ManagedAppRemediationAction>;
    /**
     * Defines a managed app behavior, either block or wipe, if the specified device model is not allowed. (iOS Only).
     * Possible values are: block, wipe, warn.
     */
    appActionIfIosDeviceModelNotAllowed?: ManagedAppRemediationAction;
    /**
     * Type of encryption which should be used for data in a managed app. (iOS Only). Possible values are: useDeviceSettings,
     * afterDeviceRestart, whenDeviceLockedExceptOpenFiles, whenDeviceLocked.
     */
    appDataEncryptionType?: ManagedAppDataEncryptionType;
    /**
     * Indicates whether use of the biometric authentication is allowed in place of a pin if PinRequired is set to True.
     * (Android Only)
     */
    biometricAuthenticationBlocked?: boolean;
    // Maximum number of days Company Portal update can be deferred on the device or app access will be blocked.
    blockAfterCompanyPortalUpdateDeferralInDays?: number;
    // Whether the app should connect to the configured VPN on launch (Android only).
    connectToVpnOnLaunch?: boolean;
    // Friendly name of the preferred custom browser to open weblink on Android. (Android only)
    customBrowserDisplayName?: NullableOption<string>;
    // Unique identifier of a custom browser to open weblink on Android. (Android only)
    customBrowserPackageId?: NullableOption<string>;
    // A custom browser protocol to open weblink on iOS. (iOS only)
    customBrowserProtocol?: NullableOption<string>;
    // Friendly name of a custom dialer app to click-to-open a phone number on Android.
    customDialerAppDisplayName?: NullableOption<string>;
    // PackageId of a custom dialer app to click-to-open a phone number on Android.
    customDialerAppPackageId?: NullableOption<string>;
    // Protocol of a custom dialer app to click-to-open a phone number on iOS, for example, skype:.
    customDialerAppProtocol?: NullableOption<string>;
    // 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;
    // Defines if any kind of lock must be required on device. (android only)
    deviceLockRequired?: boolean;
    // When this setting is enabled, app level encryption is disabled if device level encryption is enabled. (Android only)
    disableAppEncryptionIfDeviceEncryptionIsEnabled?: boolean;
    /**
     * Disable protection of data transferred to other apps through IOS OpenIn option. This setting is only allowed to be True
     * when AllowedOutboundDataTransferDestinations is set to ManagedApps. (iOS Only)
     */
    disableProtectionOfManagedOutboundOpenInData?: boolean;
    // Indicates whether managed-app data should be encrypted. (Android only)
    encryptAppData?: boolean;
    /**
     * Android App packages in this list will be exempt from the policy and will be able to receive data from managed apps.
     * (Android only)
     */
    exemptedAppPackages?: NullableOption<KeyValuePair[]>;
    // iOS Apps in this list will be exempt from the policy and will be able to receive data from managed apps. (iOS Only)
    exemptedAppProtocols?: NullableOption<KeyValuePair[]>;
    // Indicates whether use of the FaceID is allowed in place of a pin if PinRequired is set to True. (iOS Only)
    faceIdBlocked?: boolean;
    /**
     * Defines if open-in operation is supported from the managed app to the filesharing locations selected. This setting only
     * applies when AllowedOutboundDataTransferDestinations is set to ManagedApps and
     * DisableProtectionOfManagedOutboundOpenInData is set to False. (iOS Only)
     */
    filterOpenInToOnlyManagedApps?: boolean;
    // Indicate to the client to enable both biometrics and fingerprints for the app.
    fingerprintAndBiometricEnabled?: NullableOption<boolean>;
    /**
     * When a specific app redirection is enforced by protectedMessagingRedirectAppType in an App Protection Policy, this
     * value defines the app name which are allowed to be used.
     */
    messagingRedirectAppDisplayName?: NullableOption<string>;
    /**
     * When a specific app redirection is enforced by protectedMessagingRedirectAppType in an App Protection Policy, this
     * value defines the app package ids which are allowed to be used.
     */
    messagingRedirectAppPackageId?: NullableOption<string>;
    /**
     * When a specific app redirection is enforced by protectedMessagingRedirectAppType in an App Protection Policy, this
     * value defines the app url redirect schemes which are allowed to be used.
     */
    messagingRedirectAppUrlScheme?: NullableOption<string>;
    // Minimum version of the Company portal that must be installed on the device or app access will be blocked
    minimumRequiredCompanyPortalVersion?: NullableOption<string>;
    /**
     * 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>;
    // Minimum version of the Company portal that must be installed on the device or the user will receive a warning
    minimumWarningCompanyPortalVersion?: 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>;
    /**
     * Versions less than the specified version will result in warning message on the managed app from accessing company data.
     * (iOS only)
     */
    minimumWarningSdkVersion?: NullableOption<string>;
    // Minimum version of the Company portal that must be installed on the device or the company data on the app will be wiped
    minimumWipeCompanyPortalVersion?: NullableOption<string>;
    /**
     * Android security patch level less than or equal to the specified value will wipe the managed app and the associated
     * company data. (Android only)
     */
    minimumWipePatchVersion?: NullableOption<string>;
    // Versions less than the specified version will block the managed app from accessing company data.
    minimumWipeSdkVersion?: NullableOption<string>;
    /**
     * Protect incoming data from unknown source. This setting is only allowed to be True when
     * AllowedInboundDataTransferSources is set to AllApps. (iOS Only)
     */
    protectInboundDataFromUnknownSources?: boolean;
    // Require user to apply Class 3 Biometrics on their Android device.
    requireClass3Biometrics?: boolean;
    /**
     * Defines the Android SafetyNet Apps Verification requirement for a managed app to work. Possible values are: none,
     * enabled.
     */
    requiredAndroidSafetyNetAppsVerificationType?: AndroidManagedAppSafetyNetAppsVerificationType;
    /**
     * Defines the Android SafetyNet Device Attestation requirement for a managed app to work. Possible values are: none,
     * basicIntegrity, basicIntegrityAndDeviceCertification.
     */
    requiredAndroidSafetyNetDeviceAttestationType?: AndroidManagedAppSafetyNetDeviceAttestationType;
    /**
     * Defines the Android SafetyNet evaluation type requirement for a managed app to work. (Android Only). Possible values
     * are: basic, hardwareBacked.
     */
    requiredAndroidSafetyNetEvaluationType?: AndroidManagedAppSafetyNetEvaluationType;
    // A PIN prompt will override biometric prompts if class 3 biometrics are updated on the device.
    requirePinAfterBiometricChange?: boolean;
    // Indicates whether screen capture is blocked. (Android only)
    screenCaptureBlocked?: boolean;
    // Defines if third party keyboards are allowed while accessing a managed app. (iOS Only)
    thirdPartyKeyboardsBlocked?: boolean;
    // Maximum number of days Company Portal update can be deferred on the device or the user will receive the warning
    warnAfterCompanyPortalUpdateDeferralInDays?: number;
    // Maximum number of days Company Portal update can be deferred on the device or the company data on the app will be wiped
    wipeAfterCompanyPortalUpdateDeferralInDays?: number;
    // 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 {
    // Semicolon seperated list of device models allowed, as a string, for the managed app to work.
    allowedIosDeviceModels?: NullableOption<string>;
    /**
     * Defines a managed app behavior, either block or wipe, if the specified device model is not allowed. Possible values
     * are: block, wipe, warn.
     */
    appActionIfIosDeviceModelNotAllowed?: ManagedAppRemediationAction;
    /**
     * 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.
    customBrowserProtocol?: NullableOption<string>;
    // Protocol of a custom dialer app to click-to-open a phone number on iOS, for example, skype:.
    customDialerAppProtocol?: NullableOption<string>;
    // Count of apps to which the current policy is deployed.
    deployedAppCount?: number;
    /**
     * Disable protection of data transferred to other apps through IOS OpenIn option. This setting is only allowed to be True
     * when AllowedOutboundDataTransferDestinations is set to ManagedApps.
     */
    disableProtectionOfManagedOutboundOpenInData?: boolean;
    // Apps in this list will be exempt from the policy and will be able to receive data from managed apps.
    exemptedAppProtocols?: NullableOption<KeyValuePair[]>;
    // A list of custom urls that are allowed to invocate an unmanaged app
    exemptedUniversalLinks?: NullableOption<string[]>;
    // Indicates whether use of the FaceID is allowed in place of a pin if PinRequired is set to True.
    faceIdBlocked?: boolean;
    /**
     * Defines if open-in operation is supported from the managed app to the filesharing locations selected. This setting only
     * applies when AllowedOutboundDataTransferDestinations is set to ManagedApps and
     * DisableProtectionOfManagedOutboundOpenInData is set to False.
     */
    filterOpenInToOnlyManagedApps?: boolean;
    // A list of custom urls that are allowed to invocate a managed app
    managedUniversalLinks?: NullableOption<string[]>;
    /**
     * When a specific app redirection is enforced by protectedMessagingRedirectAppType in an App Protection Policy, this
     * value defines the app url redirect schemes which are allowed to be used.
     */
    messagingRedirectAppUrlScheme?: NullableOption<string>;
    // Versions less than the specified version will block the managed app from accessing company data.
    minimumRequiredSdkVersion?: NullableOption<string>;
    // Versions less than the specified version will result in warning message on the managed app from accessing company data.
    minimumWarningSdkVersion?: NullableOption<string>;
    // Versions less than the specified version will block the managed app from accessing company data.
    minimumWipeSdkVersion?: NullableOption<string>;
    /**
     * Protect incoming data from unknown source. This setting is only allowed to be True when
     * AllowedInboundDataTransferSources is set to AllApps.
     */
    protectInboundDataFromUnknownSources?: boolean;
    // Defines if third party keyboards are allowed while accessing a managed app
    thirdPartyKeyboardsBlocked?: 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 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[];
    // List of settings contained in this App Configuration policy
    settings?: NullableOption<DeviceManagementConfigurationSetting[]>;
}
export interface TargetedManagedAppConfiguration extends ManagedAppConfiguration {
    // Public Apps selection: group or individual
    appGroupType?: TargetedManagedAppGroupType;
    // 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;
    // The intended app management levels for this policy
    targetedAppManagementLevels?: AppManagementLevel;
    // 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 WindowsInformationProtectionWipeAction extends Entity {
    // Last checkin time of the device that was targeted by this wipe action.
    lastCheckInDateTime?: string;
    // Wipe action status. Possible values are: none, pending, canceled, active, done, failed, notSupported.
    status?: ActionState;
    // Targeted device Mac address.
    targetedDeviceMacAddress?: NullableOption<string>;
    // Targeted device name.
    targetedDeviceName?: NullableOption<string>;
    // The DeviceRegistrationId being targeted by this wipe action.
    targetedDeviceRegistrationId?: NullableOption<string>;
    // The UserId being targeted by this wipe action.
    targetedUserId?: NullableOption<string>;
}
export interface WindowsManagedAppProtection extends ManagedAppPolicy {
    /**
     * Indicates the sources from which data is allowed to be transferred. Some possible values are allApps or none. Possible
     * values are: allApps, none.
     */
    allowedInboundDataTransferSources?: WindowsManagedAppDataTransferLevel;
    /**
     * Indicates the level to which the clipboard may be shared across org &amp; non-org resources. Some possible values are
     * anyDestinationAnySource or none. Possible values are: anyDestinationAnySource, none.
     */
    allowedOutboundClipboardSharingLevel?: WindowsManagedAppClipboardSharingLevel;
    /**
     * Indicates the destinations to which data is allowed to be transferred. Some possible values are allApps or none.
     * Possible values are: allApps, none.
     */
    allowedOutboundDataTransferDestinations?: WindowsManagedAppDataTransferLevel;
    /**
     * If set, it will specify what action to take in the case where the user is unable to checkin because their
     * authentication token is invalid. This happens when the user is deleted or disabled in AAD. Some possible values are
     * block or wipe. If this property is not set, no action will be taken. Possible values are: block, wipe, warn.
     */
    appActionIfUnableToAuthenticateUser?: NullableOption<ManagedAppRemediationAction>;
    // Indicates the total number of applications for which the current policy is deployed.
    deployedAppCount?: number;
    /**
     * When TRUE, indicates that the policy is deployed to some inclusion groups. When FALSE, indicates that the policy is not
     * deployed to any inclusion groups. Default value is FALSE.
     */
    isAssigned?: boolean;
    /**
     * Maximum allowed device threat level, as reported by the Mobile Threat Defense app. Possible values are: notConfigured,
     * secured, low, medium, high.
     */
    maximumAllowedDeviceThreatLevel?: ManagedAppDeviceThreatLevel;
    /**
     * Versions bigger than the specified version will block the managed app from accessing company data. For example: '8.1.0'
     * or '13.1.1'.
     */
    maximumRequiredOsVersion?: NullableOption<string>;
    /**
     * Versions bigger than the specified version will result in warning message on the managed app from accessing company
     * data. For example: '8.1.0' or '13.1.1'.
     */
    maximumWarningOsVersion?: NullableOption<string>;
    /**
     * Versions bigger than the specified version will wipe the managed app and the associated company data. For example:
     * '8.1.0' or '13.1.1'.
     */
    maximumWipeOsVersion?: NullableOption<string>;
    /**
     * Versions less than the specified version will block the managed app from accessing company data. For example: '8.1.0'
     * or '13.1.1'.
     */
    minimumRequiredAppVersion?: NullableOption<string>;
    /**
     * Versions less than the specified version will block the managed app from accessing company data. For example: '8.1.0'
     * or '13.1.1'.
     */
    minimumRequiredOsVersion?: NullableOption<string>;
    /**
     * Versions less than the specified version will block the managed app from accessing company data. For example: '8.1.0'
     * or '13.1.1'.
     */
    minimumRequiredSdkVersion?: NullableOption<string>;
    /**
     * Versions less than the specified version will result in warning message on the managed app from accessing company data.
     * For example: '8.1.0' or '13.1.1'.
     */
    minimumWarningAppVersion?: NullableOption<string>;
    /**
     * Versions less than the specified version will result in warning message on the managed app from accessing company data.
     * For example: '8.1.0' or '13.1.1'.
     */
    minimumWarningOsVersion?: NullableOption<string>;
    /**
     * Versions less than the specified version will wipe the managed app and the associated company data. For example:
     * '8.1.0' or '13.1.1'.
     */
    minimumWipeAppVersion?: NullableOption<string>;
    /**
     * Versions less than the specified version will wipe the managed app and the associated company data. For example:
     * '8.1.0' or '13.1.1'.
     */
    minimumWipeOsVersion?: NullableOption<string>;
    /**
     * Versions less than the specified version will wipe the managed app and the associated company data. For example:
     * '8.1.0' or '13.1.1'.
     */
    minimumWipeSdkVersion?: NullableOption<string>;
    /**
     * Determines what action to take if the mobile threat defense threat threshold isn't met. Some possible values are block
     * or wipe. Warn isn't a supported value for this property. Possible values are: block, wipe, warn.
     */
    mobileThreatDefenseRemediationAction?: ManagedAppRemediationAction;
    /**
     * The period after which access is checked when the device is not connected to the internet. For example, PT5M indicates
     * that the interval is 5 minutes in duration. A timespan value of PT0S indicates that access will be blocked immediately
     * 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. For
     * example, P5D indicates that the interval is 5 days in duration. A timespan value of PT0S indicates that managed data
     * will never be wiped when the device is not connected to the internet.
     */
    periodOfflineBeforeWipeIsEnforced?: string;
    /**
     * When TRUE, indicates that printing is blocked from managed apps. When FALSE, indicates that printing is allowed from
     * managed apps. Default value is FALSE.
     */
    printBlocked?: 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[]>;
}
export interface DeviceAppManagementTask extends Entity {
    // The name or email of the admin this task is assigned to.
    assignedTo?: NullableOption<string>;
    // The category. Possible values are: unknown, advancedThreatProtection.
    category?: DeviceAppManagementTaskCategory;
    // The created date.
    createdDateTime?: string;
    // The email address of the creator.
    creator?: NullableOption<string>;
    // Notes from the creator.
    creatorNotes?: NullableOption<string>;
    // The description.
    description?: NullableOption<string>;
    // The name.
    displayName?: NullableOption<string>;
    // The due date.
    dueDateTime?: string;
    // The priority. Possible values are: none, high, low.
    priority?: DeviceAppManagementTaskPriority;
    // The status. Possible values are: unknown, pending, active, completed, rejected.
    status?: DeviceAppManagementTaskStatus;
}
export interface WindowsDefenderApplicationControlSupplementalPolicy extends Entity {
    // Indicates the content of the Windows Defender Application Control Supplemental Policy in byte array format.
    content?: NullableOption<string>;
    // Indicates the file name associated with the content of the Windows Defender Application Control Supplemental Policy.
    contentFileName?: NullableOption<string>;
    // Indicates the created date and time when the Windows Defender Application Control Supplemental Policy was uploaded.
    creationDateTime?: string;
    // The description of the Windows Defender Application Control Supplemental Policy.
    description?: NullableOption<string>;
    // The display name of the Windows Defender Application Control Supplemental Policy.
    displayName?: NullableOption<string>;
    // Indicates the last modified date and time of the Windows Defender Application Control Supplemental Policy.
    lastModifiedDateTime?: string;
    // List of Scope Tags for the Windows Defender Application Control Supplemental Policy entity.
    roleScopeTagIds?: NullableOption<string[]>;
    // Indicates the Windows Defender Application Control Supplemental Policy's version.
    version?: NullableOption<string>;
    // The associated group assignments for the Windows Defender Application Control Supplemental Policy.
    assignments?: NullableOption<WindowsDefenderApplicationControlSupplementalPolicyAssignment[]>;
    // WindowsDefenderApplicationControl supplemental policy deployment summary.
    deploySummary?: NullableOption<WindowsDefenderApplicationControlSupplementalPolicyDeploymentSummary>;
    // The list of device deployment states for this WindowsDefenderApplicationControl supplemental policy.
    deviceStatuses?: NullableOption<WindowsDefenderApplicationControlSupplementalPolicyDeploymentStatus[]>;
}
export interface DeviceManagementCachedReportConfiguration extends Entity {
    // Time that the cached report expires. This property is read-only.
    expirationDateTime?: string;
    // Filters applied on report creation.
    filter?: NullableOption<string>;
    // Time that the cached report was last refreshed. This property is read-only.
    lastRefreshDateTime?: string;
    // Caller-managed metadata associated with the report
    metadata?: NullableOption<string>;
    // Ordering of columns in the report
    orderBy?: NullableOption<string[]>;
    // Name of the report. This property is read-only.
    reportName?: NullableOption<string>;
    // Columns selected from the report
    select?: NullableOption<string[]>;
    /**
     * Status of the cached report. This property is read-only. Possible values are: unknown, notStarted, inProgress,
     * completed, failed.
     */
    status?: DeviceManagementReportStatus;
}
export interface DeviceManagementExportJob extends Entity {
    // Time that the exported report expires. This property is read-only.
    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. This property is read-only.
    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. This property is read-only. Possible values are: unknown, notStarted, inProgress, completed,
     * failed.
     */
    status?: DeviceManagementReportStatus;
    // Temporary location of the exported report. This property is read-only.
    url?: NullableOption<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 open the web clip as a full-screen web app. Defaults to false. If TRUE, opens the web clip as a
     * full-screen web app. If FALSE, the web clip opens inside of another app, such as Safari or the app specified with
     * targetApplicationBundleIdentifier.
     */
    fullScreenEnabled?: NullableOption<boolean>;
    /**
     * Whether or not a full screen web clip can navigate to an external web site without showing the Safari UI. Defaults to
     * false. If FALSE, the Safari UI appears when navigating away. If TRUE, the Safari UI will not be shown.
     */
    ignoreManifestScope?: NullableOption<boolean>;
    /**
     * Whether or not the icon for the app is precomosed. Defaults to false. If TRUE, prevents SpringBoard from adding 'shine'
     * to the icon. If FALSE, SpringBoard can add 'shine'.
     */
    preComposedIconEnabled?: NullableOption<boolean>;
    // Specifies the application bundle identifier which opens the URL. Available in iOS 14 and later.
    targetApplicationBundleIdentifier?: 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>;
}
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;
    // Platform of the device that is being reported
    platform?: number;
    /**
     * 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 MobileAppProvisioningConfigGroupAssignment extends Entity {
    // The ID of the AAD group in which the app provisioning configuration is being targeted.
    targetGroupId?: NullableOption<string>;
}
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>;
}
// 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>;
    // Results of revoke license actions on this app.
    revokeLicenseActionResults?: NullableOption<IosVppAppRevokeLicensesActionResult[]>;
    // 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>;
    // Identifier of the VPP token associated with this app.
    vppTokenId?: NullableOption<string>;
    // The organization associated with the Apple Volume Purchase Program Token
    vppTokenOrganizationName?: NullableOption<string>;
    // The licenses assigned to this app.
    assignedLicenses?: NullableOption<IosVppAppAssignedLicense[]>;
}
// tslint:disable-next-line: interface-name
export interface IosVppAppAssignedLicense extends Entity {
    // The user email address.
    userEmailAddress?: NullableOption<string>;
    // The user ID.
    userId?: NullableOption<string>;
    // The user name.
    userName?: NullableOption<string>;
    // The user principal name.
    userPrincipalName?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosVppAppAssignedDeviceLicense extends IosVppAppAssignedLicense {
    // The device name.
    deviceName?: NullableOption<string>;
    // The managed device ID.
    managedDeviceId?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IosVppAppAssignedUserLicense extends IosVppAppAssignedLicense {}
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. The default value is FALSE.
     */
    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. The default value is FALSE.
     */
    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 MacOSPkgApp extends MobileLobApp {
    /**
     * A value indicating whether the app's version will be used to detect the app after it is installed on a device. Set this
     * to true for apps that use a self-update feature. Set this to false to install the app when it is not already installed
     * on the device, or if the deploying app's version number does not match the version that's already installed on the
     * device. The default value is false.
     */
    ignoreVersionDetection?: boolean;
    // The list of apps expected to be installed by the .pkg.
    includedApps?: MacOSIncludedApp[];
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<MacOSMinimumOperatingSystem>;
    /**
     * ComplexType macOSAppScript the contains the post-install script for the app. This will execute on the macOS device
     * after the app is installed.
     */
    postInstallScript?: NullableOption<MacOSAppScript>;
    /**
     * ComplexType macOSAppScript the contains the post-install script for the app. This will execute on the macOS device
     * after the app is installed.
     */
    preInstallScript?: NullableOption<MacOSAppScript>;
    // The primary CFBundleIdentifier of the .pkg.
    primaryBundleId?: string;
    // The primary CFBundleVersion of the .pkg.
    primaryBundleVersion?: string;
}
export interface MacOsVppApp extends MobileApp {
    // 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>;
    // Results of revoke license actions on this app.
    revokeLicenseActionResults?: NullableOption<MacOsVppAppRevokeLicensesActionResult[]>;
    // 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>;
    // Identifier of the VPP token associated with this app.
    vppTokenId?: NullableOption<string>;
    // The organization associated with the Apple Volume Purchase Program Token
    vppTokenOrganizationName?: NullableOption<string>;
    // The licenses assigned to this app.
    assignedLicenses?: NullableOption<MacOsVppAppAssignedLicense[]>;
}
export interface MacOsVppAppAssignedLicense extends Entity {
    // The user email address.
    userEmailAddress?: NullableOption<string>;
    // The user ID.
    userId?: NullableOption<string>;
    // The user name.
    userName?: NullableOption<string>;
    // The user principal name.
    userPrincipalName?: NullableOption<string>;
}
export interface MacOSWebClip extends MobileApp {
    // The web app URL starting with http:// or https://, such as https://learn.microsoft.com/mem/.
    appUrl?: NullableOption<string>;
    /**
     * Whether or not to open the web clip as a full-screen web app. Defaults to false. If TRUE, opens the web clip as a
     * full-screen web app. If FALSE, the web clip opens inside of another app.
     */
    fullScreenEnabled?: NullableOption<boolean>;
    /**
     * Whether or not the icon for the app is precomosed. Defaults to false. If TRUE, prevents SpringBoard from adding 'shine'
     * to the icon. If FALSE, SpringBoard can add 'shine'.
     */
    preComposedIconEnabled?: NullableOption<boolean>;
}
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 Identity Name. This property is being deprecated in 2302(February 2023).
    identityName?: NullableOption<string>;
    // The identity version. This property is being deprecated in 2302(February 2023).
    identityVersion?: NullableOption<string>;
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<AndroidMinimumOperatingSystem>;
    // The package identifier.
    packageId?: NullableOption<string>;
    /**
     * The platforms to which the application can be targeted. If not specified, will defauilt to Android Device
     * Administrator. Possible values are: androidDeviceAdministrator, androidOpenSourceProject, unknownFutureValue.
     */
    targetedPlatforms?: AndroidTargetedPlatforms;
    // 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 ManagedDeviceMobileAppConfigurationDeviceSummary extends Entity {
    // Version of the policy for that overview
    configurationVersion?: number;
    // Number of devices in conflict
    conflictCount?: 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 not applicable devices due to mismatch platform and policy
    notApplicablePlatformCount?: number;
    // Number of pending devices
    pendingCount?: number;
    // Number of succeeded devices
    successCount?: number;
}
export interface ManagedDeviceMobileAppConfigurationUserSummary extends Entity {
    // Version of the policy for that overview
    configurationVersion?: number;
    // Number of users in conflict
    conflictCount?: 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 identity version.
    identityVersion?: 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 supported License Type.
    licensingType?: NullableOption<VppLicensingType>;
    // 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;
    // The collection of contained apps in a mobileApp acting as a package.
    containedApps?: NullableOption<MobileContainedApp[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface MobileContainedApp extends Entity {}
export interface MicrosoftStoreForBusinessContainedApp extends MobileContainedApp {
    // The app user model ID of the contained app of a MicrosoftStoreForBusinessApp.
    appUserModelId?: NullableOption<string>;
}
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 resource type which is the source for the assignment. Possible values are: direct, policySets.
    source?: DeviceAndAppManagementAssignmentSource;
    // The identifier of the source of the assignment.
    sourceId?: NullableOption<string>;
    // The target group assignment defined by the admin.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface MobileAppRelationship extends Entity {
    // The target mobile app's display name.
    targetDisplayName?: NullableOption<string>;
    // The target mobile app's display version.
    targetDisplayVersion?: NullableOption<string>;
    // The target mobile app's app id.
    targetId?: NullableOption<string>;
    // The target mobile app's publisher.
    targetPublisher?: NullableOption<string>;
    // The type of relationship indicating whether the target is a parent or child. Possible values are: child, parent.
    targetType?: MobileAppRelationshipType;
}
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;
    // Whether the content file is a dependency for the main content file.
    isDependency?: boolean;
    // A value indicating whether the file is a framework file.
    isFrameworkFile?: 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;
    // Indicates the size of the file after encryption, in bytes.
    sizeEncryptedInBytes?: number;
    // Indicates the original size of the file, in bytes.
    sizeInBytes?: 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 MobileAppDependency extends MobileAppRelationship {
    // The type of dependency relationship between the parent and child apps. Possible values are: detect, autoInstall.
    dependencyType?: MobileAppDependencyType;
    // The total number of apps that directly or indirectly depend on the parent app.
    dependentAppCount?: number;
    // The total number of apps the child app directly or indirectly depends on.
    dependsOnAppCount?: number;
}
export interface MobileAppInstallStatus extends Entity {
    // Device ID
    deviceId?: NullableOption<string>;
    // Device name
    deviceName?: NullableOption<string>;
    // Human readable version of the application
    displayVersion?: NullableOption<string>;
    // The error code for install or uninstall failures.
    errorCode?: number;
    /**
     * The install state of the app. Possible values are: installed, failed, notInstalled, uninstallFailed, pendingInstall,
     * unknown, notApplicable.
     */
    installState?: ResultantAppState;
    /**
     * The install state detail of the app. Possible values are: noAdditionalDetails, dependencyFailedToInstall,
     * dependencyWithRequirementsNotMet, dependencyPendingReboot, dependencyWithAutoInstallDisabled,
     * supersededAppUninstallFailed, supersededAppUninstallPendingReboot, removingSupersededApps,
     * iosAppStoreUpdateFailedToInstall, vppAppHasUpdateAvailable, userRejectedUpdate, uninstallPendingReboot,
     * supersedingAppsDetected, supersededAppsDetected, seeInstallErrorCode, autoInstallDisabled, managedAppNoLongerPresent,
     * userRejectedInstall, userIsNotLoggedIntoAppStore, untargetedSupersedingAppsDetected, appRemovedBySupersedence,
     * seeUninstallErrorCode, pendingReboot, installingDependencies, contentDownloaded, supersedingAppsNotApplicable,
     * powerShellScriptRequirementNotMet, registryRequirementNotMet, fileSystemRequirementNotMet, platformNotApplicable,
     * minimumCpuSpeedNotMet, minimumLogicalProcessorCountNotMet, minimumPhysicalMemoryNotMet, minimumOsVersionNotMet,
     * minimumDiskSpaceNotMet, processorArchitectureNotApplicable.
     */
    installStateDetail?: ResultantAppStateDetail;
    // Last sync date time
    lastSyncDateTime?: string;
    /**
     * The install state of the app. Possible values are: installed, failed, notInstalled, uninstallFailed, pendingInstall,
     * unknown, notApplicable.
     */
    mobileAppInstallStatusValue?: ResultantAppState;
    // OS Description
    osDescription?: NullableOption<string>;
    // OS Version
    osVersion?: NullableOption<string>;
    // Device User Name
    userName?: NullableOption<string>;
    // User Principal Name
    userPrincipalName?: NullableOption<string>;
    // The navigation link to the mobile app.
    app?: NullableOption<MobileApp>;
}
export interface MobileAppInstallSummary extends Entity {
    // Number of Devices that have failed to install this app.
    failedDeviceCount?: number;
    // Number of Users that have 1 or more device that failed to install this app.
    failedUserCount?: number;
    // Number of Devices that have successfully installed this app.
    installedDeviceCount?: number;
    // Number of Users whose devices have all succeeded to install this app.
    installedUserCount?: number;
    // Number of Devices that are not applicable for this app.
    notApplicableDeviceCount?: number;
    // Number of Users whose devices were all not applicable for this app.
    notApplicableUserCount?: number;
    // Number of Devices that does not have this app installed.
    notInstalledDeviceCount?: number;
    // Number of Users that have 1 or more devices that did not install this app.
    notInstalledUserCount?: number;
    // Number of Devices that have been notified to install this app.
    pendingInstallDeviceCount?: number;
    /**
     * Number of Users that have 1 or more device that have been notified to install this app and have 0 devices with
     * failures.
     */
    pendingInstallUserCount?: number;
}
export interface MobileAppSupersedence extends MobileAppRelationship {
    // The total number of apps directly or indirectly superseded by the child app.
    supersededAppCount?: number;
    // The supersedence relationship type between the parent and child apps. Possible values are: update, replace.
    supersedenceType?: MobileAppSupersedenceType;
    // The total number of apps directly or indirectly superseding the parent app.
    supersedingAppCount?: number;
}
export interface OfficeSuiteApp extends MobileApp {
    // The value to accept the EULA automatically on the enduser's device.
    autoAcceptEula?: boolean;
    // The property to represent the apps which are excluded from the selected Office365 Product Id.
    excludedApps?: NullableOption<ExcludedApps>;
    // To specify the level of display for the Installation Progress Setup UI on the Device. Possible values are: none, full.
    installProgressDisplayLevel?: OfficeSuiteInstallProgressDisplayLevel;
    /**
     * The property to represent the locales which are installed when the apps from Office365 is installed. It uses standard
     * RFC 6033. Ref: https://technet.microsoft.com/library/cc179219(v=office.16).aspx
     */
    localesToInstall?: NullableOption<string[]>;
    /**
     * The property to represent the XML configuration file that can be specified for Office ProPlus Apps. Takes precedence
     * over all other properties. When present, the XML configuration file will be used to create the app.
     */
    officeConfigurationXml?: NullableOption<string>;
    // The property to represent the Office365 app suite version. Possible values are: none, x86, x64, arm, neutral, arm64.
    officePlatformArchitecture?: WindowsArchitecture;
    /**
     * The property to represent the Office365 default file format type. Possible values are: notConfigured,
     * officeOpenXMLFormat, officeOpenDocumentFormat, unknownFutureValue.
     */
    officeSuiteAppDefaultFileFormat?: OfficeSuiteDefaultFileFormatType;
    // The Product Ids that represent the Office365 Suite SKU.
    productIds?: OfficeProductId[];
    /**
     * The property to determine whether to uninstall existing Office MSI if an Office365 app suite is deployed to the device
     * or not.
     */
    shouldUninstallOlderVersionsOfOffice?: boolean;
    /**
     * The property to represent the specific target version for the Office365 app suite that should be remained deployed on
     * the devices.
     */
    targetVersion?: NullableOption<string>;
    /**
     * The property to represent the Office365 Update Channel. Possible values are: none, current, deferred,
     * firstReleaseCurrent, firstReleaseDeferred, monthlyEnterprise.
     */
    updateChannel?: OfficeUpdateChannel;
    /**
     * The property to represent the update version in which the specific target version is available for the Office365 app
     * suite.
     */
    updateVersion?: NullableOption<string>;
    // The property to represent that whether the shared computer activation is used not for Office365 app suite.
    useSharedComputerActivation?: boolean;
}
export interface UserAppInstallStatus extends Entity {
    // Failed Device Count.
    failedDeviceCount?: number;
    // Installed Device Count.
    installedDeviceCount?: number;
    // Not installed device count.
    notInstalledDeviceCount?: number;
    // User name.
    userName?: NullableOption<string>;
    // User Principal Name.
    userPrincipalName?: NullableOption<string>;
    // The navigation link to the mobile app.
    app?: NullableOption<MobileApp>;
    // The install state of the app on devices.
    deviceStatuses?: NullableOption<MobileAppInstallStatus[]>;
}
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 {
    /**
     * When TRUE, indicates that uninstall is supported from the company portal for the Windows app (Win32) with an Available
     * assignment. When FALSE, indicates that uninstall is not supported for the Windows app (Win32) with an Available
     * assignment. Default value is FALSE.
     */
    allowAvailableUninstall?: boolean;
    // The Windows architecture(s) for which this app can run on. Possible values are: none, x86, x64, arm, neutral, arm64.
    applicableArchitectures?: WindowsArchitecture;
    // The detection rules to detect Win32 Line of Business (LoB) app.
    detectionRules?: NullableOption<Win32LobAppDetection[]>;
    // The version displayed in the UX for this app.
    displayVersion?: NullableOption<string>;
    // 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 applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<WindowsMinimumOperatingSystem>;
    // 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 requirement rules to detect Win32 Line of Business (LoB) app.
    requirementRules?: NullableOption<Win32LobAppRequirement[]>;
    // 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, arm64.
     */
    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>;
    // The identity version.
    identityVersion?: 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>;
    /**
     * Indicates whether to install a dual-mode MSI in the device context. If true, app will be installed for all users. If
     * false, app will be installed per-user. If null, service will use the MSI package's default install context. In case of
     * dual-mode MSI, this default will be per-user. Cannot be set for non-dual-mode apps. Cannot be changed after initial
     * creation of the application.
     */
    useDeviceContext?: NullableOption<boolean>;
}
export interface WindowsPhone81AppX extends MobileLobApp {
    // The Windows architecture(s) for which this app can run on. Possible values are: none, x86, x64, arm, neutral, arm64.
    applicableArchitectures?: WindowsArchitecture;
    // 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>;
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: WindowsMinimumOperatingSystem;
    // The Phone Product Identifier.
    phoneProductIdentifier?: NullableOption<string>;
    // The Phone Publisher Id.
    phonePublisherId?: NullableOption<string>;
}
export interface WindowsPhone81AppXBundle extends WindowsPhone81AppX {
    // The list of AppX Package Information.
    appXPackageInformationList?: NullableOption<WindowsPackageInformation[]>;
}
export interface WindowsPhone81StoreApp extends MobileApp {
    // The Windows Phone 8.1 app store URL.
    appStoreUrl?: NullableOption<string>;
}
export interface WindowsPhoneXAP extends MobileLobApp {
    // The identity version.
    identityVersion?: NullableOption<string>;
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: WindowsMinimumOperatingSystem;
    // The Product Identifier.
    productIdentifier?: string;
}
export interface WindowsStoreApp extends MobileApp {
    // The Windows app store URL.
    appStoreUrl?: 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; default
     * value is none. Possible values are: none, x86, x64, arm, neutral, arm64.
     */
    applicableArchitectures?: WindowsArchitecture;
    /**
     * The Windows device type(s) for which this app can run on. Possible values are: none, desktop, mobile, holographic,
     * team; default value is none. Possible values are: none, desktop, mobile, holographic, team, unknownFutureValue.
     */
    applicableDeviceTypes?: WindowsDeviceType;
    /**
     * The Identity Name of the app, parsed from the appx file when it is uploaded through the Intune MEM console. For
     * example: 'Contoso.DemoApp'.
     */
    identityName?: NullableOption<string>;
    /**
     * The Identity Publisher Hash of the app, parsed from the appx file when it is uploaded through the Intune MEM console.
     * For example: 'AB82CD0XYZ'.
     */
    identityPublisherHash?: string;
    /**
     * The Identity Resource Identifier of the app, parsed from the appx file when it is uploaded through the Intune MEM
     * console. For example: 'TestResourceId'.
     */
    identityResourceIdentifier?: NullableOption<string>;
    /**
     * The Identity Version of the app, parsed from the appx file when it is uploaded through the Intune MEM console. For
     * example: '1.0.0.0'.
     */
    identityVersion?: NullableOption<string>;
    // Whether or not the app is a bundle. If TRUE, app is a bundle; if FALSE, app is not a bundle.
    isBundle?: boolean;
    // The value for the minimum applicable Windows 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 WinGetApp extends MobileApp {
    /**
     * The install experience settings associated with this application, which are used to ensure the desired install
     * experiences on the target device are taken into account. This includes the account type (System or User) that actions
     * should be run as on target devices. Required at creation time.
     */
    installExperience?: NullableOption<WinGetAppInstallExperience>;
    /**
     * Hash of package metadata properties used to validate that the application matches the metadata in the source
     * repository.
     */
    manifestHash?: NullableOption<string>;
    /**
     * The PackageIdentifier from the WinGet source repository REST API. This also maps to the Id when using the WinGet client
     * command line application. Required at creation time, cannot be modified on existing objects.
     */
    packageIdentifier?: 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>;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: 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 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>;
}
export interface DeviceCompliancePolicyAssignment extends Entity {
    /**
     * The assignment source for the device compliance policy, direct or parcel/policySet. Possible values are: direct,
     * policySets.
     */
    source?: DeviceAndAppManagementAssignmentSource;
    // The identifier of the source of the assignment.
    sourceId?: NullableOption<string>;
    // 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 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;
    // Platform of the device that is being reported
    platform?: number;
    /**
     * 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 DeviceComplianceDeviceOverview extends Entity {
    // Version of the policy for that overview
    configurationVersion?: number;
    // Number of devices in conflict
    conflictCount?: 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 not applicable devices due to mismatch platform and policy
    notApplicablePlatformCount?: number;
    // Number of pending devices
    pendingCount?: number;
    // Number of succeeded devices
    successCount?: 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 users in conflict
    conflictCount?: 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 PolicySetItem extends Entity {
    // Creation time of the PolicySetItem.
    createdDateTime?: string;
    // DisplayName of the PolicySetItem.
    displayName?: NullableOption<string>;
    // Error code if any occured. Possible values are: noError, unauthorized, notFound, deleted.
    errorCode?: ErrorCode;
    // Tags of the guided deployment
    guidedDeploymentTags?: NullableOption<string[]>;
    // policySetType of the PolicySetItem.
    itemType?: NullableOption<string>;
    // Last modified time of the PolicySetItem.
    lastModifiedDateTime?: string;
    // PayloadId of the PolicySetItem.
    payloadId?: string;
    // Status of the PolicySetItem. Possible values are: unknown, validating, partialSuccess, success, error, notAssigned.
    status?: PolicySetStatus;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceCompliancePolicyPolicySetItem extends PolicySetItem {}
export interface DeviceConfigurationAssignment extends Entity {
    // The admin intent to apply or remove the profile. Possible values are: apply, remove.
    intent?: NullableOption<DeviceConfigAssignmentIntent>;
    /**
     * The assignment source for the device configuration, direct or parcel/policySet. This property is read-only. Possible
     * values are: direct, policySets.
     */
    source?: DeviceAndAppManagementAssignmentSource;
    // The identifier of the source of the assignment. This property is read-only.
    sourceId?: NullableOption<string>;
    // 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;
    // Platform of the device that is being reported
    platform?: number;
    /**
     * 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 devices in conflict
    conflictCount?: 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 not applicable devices due to mismatch platform and policy
    notApplicablePlatformCount?: number;
    // Number of pending devices
    pendingCount?: number;
    // Number of succeeded devices
    successCount?: number;
}
export interface DeviceConfigurationGroupAssignment extends Entity {
    // Indicates if this group is should be excluded. Defaults that the group should be included
    excludeGroup?: boolean;
    // The Id of the AAD group we are targeting the device configuration to.
    targetGroupId?: NullableOption<string>;
    // The navigation link to the Device Configuration being targeted.
    deviceConfiguration?: NullableOption<DeviceConfiguration>;
}
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 users in conflict
    conflictCount?: 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;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceConfigurationPolicySetItem extends PolicySetItem {}
export interface EnrollmentConfigurationAssignment extends Entity {
    // Type of resource used for deployment to a group, direct or policySet. Possible values are: direct, policySets.
    source?: DeviceAndAppManagementAssignmentSource;
    // Identifier for resource used for deployment to a group
    sourceId?: NullableOption<string>;
    // Represents an assignment to managed devices in the tenant
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConfigurationPolicyPolicySetItem extends PolicySetItem {}
export interface DeviceManagementScriptAssignment extends Entity {
    // The Id of the Azure Active Directory group we are targeting the script to.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface DeviceManagementScriptDeviceState extends Entity {
    // Error code corresponding to erroneous execution of the device management script.
    errorCode?: number;
    // Error description corresponding to erroneous execution of the device management script.
    errorDescription?: NullableOption<string>;
    // Latest time the device management script executes.
    lastStateUpdateDateTime?: string;
    // Details of execution output.
    resultMessage?: NullableOption<string>;
    /**
     * State of latest run of the device management script. Possible values are: unknown, success, fail, scriptError, pending,
     * notApplicable.
     */
    runState?: RunState;
    // The managed devices that executes the device management script.
    managedDevice?: NullableOption<ManagedDevice>;
}
export interface DeviceManagementScriptGroupAssignment extends Entity {
    // The Id of the Azure Active Directory group we are targeting the script to.
    targetGroupId?: NullableOption<string>;
}
export interface DeviceManagementScriptRunSummary extends Entity {
    // Error device count.
    errorDeviceCount?: number;
    // Error user count.
    errorUserCount?: number;
    // Success device count.
    successDeviceCount?: number;
    // Success user count.
    successUserCount?: number;
}
export interface DeviceManagementScriptUserState extends Entity {
    // Error device count for specific user.
    errorDeviceCount?: number;
    // Success device count for specific user.
    successDeviceCount?: number;
    // User principle name of specific user.
    userPrincipalName?: NullableOption<string>;
    // List of run states for this script across all devices of specific user.
    deviceRunStates?: NullableOption<DeviceManagementScriptDeviceState[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementScriptPolicySetItem extends PolicySetItem {}
export interface EnrollmentRestrictionsConfigurationPolicySetItem extends PolicySetItem {
    // Limit of the EnrollmentRestrictionsConfigurationPolicySetItem.
    limit?: NullableOption<number>;
    // Priority of the EnrollmentRestrictionsConfigurationPolicySetItem.
    priority?: NullableOption<number>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IosLobAppProvisioningConfigurationPolicySetItem extends PolicySetItem {}
export interface ManagedAppProtectionPolicySetItem extends PolicySetItem {
    // TargetedAppManagementLevels of the ManagedAppPolicySetItem.
    targetedAppManagementLevels?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface ManagedDeviceMobileAppConfigurationPolicySetItem extends PolicySetItem {}
// tslint:disable-next-line: no-empty-interface
export interface MdmWindowsInformationProtectionPolicyPolicySetItem extends PolicySetItem {}
export interface MobileAppPolicySetItem extends PolicySetItem {
    /**
     * Install intent of the MobileAppPolicySetItem. Possible values are: available, required, uninstall,
     * availableWithoutEnrollment.
     */
    intent?: InstallIntent;
    // Settings of the MobileAppPolicySetItem.
    settings?: NullableOption<MobileAppAssignmentSettings>;
}
export interface PayloadCompatibleAssignmentFilter extends DeviceAndAppManagementAssignmentFilter {
    // PayloadType of the Assignment Filter. Possible values are: notSet, enrollmentRestrictions.
    payloadType?: AssignmentFilterPayloadType;
}
export interface PolicySetAssignment extends Entity {
    // Last modified time of the PolicySetAssignment.
    lastModifiedDateTime?: string;
    // The target group of PolicySetAssignment
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface TargetedManagedAppPolicyAssignment extends Entity {
    // Type of resource used for deployment to a group, direct or parcel/policySet. Possible values are: direct, policySets.
    source?: DeviceAndAppManagementAssignmentSource;
    // Identifier for resource used for deployment to a group
    sourceId?: NullableOption<string>;
    // Identifier for deployment to a group or app
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
// tslint:disable-next-line: no-empty-interface
export interface TargetedManagedAppConfigurationPolicySetItem extends PolicySetItem {}
export interface Windows10EnrollmentCompletionPageConfigurationPolicySetItem extends PolicySetItem {
    // Priority of the Windows10EnrollmentCompletionPageConfigurationPolicySetItem.
    priority?: NullableOption<number>;
}
export interface WindowsAutopilotDeploymentProfileAssignment extends Entity {
    // Type of resource used for deployment to a group, direct or parcel/policySet. Possible values are: direct, policySets.
    source?: DeviceAndAppManagementAssignmentSource;
    // Identifier for resource used for deployment to a group
    sourceId?: NullableOption<string>;
    // The assignment target for the Windows Autopilot deployment profile.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
// tslint:disable-next-line: no-empty-interface
export interface WindowsAutopilotDeploymentProfilePolicySetItem extends PolicySetItem {}
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 TermsAndConditionsGroupAssignment extends Entity {
    // Unique identifier of a group that the T&amp;C policy is assigned to.
    targetGroupId?: NullableOption<string>;
    // Navigation link to the terms and conditions that are assigned.
    termsAndConditions?: NullableOption<TermsAndConditions>;
}
export interface AdvancedThreatProtectionOnboardingDeviceSettingState 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>;
    /**
     * Device platform type. Possible values are: desktop, windowsRT, winMO6, nokia, windowsPhone, mac, winCE, winEmbedded,
     * iPhone, iPad, iPod, android, iSocConsumer, unix, macMDM, holoLens, surfaceHub, androidForWork, androidEnterprise,
     * windows10x, androidnGMS, chromeOS, linux, blackberry, palm, unknown, cloudPC.
     */
    platformType?: DeviceType;
    // 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 AndroidCertificateProfileBase extends DeviceConfiguration {
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validity Period.
    certificateValidityPeriodValue?: number;
    // Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
    extendedKeyUsages?: ExtendedKeyUsage[];
    // Certificate renewal threshold percentage. Valid values 1 to 99
    renewalThresholdPercentage?: number;
    /**
     * Certificate Subject Alternative Name Type. Possible values are: none, emailAddress, userPrincipalName,
     * customAzureADAttribute, domainNameService, universalResourceIdentifier.
     */
    subjectAlternativeNameType?: SubjectAlternativeNameType;
    /**
     * Certificate Subject Name Format. Possible values are: commonName, commonNameIncludingEmail, commonNameAsEmail, custom,
     * commonNameAsIMEI, commonNameAsSerialNumber, commonNameAsAadDeviceId, commonNameAsIntuneDeviceId,
     * commonNameAsDurableDeviceId.
     */
    subjectNameFormat?: SubjectNameFormat;
    // Trusted Root Certificate.
    rootCertificate?: NullableOption<AndroidTrustedRootCertificate>;
}
export interface AndroidTrustedRootCertificate extends DeviceConfiguration {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    // Trusted Root Certificate
    trustedRootCertificate?: string;
}
export interface AndroidCompliancePolicy extends DeviceCompliancePolicy {
    /**
     * MDATP Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable,
     * secured, low, medium, high, notSet.
     */
    advancedThreatProtectionRequiredSecurityLevel?: DeviceThreatProtectionLevel;
    // Condition statement id.
    conditionStatementId?: NullableOption<string>;
    // 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;
    // Number of sign-in failures allowed before factory reset. Valid values 1 to 16
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    /**
     * Indicates the required password complexity on Android. One of: NONE, LOW, MEDIUM, HIGH. This is a new API targeted to
     * Android 11+. Possible values are: none, low, medium, high.
     */
    requiredPasswordComplexity?: AndroidRequiredPasswordComplexity;
    // Require the device to not have the specified apps installed. This collection can contain a maximum of 100 elements.
    restrictedApps?: NullableOption<AppListItem[]>;
    // Block device administrator managed devices.
    securityBlockDeviceAdministratorManagedDevices?: boolean;
    // 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 AndroidDeviceComplianceLocalActionBase extends Entity {
    // Number of minutes to wait till a local action is enforced. Valid values 0 to 2147483647
    gracePeriodInMinutes?: number;
}
// tslint:disable-next-line: no-empty-interface
export interface AndroidDeviceComplianceLocalActionLockDevice extends AndroidDeviceComplianceLocalActionBase {}
export interface AndroidDeviceComplianceLocalActionLockDeviceWithPasscode extends AndroidDeviceComplianceLocalActionBase {
    // Passcode to reset to Android device. This property is read-only.
    passcode?: NullableOption<string>;
    // Number of sign in failures before wiping device, the value can be 4-11. Valid values 4 to 11
    passcodeSignInFailureCountBeforeWipe?: NullableOption<number>;
}
export interface AndroidDeviceOwnerCertificateProfileBase extends DeviceConfiguration {
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validity Period.
    certificateValidityPeriodValue?: number;
    // Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
    extendedKeyUsages?: ExtendedKeyUsage[];
    // Certificate renewal threshold percentage. Valid values 1 to 99
    renewalThresholdPercentage?: number;
    /**
     * Certificate Subject Alternative Name Type. Possible values are: none, emailAddress, userPrincipalName,
     * customAzureADAttribute, domainNameService, universalResourceIdentifier.
     */
    subjectAlternativeNameType?: NullableOption<SubjectAlternativeNameType>;
    /**
     * Certificate Subject Name Format. Possible values are: commonName, commonNameIncludingEmail, commonNameAsEmail, custom,
     * commonNameAsIMEI, commonNameAsSerialNumber, commonNameAsAadDeviceId, commonNameAsIntuneDeviceId,
     * commonNameAsDurableDeviceId.
     */
    subjectNameFormat?: NullableOption<SubjectNameFormat>;
    // Trusted Root Certificate.
    rootCertificate?: NullableOption<AndroidDeviceOwnerTrustedRootCertificate>;
}
export interface AndroidDeviceOwnerTrustedRootCertificate extends DeviceConfiguration {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    // Trusted Root Certificate
    trustedRootCertificate?: string;
}
export interface AndroidDeviceOwnerCompliancePolicy extends DeviceCompliancePolicy {
    /**
     * MDATP Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable,
     * secured, low, medium, high, notSet.
     */
    advancedThreatProtectionRequiredSecurityLevel?: NullableOption<DeviceThreatProtectionLevel>;
    // Require that devices have enabled device threat protection.
    deviceThreatProtectionEnabled?: NullableOption<boolean>;
    /**
     * Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable, secured,
     * low, medium, high, notSet.
     */
    deviceThreatProtectionRequiredSecurityLevel?: NullableOption<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>;
    // Indicates the minimum number of letter characters required for device password. Valid values 1 to 16
    passwordMinimumLetterCharacters?: NullableOption<number>;
    // Indicates the minimum number of lower case characters required for device password. Valid values 1 to 16
    passwordMinimumLowerCaseCharacters?: NullableOption<number>;
    // Indicates the minimum number of non-letter characters required for device password. Valid values 1 to 16
    passwordMinimumNonLetterCharacters?: NullableOption<number>;
    // Indicates the minimum number of numeric characters required for device password. Valid values 1 to 16
    passwordMinimumNumericCharacters?: NullableOption<number>;
    // Indicates the minimum number of symbol characters required for device password. Valid values 1 to 16
    passwordMinimumSymbolCharacters?: NullableOption<number>;
    // Indicates the minimum number of upper case letter characters required for device password. Valid values 1 to 16
    passwordMinimumUpperCaseCharacters?: NullableOption<number>;
    // Minutes of inactivity before a password is required.
    passwordMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // Number of previous passwords to block. Valid values 1 to 24
    passwordPreviousPasswordCountToBlock?: NullableOption<number>;
    // Require a password to unlock device.
    passwordRequired?: NullableOption<boolean>;
    /**
     * Type of characters in password. Possible values are: deviceDefault, required, numeric, numericComplex, alphabetic,
     * alphanumeric, alphanumericWithSymbols, lowSecurityBiometric, customPassword.
     */
    passwordRequiredType?: NullableOption<AndroidDeviceOwnerRequiredPasswordType>;
    // Require device to have no pending Android system updates.
    requireNoPendingSystemUpdates?: NullableOption<boolean>;
    /**
     * If setting is set to true, checks that the Intune app installed on fully managed, dedicated, or corporate-owned work
     * profile Android Enterprise enrolled devices, is the one provided by Microsoft from the Managed Google Playstore. If the
     * check fails, the device will be reported as non-compliant.
     */
    securityRequireIntuneAppIntegrity?: NullableOption<boolean>;
    // Require the device to pass the SafetyNet basic integrity check.
    securityRequireSafetyNetAttestationBasicIntegrity?: NullableOption<boolean>;
    // Require the device to pass the SafetyNet certified device check.
    securityRequireSafetyNetAttestationCertifiedDevice?: NullableOption<boolean>;
    // Require encryption on Android devices.
    storageRequireEncryption?: NullableOption<boolean>;
}
export interface AndroidDeviceOwnerDerivedCredentialAuthenticationConfiguration extends DeviceConfiguration {
    // Certificate access type. Possible values are: userApproval, specificApps, unknownFutureValue.
    certificateAccessType?: NullableOption<AndroidDeviceOwnerCertificateAccessType>;
    // Certificate access information. This collection can contain a maximum of 50 elements.
    silentCertificateAccessDetails?: NullableOption<AndroidDeviceOwnerSilentCertificateAccess[]>;
    // Tenant level settings for the Derived Credentials to be used for authentication.
    derivedCredentialSettings?: NullableOption<DeviceManagementDerivedCredentialSettings>;
}
export interface AndroidDeviceOwnerWiFiConfiguration extends DeviceConfiguration {
    /**
     * Connect automatically when this network is in range. Setting this to true will skip the user prompt and automatically
     * connect the device to Wi-Fi network.
     */
    connectAutomatically?: NullableOption<boolean>;
    /**
     * When set to true, this profile forces the device to connect to a network that doesn't broadcast its SSID to all
     * devices.
     */
    connectWhenNetworkNameIsHidden?: NullableOption<boolean>;
    // Network Name
    networkName?: string;
    // This is the pre-shared key for WPA Personal Wi-Fi network.
    preSharedKey?: NullableOption<string>;
    // This is the pre-shared key for WPA Personal Wi-Fi network.
    preSharedKeyIsSet?: boolean;
    // Specify the proxy server configuration script URL.
    proxyAutomaticConfigurationUrl?: NullableOption<string>;
    // List of hosts to exclude using the proxy on connections for. These hosts can use wildcards such as .example.com.
    proxyExclusionList?: NullableOption<string>;
    // Specify the proxy server IP address. Android documentation does not specify IPv4 or IPv6. For example: 192.168.1.1.
    proxyManualAddress?: NullableOption<string>;
    // Specify the proxy server port.
    proxyManualPort?: NullableOption<number>;
    /**
     * Specify the proxy setting for Wi-Fi configuration. Possible values include none, manual, and automatic. Possible values
     * are: none, manual, automatic.
     */
    proxySettings?: WiFiProxySetting;
    // This is the name of the Wi-Fi network that is broadcast to all devices.
    ssid?: string;
    /**
     * Indicates whether Wi-Fi endpoint uses an EAP based security type. Possible values are: open, wep, wpaPersonal,
     * wpaEnterprise.
     */
    wiFiSecurityType?: AndroidDeviceOwnerWiFiSecurityType;
}
export interface AndroidDeviceOwnerEnterpriseWiFiConfiguration extends AndroidDeviceOwnerWiFiConfiguration {
    /**
     * Indicates the Authentication Method the client (device) needs to use when the EAP Type is configured to PEAP or
     * EAP-TTLS. Possible values are: certificate, usernameAndPassword, derivedCredential.
     */
    authenticationMethod?: NullableOption<WiFiAuthenticationMethod>;
    // Indicates the type of EAP protocol set on the Wi-Fi endpoint (router). Possible values are: eapTls, eapTtls, peap.
    eapType?: AndroidEapType;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is EAP-TTLS and Authenticationmethod is Username and
     * Password. Possible values are: unencryptedPassword, challengeHandshakeAuthenticationProtocol, microsoftChap,
     * microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForEapTtls?: NullableOption<NonEapAuthenticationMethodForEapTtlsType>;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is PEAP and Authenticationmethod is Username and
     * Password. Possible values are: none, microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForPeap?: NullableOption<NonEapAuthenticationMethodForPeap>;
    /**
     * Enable identity privacy (Outer Identity) when EAP Type is configured to EAP-TTLS or PEAP. The String provided here is
     * used to mask the username of individual users when they attempt to connect to Wi-Fi network.
     */
    outerIdentityPrivacyTemporaryValue?: NullableOption<string>;
    /**
     * Trusted server certificate names when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. This is the common name used
     * in the certificates issued by your trusted certificate authority (CA). If you provide this information, you can bypass
     * the dynamic trust dialog that is displayed on end users' devices when they connect to this Wi-Fi network.
     */
    trustedServerCertificateNames?: NullableOption<string[]>;
    // Tenant level settings for the Derived Credentials to be used for authentication.
    derivedCredentialSettings?: NullableOption<DeviceManagementDerivedCredentialSettings>;
    /**
     * Identity Certificate for client authentication when EAP Type is configured to EAP-TLS, EAP-TTLS (with Certificate
     * Authentication), or PEAP (with Certificate Authentication). This is the certificate presented by client to the Wi-Fi
     * endpoint. The authentication server sitting behind the Wi-Fi endpoint must accept this certificate to successfully
     * establish a Wi-Fi connection.
     */
    identityCertificateForClientAuthentication?: NullableOption<AndroidDeviceOwnerCertificateProfileBase>;
    /**
     * Trusted Root Certificate for Server Validation when EAP Type is configured to EAP-TLS, EAP-TTLS or PEAP. This is the
     * certificate presented by the Wi-Fi endpoint when the device attempts to connect to Wi-Fi endpoint. The device (or user)
     * must accept this certificate to continue the connection attempt.
     */
    rootCertificateForServerValidation?: NullableOption<AndroidDeviceOwnerTrustedRootCertificate>;
}
export interface AndroidDeviceOwnerGeneralDeviceConfiguration extends DeviceConfiguration {
    // Indicates whether or not adding or removing accounts is disabled.
    accountsBlockModification?: NullableOption<boolean>;
    /**
     * Specifies the list of managed apps with app details and its associated delegated scope(s). This collection can contain
     * a maximum of 500 elements.
     */
    androidDeviceOwnerDelegatedScopeAppSettings?: NullableOption<AndroidDeviceOwnerDelegatedScopeAppSetting[]>;
    // Indicates whether or not the user is allowed to enable to unknown sources setting.
    appsAllowInstallFromUnknownSources?: NullableOption<boolean>;
    /**
     * Indicates the value of the app auto update policy. Possible values are: notConfigured, userChoice, never, wiFiOnly,
     * always.
     */
    appsAutoUpdatePolicy?: NullableOption<AndroidDeviceOwnerAppAutoUpdatePolicyType>;
    /**
     * Indicates the permission policy for requests for runtime permissions if one is not defined for the app specifically.
     * Possible values are: deviceDefault, prompt, autoGrant, autoDeny.
     */
    appsDefaultPermissionPolicy?: NullableOption<AndroidDeviceOwnerDefaultAppPermissionPolicyType>;
    // Whether or not to recommend all apps skip any first-time-use hints they may have added.
    appsRecommendSkippingFirstUseHints?: NullableOption<boolean>;
    /**
     * A list of managed apps that will have their data cleared during a global sign-out in AAD shared device mode. This
     * collection can contain a maximum of 500 elements.
     */
    azureAdSharedDeviceDataClearApps?: NullableOption<AppListItem[]>;
    // Indicates whether or not to block a user from configuring bluetooth.
    bluetoothBlockConfiguration?: NullableOption<boolean>;
    // Indicates whether or not to block a user from sharing contacts via bluetooth.
    bluetoothBlockContactSharing?: NullableOption<boolean>;
    // Indicates whether or not to disable the use of the camera.
    cameraBlocked?: NullableOption<boolean>;
    // Indicates whether or not to block Wi-Fi tethering.
    cellularBlockWiFiTethering?: NullableOption<boolean>;
    // Indicates whether or not to block users from any certificate credential configuration.
    certificateCredentialConfigurationDisabled?: NullableOption<boolean>;
    // Indicates whether or not text copied from one profile (personal or work) can be pasted in the other.
    crossProfilePoliciesAllowCopyPaste?: NullableOption<boolean>;
    /**
     * Indicates whether data from one profile (personal or work) can be shared with apps in the other profile. Possible
     * values are: notConfigured, crossProfileDataSharingBlocked, dataSharingFromWorkToPersonalBlocked,
     * crossProfileDataSharingAllowed, unkownFutureValue.
     */
    crossProfilePoliciesAllowDataSharing?: NullableOption<AndroidDeviceOwnerCrossProfileDataSharing>;
    // Indicates whether or not contacts stored in work profile are shown in personal profile contact searches/incoming calls.
    crossProfilePoliciesShowWorkContactsInPersonalProfile?: NullableOption<boolean>;
    // Indicates whether or not to block a user from data roaming.
    dataRoamingBlocked?: NullableOption<boolean>;
    // Indicates whether or not to block the user from manually changing the date or time on the device
    dateTimeConfigurationBlocked?: NullableOption<boolean>;
    /**
     * Represents the customized detailed help text provided to users when they attempt to modify managed settings on their
     * device.
     */
    detailedHelpText?: NullableOption<AndroidDeviceOwnerUserFacingMessage>;
    /**
     * Indicates the location setting configuration for fully managed devices (COBO) and corporate owned devices with a work
     * profile (COPE)
     */
    deviceLocationMode?: NullableOption<AndroidDeviceOwnerLocationMode>;
    /**
     * Represents the customized lock screen message provided to users when they attempt to modify managed settings on their
     * device.
     */
    deviceOwnerLockScreenMessage?: NullableOption<AndroidDeviceOwnerUserFacingMessage>;
    /**
     * Indicates which enrollment profile you want to configure. Possible values are: notConfigured, dedicatedDevice,
     * fullyManaged.
     */
    enrollmentProfile?: AndroidDeviceOwnerEnrollmentProfileType;
    // Indicates whether or not the factory reset option in settings is disabled.
    factoryResetBlocked?: NullableOption<boolean>;
    /**
     * List of Google account emails that will be required to authenticate after a device is factory reset before it can be
     * set up.
     */
    factoryResetDeviceAdministratorEmails?: NullableOption<string[]>;
    // Proxy is set up directly with host, port and excluded hosts.
    globalProxy?: NullableOption<AndroidDeviceOwnerGlobalProxy>;
    // Indicates whether or not google accounts will be blocked.
    googleAccountsBlocked?: NullableOption<boolean>;
    // Indicates whether a user can access the device's Settings app while in Kiosk Mode.
    kioskCustomizationDeviceSettingsBlocked?: NullableOption<boolean>;
    // Whether the power menu is shown when a user long presses the Power button of a device in Kiosk Mode.
    kioskCustomizationPowerButtonActionsBlocked?: NullableOption<boolean>;
    /**
     * Indicates whether system info and notifications are disabled in Kiosk Mode. Possible values are: notConfigured,
     * notificationsAndSystemInfoEnabled, systemInfoOnly.
     */
    kioskCustomizationStatusBar?: NullableOption<AndroidDeviceOwnerKioskCustomizationStatusBar>;
    // Indicates whether system error dialogs for crashed or unresponsive apps are shown in Kiosk Mode.
    kioskCustomizationSystemErrorWarnings?: NullableOption<boolean>;
    /**
     * Indicates which navigation features are enabled in Kiosk Mode. Possible values are: notConfigured, navigationEnabled,
     * homeButtonOnly.
     */
    kioskCustomizationSystemNavigation?: NullableOption<AndroidDeviceOwnerKioskCustomizationSystemNavigation>;
    // Whether or not to enable app ordering in Kiosk Mode.
    kioskModeAppOrderEnabled?: NullableOption<boolean>;
    // The ordering of items on Kiosk Mode Managed Home Screen. This collection can contain a maximum of 500 elements.
    kioskModeAppPositions?: NullableOption<AndroidDeviceOwnerKioskModeAppPositionItem[]>;
    /**
     * A list of managed apps that will be shown when the device is in Kiosk Mode. This collection can contain a maximum of
     * 500 elements.
     */
    kioskModeApps?: NullableOption<AppListItem[]>;
    // Whether or not to alphabetize applications within a folder in Kiosk Mode.
    kioskModeAppsInFolderOrderedByName?: NullableOption<boolean>;
    // Whether or not to allow a user to configure Bluetooth settings in Kiosk Mode.
    kioskModeBluetoothConfigurationEnabled?: NullableOption<boolean>;
    // Whether or not to allow a user to easy access to the debug menu in Kiosk Mode.
    kioskModeDebugMenuEasyAccessEnabled?: NullableOption<boolean>;
    // Exit code to allow a user to escape from Kiosk Mode when the device is in Kiosk Mode.
    kioskModeExitCode?: NullableOption<string>;
    // Whether or not to allow a user to use the flashlight in Kiosk Mode.
    kioskModeFlashlightConfigurationEnabled?: NullableOption<boolean>;
    /**
     * Folder icon configuration for managed home screen in Kiosk Mode. Possible values are: notConfigured, darkSquare,
     * darkCircle, lightSquare, lightCircle.
     */
    kioskModeFolderIcon?: NullableOption<AndroidDeviceOwnerKioskModeFolderIcon>;
    // Number of rows for Managed Home Screen grid with app ordering enabled in Kiosk Mode. Valid values 1 to 9999999
    kioskModeGridHeight?: NullableOption<number>;
    // Number of columns for Managed Home Screen grid with app ordering enabled in Kiosk Mode. Valid values 1 to 9999999
    kioskModeGridWidth?: NullableOption<number>;
    /**
     * Icon size configuration for managed home screen in Kiosk Mode. Possible values are: notConfigured, smallest, small,
     * regular, large, largest.
     */
    kioskModeIconSize?: NullableOption<AndroidDeviceOwnerKioskModeIconSize>;
    // Whether or not to lock home screen to the end user in Kiosk Mode.
    kioskModeLockHomeScreen?: NullableOption<boolean>;
    // A list of managed folders for a device in Kiosk Mode. This collection can contain a maximum of 500 elements.
    kioskModeManagedFolders?: NullableOption<AndroidDeviceOwnerKioskModeManagedFolder[]>;
    /**
     * Whether or not to automatically sign-out of MHS and Shared device mode applications after inactive for Managed Home
     * Screen.
     */
    kioskModeManagedHomeScreenAutoSignout?: NullableOption<boolean>;
    /**
     * Number of seconds to give user notice before automatically signing them out for Managed Home Screen. Valid values 0 to
     * 9999999
     */
    kioskModeManagedHomeScreenInactiveSignOutDelayInSeconds?: NullableOption<number>;
    /**
     * Number of seconds device is inactive before automatically signing user out for Managed Home Screen. Valid values 0 to
     * 9999999
     */
    kioskModeManagedHomeScreenInactiveSignOutNoticeInSeconds?: NullableOption<number>;
    // Complexity of PIN for sign-in session for Managed Home Screen. Possible values are: notConfigured, simple, complex.
    kioskModeManagedHomeScreenPinComplexity?: NullableOption<KioskModeManagedHomeScreenPinComplexity>;
    // Whether or not require user to set a PIN for sign-in session for Managed Home Screen.
    kioskModeManagedHomeScreenPinRequired?: NullableOption<boolean>;
    // Whether or not required user to enter session PIN if screensaver has appeared for Managed Home Screen.
    kioskModeManagedHomeScreenPinRequiredToResume?: NullableOption<boolean>;
    // Custom URL background for sign-in screen for Managed Home Screen.
    kioskModeManagedHomeScreenSignInBackground?: NullableOption<string>;
    // Custom URL branding logo for sign-in screen and session pin page for Managed Home Screen.
    kioskModeManagedHomeScreenSignInBrandingLogo?: NullableOption<string>;
    // Whether or not show sign-in screen for Managed Home Screen.
    kioskModeManagedHomeScreenSignInEnabled?: NullableOption<boolean>;
    // Whether or not to display the Managed Settings entry point on the managed home screen in Kiosk Mode.
    kioskModeManagedSettingsEntryDisabled?: NullableOption<boolean>;
    // Whether or not to allow a user to change the media volume in Kiosk Mode.
    kioskModeMediaVolumeConfigurationEnabled?: NullableOption<boolean>;
    /**
     * Screen orientation configuration for managed home screen in Kiosk Mode. Possible values are: notConfigured, portrait,
     * landscape, autoRotate.
     */
    kioskModeScreenOrientation?: NullableOption<AndroidDeviceOwnerKioskModeScreenOrientation>;
    // Whether or not to enable screen saver mode or not in Kiosk Mode.
    kioskModeScreenSaverConfigurationEnabled?: NullableOption<boolean>;
    // Whether or not the device screen should show the screen saver if audio/video is playing in Kiosk Mode.
    kioskModeScreenSaverDetectMediaDisabled?: NullableOption<boolean>;
    // The number of seconds that the device will display the screen saver for in Kiosk Mode. Valid values 0 to 9999999
    kioskModeScreenSaverDisplayTimeInSeconds?: NullableOption<number>;
    // URL for an image that will be the device's screen saver in Kiosk Mode.
    kioskModeScreenSaverImageUrl?: NullableOption<string>;
    /**
     * The number of seconds the device needs to be inactive for before the screen saver is shown in Kiosk Mode. Valid values
     * 1 to 9999999
     */
    kioskModeScreenSaverStartDelayInSeconds?: NullableOption<number>;
    // Whether or not to display application notification badges in Kiosk Mode.
    kioskModeShowAppNotificationBadge?: NullableOption<boolean>;
    // Whether or not to allow a user to access basic device information.
    kioskModeShowDeviceInfo?: NullableOption<boolean>;
    /**
     * Whether or not to use single app kiosk mode or multi-app kiosk mode. Possible values are: notConfigured, singleAppMode,
     * multiAppMode.
     */
    kioskModeUseManagedHomeScreenApp?: NullableOption<KioskModeType>;
    // Whether or not to display a virtual home button when the device is in Kiosk Mode.
    kioskModeVirtualHomeButtonEnabled?: NullableOption<boolean>;
    /**
     * Indicates whether the virtual home button is a swipe up home button or a floating home button. Possible values are:
     * notConfigured, swipeUp, floating.
     */
    kioskModeVirtualHomeButtonType?: NullableOption<AndroidDeviceOwnerVirtualHomeButtonType>;
    // URL to a publicly accessible image to use for the wallpaper when the device is in Kiosk Mode.
    kioskModeWallpaperUrl?: NullableOption<string>;
    /**
     * The restricted set of WIFI SSIDs available for the user to configure in Kiosk Mode. This collection can contain a
     * maximum of 500 elements.
     */
    kioskModeWifiAllowedSsids?: NullableOption<string[]>;
    // Whether or not to allow a user to configure Wi-Fi settings in Kiosk Mode.
    kioskModeWiFiConfigurationEnabled?: NullableOption<boolean>;
    // Indicates whether or not LocateDevice for devices with lost mode (COBO, COPE) is enabled.
    locateDeviceLostModeEnabled?: NullableOption<boolean>;
    // Indicates whether or not LocateDevice for userless (COSU) devices is disabled.
    locateDeviceUserlessDisabled?: NullableOption<boolean>;
    // Indicates whether or not to block unmuting the microphone on the device.
    microphoneForceMute?: NullableOption<boolean>;
    // Indicates whether or not to you want configure Microsoft Launcher.
    microsoftLauncherConfigurationEnabled?: NullableOption<boolean>;
    // Indicates whether or not the user can modify the wallpaper to personalize their device.
    microsoftLauncherCustomWallpaperAllowUserModification?: NullableOption<boolean>;
    // Indicates whether or not to configure the wallpaper on the targeted devices.
    microsoftLauncherCustomWallpaperEnabled?: NullableOption<boolean>;
    // Indicates the URL for the image file to use as the wallpaper on the targeted devices.
    microsoftLauncherCustomWallpaperImageUrl?: NullableOption<string>;
    // Indicates whether or not the user can modify the device dock configuration on the device.
    microsoftLauncherDockPresenceAllowUserModification?: NullableOption<boolean>;
    /**
     * Indicates whether or not you want to configure the device dock. Possible values are: notConfigured, show, hide,
     * disabled.
     */
    microsoftLauncherDockPresenceConfiguration?: NullableOption<MicrosoftLauncherDockPresence>;
    // Indicates whether or not the user can modify the launcher feed on the device.
    microsoftLauncherFeedAllowUserModification?: NullableOption<boolean>;
    // Indicates whether or not you want to enable the launcher feed on the device.
    microsoftLauncherFeedEnabled?: NullableOption<boolean>;
    // Indicates the search bar placement configuration on the device. Possible values are: notConfigured, top, bottom, hide.
    microsoftLauncherSearchBarPlacementConfiguration?: NullableOption<MicrosoftLauncherSearchBarPlacement>;
    // Indicates whether or not the device will allow connecting to a temporary network connection at boot time.
    networkEscapeHatchAllowed?: NullableOption<boolean>;
    // Indicates whether or not to block NFC outgoing beam.
    nfcBlockOutgoingBeam?: NullableOption<boolean>;
    // Indicates whether or not the keyguard is disabled.
    passwordBlockKeyguard?: NullableOption<boolean>;
    // List of device keyguard features to block. This collection can contain a maximum of 11 elements.
    passwordBlockKeyguardFeatures?: AndroidKeyguardFeature[];
    /**
     * Indicates the amount of time that a password can be set for before it expires and a new password will be required.
     * Valid values 1 to 365
     */
    passwordExpirationDays?: NullableOption<number>;
    // Indicates the minimum length of the password required on the device. Valid values 4 to 16
    passwordMinimumLength?: NullableOption<number>;
    // Indicates the minimum number of letter characters required for device password. Valid values 1 to 16
    passwordMinimumLetterCharacters?: NullableOption<number>;
    // Indicates the minimum number of lower case characters required for device password. Valid values 1 to 16
    passwordMinimumLowerCaseCharacters?: NullableOption<number>;
    // Indicates the minimum number of non-letter characters required for device password. Valid values 1 to 16
    passwordMinimumNonLetterCharacters?: NullableOption<number>;
    // Indicates the minimum number of numeric characters required for device password. Valid values 1 to 16
    passwordMinimumNumericCharacters?: NullableOption<number>;
    // Indicates the minimum number of symbol characters required for device password. Valid values 1 to 16
    passwordMinimumSymbolCharacters?: NullableOption<number>;
    // Indicates the minimum number of upper case letter characters required for device password. Valid values 1 to 16
    passwordMinimumUpperCaseCharacters?: NullableOption<number>;
    // Minutes of inactivity before the screen times out.
    passwordMinutesOfInactivityBeforeScreenTimeout?: NullableOption<number>;
    /**
     * Indicates the length of password history, where the user will not be able to enter a new password that is the same as
     * any password in the history. Valid values 0 to 24
     */
    passwordPreviousPasswordCountToBlock?: NullableOption<number>;
    /**
     * Indicates the minimum password quality required on the device. Possible values are: deviceDefault, required, numeric,
     * numericComplex, alphabetic, alphanumeric, alphanumericWithSymbols, lowSecurityBiometric, customPassword.
     */
    passwordRequiredType?: NullableOption<AndroidDeviceOwnerRequiredPasswordType>;
    /**
     * Indicates the timeout period after which a device must be unlocked using a form of strong authentication. Possible
     * values are: deviceDefault, daily, unkownFutureValue.
     */
    passwordRequireUnlock?: NullableOption<AndroidDeviceOwnerRequiredPasswordUnlock>;
    // Indicates the number of times a user can enter an incorrect password before the device is wiped. Valid values 4 to 11
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    // Indicates whether the user can install apps from unknown sources on the personal profile.
    personalProfileAppsAllowInstallFromUnknownSources?: NullableOption<boolean>;
    // Indicates whether to disable the use of the camera on the personal profile.
    personalProfileCameraBlocked?: NullableOption<boolean>;
    // Policy applied to applications in the personal profile. This collection can contain a maximum of 500 elements.
    personalProfilePersonalApplications?: NullableOption<AppListItem[]>;
    /**
     * Used together with PersonalProfilePersonalApplications to control how apps in the personal profile are allowed or
     * blocked. Possible values are: notConfigured, blockedApps, allowedApps.
     */
    personalProfilePlayStoreMode?: NullableOption<PersonalProfilePersonalPlayStoreMode>;
    // Indicates whether to disable the capability to take screenshots on the personal profile.
    personalProfileScreenCaptureBlocked?: NullableOption<boolean>;
    // Indicates the Play Store mode of the device. Possible values are: notConfigured, allowList, blockList.
    playStoreMode?: NullableOption<AndroidDeviceOwnerPlayStoreMode>;
    // Indicates whether or not to disable the capability to take screenshots.
    screenCaptureBlocked?: NullableOption<boolean>;
    /**
     * Represents the security common criteria mode enabled provided to users when they attempt to modify managed settings on
     * their device.
     */
    securityCommonCriteriaModeEnabled?: NullableOption<boolean>;
    /**
     * Indicates whether or not the user is allowed to access developer settings like developer options and safe boot on the
     * device.
     */
    securityDeveloperSettingsEnabled?: NullableOption<boolean>;
    // Indicates whether or not verify apps is required.
    securityRequireVerifyApps?: NullableOption<boolean>;
    /**
     * Indicates whether or not location sharing is disabled for fully managed devices (COBO), and corporate owned devices
     * with a work profile (COPE)
     */
    shareDeviceLocationDisabled?: NullableOption<boolean>;
    /**
     * Represents the customized short help text provided to users when they attempt to modify managed settings on their
     * device.
     */
    shortHelpText?: NullableOption<AndroidDeviceOwnerUserFacingMessage>;
    // Indicates whether or the status bar is disabled, including notifications, quick settings and other screen overlays.
    statusBarBlocked?: NullableOption<boolean>;
    // List of modes in which the device's display will stay powered-on. This collection can contain a maximum of 4 elements.
    stayOnModes?: AndroidDeviceOwnerBatteryPluggedMode[];
    // Indicates whether or not to allow USB mass storage.
    storageAllowUsb?: NullableOption<boolean>;
    // Indicates whether or not to block external media.
    storageBlockExternalMedia?: NullableOption<boolean>;
    // Indicates whether or not to block USB file transfer.
    storageBlockUsbFileTransfer?: NullableOption<boolean>;
    /**
     * Indicates the annually repeating time periods during which system updates are postponed. This collection can contain a
     * maximum of 500 elements.
     */
    systemUpdateFreezePeriods?: NullableOption<AndroidDeviceOwnerSystemUpdateFreezePeriod[]>;
    // The type of system update configuration. Possible values are: deviceDefault, postpone, windowed, automatic.
    systemUpdateInstallType?: NullableOption<AndroidDeviceOwnerSystemUpdateInstallType>;
    // Indicates the number of minutes after midnight that the system update window ends. Valid values 0 to 1440
    systemUpdateWindowEndMinutesAfterMidnight?: NullableOption<number>;
    // Indicates the number of minutes after midnight that the system update window starts. Valid values 0 to 1440
    systemUpdateWindowStartMinutesAfterMidnight?: NullableOption<number>;
    // Whether or not to block Android system prompt windows, like toasts, phone activities, and system alerts.
    systemWindowsBlocked?: NullableOption<boolean>;
    // Indicates whether or not adding users and profiles is disabled.
    usersBlockAdd?: NullableOption<boolean>;
    // Indicates whether or not to disable removing other users from the device.
    usersBlockRemove?: NullableOption<boolean>;
    // Indicates whether or not adjusting the master volume is disabled.
    volumeBlockAdjustment?: NullableOption<boolean>;
    // If an always on VPN package name is specified, whether or not to lock network traffic when that VPN is disconnected.
    vpnAlwaysOnLockdownMode?: NullableOption<boolean>;
    // Android app package name for app that will handle an always-on VPN connection.
    vpnAlwaysOnPackageIdentifier?: NullableOption<string>;
    // Indicates whether or not to block the user from editing the wifi connection settings.
    wifiBlockEditConfigurations?: NullableOption<boolean>;
    // Indicates whether or not to block the user from editing just the networks defined by the policy.
    wifiBlockEditPolicyDefinedConfigurations?: NullableOption<boolean>;
    /**
     * Indicates the number of days that a work profile password can be set before it expires and a new password will be
     * required. Valid values 1 to 365
     */
    workProfilePasswordExpirationDays?: NullableOption<number>;
    // Indicates the minimum length of the work profile password. Valid values 4 to 16
    workProfilePasswordMinimumLength?: NullableOption<number>;
    // Indicates the minimum number of letter characters required for the work profile password. Valid values 1 to 16
    workProfilePasswordMinimumLetterCharacters?: NullableOption<number>;
    // Indicates the minimum number of lower-case characters required for the work profile password. Valid values 1 to 16
    workProfilePasswordMinimumLowerCaseCharacters?: NullableOption<number>;
    // Indicates the minimum number of non-letter characters required for the work profile password. Valid values 1 to 16
    workProfilePasswordMinimumNonLetterCharacters?: NullableOption<number>;
    // Indicates the minimum number of numeric characters required for the work profile password. Valid values 1 to 16
    workProfilePasswordMinimumNumericCharacters?: NullableOption<number>;
    // Indicates the minimum number of symbol characters required for the work profile password. Valid values 1 to 16
    workProfilePasswordMinimumSymbolCharacters?: NullableOption<number>;
    /**
     * Indicates the minimum number of upper-case letter characters required for the work profile password. Valid values 1 to
     * 16
     */
    workProfilePasswordMinimumUpperCaseCharacters?: NullableOption<number>;
    /**
     * Indicates the length of the work profile password history, where the user will not be able to enter a new password that
     * is the same as any password in the history. Valid values 0 to 24
     */
    workProfilePasswordPreviousPasswordCountToBlock?: NullableOption<number>;
    /**
     * Indicates the minimum password quality required on the work profile password. Possible values are: deviceDefault,
     * required, numeric, numericComplex, alphabetic, alphanumeric, alphanumericWithSymbols, lowSecurityBiometric,
     * customPassword.
     */
    workProfilePasswordRequiredType?: NullableOption<AndroidDeviceOwnerRequiredPasswordType>;
    /**
     * Indicates the timeout period after which a work profile must be unlocked using a form of strong authentication.
     * Possible values are: deviceDefault, daily, unkownFutureValue.
     */
    workProfilePasswordRequireUnlock?: NullableOption<AndroidDeviceOwnerRequiredPasswordUnlock>;
    /**
     * Indicates the number of times a user can enter an incorrect work profile password before the device is wiped. Valid
     * values 4 to 11
     */
    workProfilePasswordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
}
export interface AndroidDeviceOwnerImportedPFXCertificateProfile extends AndroidDeviceOwnerCertificateProfileBase {
    // Certificate access type. Possible values are: userApproval, specificApps, unknownFutureValue.
    certificateAccessType?: NullableOption<AndroidDeviceOwnerCertificateAccessType>;
    /**
     * Intended Purpose of the Certificate Profile - which could be Unassigned, SmimeEncryption, SmimeSigning etc. Possible
     * values are: unassigned, smimeEncryption, smimeSigning, vpn, wifi.
     */
    intendedPurpose?: IntendedPurpose;
    // Certificate access information. This collection can contain a maximum of 50 elements.
    silentCertificateAccessDetails?: NullableOption<AndroidDeviceOwnerSilentCertificateAccess[]>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface ManagedDeviceCertificateState extends Entity {
    // Extended key usage
    certificateEnhancedKeyUsage?: NullableOption<string>;
    // Error code
    certificateErrorCode?: number;
    // Certificate expiry date
    certificateExpirationDateTime?: string;
    // Issuance date
    certificateIssuanceDateTime?: string;
    /**
     * Issuance State. Possible values are: unknown, challengeIssued, challengeIssueFailed, requestCreationFailed,
     * requestSubmitFailed, challengeValidationSucceeded, challengeValidationFailed, issueFailed, issuePending, issued,
     * responseProcessingFailed, responsePending, enrollmentSucceeded, enrollmentNotNeeded, revoked, removedFromCollection,
     * renewVerified, installFailed, installed, deleteFailed, deleted, renewalRequested, requested.
     */
    certificateIssuanceState?: CertificateIssuanceStates;
    // Issuer
    certificateIssuer?: NullableOption<string>;
    // Key length
    certificateKeyLength?: number;
    /**
     * Key Storage Provider. Possible values are: useTpmKspOtherwiseUseSoftwareKsp, useTpmKspOtherwiseFail,
     * usePassportForWorkKspOtherwiseFail, useSoftwareKsp.
     */
    certificateKeyStorageProvider?: KeyStorageProviderOption;
    // Key usage. Possible values are: keyEncipherment, digitalSignature.
    certificateKeyUsage?: KeyUsages;
    // Last certificate issuance state change
    certificateLastIssuanceStateChangedDateTime?: string;
    // Certificate profile display name
    certificateProfileDisplayName?: NullableOption<string>;
    // Revoke status. Possible values are: none, pending, issued, failed, revoked.
    certificateRevokeStatus?: CertificateRevocationStatus;
    // Serial number
    certificateSerialNumber?: NullableOption<string>;
    /**
     * Subject alternative name format. Possible values are: none, emailAddress, userPrincipalName, customAzureADAttribute,
     * domainNameService, universalResourceIdentifier.
     */
    certificateSubjectAlternativeNameFormat?: SubjectAlternativeNameType;
    // Subject alternative name format string for custom formats
    certificateSubjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Subject name format. Possible values are: commonName, commonNameIncludingEmail, commonNameAsEmail, custom,
     * commonNameAsIMEI, commonNameAsSerialNumber, commonNameAsAadDeviceId, commonNameAsIntuneDeviceId,
     * commonNameAsDurableDeviceId.
     */
    certificateSubjectNameFormat?: SubjectNameFormat;
    // Subject name format string for custom subject name formats
    certificateSubjectNameFormatString?: NullableOption<string>;
    // Thumbprint
    certificateThumbprint?: NullableOption<string>;
    // Validity period
    certificateValidityPeriod?: number;
    // Validity period units. Possible values are: days, months, years.
    certificateValidityPeriodUnits?: CertificateValidityPeriodScale;
    // Device display name
    deviceDisplayName?: NullableOption<string>;
    /**
     * Device platform. Possible values are: android, androidForWork, iOS, macOS, windowsPhone81, windows81AndLater,
     * windows10AndLater, androidWorkProfile, unknown, androidAOSP, androidMobileApplicationManagement,
     * iOSMobileApplicationManagement, unknownFutureValue.
     */
    devicePlatform?: DevicePlatformType;
    // Last certificate issuance state change
    lastCertificateStateChangeDateTime?: string;
    // User display name
    userDisplayName?: NullableOption<string>;
}
export interface AndroidDeviceOwnerPkcsCertificateProfile extends AndroidDeviceOwnerCertificateProfileBase {
    // Certificate access type. Possible values are: userApproval, specificApps, unknownFutureValue.
    certificateAccessType?: NullableOption<AndroidDeviceOwnerCertificateAccessType>;
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: CertificateStore;
    // PKCS Certificate Template Name
    certificateTemplateName?: string;
    // PKCS Certification Authority
    certificationAuthority?: string;
    // PKCS Certification Authority Name
    certificationAuthorityName?: NullableOption<string>;
    // Certification authority type. Possible values are: notConfigured, microsoft, digiCert.
    certificationAuthorityType?: DeviceManagementCertificationAuthority;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // Certificate access information. This collection can contain a maximum of 50 elements.
    silentCertificateAccessDetails?: NullableOption<AndroidDeviceOwnerSilentCertificateAccess[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: string;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AndroidDeviceOwnerScepCertificateProfile extends AndroidDeviceOwnerCertificateProfileBase {
    // Certificate access type. Possible values are: userApproval, specificApps, unknownFutureValue.
    certificateAccessType?: NullableOption<AndroidDeviceOwnerCertificateAccessType>;
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // SCEP Hash Algorithm. Possible values are: sha1, sha2.
    hashAlgorithm?: HashAlgorithms;
    // SCEP Key Size. Possible values are: size1024, size2048, size4096.
    keySize?: KeySize;
    // SCEP Key Usage. Possible values are: keyEncipherment, digitalSignature.
    keyUsage?: KeyUsages;
    // SCEP Server Url(s)
    scepServerUrls?: NullableOption<string[]>;
    // Certificate access information. This collection can contain a maximum of 50 elements.
    silentCertificateAccessDetails?: NullableOption<AndroidDeviceOwnerSilentCertificateAccess[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface VpnConfiguration extends DeviceConfiguration {
    // Authentication method. Possible values are: certificate, usernameAndPassword, sharedSecret, derivedCredential, azureAD.
    authenticationMethod?: VpnAuthenticationMethod;
    // Connection name displayed to the user.
    connectionName?: string;
    // Realm when connection type is set to Pulse Secure.
    realm?: NullableOption<string>;
    // Role when connection type is set to Pulse Secure.
    role?: NullableOption<string>;
    /**
     * List of VPN Servers on the network. Make sure end users can access these network locations. This collection can contain
     * a maximum of 500 elements.
     */
    servers?: VpnServer[];
}
export interface AndroidDeviceOwnerVpnConfiguration extends VpnConfiguration {
    // Whether or not to enable always-on VPN connection.
    alwaysOn?: NullableOption<boolean>;
    // If always-on VPN connection is enabled, whether or not to lock network traffic when that VPN is disconnected.
    alwaysOnLockdown?: NullableOption<boolean>;
    /**
     * Connection type. Possible values are: ciscoAnyConnect, pulseSecure, f5EdgeClient, dellSonicWallMobileConnect,
     * checkPointCapsuleVpn, citrix, microsoftTunnel, netMotionMobility, microsoftProtect.
     */
    connectionType?: AndroidVpnConnectionType;
    // Custom data to define key/value pairs specific to a VPN provider. This collection can contain a maximum of 25 elements.
    customData?: NullableOption<KeyValue[]>;
    // Custom data to define key/value pairs specific to a VPN provider. This collection can contain a maximum of 25 elements.
    customKeyValueData?: NullableOption<KeyValuePair[]>;
    // Microsoft Tunnel site ID.
    microsoftTunnelSiteId?: NullableOption<string>;
    // List of hosts to exclude using the proxy on connections for. These hosts can use wildcards such as .example.com.
    proxyExclusionList?: NullableOption<string[]>;
    // Proxy server.
    proxyServer?: NullableOption<VpnProxyServer>;
    // Targeted mobile apps. This collection can contain a maximum of 500 elements.
    targetedMobileApps?: NullableOption<AppListItem[]>;
    // Targeted App package IDs.
    targetedPackageIds?: NullableOption<string[]>;
    // Tenant level settings for the Derived Credentials to be used for authentication.
    derivedCredentialSettings?: NullableOption<DeviceManagementDerivedCredentialSettings>;
    // Identity certificate for client authentication when authentication method is certificate.
    identityCertificate?: NullableOption<AndroidDeviceOwnerCertificateProfileBase>;
}
export interface AndroidEasEmailProfileConfiguration extends DeviceConfiguration {
    // Exchange ActiveSync account name, displayed to users as name of EAS (this) profile.
    accountName?: string;
    /**
     * Authentication method for Exchange ActiveSync. Possible values are: usernameAndPassword, certificate,
     * derivedCredential.
     */
    authenticationMethod?: EasAuthenticationMethod;
    // Custom domain name value used while generating an email profile before installing on the device.
    customDomainName?: NullableOption<string>;
    /**
     * Duration of time email should be synced to. Possible values are: userDefined, oneDay, threeDays, oneWeek, twoWeeks,
     * oneMonth, unlimited.
     */
    durationOfEmailToSync?: EmailSyncDuration;
    /**
     * Email attribute that is picked from AAD and injected into this profile before installing on the device. Possible values
     * are: userPrincipalName, primarySmtpAddress.
     */
    emailAddressSource?: UserEmailSource;
    /**
     * Email sync schedule. Possible values are: userDefined, asMessagesArrive, manual, fifteenMinutes, thirtyMinutes,
     * sixtyMinutes, basedOnMyUsage.
     */
    emailSyncSchedule?: EmailSyncSchedule;
    // Exchange location (URL) that the native mail app connects to.
    hostName?: string;
    // Indicates whether or not to use S/MIME certificate.
    requireSmime?: boolean;
    // Indicates whether or not to use SSL.
    requireSsl?: boolean;
    // Toggles syncing the calendar. If set to false calendar is turned off on the device.
    syncCalendar?: boolean;
    // Toggles syncing contacts. If set to false contacts are turned off on the device.
    syncContacts?: boolean;
    // Toggles syncing notes. If set to false notes are turned off on the device.
    syncNotes?: boolean;
    // Toggles syncing tasks. If set to false tasks are turned off on the device.
    syncTasks?: boolean;
    /**
     * UserDomainname attribute that is picked from AAD and injected into this profile before installing on the device.
     * Possible values are: fullDomainName, netBiosDomainName.
     */
    userDomainNameSource?: NullableOption<DomainNameSource>;
    /**
     * Username attribute that is picked from AAD and injected into this profile before installing on the device. Possible
     * values are: username, userPrincipalName, samAccountName, primarySmtpAddress.
     */
    usernameSource?: AndroidUsernameSource;
    // Identity certificate.
    identityCertificate?: NullableOption<AndroidCertificateProfileBase>;
    // S/MIME signing certificate.
    smimeSigningCertificate?: NullableOption<AndroidCertificateProfileBase>;
}
export interface AndroidWiFiConfiguration extends DeviceConfiguration {
    /**
     * Connect automatically when this network is in range. Setting this to true will skip the user prompt and automatically
     * connect the device to Wi-Fi network.
     */
    connectAutomatically?: boolean;
    /**
     * When set to true, this profile forces the device to connect to a network that doesn't broadcast its SSID to all
     * devices.
     */
    connectWhenNetworkNameIsHidden?: boolean;
    // Network Name
    networkName?: string;
    // This is the name of the Wi-Fi network that is broadcast to all devices.
    ssid?: string;
    /**
     * Indicates whether Wi-Fi endpoint uses an EAP based security type. Possible values are: open, wpaEnterprise,
     * wpa2Enterprise.
     */
    wiFiSecurityType?: AndroidWiFiSecurityType;
}
export interface AndroidEnterpriseWiFiConfiguration extends AndroidWiFiConfiguration {
    /**
     * Indicates the Authentication Method the client (device) needs to use when the EAP Type is configured to PEAP or
     * EAP-TTLS. Possible values are: certificate, usernameAndPassword, derivedCredential.
     */
    authenticationMethod?: NullableOption<WiFiAuthenticationMethod>;
    // Indicates the type of EAP protocol set on the Wi-Fi endpoint (router). Possible values are: eapTls, eapTtls, peap.
    eapType?: AndroidEapType;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is EAP-TTLS and Authenticationmethod is Username and
     * Password. Possible values are: unencryptedPassword, challengeHandshakeAuthenticationProtocol, microsoftChap,
     * microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForEapTtls?: NullableOption<NonEapAuthenticationMethodForEapTtlsType>;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is PEAP and Authenticationmethod is Username and
     * Password. Possible values are: none, microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForPeap?: NullableOption<NonEapAuthenticationMethodForPeap>;
    /**
     * Enable identity privacy (Outer Identity) when EAP Type is configured to EAP-TTLS or PEAP. The String provided here is
     * used to mask the username of individual users when they attempt to connect to Wi-Fi network.
     */
    outerIdentityPrivacyTemporaryValue?: NullableOption<string>;
    // Password format string used to build the password to connect to wifi
    passwordFormatString?: NullableOption<string>;
    // PreSharedKey used to build the password to connect to wifi
    preSharedKey?: NullableOption<string>;
    /**
     * Trusted server certificate names when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. This is the common name used
     * in the certificates issued by your trusted certificate authority (CA). If you provide this information, you can bypass
     * the dynamic trust dialog that is displayed on end users' devices when they connect to this Wi-Fi network.
     */
    trustedServerCertificateNames?: NullableOption<string[]>;
    // Username format string used to build the username to connect to wifi
    usernameFormatString?: NullableOption<string>;
    /**
     * Identity Certificate for client authentication when EAP Type is configured to EAP-TLS, EAP-TTLS (with Certificate
     * Authentication), or PEAP (with Certificate Authentication). This is the certificate presented by client to the Wi-Fi
     * endpoint. The authentication server sitting behind the Wi-Fi endpoint must accept this certificate to successfully
     * establish a Wi-Fi connection.
     */
    identityCertificateForClientAuthentication?: NullableOption<AndroidCertificateProfileBase>;
    /**
     * Trusted Root Certificate for Server Validation when EAP Type is configured to EAP-TLS, EAP-TTLS or PEAP. This is the
     * certificate presented by the Wi-Fi endpoint when the device attempts to connect to Wi-Fi endpoint. The device (or user)
     * must accept this certificate to continue the connection attempt.
     */
    rootCertificateForServerValidation?: NullableOption<AndroidTrustedRootCertificate>;
}
export interface AndroidForWorkCertificateProfileBase extends DeviceConfiguration {
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validity Period.
    certificateValidityPeriodValue?: number;
    // Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
    extendedKeyUsages?: ExtendedKeyUsage[];
    // Certificate renewal threshold percentage. Valid values 1 to 99
    renewalThresholdPercentage?: number;
    /**
     * Certificate Subject Alternative Name Type. Possible values are: none, emailAddress, userPrincipalName,
     * customAzureADAttribute, domainNameService, universalResourceIdentifier.
     */
    subjectAlternativeNameType?: NullableOption<SubjectAlternativeNameType>;
    /**
     * Certificate Subject Name Format. Possible values are: commonName, commonNameIncludingEmail, commonNameAsEmail, custom,
     * commonNameAsIMEI, commonNameAsSerialNumber, commonNameAsAadDeviceId, commonNameAsIntuneDeviceId,
     * commonNameAsDurableDeviceId.
     */
    subjectNameFormat?: SubjectNameFormat;
    // Trusted Root Certificate.
    rootCertificate?: NullableOption<AndroidForWorkTrustedRootCertificate>;
}
export interface AndroidForWorkTrustedRootCertificate extends DeviceConfiguration {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    // Trusted Root Certificate
    trustedRootCertificate?: string;
}
export interface AndroidForWorkCompliancePolicy 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;
    // Number of sign-in failures allowed before factory reset. Valid values 1 to 16
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    /**
     * Indicates the required device password complexity on Android. One of: NONE, LOW, MEDIUM, HIGH. This is a new API
     * targeted to Android API 12+. Possible values are: none, low, medium, high.
     */
    requiredPasswordComplexity?: AndroidRequiredPasswordComplexity;
    // 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 a specific SafetyNet evaluation type for compliance. Possible values are: basic, hardwareBacked.
    securityRequiredAndroidSafetyNetEvaluationType?: AndroidSafetyNetEvaluationType;
    // 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 AndroidForWorkCustomConfiguration extends DeviceConfiguration {
    // OMA settings. This collection can contain a maximum of 500 elements.
    omaSettings?: NullableOption<OmaSetting[]>;
}
export interface AndroidForWorkEasEmailProfileBase extends DeviceConfiguration {
    /**
     * Authentication method for Exchange ActiveSync. Possible values are: usernameAndPassword, certificate,
     * derivedCredential.
     */
    authenticationMethod?: EasAuthenticationMethod;
    /**
     * Duration of time email should be synced to. Possible values are: userDefined, oneDay, threeDays, oneWeek, twoWeeks,
     * oneMonth, unlimited.
     */
    durationOfEmailToSync?: EmailSyncDuration;
    /**
     * Email attribute that is picked from AAD and injected into this profile before installing on the device. Possible values
     * are: userPrincipalName, primarySmtpAddress.
     */
    emailAddressSource?: UserEmailSource;
    // Exchange location (URL) that the mail app connects to.
    hostName?: string;
    // Indicates whether or not to use SSL.
    requireSsl?: boolean;
    /**
     * Username attribute that is picked from AAD and injected into this profile before installing on the device. Possible
     * values are: username, userPrincipalName, samAccountName, primarySmtpAddress.
     */
    usernameSource?: AndroidUsernameSource;
    // Identity certificate.
    identityCertificate?: NullableOption<AndroidForWorkCertificateProfileBase>;
}
export interface AndroidForWorkWiFiConfiguration extends DeviceConfiguration {
    /**
     * Connect automatically when this network is in range. Setting this to true will skip the user prompt and automatically
     * connect the device to Wi-Fi network.
     */
    connectAutomatically?: boolean;
    /**
     * When set to true, this profile forces the device to connect to a network that doesn't broadcast its SSID to all
     * devices.
     */
    connectWhenNetworkNameIsHidden?: boolean;
    // Network Name
    networkName?: string;
    // This is the name of the Wi-Fi network that is broadcast to all devices.
    ssid?: string;
    /**
     * Indicates whether Wi-Fi endpoint uses an EAP based security type. Possible values are: open, wpaEnterprise,
     * wpa2Enterprise.
     */
    wiFiSecurityType?: AndroidWiFiSecurityType;
}
export interface AndroidForWorkEnterpriseWiFiConfiguration extends AndroidForWorkWiFiConfiguration {
    /**
     * Indicates the Authentication Method the client (device) needs to use when the EAP Type is configured to PEAP or
     * EAP-TTLS. Possible values are: certificate, usernameAndPassword, derivedCredential.
     */
    authenticationMethod?: NullableOption<WiFiAuthenticationMethod>;
    // Indicates the type of EAP protocol set on the Wi-Fi endpoint (router). Possible values are: eapTls, eapTtls, peap.
    eapType?: AndroidEapType;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is EAP-TTLS and Authenticationmethod is Username and
     * Password. Possible values are: unencryptedPassword, challengeHandshakeAuthenticationProtocol, microsoftChap,
     * microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForEapTtls?: NullableOption<NonEapAuthenticationMethodForEapTtlsType>;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is PEAP and Authenticationmethod is Username and
     * Password. Possible values are: none, microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForPeap?: NullableOption<NonEapAuthenticationMethodForPeap>;
    /**
     * Enable identity privacy (Outer Identity) when EAP Type is configured to EAP-TTLS or PEAP. The String provided here is
     * used to mask the username of individual users when they attempt to connect to Wi-Fi network.
     */
    outerIdentityPrivacyTemporaryValue?: NullableOption<string>;
    /**
     * Trusted server certificate names when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. This is the common name used
     * in the certificates issued by your trusted certificate authority (CA). If you provide this information, you can bypass
     * the dynamic trust dialog that is displayed on end users' devices when they connect to this Wi-Fi network.
     */
    trustedServerCertificateNames?: NullableOption<string[]>;
    /**
     * Identity Certificate for client authentication when EAP Type is configured to EAP-TLS, EAP-TTLS (with Certificate
     * Authentication), or PEAP (with Certificate Authentication). This is the certificate presented by client to the Wi-Fi
     * endpoint. The authentication server sitting behind the Wi-Fi endpoint must accept this certificate to successfully
     * establish a Wi-Fi connection.
     */
    identityCertificateForClientAuthentication?: NullableOption<AndroidForWorkCertificateProfileBase>;
    /**
     * Trusted Root Certificate for Server Validation when EAP Type is configured to EAP-TLS, EAP-TTLS or PEAP. This is the
     * certificate presented by the Wi-Fi endpoint when the device attempts to connect to Wi-Fi endpoint. The device (or user)
     * must accept this certificate to continue the connection attempt.
     */
    rootCertificateForServerValidation?: NullableOption<AndroidForWorkTrustedRootCertificate>;
}
export interface AndroidForWorkGeneralDeviceConfiguration extends DeviceConfiguration {
    // Determine domains allow-list for accounts that can be added to work profile.
    allowedGoogleAccountDomains?: NullableOption<string[]>;
    // Prevent using unified password for unlocking device and work profile.
    blockUnifiedPasswordForWorkProfile?: boolean;
    // Indicates whether or not to block face unlock.
    passwordBlockFaceUnlock?: boolean;
    // Indicates whether or not to block fingerprint unlock.
    passwordBlockFingerprintUnlock?: boolean;
    // Indicates whether or not to block iris unlock.
    passwordBlockIrisUnlock?: 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?: AndroidForWorkRequiredPasswordType;
    // Number of sign in failures allowed before factory reset. Valid values 1 to 16
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    /**
     * Indicates the required device password complexity on Android. One of: NONE, LOW, MEDIUM, HIGH. This is a new API
     * targeted to Android 12+. Possible values are: none, low, medium, high.
     */
    requiredPasswordComplexity?: AndroidRequiredPasswordComplexity;
    // Require the Android Verify apps feature is turned on.
    securityRequireVerifyApps?: boolean;
    // Enable lockdown mode for always-on VPN.
    vpnAlwaysOnPackageIdentifier?: NullableOption<string>;
    // Enable lockdown mode for always-on VPN.
    vpnEnableAlwaysOnLockdownMode?: boolean;
    /**
     * Control user's ability to add accounts in work profile including Google accounts. Possible values are:
     * allowAllExceptGoogleAccounts, blockAll, allowAll, unknownFutureValue.
     */
    workProfileAccountUse?: AndroidWorkProfileAccountUse;
    // Allow widgets from work profile apps.
    workProfileAllowWidgets?: 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;
    // Prevent app installations from unknown sources in the personal profile.
    workProfileBlockPersonalAppInstallsFromUnknownSources?: 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?: AndroidForWorkCrossProfileDataSharingType;
    // Type of password that is required. Possible values are: deviceDefault, prompt, autoGrant, autoDeny.
    workProfileDefaultAppPermissionPolicy?: AndroidForWorkDefaultAppPermissionPolicyType;
    // Indicates whether or not to block face unlock for work profile.
    workProfilePasswordBlockFaceUnlock?: boolean;
    // Indicates whether or not to block fingerprint unlock for work profile.
    workProfilePasswordBlockFingerprintUnlock?: boolean;
    // Indicates whether or not to block iris unlock for work profile.
    workProfilePasswordBlockIrisUnlock?: 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?: AndroidForWorkRequiredPasswordType;
    // Number of sign in failures allowed before work profile is removed and all corporate data deleted. Valid values 1 to 16
    workProfilePasswordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    /**
     * Indicates the required work profile password complexity on Android. One of: NONE, LOW, MEDIUM, HIGH. This is a new API
     * targeted to Android 12+. Possible values are: none, low, medium, high.
     */
    workProfileRequiredPasswordComplexity?: AndroidRequiredPasswordComplexity;
    // Password is required or not for work profile
    workProfileRequirePassword?: boolean;
}
// tslint:disable-next-line: no-empty-interface
export interface AndroidForWorkGmailEasConfiguration extends AndroidForWorkEasEmailProfileBase {}
export interface AndroidForWorkImportedPFXCertificateProfile extends AndroidCertificateProfileBase {
    /**
     * Intended Purpose of the Certificate Profile - which could be Unassigned, SmimeEncryption, SmimeSigning etc. Possible
     * values are: unassigned, smimeEncryption, smimeSigning, vpn, wifi.
     */
    intendedPurpose?: IntendedPurpose;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AndroidForWorkNineWorkEasConfiguration extends AndroidForWorkEasEmailProfileBase {
    // Toggles syncing the calendar. If set to false the calendar is turned off on the device.
    syncCalendar?: boolean;
    // Toggles syncing contacts. If set to false contacts are turned off on the device.
    syncContacts?: boolean;
    // Toggles syncing tasks. If set to false tasks are turned off on the device.
    syncTasks?: boolean;
}
export interface AndroidForWorkPkcsCertificateProfile extends AndroidForWorkCertificateProfileBase {
    // PKCS Certificate Template Name
    certificateTemplateName?: string;
    // PKCS Certification Authority
    certificationAuthority?: string;
    // PKCS Certification Authority Name
    certificationAuthorityName?: string;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AndroidForWorkScepCertificateProfile extends AndroidForWorkCertificateProfileBase {
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // SCEP Hash Algorithm. Possible values are: sha1, sha2.
    hashAlgorithm?: HashAlgorithms;
    // SCEP Key Size. Possible values are: size1024, size2048, size4096.
    keySize?: KeySize;
    // SCEP Key Usage. Possible values are: keyEncipherment, digitalSignature.
    keyUsage?: KeyUsages;
    // SCEP Server Url(s)
    scepServerUrls?: NullableOption<string[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AndroidForWorkVpnConfiguration extends DeviceConfiguration {
    // Authentication method. Possible values are: certificate, usernameAndPassword, sharedSecret, derivedCredential, azureAD.
    authenticationMethod?: VpnAuthenticationMethod;
    // Connection name displayed to the user.
    connectionName?: string;
    /**
     * Connection type. Possible values are: ciscoAnyConnect, pulseSecure, f5EdgeClient, dellSonicWallMobileConnect,
     * checkPointCapsuleVpn, citrix.
     */
    connectionType?: AndroidForWorkVpnConnectionType;
    // Custom data when connection type is set to Citrix. This collection can contain a maximum of 25 elements.
    customData?: NullableOption<KeyValue[]>;
    // Custom data when connection type is set to Citrix. This collection can contain a maximum of 25 elements.
    customKeyValueData?: NullableOption<KeyValuePair[]>;
    /**
     * Fingerprint is a string that will be used to verify the VPN server can be trusted, which is only applicable when
     * connection type is Check Point Capsule VPN.
     */
    fingerprint?: NullableOption<string>;
    // Realm when connection type is set to Pulse Secure.
    realm?: NullableOption<string>;
    // Role when connection type is set to Pulse Secure.
    role?: NullableOption<string>;
    /**
     * List of VPN Servers on the network. Make sure end users can access these network locations. This collection can contain
     * a maximum of 500 elements.
     */
    servers?: VpnServer[];
    // Identity certificate for client authentication when authentication method is certificate.
    identityCertificate?: NullableOption<AndroidForWorkCertificateProfileBase>;
}
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 block changing date and time while in KNOX Mode.
    dateAndTimeBlockChanges?: boolean;
    // 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 the required password complexity on Android. One of: NONE, LOW, MEDIUM, HIGH. This is an API targeted to
     * Android 11+. Possible values are: none, low, medium, high.
     */
    requiredPasswordComplexity?: AndroidRequiredPasswordComplexity;
    // 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 AndroidImportedPFXCertificateProfile extends AndroidCertificateProfileBase {
    /**
     * Intended Purpose of the Certificate Profile - which could be Unassigned, SmimeEncryption, SmimeSigning etc. Possible
     * values are: unassigned, smimeEncryption, smimeSigning, vpn, wifi.
     */
    intendedPurpose?: IntendedPurpose;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AndroidOmaCpConfiguration extends DeviceConfiguration {
    /**
     * Configuration XML that will be applied to the device. When it is read, it only provides a placeholder string since the
     * original data is encrypted and stored.
     */
    configurationXml?: string;
}
export interface AndroidPkcsCertificateProfile extends AndroidCertificateProfileBase {
    // PKCS Certificate Template Name
    certificateTemplateName?: string;
    // PKCS Certification Authority
    certificationAuthority?: string;
    // PKCS Certification Authority Name
    certificationAuthorityName?: string;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AndroidScepCertificateProfile extends AndroidCertificateProfileBase {
    // SCEP Hash Algorithm. Possible values are: sha1, sha2.
    hashAlgorithm?: HashAlgorithms;
    // SCEP Key Size. Possible values are: size1024, size2048, size4096.
    keySize?: KeySize;
    // SCEP Key Usage. Possible values are: keyEncipherment, digitalSignature.
    keyUsage?: KeyUsages;
    // SCEP Server Url(s)
    scepServerUrls?: NullableOption<string[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AndroidVpnConfiguration extends DeviceConfiguration {
    // Authentication method. Possible values are: certificate, usernameAndPassword, sharedSecret, derivedCredential, azureAD.
    authenticationMethod?: VpnAuthenticationMethod;
    // Connection name displayed to the user.
    connectionName?: string;
    /**
     * Connection type. Possible values are: ciscoAnyConnect, pulseSecure, f5EdgeClient, dellSonicWallMobileConnect,
     * checkPointCapsuleVpn, citrix, microsoftTunnel, netMotionMobility, microsoftProtect.
     */
    connectionType?: AndroidVpnConnectionType;
    // Custom data when connection type is set to Citrix. This collection can contain a maximum of 25 elements.
    customData?: NullableOption<KeyValue[]>;
    // Custom data when connection type is set to Citrix. This collection can contain a maximum of 25 elements.
    customKeyValueData?: NullableOption<KeyValuePair[]>;
    /**
     * Fingerprint is a string that will be used to verify the VPN server can be trusted, which is only applicable when
     * connection type is Check Point Capsule VPN.
     */
    fingerprint?: NullableOption<string>;
    // Realm when connection type is set to Pulse Secure.
    realm?: NullableOption<string>;
    // Role when connection type is set to Pulse Secure.
    role?: NullableOption<string>;
    /**
     * List of VPN Servers on the network. Make sure end users can access these network locations. This collection can contain
     * a maximum of 500 elements.
     */
    servers?: VpnServer[];
    // Identity certificate for client authentication when authentication method is certificate.
    identityCertificate?: NullableOption<AndroidCertificateProfileBase>;
}
export interface AndroidWorkProfileCertificateProfileBase extends DeviceConfiguration {
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validity Period.
    certificateValidityPeriodValue?: number;
    // Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
    extendedKeyUsages?: ExtendedKeyUsage[];
    // Certificate renewal threshold percentage. Valid values 1 to 99
    renewalThresholdPercentage?: number;
    /**
     * Certificate Subject Alternative Name Type. Possible values are: none, emailAddress, userPrincipalName,
     * customAzureADAttribute, domainNameService, universalResourceIdentifier.
     */
    subjectAlternativeNameType?: NullableOption<SubjectAlternativeNameType>;
    /**
     * Certificate Subject Name Format. Possible values are: commonName, commonNameIncludingEmail, commonNameAsEmail, custom,
     * commonNameAsIMEI, commonNameAsSerialNumber, commonNameAsAadDeviceId, commonNameAsIntuneDeviceId,
     * commonNameAsDurableDeviceId.
     */
    subjectNameFormat?: SubjectNameFormat;
    // Trusted Root Certificate.
    rootCertificate?: NullableOption<AndroidWorkProfileTrustedRootCertificate>;
}
export interface AndroidWorkProfileTrustedRootCertificate extends DeviceConfiguration {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    // Trusted Root Certificate
    trustedRootCertificate?: string;
}
export interface AndroidWorkProfileCompliancePolicy extends DeviceCompliancePolicy {
    /**
     * MDATP Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable,
     * secured, low, medium, high, notSet.
     */
    advancedThreatProtectionRequiredSecurityLevel?: DeviceThreatProtectionLevel;
    // 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;
    // Number of sign-in failures allowed before factory reset. Valid values 1 to 16
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    /**
     * Indicates the required device password complexity on Android. One of: NONE, LOW, MEDIUM, HIGH. This is a new API
     * targeted to Android API 12+. Possible values are: none, low, medium, high.
     */
    requiredPasswordComplexity?: AndroidRequiredPasswordComplexity;
    // 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 a specific SafetyNet evaluation type for compliance. Possible values are: basic, hardwareBacked.
    securityRequiredAndroidSafetyNetEvaluationType?: AndroidSafetyNetEvaluationType;
    // 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 AndroidWorkProfileEasEmailProfileBase extends DeviceConfiguration {
    /**
     * Authentication method for Exchange ActiveSync. Possible values are: usernameAndPassword, certificate,
     * derivedCredential.
     */
    authenticationMethod?: EasAuthenticationMethod;
    /**
     * Duration of time email should be synced to. Possible values are: userDefined, oneDay, threeDays, oneWeek, twoWeeks,
     * oneMonth, unlimited.
     */
    durationOfEmailToSync?: EmailSyncDuration;
    /**
     * Email attribute that is picked from AAD and injected into this profile before installing on the device. Possible values
     * are: userPrincipalName, primarySmtpAddress.
     */
    emailAddressSource?: UserEmailSource;
    // Exchange location (URL) that the mail app connects to.
    hostName?: string;
    // Indicates whether or not to use SSL.
    requireSsl?: boolean;
    /**
     * Username attribute that is picked from AAD and injected into this profile before installing on the device. Possible
     * values are: username, userPrincipalName, samAccountName, primarySmtpAddress.
     */
    usernameSource?: AndroidUsernameSource;
    // Identity certificate.
    identityCertificate?: NullableOption<AndroidWorkProfileCertificateProfileBase>;
}
export interface AndroidWorkProfileWiFiConfiguration extends DeviceConfiguration {
    /**
     * Connect automatically when this network is in range. Setting this to true will skip the user prompt and automatically
     * connect the device to Wi-Fi network.
     */
    connectAutomatically?: boolean;
    /**
     * When set to true, this profile forces the device to connect to a network that doesn't broadcast its SSID to all
     * devices.
     */
    connectWhenNetworkNameIsHidden?: boolean;
    // Network Name
    networkName?: string;
    // This is the name of the Wi-Fi network that is broadcast to all devices.
    ssid?: string;
    /**
     * Indicates whether Wi-Fi endpoint uses an EAP based security type. Possible values are: open, wpaEnterprise,
     * wpa2Enterprise.
     */
    wiFiSecurityType?: AndroidWiFiSecurityType;
}
export interface AndroidWorkProfileEnterpriseWiFiConfiguration extends AndroidWorkProfileWiFiConfiguration {
    /**
     * Indicates the Authentication Method the client (device) needs to use when the EAP Type is configured to PEAP or
     * EAP-TTLS. Possible values are: certificate, usernameAndPassword, derivedCredential.
     */
    authenticationMethod?: NullableOption<WiFiAuthenticationMethod>;
    // Indicates the type of EAP protocol set on the Wi-Fi endpoint (router). Possible values are: eapTls, eapTtls, peap.
    eapType?: AndroidEapType;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is EAP-TTLS and Authenticationmethod is Username and
     * Password. Possible values are: unencryptedPassword, challengeHandshakeAuthenticationProtocol, microsoftChap,
     * microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForEapTtls?: NullableOption<NonEapAuthenticationMethodForEapTtlsType>;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is PEAP and Authenticationmethod is Username and
     * Password. Possible values are: none, microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForPeap?: NullableOption<NonEapAuthenticationMethodForPeap>;
    /**
     * Enable identity privacy (Outer Identity) when EAP Type is configured to EAP-TTLS or PEAP. The String provided here is
     * used to mask the username of individual users when they attempt to connect to Wi-Fi network.
     */
    outerIdentityPrivacyTemporaryValue?: NullableOption<string>;
    /**
     * URL of the proxy server automatic configuration script when automatic configuration is selected. This URL is typically
     * the location of PAC (Proxy Auto Configuration) file.
     */
    proxyAutomaticConfigurationUrl?: NullableOption<string>;
    // Proxy Type for this Wi-Fi connection. Possible values are: none, manual, automatic.
    proxySettings?: WiFiProxySetting;
    /**
     * Trusted server certificate names when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. This is the common name used
     * in the certificates issued by your trusted certificate authority (CA). If you provide this information, you can bypass
     * the dynamic trust dialog that is displayed on end users' devices when they connect to this Wi-Fi network.
     */
    trustedServerCertificateNames?: NullableOption<string[]>;
    /**
     * Identity Certificate for client authentication when EAP Type is configured to EAP-TLS, EAP-TTLS (with Certificate
     * Authentication), or PEAP (with Certificate Authentication). This is the certificate presented by client to the Wi-Fi
     * endpoint. The authentication server sitting behind the Wi-Fi endpoint must accept this certificate to successfully
     * establish a Wi-Fi connection.
     */
    identityCertificateForClientAuthentication?: NullableOption<AndroidWorkProfileCertificateProfileBase>;
    /**
     * Trusted Root Certificate for Server Validation when EAP Type is configured to EAP-TLS, EAP-TTLS or PEAP. This is the
     * certificate presented by the Wi-Fi endpoint when the device attempts to connect to Wi-Fi endpoint. The device (or user)
     * must accept this certificate to continue the connection attempt.
     */
    rootCertificateForServerValidation?: NullableOption<AndroidWorkProfileTrustedRootCertificate>;
}
export interface AndroidWorkProfileGeneralDeviceConfiguration extends DeviceConfiguration {
    // Determine domains allow-list for accounts that can be added to work profile.
    allowedGoogleAccountDomains?: NullableOption<string[]>;
    // Prevent using unified password for unlocking device and work profile.
    blockUnifiedPasswordForWorkProfile?: boolean;
    // Indicates whether or not to block face unlock.
    passwordBlockFaceUnlock?: boolean;
    // Indicates whether or not to block fingerprint unlock.
    passwordBlockFingerprintUnlock?: boolean;
    // Indicates whether or not to block iris unlock.
    passwordBlockIrisUnlock?: 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>;
    /**
     * Indicates the required device password complexity on Android. One of: NONE, LOW, MEDIUM, HIGH. This is a new API
     * targeted to Android 12+. Possible values are: none, low, medium, high.
     */
    requiredPasswordComplexity?: AndroidRequiredPasswordComplexity;
    // Require the Android Verify apps feature is turned on.
    securityRequireVerifyApps?: boolean;
    // Enable lockdown mode for always-on VPN.
    vpnAlwaysOnPackageIdentifier?: NullableOption<string>;
    // Enable lockdown mode for always-on VPN.
    vpnEnableAlwaysOnLockdownMode?: boolean;
    /**
     * Control user's ability to add accounts in work profile including Google accounts. Possible values are:
     * allowAllExceptGoogleAccounts, blockAll, allowAll, unknownFutureValue.
     */
    workProfileAccountUse?: AndroidWorkProfileAccountUse;
    // Indicates whether to allow installation of apps from unknown sources.
    workProfileAllowAppInstallsFromUnknownSources?: boolean;
    // Allow widgets from work profile apps.
    workProfileAllowWidgets?: 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;
    // Prevent app installations from unknown sources in the personal profile.
    workProfileBlockPersonalAppInstallsFromUnknownSources?: 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 face unlock for work profile.
    workProfilePasswordBlockFaceUnlock?: boolean;
    // Indicates whether or not to block fingerprint unlock for work profile.
    workProfilePasswordBlockFingerprintUnlock?: boolean;
    // Indicates whether or not to block iris unlock for work profile.
    workProfilePasswordBlockIrisUnlock?: 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>;
    /**
     * Indicates the required work profile password complexity on Android. One of: NONE, LOW, MEDIUM, HIGH. This is a new API
     * targeted to Android 12+. Possible values are: none, low, medium, high.
     */
    workProfileRequiredPasswordComplexity?: AndroidRequiredPasswordComplexity;
    // Password is required or not for work profile
    workProfileRequirePassword?: boolean;
}
// tslint:disable-next-line: no-empty-interface
export interface AndroidWorkProfileGmailEasConfiguration extends AndroidWorkProfileEasEmailProfileBase {}
export interface AndroidWorkProfileNineWorkEasConfiguration extends AndroidWorkProfileEasEmailProfileBase {
    // Toggles syncing the calendar. If set to false the calendar is turned off on the device.
    syncCalendar?: boolean;
    // Toggles syncing contacts. If set to false contacts are turned off on the device.
    syncContacts?: boolean;
    // Toggles syncing tasks. If set to false tasks are turned off on the device.
    syncTasks?: boolean;
}
export interface AndroidWorkProfilePkcsCertificateProfile extends AndroidWorkProfileCertificateProfileBase {
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    // PKCS Certificate Template Name
    certificateTemplateName?: string;
    // PKCS Certification Authority
    certificationAuthority?: string;
    // PKCS Certification Authority Name
    certificationAuthorityName?: string;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AndroidWorkProfileScepCertificateProfile extends AndroidWorkProfileCertificateProfileBase {
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // SCEP Hash Algorithm. Possible values are: sha1, sha2.
    hashAlgorithm?: HashAlgorithms;
    // SCEP Key Size. Possible values are: size1024, size2048, size4096.
    keySize?: KeySize;
    // SCEP Key Usage. Possible values are: keyEncipherment, digitalSignature.
    keyUsage?: KeyUsages;
    // SCEP Server Url(s)
    scepServerUrls?: NullableOption<string[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AndroidWorkProfileVpnConfiguration extends DeviceConfiguration {
    // Whether or not to enable always-on VPN connection.
    alwaysOn?: NullableOption<boolean>;
    // If always-on VPN connection is enabled, whether or not to lock network traffic when that VPN is disconnected.
    alwaysOnLockdown?: NullableOption<boolean>;
    // Authentication method. Possible values are: certificate, usernameAndPassword, sharedSecret, derivedCredential, azureAD.
    authenticationMethod?: VpnAuthenticationMethod;
    // Connection name displayed to the user.
    connectionName?: string;
    /**
     * Connection type. Possible values are: ciscoAnyConnect, pulseSecure, f5EdgeClient, dellSonicWallMobileConnect,
     * checkPointCapsuleVpn, citrix, paloAltoGlobalProtect, microsoftTunnel, netMotionMobility, microsoftProtect.
     */
    connectionType?: AndroidWorkProfileVpnConnectionType;
    // Custom data when connection type is set to Citrix. This collection can contain a maximum of 25 elements.
    customData?: NullableOption<KeyValue[]>;
    // Custom data when connection type is set to Citrix. This collection can contain a maximum of 25 elements.
    customKeyValueData?: NullableOption<KeyValuePair[]>;
    /**
     * Fingerprint is a string that will be used to verify the VPN server can be trusted, which is only applicable when
     * connection type is Check Point Capsule VPN.
     */
    fingerprint?: NullableOption<string>;
    // Microsoft Tunnel site ID.
    microsoftTunnelSiteId?: NullableOption<string>;
    // List of hosts to exclude using the proxy on connections for. These hosts can use wildcards such as .example.com.
    proxyExclusionList?: NullableOption<string[]>;
    // Proxy server.
    proxyServer?: NullableOption<VpnProxyServer>;
    // Realm when connection type is set to Pulse Secure.
    realm?: NullableOption<string>;
    // Role when connection type is set to Pulse Secure.
    role?: NullableOption<string>;
    /**
     * List of VPN Servers on the network. Make sure end users can access these network locations. This collection can contain
     * a maximum of 500 elements.
     */
    servers?: VpnServer[];
    // Targeted mobile apps. This collection can contain a maximum of 500 elements.
    targetedMobileApps?: NullableOption<AppListItem[]>;
    // Targeted App package IDs.
    targetedPackageIds?: NullableOption<string[]>;
    // Identity certificate for client authentication when authentication method is certificate.
    identityCertificate?: NullableOption<AndroidWorkProfileCertificateProfileBase>;
}
export interface AospDeviceOwnerCertificateProfileBase extends DeviceConfiguration {
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validity Period.
    certificateValidityPeriodValue?: number;
    // Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
    extendedKeyUsages?: ExtendedKeyUsage[];
    // Certificate renewal threshold percentage. Valid values 1 to 99
    renewalThresholdPercentage?: number;
    /**
     * Certificate Subject Alternative Name Type. This collection can contain a maximum of 500 elements. Possible values are:
     * none, emailAddress, userPrincipalName, customAzureADAttribute, domainNameService, universalResourceIdentifier.
     */
    subjectAlternativeNameType?: NullableOption<SubjectAlternativeNameType>;
    /**
     * Certificate Subject Name Format. This collection can contain a maximum of 500 elements. Possible values are:
     * commonName, commonNameIncludingEmail, commonNameAsEmail, custom, commonNameAsIMEI, commonNameAsSerialNumber,
     * commonNameAsAadDeviceId, commonNameAsIntuneDeviceId, commonNameAsDurableDeviceId.
     */
    subjectNameFormat?: NullableOption<SubjectNameFormat>;
    // Trusted Root Certificate.
    rootCertificate?: NullableOption<AospDeviceOwnerTrustedRootCertificate>;
}
export interface AospDeviceOwnerTrustedRootCertificate extends DeviceConfiguration {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    // Trusted Root Certificate
    trustedRootCertificate?: string;
}
export interface AospDeviceOwnerCompliancePolicy extends DeviceCompliancePolicy {
    // Minimum Android security patch level.
    minAndroidSecurityPatchLevel?: NullableOption<string>;
    // Maximum Android version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum Android version.
    osMinimumVersion?: NullableOption<string>;
    // Minimum password length. Valid values 4 to 16
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before a password is required. Valid values 1 to 8640
    passwordMinutesOfInactivityBeforeLock?: NullableOption<number>;
    // Require a password to unlock device.
    passwordRequired?: NullableOption<boolean>;
    /**
     * Type of characters in password. Possible values are: deviceDefault, required, numeric, numericComplex, alphabetic,
     * alphanumeric, alphanumericWithSymbols, lowSecurityBiometric, customPassword.
     */
    passwordRequiredType?: NullableOption<AndroidDeviceOwnerRequiredPasswordType>;
    // Devices must not be jailbroken or rooted.
    securityBlockJailbrokenDevices?: NullableOption<boolean>;
    // Require encryption on Android devices.
    storageRequireEncryption?: NullableOption<boolean>;
}
export interface AospDeviceOwnerDeviceConfiguration extends DeviceConfiguration {
    /**
     * Indicates whether or not the user is allowed to enable unknown sources setting. When set to true, user is not allowed
     * to enable unknown sources settings.
     */
    appsBlockInstallFromUnknownSources?: NullableOption<boolean>;
    // Indicates whether or not to block a user from configuring bluetooth.
    bluetoothBlockConfiguration?: NullableOption<boolean>;
    // Indicates whether or not to disable the use of bluetooth. When set to true, bluetooth cannot be enabled on the device.
    bluetoothBlocked?: NullableOption<boolean>;
    // Indicates whether or not to disable the use of the camera.
    cameraBlocked?: NullableOption<boolean>;
    // Indicates whether or not the factory reset option in settings is disabled.
    factoryResetBlocked?: NullableOption<boolean>;
    // Indicates the minimum length of the password required on the device. Valid values 4 to 16
    passwordMinimumLength?: NullableOption<number>;
    // Minutes of inactivity before the screen times out.
    passwordMinutesOfInactivityBeforeScreenTimeout?: NullableOption<number>;
    /**
     * Indicates the minimum password quality required on the device. Possible values are: deviceDefault, required, numeric,
     * numericComplex, alphabetic, alphanumeric, alphanumericWithSymbols, lowSecurityBiometric, customPassword.
     */
    passwordRequiredType?: NullableOption<AndroidDeviceOwnerRequiredPasswordType>;
    // Indicates the number of times a user can enter an incorrect password before the device is wiped. Valid values 4 to 11
    passwordSignInFailureCountBeforeFactoryReset?: NullableOption<number>;
    // Indicates whether or not to disable the capability to take screenshots.
    screenCaptureBlocked?: NullableOption<boolean>;
    // Indicates whether or not to block the user from enabling debugging features on the device.
    securityAllowDebuggingFeatures?: NullableOption<boolean>;
    // Indicates whether or not to block external media.
    storageBlockExternalMedia?: NullableOption<boolean>;
    // Indicates whether or not to block USB file transfer.
    storageBlockUsbFileTransfer?: NullableOption<boolean>;
    // Indicates whether or not to block the user from editing the wifi connection settings.
    wifiBlockEditConfigurations?: NullableOption<boolean>;
}
export interface AospDeviceOwnerWiFiConfiguration extends DeviceConfiguration {
    /**
     * Connect automatically when this network is in range. Setting this to true will skip the user prompt and automatically
     * connect the device to Wi-Fi network.
     */
    connectAutomatically?: NullableOption<boolean>;
    /**
     * When set to true, this profile forces the device to connect to a network that doesn't broadcast its SSID to all
     * devices.
     */
    connectWhenNetworkNameIsHidden?: NullableOption<boolean>;
    // Network Name
    networkName?: string;
    // This is the pre-shared key for WPA Personal Wi-Fi network.
    preSharedKey?: NullableOption<string>;
    // This is the pre-shared key for WPA Personal Wi-Fi network.
    preSharedKeyIsSet?: boolean;
    // Specify the proxy server configuration script URL.
    proxyAutomaticConfigurationUrl?: NullableOption<string>;
    // List of hosts to exclude using the proxy on connections for. These hosts can use wildcards such as *.example.com.
    proxyExclusionList?: NullableOption<string[]>;
    // Specify the proxy server IP address. Both IPv4 and IPv6 addresses are supported. For example: 192.168.1.1.
    proxyManualAddress?: NullableOption<string>;
    // Specify the proxy server port.
    proxyManualPort?: NullableOption<number>;
    // Specify the proxy setting for Wi-Fi configuration. Possible values include none, manual, and automatic.
    proxySetting?: WiFiProxySetting;
    // This is the name of the Wi-Fi network that is broadcast to all devices.
    ssid?: string;
    /**
     * Indicates whether Wi-Fi endpoint uses an EAP based security type. Possible values are: open, wep, wpaPersonal,
     * wpaEnterprise.
     */
    wiFiSecurityType?: AospDeviceOwnerWiFiSecurityType;
}
export interface AospDeviceOwnerEnterpriseWiFiConfiguration extends AospDeviceOwnerWiFiConfiguration {
    /**
     * Indicates the Authentication Method the client (device) needs to use when the EAP Type is configured to PEAP or
     * EAP-TTLS. Possible values are: certificate, usernameAndPassword, derivedCredential.
     */
    authenticationMethod?: NullableOption<WiFiAuthenticationMethod>;
    // Indicates the type of EAP protocol set on the Wi-Fi endpoint (router). Possible values are: eapTls, eapTtls, peap.
    eapType?: AndroidEapType;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is EAP-TTLS and Authenticationmethod is Username and
     * Password. Possible values are: unencryptedPassword, challengeHandshakeAuthenticationProtocol, microsoftChap,
     * microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForEapTtls?: NullableOption<NonEapAuthenticationMethodForEapTtlsType>;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is PEAP and Authenticationmethod is Username and
     * Password. This collection can contain a maximum of 500 elements. Possible values are: none, microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForPeap?: NullableOption<NonEapAuthenticationMethodForPeap>;
    /**
     * Enable identity privacy (Outer Identity) when EAP Type is configured to EAP-TTLS or PEAP. The String provided here is
     * used to mask the username of individual users when they attempt to connect to Wi-Fi network.
     */
    outerIdentityPrivacyTemporaryValue?: NullableOption<string>;
    /**
     * Trusted server certificate names when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. This is the common name used
     * in the certificates issued by your trusted certificate authority (CA). If you provide this information, you can bypass
     * the dynamic trust dialog that is displayed on end users' devices when they connect to this Wi-Fi network.
     */
    trustedServerCertificateNames?: NullableOption<string[]>;
    /**
     * Identity Certificate for client authentication when EAP Type is configured to EAP-TLS, EAP-TTLS (with Certificate
     * Authentication), or PEAP (with Certificate Authentication). This is the certificate presented by client to the Wi-Fi
     * endpoint. The authentication server sitting behind the Wi-Fi endpoint must accept this certificate to successfully
     * establish a Wi-Fi connection.
     */
    identityCertificateForClientAuthentication?: NullableOption<AospDeviceOwnerCertificateProfileBase>;
    /**
     * Trusted Root Certificate for Server Validation when EAP Type is configured to EAP-TLS, EAP-TTLS or PEAP. This is the
     * certificate presented by the Wi-Fi endpoint when the device attempts to connect to Wi-Fi endpoint. The device (or user)
     * must accept this certificate to continue the connection attempt.
     */
    rootCertificateForServerValidation?: NullableOption<AospDeviceOwnerTrustedRootCertificate>;
}
export interface AospDeviceOwnerPkcsCertificateProfile extends AospDeviceOwnerCertificateProfileBase {
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: CertificateStore;
    // PKCS Certificate Template Name
    certificateTemplateName?: string;
    // PKCS Certification Authority
    certificationAuthority?: string;
    // PKCS Certification Authority Name
    certificationAuthorityName?: NullableOption<string>;
    // Certification authority type. Possible values are: notConfigured, microsoft, digiCert.
    certificationAuthorityType?: DeviceManagementCertificationAuthority;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: string;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AospDeviceOwnerScepCertificateProfile extends AospDeviceOwnerCertificateProfileBase {
    // Target store certificate. This collection can contain a maximum of 500 elements. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // SCEP Hash Algorithm. Possible values are: sha1, sha2.
    hashAlgorithm?: HashAlgorithms;
    // SCEP Key Size. Possible values are: size1024, size2048, size4096.
    keySize?: KeySize;
    // SCEP Key Usage. Possible values are: keyEncipherment, digitalSignature.
    keyUsage?: KeyUsages;
    // SCEP Server Url(s)
    scepServerUrls?: NullableOption<string[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface AppleDeviceFeaturesConfigurationBase extends DeviceConfiguration {
    // An array of AirPrint printers that should always be shown. This collection can contain a maximum of 500 elements.
    airPrintDestinations?: NullableOption<AirPrintDestination[]>;
}
export interface AppleExpeditedCheckinConfigurationBase extends DeviceConfiguration {
    // Gets or sets whether to enable expedited device check-ins.
    enableExpeditedCheckin?: boolean;
}
export interface AppleVpnConfiguration extends DeviceConfiguration {
    // Associated Domains
    associatedDomains?: NullableOption<string[]>;
    /**
     * Authentication method for this VPN connection. Possible values are: certificate, usernameAndPassword, sharedSecret,
     * derivedCredential, azureAD.
     */
    authenticationMethod?: VpnAuthenticationMethod;
    // Connection name displayed to the user.
    connectionName?: string;
    /**
     * Connection type. Possible values are: ciscoAnyConnect, pulseSecure, f5EdgeClient, dellSonicWallMobileConnect,
     * checkPointCapsuleVpn, customVpn, ciscoIPSec, citrix, ciscoAnyConnectV2, paloAltoGlobalProtect, zscalerPrivateAccess,
     * f5Access2018, citrixSso, paloAltoGlobalProtectV2, ikEv2, alwaysOn, microsoftTunnel, netMotionMobility,
     * microsoftProtect.
     */
    connectionType?: AppleVpnConnectionType;
    /**
     * Custom data when connection type is set to Custom VPN. Use this field to enable functionality not supported by Intune,
     * but available in your VPN solution. Contact your VPN vendor to learn how to add these key/value pairs. This collection
     * can contain a maximum of 25 elements.
     */
    customData?: NullableOption<KeyValue[]>;
    /**
     * Custom data when connection type is set to Custom VPN. Use this field to enable functionality not supported by Intune,
     * but available in your VPN solution. Contact your VPN vendor to learn how to add these key/value pairs. This collection
     * can contain a maximum of 25 elements.
     */
    customKeyValueData?: NullableOption<KeyValuePair[]>;
    // Toggle to prevent user from disabling automatic VPN in the Settings app
    disableOnDemandUserOverride?: NullableOption<boolean>;
    // Whether to disconnect after on-demand connection idles
    disconnectOnIdle?: NullableOption<boolean>;
    // The length of time in seconds to wait before disconnecting an on-demand connection. Valid values 0 to 65535
    disconnectOnIdleTimerInSeconds?: NullableOption<number>;
    /**
     * Setting this to true creates Per-App VPN payload which can later be associated with Apps that can trigger this VPN
     * conneciton on the end user's iOS device.
     */
    enablePerApp?: NullableOption<boolean>;
    // Send all network traffic through VPN.
    enableSplitTunneling?: boolean;
    // Domains that are accessed through the public internet instead of through VPN, even when per-app VPN is activated
    excludedDomains?: NullableOption<string[]>;
    /**
     * Identifier provided by VPN vendor when connection type is set to Custom VPN. For example: Cisco AnyConnect uses an
     * identifier of the form com.cisco.anyconnect.applevpn.plugin
     */
    identifier?: NullableOption<string>;
    // Login group or domain when connection type is set to Dell SonicWALL Mobile Connection.
    loginGroupOrDomain?: NullableOption<string>;
    // On-Demand Rules. This collection can contain a maximum of 500 elements.
    onDemandRules?: NullableOption<VpnOnDemandRule[]>;
    // Opt-In to sharing the device's Id to third-party vpn clients for use during network access control validation.
    optInToDeviceIdSharing?: NullableOption<boolean>;
    // Provider type for per-app VPN. Possible values are: notConfigured, appProxy, packetTunnel.
    providerType?: NullableOption<VpnProviderType>;
    // Proxy Server.
    proxyServer?: NullableOption<VpnProxyServer>;
    // Realm when connection type is set to Pulse Secure.
    realm?: NullableOption<string>;
    // Role when connection type is set to Pulse Secure.
    role?: NullableOption<string>;
    /**
     * Safari domains when this VPN per App setting is enabled. In addition to the apps associated with this VPN, Safari
     * domains specified here will also be able to trigger this VPN connection.
     */
    safariDomains?: NullableOption<string[]>;
    // VPN Server on the network. Make sure end users can access this network location.
    server?: VpnServer;
}
// tslint:disable-next-line: no-empty-interface
export interface DefaultDeviceCompliancePolicy extends DeviceCompliancePolicy {}
export interface DeviceComplianceActionItem extends Entity {
    /**
     * What action to take. Possible values are: noAction, notification, block, retire, wipe, removeResourceAccessProfiles,
     * pushNotification, remoteLock.
     */
    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 DeviceCompliancePolicyGroupAssignment extends Entity {
    // Indicates if this group is should be excluded. Defaults that the group should be included
    excludeGroup?: boolean;
    // The Id of the AAD group we are targeting the device compliance policy to.
    targetGroupId?: NullableOption<string>;
    // The navigation link to the device compliance polic targeted.
    deviceCompliancePolicy?: NullableOption<DeviceCompliancePolicy>;
}
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>;
    /**
     * Device platform type. Possible values are: desktop, windowsRT, winMO6, nokia, windowsPhone, mac, winCE, winEmbedded,
     * iPhone, iPad, iPod, android, iSocConsumer, unix, macMDM, holoLens, surfaceHub, androidForWork, androidEnterprise,
     * windows10x, androidnGMS, chromeOS, linux, blackberry, palm, unknown, cloudPC.
     */
    platformType?: DeviceType;
    // 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 DeviceSetupConfiguration 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;
}
export interface EasEmailProfileConfigurationBase extends DeviceConfiguration {
    // Custom domain name value used while generating an email profile before installing on the device.
    customDomainName?: NullableOption<string>;
    /**
     * UserDomainname attribute that is picked from AAD and injected into this profile before installing on the device.
     * Possible values are: fullDomainName, netBiosDomainName.
     */
    userDomainNameSource?: NullableOption<DomainNameSource>;
    /**
     * Name of the AAD field, that will be used to retrieve UserName for email profile. Possible values are:
     * userPrincipalName, primarySmtpAddress, samAccountName.
     */
    usernameAADSource?: NullableOption<UsernameSource>;
    /**
     * Username attribute that is picked from AAD and injected into this profile before installing on the device. Possible
     * values are: userPrincipalName, primarySmtpAddress.
     */
    usernameSource?: UserEmailSource;
}
export interface EditionUpgradeConfiguration extends DeviceConfiguration {
    // Edition Upgrade License File Content.
    license?: NullableOption<string>;
    // Edition Upgrade License Type. Possible values are: productKey, licenseFile, notConfigured.
    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, notConfigured, windows10Home, windows10HomeChina,
     * windows10HomeN, windows10HomeSingleLanguage, windows10Mobile, windows10IoTCore, windows10IoTCoreCommercial.
     */
    targetEdition?: Windows10EditionType;
    // S mode configuration. Possible values are: noRestriction, block, unlock.
    windowsSMode?: WindowsSModeConfiguration;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IosCertificateProfile extends DeviceConfiguration {}
// tslint:disable-next-line: interface-name
export interface IosCertificateProfileBase extends IosCertificateProfile {
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validity Period.
    certificateValidityPeriodValue?: number;
    // Certificate renewal threshold percentage. Valid values 1 to 99
    renewalThresholdPercentage?: number;
    /**
     * Certificate Subject Alternative Name type. Possible values are: none, emailAddress, userPrincipalName,
     * customAzureADAttribute, domainNameService, universalResourceIdentifier.
     */
    subjectAlternativeNameType?: NullableOption<SubjectAlternativeNameType>;
    /**
     * Certificate Subject Name Format. Possible values are: commonName, commonNameAsEmail, custom, commonNameIncludingEmail,
     * commonNameAsIMEI, commonNameAsSerialNumber.
     */
    subjectNameFormat?: AppleSubjectNameFormat;
}
// tslint:disable-next-line: interface-name
export interface IosCompliancePolicy extends DeviceCompliancePolicy {
    /**
     * MDATP Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable,
     * secured, low, medium, high, notSet.
     */
    advancedThreatProtectionRequiredSecurityLevel?: DeviceThreatProtectionLevel;
    // 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 build version.
    osMaximumBuildVersion?: NullableOption<string>;
    // Maximum IOS version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum IOS build version.
    osMinimumBuildVersion?: 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>;
    // 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;
    // The required passcode type. Possible values are: deviceDefault, alphanumeric, numeric.
    passcodeRequiredType?: RequiredPasswordType;
    // Require the device to not have the specified apps installed. This collection can contain a maximum of 100 elements.
    restrictedApps?: NullableOption<AppListItem[]>;
    // 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 IosDerivedCredentialAuthenticationConfiguration extends DeviceConfiguration {
    // Tenant level settings for the Derived Credentials to be used for authentication.
    derivedCredentialSettings?: NullableOption<DeviceManagementDerivedCredentialSettings>;
}
// 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>;
    // Gets or sets iOS Web Content Filter settings, supervised mode only
    contentFilterSettings?: NullableOption<IosWebContentFilterBase>;
    // 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[]>;
    /**
     * Gets or sets the number of rows to render when configuring iOS home screen layout settings. If this value is
     * configured, homeScreenGridWidth must be configured as well.
     */
    homeScreenGridHeight?: NullableOption<number>;
    /**
     * Gets or sets the number of columns to render when configuring iOS home screen layout settings. If this value is
     * configured, homeScreenGridHeight must be configured as well.
     */
    homeScreenGridWidth?: NullableOption<number>;
    // A list of pages on the Home Screen. This collection can contain a maximum of 500 elements.
    homeScreenPages?: NullableOption<IosHomeScreenPage[]>;
    // Gets or sets a single sign-on extension profile.
    iosSingleSignOnExtension?: NullableOption<IosSingleSignOnExtension>;
    // 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[]>;
    // Gets or sets a single sign-on extension profile. Deprecated: use IOSSingleSignOnExtension instead.
    singleSignOnExtension?: NullableOption<SingleSignOnExtension>;
    // The Kerberos login settings that enable apps on receiving devices to authenticate smoothly.
    singleSignOnSettings?: NullableOption<IosSingleSignOnSettings>;
    // A wallpaper display location specifier. Possible values are: notConfigured, lockScreen, homeScreen, lockAndHomeScreens.
    wallpaperDisplayLocation?: IosWallpaperDisplayLocation;
    // A wallpaper image must be in either PNG or JPEG format. It requires a supervised device with iOS 8 or later version.
    wallpaperImage?: NullableOption<MimeContent>;
    // Identity Certificate for the renewal of Kerberos ticket used in single sign-on settings.
    identityCertificateForClientAuthentication?: NullableOption<IosCertificateProfileBase>;
    // PKINIT Certificate for the authentication with single sign-on extension settings.
    singleSignOnExtensionPkinitCertificate?: NullableOption<IosCertificateProfileBase>;
}
// tslint:disable-next-line: interface-name
export interface IosEasEmailProfileConfiguration extends EasEmailProfileConfigurationBase {
    // Account name.
    accountName?: string;
    // Authentication method for this Email profile. Possible values are: usernameAndPassword, certificate, derivedCredential.
    authenticationMethod?: NullableOption<EasAuthenticationMethod>;
    // Indicates whether or not to block moving messages to other email accounts.
    blockMovingMessagesToOtherEmailAccounts?: NullableOption<boolean>;
    // Indicates whether or not to block sending email from third party apps.
    blockSendingEmailFromThirdPartyApps?: NullableOption<boolean>;
    // Indicates whether or not to block syncing recently used email addresses, for instance - when composing new email.
    blockSyncingRecentlyUsedEmailAddresses?: NullableOption<boolean>;
    /**
     * Duration of time email should be synced back to. . Possible values are: userDefined, oneDay, threeDays, oneWeek,
     * twoWeeks, oneMonth, unlimited.
     */
    durationOfEmailToSync?: EmailSyncDuration;
    // Exchange data to sync. Possible values are: none, calendars, contacts, email, notes, reminders.
    easServices?: NullableOption<EasServices>;
    // Allow users to change sync settings.
    easServicesUserOverrideEnabled?: NullableOption<boolean>;
    /**
     * Email attribute that is picked from AAD and injected into this profile before installing on the device. Possible values
     * are: userPrincipalName, primarySmtpAddress.
     */
    emailAddressSource?: UserEmailSource;
    // Encryption Certificate type for this Email profile. Possible values are: none, certificate, derivedCredential.
    encryptionCertificateType?: NullableOption<EmailCertificateType>;
    // Exchange location that (URL) that the native mail app connects to.
    hostName?: string;
    // Profile ID of the Per-App VPN policy to be used to access emails from the native Mail client
    perAppVPNProfileId?: NullableOption<string>;
    // Indicates whether or not to use S/MIME certificate.
    requireSmime?: NullableOption<boolean>;
    // Indicates whether or not to use SSL.
    requireSsl?: boolean;
    // Signing Certificate type for this Email profile. Possible values are: none, certificate, derivedCredential.
    signingCertificateType?: NullableOption<EmailCertificateType>;
    // Indicates whether or not to allow unencrypted emails.
    smimeEnablePerMessageSwitch?: NullableOption<boolean>;
    // If set to true S/MIME encryption is enabled by default.
    smimeEncryptByDefaultEnabled?: NullableOption<boolean>;
    // If set to true, the user can toggle the encryption by default setting.
    smimeEncryptByDefaultUserOverrideEnabled?: NullableOption<boolean>;
    // If set to true the user can select the S/MIME encryption identity.
    smimeEncryptionCertificateUserOverrideEnabled?: NullableOption<boolean>;
    // If set to true, the user can select the signing identity.
    smimeSigningCertificateUserOverrideEnabled?: NullableOption<boolean>;
    // If set to true S/MIME signing is enabled for this account
    smimeSigningEnabled?: NullableOption<boolean>;
    // If set to true, the user can toggle S/MIME signing on or off.
    smimeSigningUserOverrideEnabled?: NullableOption<boolean>;
    // Specifies whether the connection should use OAuth for authentication.
    useOAuth?: NullableOption<boolean>;
    // Tenant level settings for the Derived Credentials to be used for authentication.
    derivedCredentialSettings?: NullableOption<DeviceManagementDerivedCredentialSettings>;
    // Identity certificate.
    identityCertificate?: NullableOption<IosCertificateProfileBase>;
    // S/MIME encryption certificate.
    smimeEncryptionCertificate?: NullableOption<IosCertificateProfile>;
    // S/MIME signing certificate.
    smimeSigningCertificate?: NullableOption<IosCertificateProfile>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IosEducationDeviceConfiguration extends DeviceConfiguration {}
// tslint:disable-next-line: interface-name
export interface IosEduDeviceConfiguration extends DeviceConfiguration {
    // The Trusted Root and PFX certificates for Device
    deviceCertificateSettings?: NullableOption<IosEduCertificateSettings>;
    // The Trusted Root and PFX certificates for Student
    studentCertificateSettings?: NullableOption<IosEduCertificateSettings>;
    // The Trusted Root and PFX certificates for Teacher
    teacherCertificateSettings?: IosEduCertificateSettings;
}
// tslint:disable-next-line: interface-name
export interface IosWiFiConfiguration extends DeviceConfiguration {
    /**
     * Connect automatically when this network is in range. Setting this to true will skip the user prompt and automatically
     * connect the device to Wi-Fi network.
     */
    connectAutomatically?: boolean;
    /**
     * Connect when the network is not broadcasting its name (SSID). When set to true, this profile forces the device to
     * connect to a network that doesn't broadcast its SSID to all devices.
     */
    connectWhenNetworkNameIsHidden?: boolean;
    /**
     * If set to true, forces devices connecting using this Wi-Fi profile to present their actual Wi-Fi MAC address instead of
     * a random MAC address. Applies to iOS 14 and later.
     */
    disableMacAddressRandomization?: NullableOption<boolean>;
    // Network Name
    networkName?: string;
    // This is the pre-shared key for WPA Personal Wi-Fi network.
    preSharedKey?: NullableOption<string>;
    /**
     * URL of the proxy server automatic configuration script when automatic configuration is selected. This URL is typically
     * the location of PAC (Proxy Auto Configuration) file.
     */
    proxyAutomaticConfigurationUrl?: NullableOption<string>;
    // IP Address or DNS hostname of the proxy server when manual configuration is selected.
    proxyManualAddress?: NullableOption<string>;
    // Port of the proxy server when manual configuration is selected.
    proxyManualPort?: NullableOption<number>;
    // Proxy Type for this Wi-Fi connection. Possible values are: none, manual, automatic.
    proxySettings?: WiFiProxySetting;
    // This is the name of the Wi-Fi network that is broadcast to all devices.
    ssid?: string;
    /**
     * Indicates whether Wi-Fi endpoint uses an EAP based security type. Possible values are: open, wpaPersonal,
     * wpaEnterprise, wep, wpa2Personal, wpa2Enterprise.
     */
    wiFiSecurityType?: WiFiSecurityType;
}
// tslint:disable-next-line: interface-name
export interface IosEnterpriseWiFiConfiguration extends IosWiFiConfiguration {
    /**
     * Authentication Method when EAP Type is configured to PEAP or EAP-TTLS. Possible values are: certificate,
     * usernameAndPassword, derivedCredential.
     */
    authenticationMethod?: NullableOption<WiFiAuthenticationMethod>;
    /**
     * EAP-FAST Configuration Option when EAP-FAST is the selected EAP Type. Possible values are: noProtectedAccessCredential,
     * useProtectedAccessCredential, useProtectedAccessCredentialAndProvision,
     * useProtectedAccessCredentialAndProvisionAnonymously.
     */
    eapFastConfiguration?: NullableOption<EapFastConfiguration>;
    /**
     * Extensible Authentication Protocol (EAP). Indicates the type of EAP protocol set on the Wi-Fi endpoint (router).
     * Possible values are: eapTls, leap, eapSim, eapTtls, peap, eapFast, teap.
     */
    eapType?: EapType;
    /**
     * Non-EAP Method for Authentication when EAP Type is EAP-TTLS and Authenticationmethod is Username and Password. Possible
     * values are: unencryptedPassword, challengeHandshakeAuthenticationProtocol, microsoftChap, microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForEapTtls?: NullableOption<NonEapAuthenticationMethodForEapTtlsType>;
    /**
     * Enable identity privacy (Outer Identity) when EAP Type is configured to EAP - TTLS, EAP - FAST or PEAP. This property
     * masks usernames with the text you enter. For example, if you use 'anonymous', each user that authenticates with this
     * Wi-Fi connection using their real username is displayed as 'anonymous'.
     */
    outerIdentityPrivacyTemporaryValue?: NullableOption<string>;
    // Password format string used to build the password to connect to wifi
    passwordFormatString?: NullableOption<string>;
    /**
     * Trusted server certificate names when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. This is the common name used
     * in the certificates issued by your trusted certificate authority (CA). If you provide this information, you can bypass
     * the dynamic trust dialog that is displayed on end users' devices when they connect to this Wi-Fi network.
     */
    trustedServerCertificateNames?: NullableOption<string[]>;
    // Username format string used to build the username to connect to wifi
    usernameFormatString?: NullableOption<string>;
    // Tenant level settings for the Derived Credentials to be used for authentication.
    derivedCredentialSettings?: NullableOption<DeviceManagementDerivedCredentialSettings>;
    /**
     * Identity Certificate for client authentication when EAP Type is configured to EAP-TLS, EAP-TTLS (with Certificate
     * Authentication), or PEAP (with Certificate Authentication).
     */
    identityCertificateForClientAuthentication?: NullableOption<IosCertificateProfileBase>;
    /**
     * Trusted Root Certificates for Server Validation when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. If you
     * provide this value you do not need to provide trustedServerCertificateNames, and vice versa. This collection can
     * contain a maximum of 500 elements.
     */
    rootCertificatesForServerValidation?: NullableOption<IosTrustedRootCertificate[]>;
}
// tslint:disable-next-line: interface-name
export interface IosTrustedRootCertificate extends DeviceConfiguration {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    // Trusted Root Certificate.
    trustedRootCertificate?: string;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IosExpeditedCheckinConfiguration extends AppleExpeditedCheckinConfigurationBase {}
// 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 keychain storage of username and password for Airprint is blocked (iOS 11.0 and later).
    airPrintBlockCredentialsStorage?: boolean;
    // Indicates whether or not AirPrint is blocked (iOS 11.0 and later).
    airPrintBlocked?: boolean;
    /**
     * Indicates whether or not iBeacon discovery of AirPrint printers is blocked. This prevents spurious AirPrint Bluetooth
     * beacons from phishing for network traffic (iOS 11.0 and later).
     */
    airPrintBlockiBeaconDiscovery?: boolean;
    // Indicates if trusted certificates are required for TLS printing communication (iOS 11.0 and later).
    airPrintForceTrustedTLS?: boolean;
    // Prevents a user from adding any App Clips and removes any existing App Clips on the device.
    appClipsBlocked?: 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;
    // Limits Apple personalized advertising when true. Available in iOS 14 and later.
    applePersonalizedAdsBlocked?: 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;
    // Indicates if the removal of apps is allowed.
    appRemovalBlocked?: 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 force user authentication before autofilling passwords and credit card information in
     * Safari and other apps on supervised devices.
     */
    autoFillForceAuthentication?: boolean;
    /**
     * Blocks users from unlocking their device with Apple Watch. Available for devices running iOS and iPadOS versions 14.5
     * and later.
     */
    autoUnlockBlocked?: boolean;
    /**
     * Indicates whether or not the removal of system apps from the device is blocked on a supervised device (iOS 11.0 and
     * later).
     */
    blockSystemAppRemoval?: boolean;
    /**
     * 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 the user from modifying the personal hotspot setting (iOS 12.2 or later).
    cellularBlockPersonalHotspotModification?: boolean;
    // Indicates whether or not to allow users to change the settings of the cellular plan on a supervised device.
    cellularBlockPlanModification?: 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;
    /**
     * Indicates whether or not to automatically give permission to the teacher's requests, without prompting the student,
     * when the device is in supervised mode.
     */
    classroomForceAutomaticallyJoinClasses?: boolean;
    /**
     * Indicates whether a student enrolled in an unmanaged course via Classroom will request permission from the teacher when
     * attempting to leave the course (iOS 11.3 and later).
     */
    classroomForceRequestPermissionToLeaveClasses?: boolean;
    /**
     * Indicates whether or not to allow the teacher to lock apps or the device without prompting the student. Supervised
     * only.
     */
    classroomForceUnpromptedAppAndDeviceLock?: 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 managed apps can write contacts to unmanaged contacts accounts (iOS 12.0 and later).
    contactsAllowManagedToUnmanagedWrite?: boolean;
    // Indicates whether or not unmanaged apps can read from managed contacts accounts (iOS 12.0 or later).
    contactsAllowUnmanagedToManagedRead?: boolean;
    // Indicates whether or not to block the continuous path keyboard when the device is supervised (iOS 13 or later).
    continuousPathKeyboardBlocked?: boolean;
    /**
     * Indicates whether or not the Date and Time 'Set Automatically' feature is enabled and cannot be turned off by the user
     * (iOS 12.0 and later).
     */
    dateAndTimeForceSetAutomatically?: 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 Enterprise book back up is blocked.
    enterpriseBookBlockBackup?: boolean;
    // Indicates whether or not Enterprise book notes and highlights sync is blocked.
    enterpriseBookBlockMetadataSync?: boolean;
    // Indicates whether or not to allow the addition or removal of cellular plans on the eSIM of a supervised device.
    esimBlockModification?: boolean;
    // Indicates whether or not to block the user from using FaceTime. Requires a supervised device for iOS 13 and later.
    faceTimeBlocked?: boolean;
    /**
     * Indicates if devices can access files or other resources on a network server using the Server Message Block (SMB)
     * protocol. Available for devices running iOS and iPadOS, versions 13.0 and later.
     */
    filesNetworkDriveAccessBlocked?: boolean;
    /**
     * Indicates if sevices with access can connect to and open files on a USB drive. Available for devices running iOS and
     * iPadOS, versions 13.0 and later.
     */
    filesUsbDriveAccessBlocked?: boolean;
    // Indicates whether or not to block Find My Device when the device is supervised (iOS 13 or later).
    findMyDeviceInFindMyAppBlocked?: 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 Find My Friends when the device is supervised (iOS 13 or later).
    findMyFriendsInFindMyAppBlocked?: 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;
    /**
     * iCloud private relay is an iCloud+ service that prevents networks and servers from monitoring a person's activity
     * across the internet. By blocking iCloud private relay, Apple will not encrypt the traffic leaving the device. Available
     * for devices running iOS 15 and later.
     */
    iCloudPrivateRelayBlocked?: boolean;
    // Indicates whether or not to require backups to iCloud be encrypted.
    iCloudRequireEncryptedBackup?: boolean;
    // Indicates whether or not to block the iTunes app. Requires a supervised device for iOS 13 and later.
    iTunesBlocked?: 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 iCloud keychain synchronization is blocked. Requires a supervised device for iOS 13 and later.
    keychainBlockCloudSync?: 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 the user to toggle voice control in kiosk mode.
    kioskModeAllowVoiceControlModification?: 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>;
    // Type of app to run in kiosk mode. Possible values are: notConfigured, appStoreApp, managedApp, builtInApp.
    kioskModeAppType?: IosKioskModeAppType;
    // Indicates whether or not to block device auto lock while in kiosk mode.
    kioskModeBlockAutoLock?: boolean;
    // Indicates whether or not to block use of the ringer switch while in kiosk mode.
    kioskModeBlockRingerSwitch?: boolean;
    // Indicates whether or not to block screen rotation while in kiosk mode.
    kioskModeBlockScreenRotation?: boolean;
    // Indicates whether or not to block use of the sleep button while in kiosk mode.
    kioskModeBlockSleepButton?: boolean;
    // Indicates whether or not to block use of the touchscreen while in kiosk mode.
    kioskModeBlockTouchscreen?: boolean;
    // Indicates whether or not to block the volume buttons while in Kiosk Mode.
    kioskModeBlockVolumeButtons?: boolean;
    // ID for built-in apps to use for kiosk mode. Used when KioskModeManagedAppId and KioskModeAppStoreUrl are not set.
    kioskModeBuiltInAppId?: NullableOption<string>;
    // Indicates whether or not to enable voice control in kiosk mode.
    kioskModeEnableVoiceControl?: boolean;
    /**
     * 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;
    /**
     * Open-in management controls how people share data between unmanaged and managed apps. Setting this to true enforces
     * copy/paste restrictions based on how you configured Block viewing corporate documents in unmanaged apps and Block
     * viewing non-corporate documents in corporate apps.
     */
    managedPasteboardRequired?: 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[]>;
    /**
     * Disable NFC to prevent devices from pairing with other NFC-enabled devices. Available for iOS/iPadOS devices running
     * 14.2 and later.
     */
    nfcBlocked?: boolean;
    // Indicates whether or not to allow notifications settings modification (iOS 9.3 and later).
    notificationsBlockSettingsModification?: boolean;
    /**
     * Disables connections to Siri servers so that users can’t use Siri to dictate text. Available for devices running iOS
     * and iPadOS versions 14.5 and later.
     */
    onDeviceOnlyDictationForced?: boolean;
    /**
     * When set to TRUE, the setting disables connections to Siri servers so that users can’t use Siri to translate text. When
     * set to FALSE, the setting allows connections to to Siri servers to users can use Siri to translate text. Available for
     * devices running iOS and iPadOS versions 15.0 and later.
     */
    onDeviceOnlyTranslationForced?: 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 sharing passwords with the AirDrop passwords feature iOS 12.0 and later).
    passwordBlockAirDropSharing?: boolean;
    // Indicates if the AutoFill passwords feature is allowed (iOS 12.0 and later).
    passwordBlockAutoFill?: boolean;
    // Indicates whether or not to block requesting passwords from nearby devices (iOS 12.0 and later).
    passwordBlockProximityRequests?: boolean;
    /**
     * Indicates whether or not over-the-air PKI updates are blocked. Setting this restriction to false does not disable CRL
     * and OCSP checks (iOS 7.0 and later).
     */
    pkiBlockOTAUpdates?: boolean;
    // Indicates whether or not to block the user from using podcasts on the supervised device (iOS 8.0 and later).
    podcastsBlocked?: boolean;
    // Indicates if ad tracking is limited.(iOS 7.0 and later).
    privacyForceLimitAdTracking?: boolean;
    // Indicates whether or not to enable the prompt to setup nearby devices with a supervised device.
    proximityBlockSetupToNewDevice?: 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 temporary sessions on Shared iPads (iOS 13.4 or later).
    sharedDeviceBlockTemporarySessions?: 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;
    // Sets how many days a software update will be delyed for a supervised device. Valid values 0 to 90
    softwareUpdatesEnforcedDelayInDays?: NullableOption<number>;
    // Indicates whether or not to delay user visibility of software updates when the device is in supervised mode.
    softwareUpdatesForceDelayed?: boolean;
    // Indicates whether or not to block Spotlight search from returning internet results on supervised device.
    spotlightBlockInternetResults?: boolean;
    /**
     * Allow users to boot devices into recovery mode with unpaired devices. Available for devices running iOS and iPadOS
     * versions 14.5 and later.
     */
    unpairedExternalBootToRecoveryAllowed?: boolean;
    // Indicates if connecting to USB accessories while the device is locked is allowed (iOS 11.4.1 and later).
    usbRestrictedModeBlocked?: boolean;
    // Indicates whether or not to block voice dialing.
    voiceDialingBlocked?: boolean;
    // Indicates whether or not the creation of VPN configurations is blocked (iOS 11.0 and later).
    vpnBlockCreation?: 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;
    /**
     * Require devices to use Wi-Fi networks set up via configuration profiles. Available for devices running iOS and iPadOS
     * versions 14.5 and later.
     */
    wiFiConnectToAllowedNetworksOnlyForced?: boolean;
    /**
     * Indicates whether or not Wi-Fi remains on, even when device is in airplane mode. Available for devices running iOS and
     * iPadOS, versions 13.0 and later.
     */
    wifiPowerOnForced?: boolean;
}
// tslint:disable-next-line: interface-name
export interface IosVpnConfiguration extends AppleVpnConfiguration {
    // Zscaler only. Zscaler cloud which the user is assigned to.
    cloudName?: NullableOption<string>;
    // Zscaler only. List of network addresses which are not sent through the Zscaler cloud.
    excludeList?: NullableOption<string[]>;
    // Microsoft Tunnel site ID.
    microsoftTunnelSiteId?: NullableOption<string>;
    // Zscaler only. Blocks network traffic until the user signs into Zscaler app. 'True' means traffic is blocked.
    strictEnforcement?: NullableOption<boolean>;
    // Targeted mobile apps. This collection can contain a maximum of 500 elements.
    targetedMobileApps?: NullableOption<AppListItem[]>;
    /**
     * Zscaler only. Enter a static domain to pre-populate the login field with in the Zscaler app. If this is left empty, the
     * user's Azure Active Directory domain will be used instead.
     */
    userDomain?: NullableOption<string>;
    // Tenant level settings for the Derived Credentials to be used for authentication.
    derivedCredentialSettings?: NullableOption<DeviceManagementDerivedCredentialSettings>;
    // Identity certificate for client authentication when authentication method is certificate.
    identityCertificate?: NullableOption<IosCertificateProfileBase>;
}
// tslint:disable-next-line: interface-name
export interface IosikEv2VpnConfiguration extends IosVpnConfiguration {
    /**
     * Allows the use of child security association parameters by setting all parameters to the device's default unless
     * explicitly specified.
     */
    allowDefaultChildSecurityAssociationParameters?: NullableOption<boolean>;
    /**
     * Allows the use of security association parameters by setting all parameters to the device's default unless explicitly
     * specified.
     */
    allowDefaultSecurityAssociationParameters?: NullableOption<boolean>;
    // AlwaysOn Configuration
    alwaysOnConfiguration?: NullableOption<AppleVpnAlwaysOnConfiguration>;
    // Child Security Association Parameters
    childSecurityAssociationParameters?: NullableOption<IosVpnSecurityAssociationParameters>;
    // Type of Client Authentication the VPN client will use. Possible values are: userAuthentication, deviceAuthentication.
    clientAuthenticationType?: VpnClientAuthenticationType;
    // Determine how often to check if a peer connection is still active. . Possible values are: medium, none, low, high.
    deadPeerDetectionRate?: NullableOption<VpnDeadPeerDetectionRate>;
    // Disable MOBIKE
    disableMobilityAndMultihoming?: NullableOption<boolean>;
    // Disable Redirect
    disableRedirect?: NullableOption<boolean>;
    // Determines if Always on VPN is enabled
    enableAlwaysOnConfiguration?: NullableOption<boolean>;
    // Enables a best-effort revocation check; server response timeouts will not cause it to fail
    enableCertificateRevocationCheck?: NullableOption<boolean>;
    // Enables EAP only authentication
    enableEAP?: NullableOption<boolean>;
    // Enable Perfect Forward Secrecy (PFS).
    enablePerfectForwardSecrecy?: NullableOption<boolean>;
    // Enable Use Internal Subnet Attributes.
    enableUseInternalSubnetAttributes?: NullableOption<boolean>;
    /**
     * Method of identifying the client that is trying to connect via VPN. . Possible values are: deviceFQDN, empty,
     * clientCertificateSubjectName.
     */
    localIdentifier?: VpnLocalIdentifier;
    // Maximum transmission unit. Valid values 1280 to 1400
    mtuSizeInBytes?: NullableOption<number>;
    // Address of the IKEv2 server. Must be a FQDN, UserFQDN, network address, or ASN1DN
    remoteIdentifier?: string;
    // Security Association Parameters
    securityAssociationParameters?: NullableOption<IosVpnSecurityAssociationParameters>;
    // Common name of the IKEv2 Server Certificate used in Server Authentication
    serverCertificateCommonName?: NullableOption<string>;
    // Issuer Common name of the IKEv2 Server Certificate issuer used in Authentication
    serverCertificateIssuerCommonName?: NullableOption<string>;
    /**
     * The type of certificate the VPN server will present to the VPN client for authentication. Possible values are: rsa,
     * ecdsa256, ecdsa384, ecdsa521.
     */
    serverCertificateType?: NullableOption<VpnServerCertificateType>;
    // Used when Shared Secret Authentication is selected
    sharedSecret?: NullableOption<string>;
    // The maximum TLS version to be used with EAP-TLS authentication
    tlsMaximumVersion?: NullableOption<string>;
    // The minimum TLS version to be used with EAP-TLS authentication
    tlsMinimumVersion?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosImportedPFXCertificateProfile extends IosCertificateProfile {
    /**
     * Intended Purpose of the Certificate Profile - which could be Unassigned, SmimeEncryption, SmimeSigning etc. Possible
     * values are: unassigned, smimeEncryption, smimeSigning, vpn, wifi.
     */
    intendedPurpose?: IntendedPurpose;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
// tslint:disable-next-line: interface-name
export interface IosPkcsCertificateProfile extends IosCertificateProfileBase {
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    // PKCS Certificate Template Name.
    certificateTemplateName?: string;
    // PKCS Certification Authority.
    certificationAuthority?: string;
    // PKCS Certification Authority Name.
    certificationAuthorityName?: string;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
// tslint:disable-next-line: interface-name
export interface IosScepCertificateProfile extends IosCertificateProfileBase {
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    /**
     * Custom Subject Alternative Name Settings. The OnPremisesUserPrincipalName variable is support as well as others
     * documented here: https://go.microsoft.com/fwlink/?LinkId=2027630. This collection can contain a maximum of 500
     * elements.
     */
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
    extendedKeyUsages?: ExtendedKeyUsage[];
    // SCEP Key Size. Possible values are: size1024, size2048, size4096.
    keySize?: KeySize;
    // SCEP Key Usage. Possible values are: keyEncipherment, digitalSignature.
    keyUsage?: KeyUsages;
    // SCEP Server Url(s).
    scepServerUrls?: NullableOption<string[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
    // Trusted Root Certificate.
    rootCertificate?: NullableOption<IosTrustedRootCertificate>;
}
// 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;
    /**
     * If update schedule type is set to use time window scheduling, custom time windows when updates will be scheduled. This
     * collection can contain a maximum of 20 elements.
     */
    customUpdateTimeWindows?: NullableOption<CustomUpdateTimeWindow[]>;
    // If left unspecified, devices will update to the latest version of the OS.
    desiredOsVersion?: NullableOption<string>;
    // Days before software updates are visible to iOS devices ranging from 0 to 90 inclusive
    enforcedSoftwareUpdateDelayInDays?: NullableOption<number>;
    // Is setting enabled in UI
    isEnabled?: boolean;
    // Days in week for which active hours are configured. This collection can contain a maximum of 7 elements.
    scheduledInstallDays?: DayOfWeek[];
    /**
     * Update schedule type. Possible values are: updateOutsideOfActiveHours, alwaysUpdate, updateDuringTimeWindows,
     * updateOutsideOfTimeWindows.
     */
    updateScheduleType?: IosSoftwareUpdateScheduleType;
    // UTC Time Offset indicated in minutes
    utcTimeOffsetInMinutes?: NullableOption<number>;
}
export interface MacOSCertificateProfileBase extends DeviceConfiguration {
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validity Period.
    certificateValidityPeriodValue?: number;
    // Certificate renewal threshold percentage.
    renewalThresholdPercentage?: number;
    /**
     * Certificate Subject Alternative Name Type. Possible values are: none, emailAddress, userPrincipalName,
     * customAzureADAttribute, domainNameService, universalResourceIdentifier.
     */
    subjectAlternativeNameType?: NullableOption<SubjectAlternativeNameType>;
    /**
     * Certificate Subject Name Format. Possible values are: commonName, commonNameAsEmail, custom, commonNameIncludingEmail,
     * commonNameAsIMEI, commonNameAsSerialNumber.
     */
    subjectNameFormat?: AppleSubjectNameFormat;
}
export interface MacOSCompliancePolicy extends DeviceCompliancePolicy {
    /**
     * MDATP Require Mobile Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable,
     * secured, low, medium, high, notSet.
     */
    advancedThreatProtectionRequiredSecurityLevel?: DeviceThreatProtectionLevel;
    // 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;
    /**
     * System and Privacy setting that determines which download locations apps can be run from on a macOS device. Possible
     * values are: notConfigured, macAppStore, macAppStoreAndIdentifiedDevelopers, anywhere.
     */
    gatekeeperAllowedAppSource?: MacOSGatekeeperAppSources;
    // Maximum MacOS build version.
    osMaximumBuildVersion?: NullableOption<string>;
    // Maximum MacOS version.
    osMaximumVersion?: NullableOption<string>;
    // Minimum MacOS build version.
    osMinimumBuildVersion?: 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 MacOSCustomAppConfiguration extends DeviceConfiguration {
    // Bundle id for targeting.
    bundleId?: string;
    // Configuration xml. (UTF8 encoded byte array)
    configurationXml?: string;
    // Configuration file name (.plist
    fileName?: NullableOption<string>;
}
export interface MacOSCustomConfiguration extends DeviceConfiguration {
    /**
     * Indicates the channel used to deploy the configuration profile. Available choices are DeviceChannel, UserChannel.
     * Possible values are: deviceChannel, userChannel.
     */
    deploymentChannel?: AppleDeploymentChannel;
    // Payload. (UTF8 encoded byte array)
    payload?: string;
    // Payload file name (.mobileconfig
    payloadFileName?: NullableOption<string>;
    // Name that is displayed to the user.
    payloadName?: string;
}
export interface MacOSDeviceFeaturesConfiguration extends AppleDeviceFeaturesConfigurationBase {
    // Whether to show admin host information on the login window.
    adminShowHostInfo?: boolean;
    /**
     * Gets or sets a list that maps apps to their associated domains. Application identifiers must be unique. This collection
     * can contain a maximum of 500 elements.
     */
    appAssociatedDomains?: NullableOption<MacOSAssociatedDomainsItem[]>;
    /**
     * DEPRECATED: use appAssociatedDomains instead. Gets or sets a list that maps apps to their associated domains. The key
     * should match the app's ID, and the value should be a string in the form of 'service:domain' where domain is a fully
     * qualified hostname (e.g. webcredentials:example.com). This collection can contain a maximum of 500 elements.
     */
    associatedDomains?: NullableOption<KeyValuePair[]>;
    // Whether to show the name and password dialog or a list of users on the login window.
    authorizedUsersListHidden?: boolean;
    // Whether to hide admin users in the authorized users list on the login window.
    authorizedUsersListHideAdminUsers?: boolean;
    // Whether to show only network and system users in the authorized users list on the login window.
    authorizedUsersListHideLocalUsers?: boolean;
    // Whether to hide mobile users in the authorized users list on the login window.
    authorizedUsersListHideMobileAccounts?: boolean;
    // Whether to show network users in the authorized users list on the login window.
    authorizedUsersListIncludeNetworkUsers?: boolean;
    // Whether to show other users in the authorized users list on the login window.
    authorizedUsersListShowOtherManagedUsers?: boolean;
    /**
     * List of applications, files, folders, and other items to launch when the user logs in. This collection can contain a
     * maximum of 500 elements.
     */
    autoLaunchItems?: NullableOption<MacOSLaunchItem[]>;
    // Whether the Other user will disregard use of the console special user name.
    consoleAccessDisabled?: boolean;
    // Prevents content caches from purging content to free up disk space for other apps.
    contentCachingBlockDeletion?: boolean;
    /**
     * A list of custom IP ranges content caches will use to listen for clients. This collection can contain a maximum of 500
     * elements.
     */
    contentCachingClientListenRanges?: NullableOption<IpRange[]>;
    /**
     * Determines the method in which content caching servers will listen for clients. Possible values are: notConfigured,
     * clientsInLocalNetwork, clientsWithSamePublicIpAddress, clientsInCustomLocalNetworks,
     * clientsInCustomLocalNetworksWithFallback.
     */
    contentCachingClientPolicy?: MacOSContentCachingClientPolicy;
    /**
     * The path to the directory used to store cached content. The value must be (or end with) /Library/Application
     * Support/Apple/AssetCache/Data
     */
    contentCachingDataPath?: NullableOption<string>;
    // Disables internet connection sharing.
    contentCachingDisableConnectionSharing?: boolean;
    // Enables content caching and prevents it from being disabled by the user.
    contentCachingEnabled?: boolean;
    // Forces internet connection sharing. contentCachingDisableConnectionSharing overrides this setting.
    contentCachingForceConnectionSharing?: boolean;
    // Prevent the device from sleeping if content caching is enabled.
    contentCachingKeepAwake?: boolean;
    // Enables logging of IP addresses and ports of clients that request cached content.
    contentCachingLogClientIdentities?: boolean;
    /**
     * The maximum number of bytes of disk space that will be used for the content cache. A value of 0 (default) indicates
     * unlimited disk space.
     */
    contentCachingMaxSizeBytes?: NullableOption<number>;
    // A list of IP addresses representing parent content caches.
    contentCachingParents?: NullableOption<string[]>;
    /**
     * Determines the method in which content caching servers will select parents if multiple are present. Possible values
     * are: notConfigured, roundRobin, firstAvailable, urlPathHash, random, stickyAvailable.
     */
    contentCachingParentSelectionPolicy?: MacOSContentCachingParentSelectionPolicy;
    /**
     * A list of custom IP ranges content caches will use to query for content from peers caches. This collection can contain
     * a maximum of 500 elements.
     */
    contentCachingPeerFilterRanges?: NullableOption<IpRange[]>;
    /**
     * A list of custom IP ranges content caches will use to listen for peer caches. This collection can contain a maximum of
     * 500 elements.
     */
    contentCachingPeerListenRanges?: NullableOption<IpRange[]>;
    /**
     * Determines the method in which content caches peer with other caches. Possible values are: notConfigured,
     * peersInLocalNetwork, peersWithSamePublicIpAddress, peersInCustomLocalNetworks.
     */
    contentCachingPeerPolicy?: MacOSContentCachingPeerPolicy;
    /**
     * Sets the port used for content caching. If the value is 0, a random available port will be selected. Valid values 0 to
     * 65535
     */
    contentCachingPort?: NullableOption<number>;
    /**
     * A list of custom IP ranges that Apple's content caching service should use to match clients to content caches. This
     * collection can contain a maximum of 500 elements.
     */
    contentCachingPublicRanges?: NullableOption<IpRange[]>;
    // Display content caching alerts as system notifications.
    contentCachingShowAlerts?: boolean;
    /**
     * Determines what type of content is allowed to be cached by Apple's content caching service. Possible values are:
     * notConfigured, userContentOnly, sharedContentOnly.
     */
    contentCachingType?: MacOSContentCachingType;
    // Custom text to be displayed on the login window.
    loginWindowText?: NullableOption<string>;
    // Whether the Log Out menu item on the login window will be disabled while the user is logged in.
    logOutDisabledWhileLoggedIn?: boolean;
    // Gets or sets a single sign-on extension profile.
    macOSSingleSignOnExtension?: NullableOption<MacOSSingleSignOnExtension>;
    // Whether the Power Off menu item on the login window will be disabled while the user is logged in.
    powerOffDisabledWhileLoggedIn?: boolean;
    // Whether to hide the Restart button item on the login window.
    restartDisabled?: boolean;
    // Whether the Restart menu item on the login window will be disabled while the user is logged in.
    restartDisabledWhileLoggedIn?: boolean;
    // Whether to disable the immediate screen lock functions.
    screenLockDisableImmediate?: boolean;
    // Whether to hide the Shut Down button item on the login window.
    shutDownDisabled?: boolean;
    // Whether the Shut Down menu item on the login window will be disabled while the user is logged in.
    shutDownDisabledWhileLoggedIn?: boolean;
    // Gets or sets a single sign-on extension profile. Deprecated: use MacOSSingleSignOnExtension instead.
    singleSignOnExtension?: NullableOption<SingleSignOnExtension>;
    // Whether to hide the Sleep menu item on the login window.
    sleepDisabled?: boolean;
    // PKINIT Certificate for the authentication with single sign-on extensions.
    singleSignOnExtensionPkinitCertificate?: NullableOption<MacOSCertificateProfileBase>;
}
export interface MacOSEndpointProtectionConfiguration extends DeviceConfiguration {
    /**
     * Determines whether or not to enable automatic file sample submission for Microsoft Defender Advanced Threat Protection
     * on macOS. Possible values are: notConfigured, enabled, disabled.
     */
    advancedThreatProtectionAutomaticSampleSubmission?: Enablement;
    /**
     * Determines whether or not to enable cloud-delivered protection for Microsoft Defender Advanced Threat Protection on
     * macOS. Possible values are: notConfigured, enabled, disabled.
     */
    advancedThreatProtectionCloudDelivered?: Enablement;
    /**
     * Determines whether or not to enable diagnostic and usage data collection for Microsoft Defender Advanced Threat
     * Protection on macOS. Possible values are: notConfigured, enabled, disabled.
     */
    advancedThreatProtectionDiagnosticDataCollection?: Enablement;
    /**
     * A list of file extensions to exclude from antivirus scanning for Microsoft Defender Advanced Threat Protection on
     * macOS.
     */
    advancedThreatProtectionExcludedExtensions?: NullableOption<string[]>;
    // A list of paths to files to exclude from antivirus scanning for Microsoft Defender Advanced Threat Protection on macOS.
    advancedThreatProtectionExcludedFiles?: NullableOption<string[]>;
    /**
     * A list of paths to folders to exclude from antivirus scanning for Microsoft Defender Advanced Threat Protection on
     * macOS.
     */
    advancedThreatProtectionExcludedFolders?: NullableOption<string[]>;
    // A list of process names to exclude from antivirus scanning for Microsoft Defender Advanced Threat Protection on macOS.
    advancedThreatProtectionExcludedProcesses?: NullableOption<string[]>;
    /**
     * Determines whether or not to enable real-time protection for Microsoft Defender Advanced Threat Protection on macOS.
     * Possible values are: notConfigured, enabled, disabled.
     */
    advancedThreatProtectionRealTime?: Enablement;
    // Optional. If set to true, the user can defer the enabling of FileVault until they sign out.
    fileVaultAllowDeferralUntilSignOut?: boolean;
    // Optional. When using the Defer option, if set to true, the user is not prompted to enable FileVault at sign-out.
    fileVaultDisablePromptAtSignOut?: boolean;
    // Whether FileVault should be enabled or not.
    fileVaultEnabled?: boolean;
    /**
     * Optional. A hidden personal recovery key does not appear on the user's screen during FileVault encryption, reducing the
     * risk of it ending up in the wrong hands.
     */
    fileVaultHidePersonalRecoveryKey?: boolean;
    /**
     * Required if selected recovery key type(s) include InstitutionalRecoveryKey. The DER Encoded certificate file used to
     * set an institutional recovery key.
     */
    fileVaultInstitutionalRecoveryKeyCertificate?: NullableOption<string>;
    // File name of the institutional recovery key certificate to display in UI. (.der).
    fileVaultInstitutionalRecoveryKeyCertificateFileName?: NullableOption<string>;
    /**
     * Optional. When using the Defer option, this is the maximum number of times the user can ignore prompts to enable
     * FileVault before FileVault will be required for the user to sign in. If set to -1, it will always prompt to enable
     * FileVault until FileVault is enabled, though it will allow the user to bypass enabling FileVault. Setting this to 0
     * will disable the feature.
     */
    fileVaultNumberOfTimesUserCanIgnore?: NullableOption<number>;
    /**
     * Required if selected recovery key type(s) include PersonalRecoveryKey. A short message displayed to the user that
     * explains how they can retrieve their personal recovery key.
     */
    fileVaultPersonalRecoveryKeyHelpMessage?: NullableOption<string>;
    // Optional. If selected recovery key type(s) include PersonalRecoveryKey, the frequency to rotate that key, in months.
    fileVaultPersonalRecoveryKeyRotationInMonths?: NullableOption<number>;
    /**
     * Required if FileVault is enabled, determines the type(s) of recovery key to use. . Possible values are: notConfigured,
     * institutionalRecoveryKey, personalRecoveryKey.
     */
    fileVaultSelectedRecoveryKeyTypes?: MacOSFileVaultRecoveryKeyTypes;
    /**
     * List of applications with firewall settings. Firewall settings for applications not on this list are determined by the
     * user. This collection can contain a maximum of 500 elements.
     */
    firewallApplications?: NullableOption<MacOSFirewallApplication[]>;
    // 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;
    /**
     * System and Privacy setting that determines which download locations apps can be run from on a macOS device. Possible
     * values are: notConfigured, macAppStore, macAppStoreAndIdentifiedDevelopers, anywhere.
     */
    gatekeeperAllowedAppSource?: MacOSGatekeeperAppSources;
    // If set to true, the user override for Gatekeeper will be disabled.
    gatekeeperBlockOverride?: boolean;
}
export interface MacOSWiFiConfiguration extends DeviceConfiguration {
    /**
     * Connect automatically when this network is in range. Setting this to true will skip the user prompt and automatically
     * connect the device to Wi-Fi network.
     */
    connectAutomatically?: boolean;
    /**
     * Connect when the network is not broadcasting its name (SSID). When set to true, this profile forces the device to
     * connect to a network that doesn't broadcast its SSID to all devices.
     */
    connectWhenNetworkNameIsHidden?: boolean;
    // Network Name
    networkName?: string;
    // This is the pre-shared key for WPA Personal Wi-Fi network.
    preSharedKey?: NullableOption<string>;
    /**
     * URL of the proxy server automatic configuration script when automatic configuration is selected. This URL is typically
     * the location of PAC (Proxy Auto Configuration) file.
     */
    proxyAutomaticConfigurationUrl?: NullableOption<string>;
    // IP Address or DNS hostname of the proxy server when manual configuration is selected.
    proxyManualAddress?: NullableOption<string>;
    // Port of the proxy server when manual configuration is selected.
    proxyManualPort?: NullableOption<number>;
    // Proxy Type for this Wi-Fi connection. Possible values are: none, manual, automatic.
    proxySettings?: WiFiProxySetting;
    // This is the name of the Wi-Fi network that is broadcast to all devices.
    ssid?: string;
    /**
     * Indicates whether Wi-Fi endpoint uses an EAP based security type. Possible values are: open, wpaPersonal,
     * wpaEnterprise, wep, wpa2Personal, wpa2Enterprise.
     */
    wiFiSecurityType?: WiFiSecurityType;
}
export interface MacOSEnterpriseWiFiConfiguration extends MacOSWiFiConfiguration {
    /**
     * Authentication Method when EAP Type is configured to PEAP or EAP-TTLS. Possible values are: certificate,
     * usernameAndPassword, derivedCredential.
     */
    authenticationMethod?: NullableOption<WiFiAuthenticationMethod>;
    /**
     * EAP-FAST Configuration Option when EAP-FAST is the selected EAP Type. Possible values are: noProtectedAccessCredential,
     * useProtectedAccessCredential, useProtectedAccessCredentialAndProvision,
     * useProtectedAccessCredentialAndProvisionAnonymously.
     */
    eapFastConfiguration?: NullableOption<EapFastConfiguration>;
    /**
     * Extensible Authentication Protocol (EAP). Indicates the type of EAP protocol set on the Wi-Fi endpoint (router).
     * Possible values are: eapTls, leap, eapSim, eapTtls, peap, eapFast, teap.
     */
    eapType?: EapType;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is EAP-TTLS and Authenticationmethod is Username and
     * Password. Possible values are: unencryptedPassword, challengeHandshakeAuthenticationProtocol, microsoftChap,
     * microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForEapTtls?: NullableOption<NonEapAuthenticationMethodForEapTtlsType>;
    /**
     * Enable identity privacy (Outer Identity) when EAP Type is configured to EAP-TTLS, EAP-FAST or PEAP. This property masks
     * usernames with the text you enter. For example, if you use 'anonymous', each user that authenticates with this Wi-Fi
     * connection using their real username is displayed as 'anonymous'.
     */
    outerIdentityPrivacyTemporaryValue?: NullableOption<string>;
    /**
     * Trusted server certificate names when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. This is the common name used
     * in the certificates issued by your trusted certificate authority (CA). If you provide this information, you can bypass
     * the dynamic trust dialog that is displayed on end users devices when they connect to this Wi-Fi network.
     */
    trustedServerCertificateNames?: NullableOption<string[]>;
    /**
     * Identity Certificate for client authentication when EAP Type is configured to EAP-TLS, EAP-TTLS (with Certificate
     * Authentication), or PEAP (with Certificate Authentication).
     */
    identityCertificateForClientAuthentication?: NullableOption<MacOSCertificateProfileBase>;
    // Trusted Root Certificate for Server Validation when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP.
    rootCertificateForServerValidation?: NullableOption<MacOSTrustedRootCertificate>;
    /**
     * Trusted Root Certificates for Server Validation when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. If you
     * provide this value you do not need to provide trustedServerCertificateNames, and vice versa. This collection can
     * contain a maximum of 500 elements.
     */
    rootCertificatesForServerValidation?: NullableOption<MacOSTrustedRootCertificate[]>;
}
export interface MacOSTrustedRootCertificate extends DeviceConfiguration {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    // Trusted Root Certificate.
    trustedRootCertificate?: string;
}
export interface MacOSExtensionsConfiguration extends DeviceConfiguration {
    // All kernel extensions validly signed by the team identifiers in this list will be allowed to load.
    kernelExtensionAllowedTeamIdentifiers?: NullableOption<string[]>;
    // If set to true, users can approve additional kernel extensions not explicitly allowed by configurations profiles.
    kernelExtensionOverridesAllowed?: boolean;
    // A list of kernel extensions that will be allowed to load. . This collection can contain a maximum of 500 elements.
    kernelExtensionsAllowed?: NullableOption<MacOSKernelExtension[]>;
    // Gets or sets a list of allowed macOS system extensions. This collection can contain a maximum of 500 elements.
    systemExtensionsAllowed?: NullableOption<MacOSSystemExtension[]>;
    /**
     * Gets or sets a list of allowed team identifiers. Any system extension signed with any of the specified team identifiers
     * will be approved.
     */
    systemExtensionsAllowedTeamIdentifiers?: NullableOption<string[]>;
    // Gets or sets a list of allowed macOS system extension types. This collection can contain a maximum of 500 elements.
    systemExtensionsAllowedTypes?: NullableOption<MacOSSystemExtensionTypeMapping[]>;
    /**
     * Gets or sets whether to allow the user to approve additional system extensions not explicitly allowed by configuration
     * profiles.
     */
    systemExtensionsBlockOverride?: boolean;
}
export interface MacOSGeneralDeviceConfiguration extends DeviceConfiguration {
    /**
     * When TRUE, activation lock is allowed when the devices is in the supervised mode. When FALSE, activation lock is not
     * allowed. Default is false.
     */
    activationLockWhenSupervisedAllowed?: boolean;
    // Yes prevents users from adding friends to Game Center. Available for devices running macOS versions 10.13 and later.
    addingGameCenterFriendsBlocked?: boolean;
    // Indicates whether or not to allow AirDrop.
    airDropBlocked?: boolean;
    // Indicates whether or to block users from unlocking their Mac with Apple Watch.
    appleWatchBlockAutoUnlock?: boolean;
    // Indicates whether or not to block the user from accessing the camera of the device.
    cameraBlocked?: boolean;
    /**
     * Indicates whether or not to allow remote screen observation by Classroom app. Requires MDM enrollment via Apple School
     * Manager or Apple Business Manager.
     */
    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. Requires MDM enrollment via Apple School Manager or Apple Business Manager.
     */
    classroomAppForceUnpromptedScreenObservation?: boolean;
    /**
     * Indicates whether or not to automatically give permission to the teacher's requests, without prompting the student.
     * Requires MDM enrollment via Apple School Manager or Apple Business Manager.
     */
    classroomForceAutomaticallyJoinClasses?: boolean;
    /**
     * Indicates whether a student enrolled in an unmanaged course via Classroom will be required to request permission from
     * the teacher when attempting to leave the course. Requires MDM enrollment via Apple School Manager or Apple Business
     * Manager.
     */
    classroomForceRequestPermissionToLeaveClasses?: boolean;
    /**
     * Indicates whether or not to allow the teacher to lock apps or the device without prompting the student. Requires MDM
     * enrollment via Apple School Manager or Apple Business Manager.
     */
    classroomForceUnpromptedAppAndDeviceLock?: boolean;
    // 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 content caching.
    contentCachingBlocked?: boolean;
    // Indicates whether or not to block definition lookup.
    definitionLookupBlocked?: boolean;
    // An email address lacking a suffix that matches any of these strings will be considered out-of-domain.
    emailInDomainSuffixes?: NullableOption<string[]>;
    /**
     * TRUE disables the reset option on supervised devices. FALSE enables the reset option on supervised devices. Available
     * for devices running macOS versions 12.0 and later.
     */
    eraseContentAndSettingsBlocked?: boolean;
    /**
     * Yes disables Game Center, and the Game Center icon is removed from the Home screen. Available for devices running macOS
     * versions 10.13 and later.
     */
    gameCenterBlocked?: boolean;
    /**
     * Indicates whether or not to block the user from continuing work that they started on a MacOS device on another iOS or
     * MacOS device (MacOS 10.15 or later).
     */
    iCloudBlockActivityContinuation?: boolean;
    // Indicates whether or not to block iCloud from syncing contacts.
    iCloudBlockAddressBook?: boolean;
    // Indicates whether or not to block iCloud from syncing bookmarks.
    iCloudBlockBookmarks?: boolean;
    // Indicates whether or not to block iCloud from syncing calendars.
    iCloudBlockCalendar?: boolean;
    // Indicates whether or not to block iCloud document sync.
    iCloudBlockDocumentSync?: boolean;
    // Indicates whether or not to block iCloud from syncing mail.
    iCloudBlockMail?: boolean;
    // Indicates whether or not to block iCloud from syncing notes.
    iCloudBlockNotes?: boolean;
    // Indicates whether or not to block iCloud Photo Library.
    iCloudBlockPhotoLibrary?: boolean;
    // Indicates whether or not to block iCloud from syncing reminders.
    iCloudBlockReminders?: boolean;
    /**
     * When TRUE the synchronization of cloud desktop and documents is blocked. When FALSE, synchronization of the cloud
     * desktop and documents are allowed. Available for devices running macOS 10.12.4 and later.
     */
    iCloudDesktopAndDocumentsBlocked?: boolean;
    /**
     * iCloud private relay is an iCloud+ service that prevents networks and servers from monitoring a person's activity
     * across the internet. By blocking iCloud private relay, Apple will not encrypt the traffic leaving the device. Available
     * for devices running macOS 12 and later.
     */
    iCloudPrivateRelayBlocked?: boolean;
    // Indicates whether or not to block files from being transferred using iTunes.
    iTunesBlockFileSharing?: boolean;
    // Indicates whether or not to block Music service and revert Music app to classic mode.
    iTunesBlockMusicService?: boolean;
    // Indicates whether or not to block the user from using dictation input.
    keyboardBlockDictation?: boolean;
    // Indicates whether or not iCloud keychain synchronization is blocked (macOS 10.12 and later).
    keychainBlockCloudSync?: boolean;
    /**
     * TRUE prevents multiplayer gaming when using Game Center. FALSE allows multiplayer gaming when using Game Center.
     * Available for devices running macOS versions 10.13 and later.
     */
    multiplayerGamingBlocked?: boolean;
    // Indicates whether or not to block sharing passwords with the AirDrop passwords feature.
    passwordBlockAirDropSharing?: boolean;
    // Indicates whether or not to block the AutoFill Passwords feature.
    passwordBlockAutoFill?: boolean;
    // Indicates whether or not to block fingerprint unlock.
    passwordBlockFingerprintUnlock?: boolean;
    // Indicates whether or not to allow passcode modification.
    passwordBlockModification?: boolean;
    // Indicates whether or not to block requesting passwords from nearby devices.
    passwordBlockProximityRequests?: boolean;
    // Block simple passwords.
    passwordBlockSimple?: boolean;
    // Number of days before the password expires.
    passwordExpirationDays?: NullableOption<number>;
    // The number of allowed failed attempts to enter the passcode at the device's lock screen. Valid values 2 to 11
    passwordMaximumAttemptCount?: 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>;
    // The number of minutes before the login is reset after the maximum number of unsuccessful login attempts is reached.
    passwordMinutesUntilFailedLoginReset?: 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;
    // List of privacy preference policy controls. This collection can contain a maximum of 10000 elements.
    privacyAccessControls?: NullableOption<MacOSPrivacyAccessControlItem[]>;
    // Indicates whether or not to block the user from using Auto fill in Safari.
    safariBlockAutofill?: boolean;
    // Indicates whether or not to block the user from taking Screenshots.
    screenCaptureBlocked?: boolean;
    /**
     * Specify the number of days (1-90) to delay visibility of major OS software updates. Available for devices running macOS
     * versions 11.3 and later. Valid values 0 to 90
     */
    softwareUpdateMajorOSDeferredInstallDelayInDays?: NullableOption<number>;
    /**
     * Specify the number of days (1-90) to delay visibility of minor OS software updates. Available for devices running macOS
     * versions 11.3 and later. Valid values 0 to 90
     */
    softwareUpdateMinorOSDeferredInstallDelayInDays?: NullableOption<number>;
    /**
     * Specify the number of days (1-90) to delay visibility of non-OS software updates. Available for devices running macOS
     * versions 11.3 and later. Valid values 0 to 90
     */
    softwareUpdateNonOSDeferredInstallDelayInDays?: NullableOption<number>;
    // Sets how many days a software update will be delyed for a supervised device. Valid values 0 to 90
    softwareUpdatesEnforcedDelayInDays?: NullableOption<number>;
    // Indicates whether or not to block Spotlight from returning any results from an Internet search.
    spotlightBlockInternetResults?: boolean;
    /**
     * Maximum hours after which the user must enter their password to unlock the device instead of using Touch ID. Available
     * for devices running macOS 12 and later. Valid values 0 to 2147483647
     */
    touchIdTimeoutInHours?: NullableOption<number>;
    /**
     * Determines whether to delay OS and/or app updates for macOS. Possible values are: none, delayOSUpdateVisibility,
     * delayAppUpdateVisibility, unknownFutureValue, delayMajorOsUpdateVisibility.
     */
    updateDelayPolicy?: NullableOption<MacOSSoftwareUpdateDelayPolicy>;
    /**
     * TRUE prevents the wallpaper from being changed. FALSE allows the wallpaper to be changed. Available for devices running
     * macOS versions 10.13 and later.
     */
    wallpaperModificationBlocked?: boolean;
}
export interface MacOSImportedPFXCertificateProfile extends MacOSCertificateProfileBase {
    /**
     * Intended Purpose of the Certificate Profile - which could be Unassigned, SmimeEncryption, SmimeSigning etc. Possible
     * values are: unassigned, smimeEncryption, smimeSigning, vpn, wifi.
     */
    intendedPurpose?: IntendedPurpose;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface MacOSPkcsCertificateProfile extends MacOSCertificateProfileBase {
    // AllowAllAppsAccess setting
    allowAllAppsAccess?: NullableOption<boolean>;
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    // PKCS certificate template name.
    certificateTemplateName?: string;
    // PKCS certification authority FQDN.
    certificationAuthority?: string;
    // PKCS certification authority Name.
    certificationAuthorityName?: string;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // Format string that defines the subject alternative name.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Format string that defines the subject name. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface MacOSScepCertificateProfile extends MacOSCertificateProfileBase {
    // AllowAllAppsAccess setting
    allowAllAppsAccess?: NullableOption<boolean>;
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
    extendedKeyUsages?: ExtendedKeyUsage[];
    // SCEP Hash Algorithm. Possible values are: sha1, sha2.
    hashAlgorithm?: NullableOption<HashAlgorithms>;
    // SCEP Key Size. Possible values are: size1024, size2048, size4096.
    keySize?: KeySize;
    // SCEP Key Usage. Possible values are: keyEncipherment, digitalSignature.
    keyUsage?: KeyUsages;
    // SCEP Server Url(s).
    scepServerUrls?: NullableOption<string[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
    // Trusted Root Certificate.
    rootCertificate?: NullableOption<MacOSTrustedRootCertificate>;
}
export interface MacOSSoftwareUpdateCategorySummary extends Entity {
    // The device ID.
    deviceId?: NullableOption<string>;
    // The name of the report
    displayName?: string;
    // Number of failed updates on the device
    failedUpdateCount?: number;
    // Last date time the report for this device was updated.
    lastUpdatedDateTime?: string;
    // Number of successful updates on the device
    successfulUpdateCount?: number;
    // Number of total updates on the device
    totalUpdateCount?: number;
    // Software update type. Possible values are: critical, configurationDataFile, firmware, other.
    updateCategory?: MacOSSoftwareUpdateCategory;
    // The user ID.
    userId?: NullableOption<string>;
    // Summary of the update states.
    updateStateSummaries?: NullableOption<MacOSSoftwareUpdateStateSummary[]>;
}
export interface MacOSSoftwareUpdateStateSummary extends Entity {
    // Human readable name of the software update
    displayName?: string;
    // Last date time the report for this device and product key was updated.
    lastUpdatedDateTime?: string;
    // Product key of the software update.
    productKey?: NullableOption<string>;
    /**
     * State of the software update. Possible values are: success, downloading, downloaded, installing, idle, available,
     * scheduled, downloadFailed, downloadInsufficientSpace, downloadInsufficientPower, downloadInsufficientNetwork,
     * installInsufficientSpace, installInsufficientPower, installFailed, commandFailed.
     */
    state?: MacOSSoftwareUpdateState;
    // Software update category. Possible values are: critical, configurationDataFile, firmware, other.
    updateCategory?: MacOSSoftwareUpdateCategory;
    // Version of the software update
    updateVersion?: NullableOption<string>;
}
export interface MacOSSoftwareUpdateConfiguration extends DeviceConfiguration {
    /**
     * Update behavior for all other updates. Possible values are: notConfigured, default, downloadOnly, installASAP,
     * notifyOnly, installLater.
     */
    allOtherUpdateBehavior?: MacOSSoftwareUpdateBehavior;
    /**
     * Update behavior for configuration data file updates. Possible values are: notConfigured, default, downloadOnly,
     * installASAP, notifyOnly, installLater.
     */
    configDataUpdateBehavior?: MacOSSoftwareUpdateBehavior;
    /**
     * Update behavior for critical updates. Possible values are: notConfigured, default, downloadOnly, installASAP,
     * notifyOnly, installLater.
     */
    criticalUpdateBehavior?: MacOSSoftwareUpdateBehavior;
    // Custom Time windows when updates will be allowed or blocked. This collection can contain a maximum of 20 elements.
    customUpdateTimeWindows?: NullableOption<CustomUpdateTimeWindow[]>;
    /**
     * Update behavior for firmware updates. Possible values are: notConfigured, default, downloadOnly, installASAP,
     * notifyOnly, installLater.
     */
    firmwareUpdateBehavior?: MacOSSoftwareUpdateBehavior;
    /**
     * The maximum number of times the system allows the user to postpone an update before it’s installed. Supported values: 0
     * - 366. Valid values 0 to 365
     */
    maxUserDeferralsCount?: NullableOption<number>;
    /**
     * The scheduling priority for downloading and preparing the requested update. Default: Low. Possible values: Null, Low,
     * High. Possible values are: low, high, unknownFutureValue.
     */
    priority?: NullableOption<MacOSPriority>;
    // Update schedule type. Possible values are: alwaysUpdate, updateDuringTimeWindows, updateOutsideOfTimeWindows.
    updateScheduleType?: MacOSSoftwareUpdateScheduleType;
    // Minutes indicating UTC offset for each update time window
    updateTimeWindowUtcOffsetInMinutes?: NullableOption<number>;
}
export interface MacOSVpnConfiguration extends AppleVpnConfiguration {
    // Identity certificate for client authentication when authentication method is certificate.
    identityCertificate?: NullableOption<MacOSCertificateProfileBase>;
}
export interface MacOSWiredNetworkConfiguration extends DeviceConfiguration {
    /**
     * Authentication Method when EAP Type is configured to PEAP or EAP-TTLS. Possible values are: certificate,
     * usernameAndPassword, derivedCredential.
     */
    authenticationMethod?: NullableOption<WiFiAuthenticationMethod>;
    /**
     * EAP-FAST Configuration Option when EAP-FAST is the selected EAP Type. Possible values are: noProtectedAccessCredential,
     * useProtectedAccessCredential, useProtectedAccessCredentialAndProvision,
     * useProtectedAccessCredentialAndProvisionAnonymously.
     */
    eapFastConfiguration?: NullableOption<EapFastConfiguration>;
    /**
     * Extensible Authentication Protocol (EAP). Indicates the type of EAP protocol set on the wired network. Possible values
     * are: eapTls, leap, eapSim, eapTtls, peap, eapFast, teap.
     */
    eapType?: EapType;
    /**
     * Enable identity privacy (Outer Identity) when EAP Type is configured to EAP-TTLS, EAP-FAST or PEAP. This property masks
     * usernames with the text you enter. For example, if you use 'anonymous', each user that authenticates with this wired
     * network using their real username is displayed as 'anonymous'.
     */
    enableOuterIdentityPrivacy?: NullableOption<string>;
    /**
     * Network interface. Possible values are: anyEthernet, firstActiveEthernet, secondActiveEthernet, thirdActiveEthernet,
     * firstEthernet, secondEthernet, thirdEthernet.
     */
    networkInterface?: WiredNetworkInterface;
    // Network Name
    networkName?: string;
    /**
     * Non-EAP Method for Authentication (Inner Identity) when EAP Type is EAP-TTLS and Authenticationmethod is Username and
     * Password. Possible values are: unencryptedPassword, challengeHandshakeAuthenticationProtocol, microsoftChap,
     * microsoftChapVersionTwo.
     */
    nonEapAuthenticationMethodForEapTtls?: NullableOption<NonEapAuthenticationMethodForEapTtlsType>;
    /**
     * Trusted server certificate names when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. This is the common name used
     * in the certificates issued by your trusted certificate authority (CA). If you provide this information, you can bypass
     * the dynamic trust dialog that is displayed on end users devices when they connect to this wired network.
     */
    trustedServerCertificateNames?: NullableOption<string[]>;
    /**
     * Identity Certificate for client authentication when EAP Type is configured to EAP-TLS, EAP-TTLS (with Certificate
     * Authentication), or PEAP (with Certificate Authentication).
     */
    identityCertificateForClientAuthentication?: NullableOption<MacOSCertificateProfileBase>;
    // Trusted Root Certificate for Server Validation when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP.
    rootCertificateForServerValidation?: NullableOption<MacOSTrustedRootCertificate>;
}
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: notConfigured, 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 whether to auto connect new non-admin Azure AD accounts to pre-configured candidate local accounts. Possible
     * values are: notConfigured, enabled, disabled.
     */
    fastFirstSignIn?: Enablement;
    /**
     * 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 whether local storage is allowed on a shared PC. Possible values are: notConfigured, enabled, disabled.
    localStorage?: Enablement;
    // Specifies the daily start time of maintenance hour.
    maintenanceStartTime?: NullableOption<string>;
    // Disables the account manager for shared PC mode. Possible values are: notConfigured, enabled, disabled.
    setAccountManager?: Enablement;
    /**
     * Specifies whether the default shared PC education environment policies should be enabled/disabled/not configured. For
     * Windows 10 RS2 and later, this policy will be applied without setting Enabled to true. Possible values are:
     * notConfigured, enabled, disabled.
     */
    setEduPolicies?: Enablement;
    /**
     * Specifies whether the default shared PC power policies should be enabled/disabled. Possible values are: notConfigured,
     * enabled, disabled.
     */
    setPowerPolicies?: Enablement;
    /**
     * Specifies the requirement to sign in whenever the device wakes up from sleep mode. Possible values are: notConfigured,
     * enabled, disabled.
     */
    signInOnResume?: Enablement;
}
export interface UnsupportedDeviceConfiguration extends DeviceConfiguration {
    // Details describing why the entity is unsupported. This collection can contain a maximum of 1000 elements.
    details?: NullableOption<UnsupportedDeviceConfigurationDetail[]>;
    // The type of entity that would be returned otherwise.
    originalEntityTypeName?: NullableOption<string>;
}
export interface WindowsCertificateProfileBase extends DeviceConfiguration {
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validity Period
    certificateValidityPeriodValue?: number;
    /**
     * Key Storage Provider (KSP). Possible values are: useTpmKspOtherwiseUseSoftwareKsp, useTpmKspOtherwiseFail,
     * usePassportForWorkKspOtherwiseFail, useSoftwareKsp.
     */
    keyStorageProvider?: KeyStorageProviderOption;
    // Certificate renewal threshold percentage. Valid values 1 to 99
    renewalThresholdPercentage?: number;
    /**
     * Certificate Subject Alternative Name Type. Possible values are: none, emailAddress, userPrincipalName,
     * customAzureADAttribute, domainNameService, universalResourceIdentifier.
     */
    subjectAlternativeNameType?: NullableOption<SubjectAlternativeNameType>;
    /**
     * Certificate Subject Name Format. Possible values are: commonName, commonNameIncludingEmail, commonNameAsEmail, custom,
     * commonNameAsIMEI, commonNameAsSerialNumber, commonNameAsAadDeviceId, commonNameAsIntuneDeviceId,
     * commonNameAsDurableDeviceId.
     */
    subjectNameFormat?: SubjectNameFormat;
}
// tslint:disable-next-line: no-empty-interface
export interface Windows10CertificateProfileBase extends WindowsCertificateProfileBase {}
export interface Windows10CompliancePolicy extends DeviceCompliancePolicy {
    // Require active firewall on Windows devices.
    activeFirewallRequired?: boolean;
    /**
     * Require any AntiSpyware solution registered with Windows Decurity Center to be on and monitoring (e.g. Symantec,
     * Windows Defender).
     */
    antiSpywareRequired?: boolean;
    /**
     * Require any Antivirus solution registered with Windows Decurity Center to be on and monitoring (e.g. Symantec, Windows
     * Defender).
     */
    antivirusRequired?: boolean;
    // 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 to consider SCCM Compliance state into consideration for Intune Compliance State.
    configurationManagerComplianceRequired?: boolean;
    // Require Windows Defender Antimalware on Windows devices.
    defenderEnabled?: boolean;
    // Require Windows Defender Antimalware minimum version on Windows devices.
    defenderVersion?: NullableOption<string>;
    // Not yet documented
    deviceCompliancePolicyScript?: NullableOption<DeviceCompliancePolicyScript>;
    // Require that devices have enabled device threat protection.
    deviceThreatProtectionEnabled?: boolean;
    /**
     * Require Device Threat Protection minimum risk level to report noncompliance. Possible values are: unavailable, secured,
     * low, medium, high, notSet.
     */
    deviceThreatProtectionRequiredSecurityLevel?: DeviceThreatProtectionLevel;
    /**
     * Require devices to be reported as healthy by Windows Device Health Attestation - early launch antimalware driver is
     * enabled.
     */
    earlyLaunchAntiMalwareDriverEnabled?: boolean;
    /**
     * When TRUE, indicates that Firmware protection is required to be reported as healthy by Microsoft Azure Attestion. When
     * FALSE, indicates that Firmware protection is not required to be reported as healthy. Devices that support either
     * Dynamic Root of Trust for Measurement (DRTM) or Firmware Attack Surface Reduction (FASR) will report compliant for this
     * setting. Default value is FALSE.
     */
    firmwareProtectionEnabled?: boolean;
    /**
     * When TRUE, indicates that Kernel Direct Memory Access (DMA) protection is required to be reported as healthy by
     * Microsoft Azure Attestion. When FALSE, indicates that Kernel DMA Protection is not required to be reported as healthy.
     * Default value is FALSE.
     */
    kernelDmaProtectionEnabled?: boolean;
    /**
     * When TRUE, indicates that Memory Integrity as known as Hypervisor-protected Code Integrity (HVCI) or Hypervisor
     * Enforced Code Integrity protection is required to be reported as healthy by Microsoft Azure Attestion. When FALSE,
     * indicates that Memory Integrity Protection is not required to be reported as healthy. Default value is FALSE.
     */
    memoryIntegrityEnabled?: 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 Windows Defender Antimalware Real-Time Protection on Windows devices.
    rtpEnabled?: boolean;
    // Require devices to be reported as healthy by Windows Device Health Attestation - secure boot is enabled.
    secureBootEnabled?: boolean;
    // Require Windows Defender Antimalware Signature to be up to date on Windows devices.
    signatureOutOfDate?: boolean;
    // Require encryption on windows devices.
    storageRequireEncryption?: boolean;
    // Require Trusted Platform Module(TPM) to be present.
    tpmRequired?: boolean;
    // The valid operating system build ranges on Windows devices. This collection can contain a maximum of 10000 elements.
    validOperatingSystemBuildRanges?: NullableOption<OperatingSystemVersionRange[]>;
    /**
     * When TRUE, indicates that Virtualization-based Security is required to be reported as healthy by Microsoft Azure
     * Attestion. When FALSE, indicates that Virtualization-based Security is not required to be reported as healthy. Default
     * value is FALSE.
     */
    virtualizationBasedSecurityEnabled?: boolean;
}
export interface Windows10CustomConfiguration extends DeviceConfiguration {
    // OMA settings. This collection can contain a maximum of 1000 elements.
    omaSettings?: NullableOption<OmaSetting[]>;
}
export interface Windows10DeviceFirmwareConfigurationInterface extends DeviceConfiguration {
    // Defines whether a user is allowed to enable Bluetooth. Possible values are: notConfigured, enabled, disabled.
    bluetooth?: Enablement;
    /**
     * Defines whether a user is allowed to boot from built-in network adapters. Possible values are: notConfigured, enabled,
     * disabled.
     */
    bootFromBuiltInNetworkAdapters?: Enablement;
    // Defines whether a user is allowed to boot from external media. Possible values are: notConfigured, enabled, disabled.
    bootFromExternalMedia?: Enablement;
    // Defines whether built-in cameras are enabled. Possible values are: notConfigured, enabled, disabled.
    cameras?: Enablement;
    // Defines the permission level granted to users to change UEFI settings. Possible values are: notConfiguredOnly, none.
    changeUefiSettingsPermission?: ChangeUefiSettingsPermission;
    // Defines whether a user is allowed to enable Front Camera. Possible values are: notConfigured, enabled, disabled.
    frontCamera?: Enablement;
    // Defines whether a user is allowed to enable Infrared camera. Possible values are: notConfigured, enabled, disabled.
    infraredCamera?: Enablement;
    // Defines whether a user is allowed to enable Microphone. Possible values are: notConfigured, enabled, disabled.
    microphone?: Enablement;
    // Defines whether built-in microphones or speakers are enabled. Possible values are: notConfigured, enabled, disabled.
    microphonesAndSpeakers?: Enablement;
    /**
     * Defines whether a user is allowed to enable Near Field Communication. Possible values are: notConfigured, enabled,
     * disabled.
     */
    nearFieldCommunication?: Enablement;
    /**
     * Defines whether built-in radios e.g. WIFI, NFC, Bluetooth, are enabled. Possible values are: notConfigured, enabled,
     * disabled.
     */
    radios?: Enablement;
    // Defines whether a user is allowed to enable rear camera. Possible values are: notConfigured, enabled, disabled.
    rearCamera?: Enablement;
    // Defines whether a user is allowed to enable SD Card Port. Possible values are: notConfigured, enabled, disabled.
    sdCard?: Enablement;
    /**
     * Defines whether a user is allowed to enable Simultaneous MultiThreading. Possible values are: notConfigured, enabled,
     * disabled.
     */
    simultaneousMultiThreading?: Enablement;
    // Defines whether a user is allowed to enable USB Type A Port. Possible values are: notConfigured, enabled, disabled.
    usbTypeAPort?: Enablement;
    // Defines whether CPU and IO virtualization is enabled. Possible values are: notConfigured, enabled, disabled.
    virtualizationOfCpuAndIO?: Enablement;
    // Defines whether a user is allowed to enable Wake on LAN. Possible values are: notConfigured, enabled, disabled.
    wakeOnLAN?: Enablement;
    // Defines whether a user is allowed to enable Wake On Power. Possible values are: notConfigured, enabled, disabled.
    wakeOnPower?: Enablement;
    // Defines whether a user is allowed to enable WiFi. Possible values are: notConfigured, enabled, disabled.
    wiFi?: Enablement;
    /**
     * Defines whether a user is allowed to enable Windows Platform Binary Table. Possible values are: notConfigured, enabled,
     * disabled.
     */
    windowsPlatformBinaryTable?: Enablement;
    /**
     * Defines whether a user is allowed to enable Wireless Wide Area Network. Possible values are: notConfigured, enabled,
     * disabled.
     */
    wirelessWideAreaNetwork?: Enablement;
}
export interface Windows10EasEmailProfileConfiguration extends EasEmailProfileConfigurationBase {
    // Account name.
    accountName?: string;
    // Duration of email to sync. Possible values are: userDefined, oneDay, threeDays, oneWeek, twoWeeks, oneMonth, unlimited.
    durationOfEmailToSync?: EmailSyncDuration;
    /**
     * Email attribute that is picked from AAD and injected into this profile before installing on the device. Possible values
     * are: userPrincipalName, primarySmtpAddress.
     */
    emailAddressSource?: UserEmailSource;
    /**
     * Email sync schedule. Possible values are: userDefined, asMessagesArrive, manual, fifteenMinutes, thirtyMinutes,
     * sixtyMinutes, basedOnMyUsage.
     */
    emailSyncSchedule?: EmailSyncSchedule;
    // Exchange location that (URL) that the native mail app connects to.
    hostName?: string;
    // Indicates whether or not to use SSL.
    requireSsl?: boolean;
    // Whether or not to sync the calendar.
    syncCalendar?: boolean;
    // Whether or not to sync contacts.
    syncContacts?: boolean;
    // Whether or not to sync tasks.
    syncTasks?: boolean;
}
export interface Windows10EndpointProtectionConfiguration extends DeviceConfiguration {
    /**
     * Gets or sets whether applications inside Microsoft Defender Application Guard can access the device’s camera and
     * microphone.
     */
    applicationGuardAllowCameraMicrophoneRedirection?: NullableOption<boolean>;
    // Allow users to download files from Edge in the application guard container and save them on the host file system
    applicationGuardAllowFileSaveOnHost?: boolean;
    // 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;
    // Allow application guard to use virtual GPU
    applicationGuardAllowVirtualGPU?: 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;
    // Allows certain device level Root Certificates to be shared with the Microsoft Defender Application Guard container.
    applicationGuardCertificateThumbprints?: NullableOption<string[]>;
    // Enable Windows Defender Application Guard
    applicationGuardEnabled?: boolean;
    /**
     * Enable Windows Defender Application Guard for newer Windows builds. Possible values are: notConfigured, enabledForEdge,
     * enabledForOffice, enabledForEdgeAndOffice.
     */
    applicationGuardEnabledOptions?: ApplicationGuardEnabledOptions;
    /**
     * 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 allow standard users to enable encrpytion during Azure AD Join.
    bitLockerAllowStandardUserEncryption?: boolean;
    // 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 Fixed Drive Policy.
    bitLockerFixedDrivePolicy?: NullableOption<BitLockerFixedDrivePolicy>;
    /**
     * This setting initiates a client-driven recovery password rotation after an OS drive recovery (either by using bootmgr
     * or WinRE). Possible values are: notConfigured, disabled, enabledForAzureAd, enabledForAzureAdAndHybrid.
     */
    bitLockerRecoveryPasswordRotation?: BitLockerRecoveryPasswordRotationType;
    // BitLocker Removable Drive Policy.
    bitLockerRemovableDrivePolicy?: NullableOption<BitLockerRemovableDrivePolicy>;
    // BitLocker System Drive Policy.
    bitLockerSystemDrivePolicy?: NullableOption<BitLockerSystemDrivePolicy>;
    // List of folder paths to be added to the list of protected folders
    defenderAdditionalGuardedFolders?: NullableOption<string[]>;
    /**
     * Value indicating the behavior of Adobe Reader from creating child processes. Possible values are: userDefined, enable,
     * auditMode, warn, notConfigured.
     */
    defenderAdobeReaderLaunchChildProcess?: DefenderProtectionType;
    /**
     * Value indicating use of advanced protection against ransomeware. Possible values are: userDefined, enable, auditMode,
     * warn, notConfigured.
     */
    defenderAdvancedRansomewareProtectionType?: DefenderProtectionType;
    // Allows or disallows Windows Defender Behavior Monitoring functionality.
    defenderAllowBehaviorMonitoring?: NullableOption<boolean>;
    /**
     * To best protect your PC, Windows Defender will send information to Microsoft about any problems it finds. Microsoft
     * will analyze that information, learn more about problems affecting you and other customers, and offer improved
     * solutions.
     */
    defenderAllowCloudProtection?: NullableOption<boolean>;
    /**
     * Allows or disallows user access to the Windows Defender UI. If disallowed, all Windows Defender notifications will also
     * be suppressed.
     */
    defenderAllowEndUserAccess?: NullableOption<boolean>;
    // Allows or disallows Windows Defender Intrusion Prevention functionality.
    defenderAllowIntrusionPreventionSystem?: NullableOption<boolean>;
    // Allows or disallows Windows Defender On Access Protection functionality.
    defenderAllowOnAccessProtection?: NullableOption<boolean>;
    // Allows or disallows Windows Defender Realtime Monitoring functionality.
    defenderAllowRealTimeMonitoring?: NullableOption<boolean>;
    // Allows or disallows scanning of archives.
    defenderAllowScanArchiveFiles?: NullableOption<boolean>;
    // Allows or disallows Windows Defender IOAVP Protection functionality.
    defenderAllowScanDownloads?: NullableOption<boolean>;
    // Allows or disallows a scanning of network files.
    defenderAllowScanNetworkFiles?: NullableOption<boolean>;
    // Allows or disallows a full scan of removable drives. During a quick scan, removable drives may still be scanned.
    defenderAllowScanRemovableDrivesDuringFullScan?: NullableOption<boolean>;
    // Allows or disallows Windows Defender Script Scanning functionality.
    defenderAllowScanScriptsLoadedInInternetExplorer?: NullableOption<boolean>;
    // List of exe files and folders to be excluded from attack surface reduction rules
    defenderAttackSurfaceReductionExcludedPaths?: NullableOption<string[]>;
    /**
     * Allows or disallows user access to the Windows Defender UI. If disallowed, all Windows Defender notifications will also
     * be suppressed.
     */
    defenderBlockEndUserAccess?: NullableOption<boolean>;
    /**
     * Value indicating the behavior of Block persistence through WMI event subscription. Possible values are: userDefined,
     * block, auditMode, warn, disable.
     */
    defenderBlockPersistenceThroughWmiType?: DefenderAttackSurfaceType;
    /**
     * This policy setting allows you to manage whether a check for new virus and spyware definitions will occur before
     * running a scan.
     */
    defenderCheckForSignaturesBeforeRunningScan?: NullableOption<boolean>;
    /**
     * Added in Windows 10, version 1709. This policy setting determines how aggressive Windows Defender Antivirus will be in
     * blocking and scanning suspicious files. Value type is integer. This feature requires the 'Join Microsoft MAPS' setting
     * enabled in order to function. Possible values are: notConfigured, high, highPlus, zeroTolerance.
     */
    defenderCloudBlockLevel?: NullableOption<DefenderCloudBlockLevelType>;
    /**
     * Added in Windows 10, version 1709. This feature allows Windows Defender Antivirus to block a suspicious file for up to
     * 60 seconds, and scan it in the cloud to make sure it's safe. Value type is integer, range is 0 - 50. This feature
     * depends on three other MAPS settings the must all be enabled- 'Configure the 'Block at First Sight' feature; 'Join
     * Microsoft MAPS'; 'Send file samples when further analysis is required'. Valid values 0 to 50
     */
    defenderCloudExtendedTimeoutInSeconds?: NullableOption<number>;
    // Time period (in days) that quarantine items will be stored on the system. Valid values 0 to 90
    defenderDaysBeforeDeletingQuarantinedMalware?: NullableOption<number>;
    // Allows an administrator to specify any valid threat severity levels and the corresponding default action ID to take.
    defenderDetectedMalwareActions?: NullableOption<DefenderDetectedMalwareActions>;
    // Allows or disallows Windows Defender Behavior Monitoring functionality.
    defenderDisableBehaviorMonitoring?: NullableOption<boolean>;
    /**
     * This policy setting allows you to configure catch-up scans for scheduled full scans. A catch-up scan is a scan that is
     * initiated because a regularly scheduled scan was missed. Usually these scheduled scans are missed because the computer
     * was turned off at the scheduled time.
     */
    defenderDisableCatchupFullScan?: NullableOption<boolean>;
    /**
     * This policy setting allows you to configure catch-up scans for scheduled quick scans. A catch-up scan is a scan that is
     * initiated because a regularly scheduled scan was missed. Usually these scheduled scans are missed because the computer
     * was turned off at the scheduled time.
     */
    defenderDisableCatchupQuickScan?: NullableOption<boolean>;
    /**
     * To best protect your PC, Windows Defender will send information to Microsoft about any problems it finds. Microsoft
     * will analyze that information, learn more about problems affecting you and other customers, and offer improved
     * solutions.
     */
    defenderDisableCloudProtection?: NullableOption<boolean>;
    // Allows or disallows Windows Defender Intrusion Prevention functionality.
    defenderDisableIntrusionPreventionSystem?: NullableOption<boolean>;
    // Allows or disallows Windows Defender On Access Protection functionality.
    defenderDisableOnAccessProtection?: NullableOption<boolean>;
    // Allows or disallows Windows Defender Realtime Monitoring functionality.
    defenderDisableRealTimeMonitoring?: NullableOption<boolean>;
    // Allows or disallows scanning of archives.
    defenderDisableScanArchiveFiles?: NullableOption<boolean>;
    // Allows or disallows Windows Defender IOAVP Protection functionality.
    defenderDisableScanDownloads?: NullableOption<boolean>;
    // Allows or disallows a scanning of network files.
    defenderDisableScanNetworkFiles?: NullableOption<boolean>;
    // Allows or disallows a full scan of removable drives. During a quick scan, removable drives may still be scanned.
    defenderDisableScanRemovableDrivesDuringFullScan?: NullableOption<boolean>;
    // Allows or disallows Windows Defender Script Scanning functionality.
    defenderDisableScanScriptsLoadedInInternetExplorer?: NullableOption<boolean>;
    /**
     * Value indicating if execution of executable content (exe, dll, ps, js, vbs, etc) should be dropped from email
     * (webmail/mail-client). Possible values are: userDefined, enable, auditMode, warn, notConfigured.
     */
    defenderEmailContentExecution?: DefenderProtectionType;
    /**
     * Value indicating if execution of executable content (exe, dll, ps, js, vbs, etc) should be dropped from email
     * (webmail/mail-client). Possible values are: userDefined, block, auditMode, warn, disable.
     */
    defenderEmailContentExecutionType?: DefenderAttackSurfaceType;
    // This policy setting allows you to enable or disable low CPU priority for scheduled scans.
    defenderEnableLowCpuPriority?: NullableOption<boolean>;
    // Allows or disallows scanning of email.
    defenderEnableScanIncomingMail?: NullableOption<boolean>;
    // Allows or disallows a full scan of mapped network drives.
    defenderEnableScanMappedNetworkDrivesDuringFullScan?: NullableOption<boolean>;
    // Xml content containing information regarding exploit protection details.
    defenderExploitProtectionXml?: NullableOption<string>;
    // Name of the file from which DefenderExploitProtectionXml was obtained.
    defenderExploitProtectionXmlFileName?: NullableOption<string>;
    // 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[]>;
    // List of paths to exe that are allowed to access protected folders
    defenderGuardedFoldersAllowedAppPaths?: NullableOption<string[]>;
    /**
     * Value indicating the behavior of protected folders. Possible values are: userDefined, enable, auditMode,
     * blockDiskModification, auditDiskModification.
     */
    defenderGuardMyFoldersType?: FolderProtectionType;
    /**
     * Value indicating the behavior of NetworkProtection. Possible values are: userDefined, enable, auditMode, warn,
     * notConfigured.
     */
    defenderNetworkProtectionType?: DefenderProtectionType;
    /**
     * Value indicating the behavior of Office applications/macros creating or launching executable content. Possible values
     * are: userDefined, enable, auditMode, warn, notConfigured.
     */
    defenderOfficeAppsExecutableContentCreationOrLaunch?: DefenderProtectionType;
    /**
     * Value indicating the behavior of Office applications/macros creating or launching executable content. Possible values
     * are: userDefined, block, auditMode, warn, disable.
     */
    defenderOfficeAppsExecutableContentCreationOrLaunchType?: DefenderAttackSurfaceType;
    /**
     * Value indicating the behavior of Office application launching child processes. Possible values are: userDefined,
     * enable, auditMode, warn, notConfigured.
     */
    defenderOfficeAppsLaunchChildProcess?: DefenderProtectionType;
    /**
     * Value indicating the behavior of Office application launching child processes. Possible values are: userDefined, block,
     * auditMode, warn, disable.
     */
    defenderOfficeAppsLaunchChildProcessType?: DefenderAttackSurfaceType;
    /**
     * Value indicating the behavior of Office applications injecting into other processes. Possible values are: userDefined,
     * enable, auditMode, warn, notConfigured.
     */
    defenderOfficeAppsOtherProcessInjection?: DefenderProtectionType;
    /**
     * Value indicating the behavior of Office applications injecting into other processes. Possible values are: userDefined,
     * block, auditMode, warn, disable.
     */
    defenderOfficeAppsOtherProcessInjectionType?: DefenderAttackSurfaceType;
    /**
     * Value indicating the behavior of Office communication applications, including Microsoft Outlook, from creating child
     * processes. Possible values are: userDefined, enable, auditMode, warn, notConfigured.
     */
    defenderOfficeCommunicationAppsLaunchChildProcess?: DefenderProtectionType;
    /**
     * Value indicating the behavior of Win32 imports from Macro code in Office. Possible values are: userDefined, enable,
     * auditMode, warn, notConfigured.
     */
    defenderOfficeMacroCodeAllowWin32Imports?: DefenderProtectionType;
    /**
     * Value indicating the behavior of Win32 imports from Macro code in Office. Possible values are: userDefined, block,
     * auditMode, warn, disable.
     */
    defenderOfficeMacroCodeAllowWin32ImportsType?: DefenderAttackSurfaceType;
    /**
     * Added in Windows 10, version 1607. Specifies the level of detection for potentially unwanted applications (PUAs).
     * Windows Defender alerts you when potentially unwanted software is being downloaded or attempts to install itself on
     * your computer. Possible values are: userDefined, enable, auditMode, warn, notConfigured.
     */
    defenderPotentiallyUnwantedAppAction?: NullableOption<DefenderProtectionType>;
    /**
     * Value indicating if credential stealing from the Windows local security authority subsystem is permitted. Possible
     * values are: userDefined, enable, auditMode, warn, notConfigured.
     */
    defenderPreventCredentialStealingType?: DefenderProtectionType;
    /**
     * Value indicating response to process creations originating from PSExec and WMI commands. Possible values are:
     * userDefined, enable, auditMode, warn, notConfigured.
     */
    defenderProcessCreation?: DefenderProtectionType;
    /**
     * Value indicating response to process creations originating from PSExec and WMI commands. Possible values are:
     * userDefined, block, auditMode, warn, disable.
     */
    defenderProcessCreationType?: DefenderAttackSurfaceType;
    // Processes to exclude from scans and real time protection.
    defenderProcessesToExclude?: NullableOption<string[]>;
    /**
     * Controls which sets of files should be monitored. Possible values are: monitorAllFiles, monitorIncomingFilesOnly,
     * monitorOutgoingFilesOnly.
     */
    defenderScanDirection?: NullableOption<DefenderRealtimeScanDirection>;
    /**
     * Represents the average CPU load factor for the Windows Defender scan (in percent). The default value is 50. Valid
     * values 0 to 100
     */
    defenderScanMaxCpuPercentage?: NullableOption<number>;
    // Selects whether to perform a quick scan or full scan. Possible values are: userDefined, disabled, quick, full.
    defenderScanType?: NullableOption<DefenderScanType>;
    /**
     * Selects the time of day that the Windows Defender quick scan should run. For example, a value of 0=12:00AM, a value of
     * 60=1:00AM, a value of 120=2:00, and so on, up to a value of 1380=11:00PM. The default value is 120
     */
    defenderScheduledQuickScanTime?: NullableOption<string>;
    /**
     * Selects the day that the Windows Defender scan should run. Possible values are: userDefined, everyday, sunday, monday,
     * tuesday, wednesday, thursday, friday, saturday, noScheduledScan.
     */
    defenderScheduledScanDay?: NullableOption<WeeklySchedule>;
    // Selects the time of day that the Windows Defender scan should run.
    defenderScheduledScanTime?: NullableOption<string>;
    /**
     * Value indicating the behavior of js/vbs executing payload downloaded from Internet. Possible values are: userDefined,
     * enable, auditMode, warn, notConfigured.
     */
    defenderScriptDownloadedPayloadExecution?: DefenderProtectionType;
    /**
     * Value indicating the behavior of js/vbs executing payload downloaded from Internet. Possible values are: userDefined,
     * block, auditMode, warn, disable.
     */
    defenderScriptDownloadedPayloadExecutionType?: DefenderAttackSurfaceType;
    /**
     * Value indicating the behavior of obfuscated js/vbs/ps/macro code. Possible values are: userDefined, enable, auditMode,
     * warn, notConfigured.
     */
    defenderScriptObfuscatedMacroCode?: DefenderProtectionType;
    /**
     * Value indicating the behavior of obfuscated js/vbs/ps/macro code. Possible values are: userDefined, block, auditMode,
     * warn, disable.
     */
    defenderScriptObfuscatedMacroCodeType?: DefenderAttackSurfaceType;
    // Indicates whether or not to block user from overriding Exploit Protection settings.
    defenderSecurityCenterBlockExploitProtectionOverride?: boolean;
    // Used to disable the display of the account protection area.
    defenderSecurityCenterDisableAccountUI?: NullableOption<boolean>;
    // Used to disable the display of the app and browser protection area.
    defenderSecurityCenterDisableAppBrowserUI?: NullableOption<boolean>;
    // Used to disable the display of the Clear TPM button.
    defenderSecurityCenterDisableClearTpmUI?: NullableOption<boolean>;
    // Used to disable the display of the family options area.
    defenderSecurityCenterDisableFamilyUI?: NullableOption<boolean>;
    // Used to disable the display of the hardware protection area.
    defenderSecurityCenterDisableHardwareUI?: NullableOption<boolean>;
    // Used to disable the display of the device performance and health area.
    defenderSecurityCenterDisableHealthUI?: NullableOption<boolean>;
    // Used to disable the display of the firewall and network protection area.
    defenderSecurityCenterDisableNetworkUI?: NullableOption<boolean>;
    /**
     * Used to disable the display of the notification area control. The user needs to either sign out and sign in or reboot
     * the computer for this setting to take effect.
     */
    defenderSecurityCenterDisableNotificationAreaUI?: NullableOption<boolean>;
    // Used to disable the display of the ransomware protection area.
    defenderSecurityCenterDisableRansomwareUI?: NullableOption<boolean>;
    // Used to disable the display of the secure boot area under Device security.
    defenderSecurityCenterDisableSecureBootUI?: NullableOption<boolean>;
    // Used to disable the display of the security process troubleshooting under Device security.
    defenderSecurityCenterDisableTroubleshootingUI?: NullableOption<boolean>;
    // Used to disable the display of the virus and threat protection area.
    defenderSecurityCenterDisableVirusUI?: NullableOption<boolean>;
    // Used to disable the display of update TPM Firmware when a vulnerable firmware is detected.
    defenderSecurityCenterDisableVulnerableTpmFirmwareUpdateUI?: NullableOption<boolean>;
    // The email address that is displayed to users.
    defenderSecurityCenterHelpEmail?: NullableOption<string>;
    // The phone number or Skype ID that is displayed to users.
    defenderSecurityCenterHelpPhone?: NullableOption<string>;
    // The help portal URL this is displayed to users.
    defenderSecurityCenterHelpURL?: NullableOption<string>;
    /**
     * Configure where to display IT contact information to end users. Possible values are: notConfigured,
     * displayInAppAndInNotifications, displayOnlyInApp, displayOnlyInNotifications.
     */
    defenderSecurityCenterITContactDisplay?: DefenderSecurityCenterITContactDisplayType;
    /**
     * Notifications to show from the displayed areas of app. Possible values are: notConfigured,
     * blockNoncriticalNotifications, blockAllNotifications.
     */
    defenderSecurityCenterNotificationsFromApp?: DefenderSecurityCenterNotificationsFromAppType;
    // The company name that is displayed to the users.
    defenderSecurityCenterOrganizationDisplayName?: NullableOption<string>;
    /**
     * Specifies the interval (in hours) that will be used to check for signatures, so instead of using the ScheduleDay and
     * ScheduleTime the check for new signatures will be set according to the interval. Valid values 0 to 24
     */
    defenderSignatureUpdateIntervalInHours?: NullableOption<number>;
    /**
     * Checks for the user consent level in Windows Defender to send data. Possible values are: sendSafeSamplesAutomatically,
     * alwaysPrompt, neverSend, sendAllSamplesAutomatically.
     */
    defenderSubmitSamplesConsentType?: NullableOption<DefenderSubmitSamplesConsentType>;
    /**
     * Value indicating response to executables that don't meet a prevalence, age, or trusted list criteria. Possible values
     * are: userDefined, enable, auditMode, warn, notConfigured.
     */
    defenderUntrustedExecutable?: DefenderProtectionType;
    /**
     * Value indicating response to executables that don't meet a prevalence, age, or trusted list criteria. Possible values
     * are: userDefined, block, auditMode, warn, disable.
     */
    defenderUntrustedExecutableType?: DefenderAttackSurfaceType;
    /**
     * Value indicating response to untrusted and unsigned processes that run from USB. Possible values are: userDefined,
     * enable, auditMode, warn, notConfigured.
     */
    defenderUntrustedUSBProcess?: DefenderProtectionType;
    /**
     * Value indicating response to untrusted and unsigned processes that run from USB. Possible values are: userDefined,
     * block, auditMode, warn, disable.
     */
    defenderUntrustedUSBProcessType?: DefenderAttackSurfaceType;
    /**
     * This property will be deprecated in May 2019 and will be replaced with property DeviceGuardSecureBootWithDMA. Specifies
     * whether Platform Security Level is enabled at next reboot.
     */
    deviceGuardEnableSecureBootWithDMA?: boolean;
    // Turns On Virtualization Based Security(VBS).
    deviceGuardEnableVirtualizationBasedSecurity?: boolean;
    // Allows the IT admin to configure the launch of System Guard. Possible values are: notConfigured, enabled, disabled.
    deviceGuardLaunchSystemGuard?: Enablement;
    /**
     * Turn on Credential Guard when Platform Security Level with Secure Boot and Virtualization Based Security are both
     * enabled. Possible values are: notConfigured, enableWithUEFILock, enableWithoutUEFILock, disable.
     */
    deviceGuardLocalSystemAuthorityCredentialGuardSettings?: DeviceGuardLocalSystemAuthorityCredentialGuardType;
    /**
     * Specifies whether Platform Security Level is enabled at next reboot. Possible values are: notConfigured, withoutDMA,
     * withDMA.
     */
    deviceGuardSecureBootWithDMA?: SecureBootWithDMAType;
    /**
     * This policy is intended to provide additional security against external DMA capable devices. It allows for more control
     * over the enumeration of external DMA capable devices incompatible with DMA Remapping/device memory isolation and
     * sandboxing. This policy only takes effect when Kernel DMA Protection is supported and enabled by the system firmware.
     * Kernel DMA Protection is a platform feature that cannot be controlled via policy or by end user. It has to be supported
     * by the system at the time of manufacturing. To check if the system supports Kernel DMA Protection, please check the
     * Kernel DMA Protection field in the Summary page of MSINFO32.exe.
     */
    dmaGuardDeviceEnumerationPolicy?: DmaGuardDeviceEnumerationPolicyType;
    // 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;
    // Configures IPSec exemptions to no exemptions
    firewallIPSecExemptionsNone?: 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>;
    // Configures the firewall rule settings. This collection can contain a maximum of 150 elements.
    firewallRules?: NullableOption<WindowsFirewallRule[]>;
    /**
     * This security setting determines which challenge/response authentication protocol is used for network logons. Possible
     * values are: lmAndNltm, lmNtlmAndNtlmV2, lmAndNtlmOnly, lmAndNtlmV2, lmNtlmV2AndNotLm, lmNtlmV2AndNotLmOrNtm.
     */
    lanManagerAuthenticationLevel?: LanManagerAuthenticationLevel;
    /**
     * If enabled,the SMB client will allow insecure guest logons. If not configured, the SMB client will reject insecure
     * guest logons.
     */
    lanManagerWorkstationDisableInsecureGuestLogons?: boolean;
    // Define a different account name to be associated with the security identifier (SID) for the account 'Administrator'.
    localSecurityOptionsAdministratorAccountName?: NullableOption<string>;
    /**
     * Define the behavior of the elevation prompt for admins in Admin Approval Mode. Possible values are: notConfigured,
     * elevateWithoutPrompting, promptForCredentialsOnTheSecureDesktop, promptForConsentOnTheSecureDesktop,
     * promptForCredentials, promptForConsent, promptForConsentForNonWindowsBinaries.
     */
    localSecurityOptionsAdministratorElevationPromptBehavior?: LocalSecurityOptionsAdministratorElevationPromptBehaviorType;
    /**
     * This security setting determines whether to allows anonymous users to perform certain activities, such as enumerating
     * the names of domain accounts and network shares.
     */
    localSecurityOptionsAllowAnonymousEnumerationOfSAMAccountsAndShares?: boolean;
    // Block PKU2U authentication requests to this device to use online identities.
    localSecurityOptionsAllowPKU2UAuthenticationRequests?: boolean;
    /**
     * Edit the default Security Descriptor Definition Language string to allow or deny users and groups to make remote calls
     * to the SAM.
     */
    localSecurityOptionsAllowRemoteCallsToSecurityAccountsManager?: NullableOption<string>;
    // UI helper boolean for LocalSecurityOptionsAllowRemoteCallsToSecurityAccountsManager entity
    localSecurityOptionsAllowRemoteCallsToSecurityAccountsManagerHelperBool?: boolean;
    // This security setting determines whether a computer can be shut down without having to log on to Windows.
    localSecurityOptionsAllowSystemToBeShutDownWithoutHavingToLogOn?: boolean;
    // Allow UIAccess apps to prompt for elevation without using the secure desktop.
    localSecurityOptionsAllowUIAccessApplicationElevation?: boolean;
    // Allow UIAccess apps to prompt for elevation without using the secure desktop.Default is enabled
    localSecurityOptionsAllowUIAccessApplicationsForSecureLocations?: boolean;
    // Prevent a portable computer from being undocked without having to log in.
    localSecurityOptionsAllowUndockWithoutHavingToLogon?: boolean;
    // Prevent users from adding new Microsoft accounts to this computer.
    localSecurityOptionsBlockMicrosoftAccounts?: boolean;
    /**
     * Enable Local accounts that are not password protected to log on from locations other than the physical device.Default
     * is enabled
     */
    localSecurityOptionsBlockRemoteLogonWithBlankPassword?: boolean;
    // Enabling this settings allows only interactively logged on user to access CD-ROM media.
    localSecurityOptionsBlockRemoteOpticalDriveAccess?: boolean;
    // Restrict installing printer drivers as part of connecting to a shared printer to admins only.
    localSecurityOptionsBlockUsersInstallingPrinterDrivers?: boolean;
    // This security setting determines whether the virtual memory pagefile is cleared when the system is shut down.
    localSecurityOptionsClearVirtualMemoryPageFile?: boolean;
    // This security setting determines whether packet signing is required by the SMB client component.
    localSecurityOptionsClientDigitallySignCommunicationsAlways?: boolean;
    /**
     * If this security setting is enabled, the Server Message Block (SMB) redirector is allowed to send plaintext passwords
     * to non-Microsoft SMB servers that do not support password encryption during authentication.
     */
    localSecurityOptionsClientSendUnencryptedPasswordToThirdPartySMBServers?: boolean;
    // App installations requiring elevated privileges will prompt for admin credentials.Default is enabled
    localSecurityOptionsDetectApplicationInstallationsAndPromptForElevation?: boolean;
    // Determines whether the Local Administrator account is enabled or disabled.
    localSecurityOptionsDisableAdministratorAccount?: boolean;
    // This security setting determines whether the SMB client attempts to negotiate SMB packet signing.
    localSecurityOptionsDisableClientDigitallySignCommunicationsIfServerAgrees?: boolean;
    // Determines if the Guest account is enabled or disabled.
    localSecurityOptionsDisableGuestAccount?: boolean;
    // This security setting determines whether packet signing is required by the SMB server component.
    localSecurityOptionsDisableServerDigitallySignCommunicationsAlways?: boolean;
    // This security setting determines whether the SMB server will negotiate SMB packet signing with clients that request it.
    localSecurityOptionsDisableServerDigitallySignCommunicationsIfClientAgrees?: boolean;
    // This security setting determines what additional permissions will be granted for anonymous connections to the computer.
    localSecurityOptionsDoNotAllowAnonymousEnumerationOfSAMAccounts?: boolean;
    // Require CTRL+ALT+DEL to be pressed before a user can log on.
    localSecurityOptionsDoNotRequireCtrlAltDel?: boolean;
    /**
     * This security setting determines if, at the next password change, the LAN Manager (LM) hash value for the new password
     * is stored. It’s not stored by default.
     */
    localSecurityOptionsDoNotStoreLANManagerHashValueOnNextPasswordChange?: boolean;
    /**
     * Define who is allowed to format and eject removable NTFS media. Possible values are: notConfigured, administrators,
     * administratorsAndPowerUsers, administratorsAndInteractiveUsers.
     */
    localSecurityOptionsFormatAndEjectOfRemovableMediaAllowedUser?: LocalSecurityOptionsFormatAndEjectOfRemovableMediaAllowedUserType;
    // Define a different account name to be associated with the security identifier (SID) for the account 'Guest'.
    localSecurityOptionsGuestAccountName?: NullableOption<string>;
    // Do not display the username of the last person who signed in on this device.
    localSecurityOptionsHideLastSignedInUser?: boolean;
    /**
     * Do not display the username of the person signing in to this device after credentials are entered and before the
     * device’s desktop is shown.
     */
    localSecurityOptionsHideUsernameAtSignIn?: boolean;
    /**
     * Configure the user information that is displayed when the session is locked. If not configured, user display name,
     * domain and username are shown. Possible values are: notConfigured, administrators, administratorsAndPowerUsers,
     * administratorsAndInteractiveUsers.
     */
    localSecurityOptionsInformationDisplayedOnLockScreen?: LocalSecurityOptionsInformationDisplayedOnLockScreenType;
    /**
     * Configure the user information that is displayed when the session is locked. If not configured, user display name,
     * domain and username are shown. Possible values are: notConfigured, userDisplayNameDomainUser, userDisplayNameOnly,
     * doNotDisplayUser.
     */
    localSecurityOptionsInformationShownOnLockScreen?: LocalSecurityOptionsInformationShownOnLockScreenType;
    // Set message text for users attempting to log in.
    localSecurityOptionsLogOnMessageText?: NullableOption<string>;
    // Set message title for users attempting to log in.
    localSecurityOptionsLogOnMessageTitle?: NullableOption<string>;
    /**
     * Define maximum minutes of inactivity on the interactive desktop’s login screen until the screen saver runs. Valid
     * values 0 to 9999
     */
    localSecurityOptionsMachineInactivityLimit?: NullableOption<number>;
    /**
     * Define maximum minutes of inactivity on the interactive desktop’s login screen until the screen saver runs. Valid
     * values 0 to 9999
     */
    localSecurityOptionsMachineInactivityLimitInMinutes?: NullableOption<number>;
    /**
     * This security setting allows a client to require the negotiation of 128-bit encryption and/or NTLMv2 session security.
     * Possible values are: none, requireNtmlV2SessionSecurity, require128BitEncryption, ntlmV2And128BitEncryption.
     */
    localSecurityOptionsMinimumSessionSecurityForNtlmSspBasedClients?: LocalSecurityOptionsMinimumSessionSecurity;
    /**
     * This security setting allows a server to require the negotiation of 128-bit encryption and/or NTLMv2 session security.
     * Possible values are: none, requireNtmlV2SessionSecurity, require128BitEncryption, ntlmV2And128BitEncryption.
     */
    localSecurityOptionsMinimumSessionSecurityForNtlmSspBasedServers?: LocalSecurityOptionsMinimumSessionSecurity;
    // Enforce PKI certification path validation for a given executable file before it is permitted to run.
    localSecurityOptionsOnlyElevateSignedExecutables?: boolean;
    /**
     * By default, this security setting restricts anonymous access to shares and pipes to the settings for named pipes that
     * can be accessed anonymously and Shares that can be accessed anonymously
     */
    localSecurityOptionsRestrictAnonymousAccessToNamedPipesAndShares?: boolean;
    /**
     * This security setting determines what happens when the smart card for a logged-on user is removed from the smart card
     * reader. Possible values are: noAction, lockWorkstation, forceLogoff, disconnectRemoteDesktopSession.
     */
    localSecurityOptionsSmartCardRemovalBehavior?: LocalSecurityOptionsSmartCardRemovalBehaviorType;
    /**
     * Define the behavior of the elevation prompt for standard users. Possible values are: notConfigured,
     * automaticallyDenyElevationRequests, promptForCredentialsOnTheSecureDesktop, promptForCredentials.
     */
    localSecurityOptionsStandardUserElevationPromptBehavior?: LocalSecurityOptionsStandardUserElevationPromptBehaviorType;
    /**
     * Enable all elevation requests to go to the interactive user's desktop rather than the secure desktop. Prompt behavior
     * policy settings for admins and standard users are used.
     */
    localSecurityOptionsSwitchToSecureDesktopWhenPromptingForElevation?: boolean;
    /**
     * Defines whether the built-in admin account uses Admin Approval Mode or runs all apps with full admin privileges.Default
     * is enabled
     */
    localSecurityOptionsUseAdminApprovalMode?: boolean;
    // Define whether Admin Approval Mode and all UAC policy settings are enabled, default is enabled
    localSecurityOptionsUseAdminApprovalModeForAdministrators?: boolean;
    // Virtualize file and registry write failures to per user locations
    localSecurityOptionsVirtualizeFileAndRegistryWriteFailuresToPerUserLocations?: boolean;
    // 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;
    /**
     * This user right is used by Credential Manager during Backup/Restore. Users' saved credentials might be compromised if
     * this privilege is given to other entities. Only states NotConfigured and Allowed are supported
     */
    userRightsAccessCredentialManagerAsTrustedCaller?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right allows a process to impersonate any user without authentication. The process can therefore gain access
     * to the same local resources as that user. Only states NotConfigured and Allowed are supported
     */
    userRightsActAsPartOfTheOperatingSystem?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users and groups are allowed to connect to the computer over the network. State
     * Allowed is supported.
     */
    userRightsAllowAccessFromNetwork?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users can bypass file, directory, registry, and other persistent objects permissions
     * when backing up files and directories. Only states NotConfigured and Allowed are supported
     */
    userRightsBackupData?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users and groups are block from connecting to the computer over the network. State
     * Block is supported.
     */
    userRightsBlockAccessFromNetwork?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users and groups can change the time and date on the internal clock of the computer.
     * Only states NotConfigured and Allowed are supported
     */
    userRightsChangeSystemTime?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This security setting determines whether users can create global objects that are available to all sessions. Users who
     * can create global objects could affect processes that run under other users' sessions, which could lead to application
     * failure or data corruption. Only states NotConfigured and Allowed are supported
     */
    userRightsCreateGlobalObjects?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users and groups can call an internal API to create and change the size of a page
     * file. Only states NotConfigured and Allowed are supported
     */
    userRightsCreatePageFile?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which accounts can be used by processes to create a directory object using the object
     * manager. Only states NotConfigured and Allowed are supported
     */
    userRightsCreatePermanentSharedObjects?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines if the user can create a symbolic link from the computer to which they are logged on. Only
     * states NotConfigured and Allowed are supported
     */
    userRightsCreateSymbolicLinks?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users/groups can be used by processes to create a token that can then be used to get
     * access to any local resources when the process uses an internal API to create an access token. Only states
     * NotConfigured and Allowed are supported
     */
    userRightsCreateToken?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users can attach a debugger to any process or to the kernel. Only states NotConfigured
     * and Allowed are supported
     */
    userRightsDebugPrograms?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users can set the Trusted for Delegation setting on a user or computer object. Only
     * states NotConfigured and Allowed are supported.
     */
    userRightsDelegation?: NullableOption<DeviceManagementUserRightsSetting>;
    // This user right determines which users cannot log on to the computer. States NotConfigured, Blocked are supported
    userRightsDenyLocalLogOn?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which accounts can be used by a process to add entries to the security log. The security log
     * is used to trace unauthorized system access. Only states NotConfigured and Allowed are supported.
     */
    userRightsGenerateSecurityAudits?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * Assigning this user right to a user allows programs running on behalf of that user to impersonate a client. Requiring
     * this user right for this kind of impersonation prevents an unauthorized user from convincing a client to connect to a
     * service that they have created and then impersonating that client, which can elevate the unauthorized user's
     * permissions to administrative or system levels. Only states NotConfigured and Allowed are supported.
     */
    userRightsImpersonateClient?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which accounts can use a process with Write Property access to another process to increase
     * the execution priority assigned to the other process. Only states NotConfigured and Allowed are supported.
     */
    userRightsIncreaseSchedulingPriority?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users can dynamically load and unload device drivers or other code in to kernel mode.
     * Only states NotConfigured and Allowed are supported.
     */
    userRightsLoadUnloadDrivers?: NullableOption<DeviceManagementUserRightsSetting>;
    // This user right determines which users can log on to the computer. States NotConfigured, Allowed are supported
    userRightsLocalLogOn?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which accounts can use a process to keep data in physical memory, which prevents the system
     * from paging the data to virtual memory on disk. Only states NotConfigured and Allowed are supported.
     */
    userRightsLockMemory?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users can specify object access auditing options for individual resources, such as
     * files, Active Directory objects, and registry keys. Only states NotConfigured and Allowed are supported.
     */
    userRightsManageAuditingAndSecurityLogs?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users and groups can run maintenance tasks on a volume, such as remote
     * defragmentation. Only states NotConfigured and Allowed are supported.
     */
    userRightsManageVolumes?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines who can modify firmware environment values. Only states NotConfigured and Allowed are
     * supported.
     */
    userRightsModifyFirmwareEnvironment?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which user accounts can modify the integrity label of objects, such as files, registry keys,
     * or processes owned by other users. Only states NotConfigured and Allowed are supported.
     */
    userRightsModifyObjectLabels?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users can use performance monitoring tools to monitor the performance of system
     * processes. Only states NotConfigured and Allowed are supported.
     */
    userRightsProfileSingleProcess?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users and groups are prohibited from logging on as a Remote Desktop Services client.
     * Only states NotConfigured and Blocked are supported
     */
    userRightsRemoteDesktopServicesLogOn?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users are allowed to shut down a computer from a remote location on the network.
     * Misuse of this user right can result in a denial of service. Only states NotConfigured and Allowed are supported.
     */
    userRightsRemoteShutdown?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users can bypass file, directory, registry, and other persistent objects permissions
     * when restoring backed up files and directories, and determines which users can set any valid security principal as the
     * owner of an object. Only states NotConfigured and Allowed are supported.
     */
    userRightsRestoreData?: NullableOption<DeviceManagementUserRightsSetting>;
    /**
     * This user right determines which users can take ownership of any securable object in the system, including Active
     * Directory objects, files and folders, printers, registry keys, processes, and threads. Only states NotConfigured and
     * Allowed are supported.
     */
    userRightsTakeOwnership?: NullableOption<DeviceManagementUserRightsSetting>;
    // Configure windows defender TamperProtection settings. Possible values are: notConfigured, enable, disable.
    windowsDefenderTamperProtection?: WindowsDefenderTamperProtectionOptions;
    /**
     * This setting determines whether the Accessory management service's start type is Automatic(2), Manual(3), Disabled(4).
     * Default: Manual. Possible values are: manual, automatic, disabled.
     */
    xboxServicesAccessoryManagementServiceStartupMode?: ServiceStartType;
    // This setting determines whether xbox game save is enabled (1) or disabled (0).
    xboxServicesEnableXboxGameSaveTask?: boolean;
    /**
     * This setting determines whether Live Auth Manager service's start type is Automatic(2), Manual(3), Disabled(4).
     * Default: Manual. Possible values are: manual, automatic, disabled.
     */
    xboxServicesLiveAuthManagerServiceStartupMode?: ServiceStartType;
    /**
     * This setting determines whether Live Game save service's start type is Automatic(2), Manual(3), Disabled(4). Default:
     * Manual. Possible values are: manual, automatic, disabled.
     */
    xboxServicesLiveGameSaveServiceStartupMode?: ServiceStartType;
    /**
     * This setting determines whether Networking service's start type is Automatic(2), Manual(3), Disabled(4). Default:
     * Manual. Possible values are: manual, automatic, disabled.
     */
    xboxServicesLiveNetworkingServiceStartupMode?: ServiceStartType;
}
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;
    // Specifies if Windows apps can be activated by voice. Possible values are: notConfigured, enabled, disabled.
    activateAppsWithVoice?: Enablement;
    // Indicates whether or not to block the user from selecting an AntiTheft mode preference (Windows 10 Mobile only).
    antiTheftModeBlocked?: boolean;
    /**
     * This policy setting permits users to change installation options that typically are available only to system
     * administrators.
     */
    appManagementMSIAllowUserControlOverInstall?: boolean;
    // This policy setting directs Windows Installer to use elevated permissions when it installs any program on the system.
    appManagementMSIAlwaysInstallWithElevatedPrivileges?: boolean;
    // List of semi-colon delimited Package Family Names of Windows apps. Listed Windows apps are to be launched after logon.​
    appManagementPackageFamilyNamesToLaunchAfterLogOn?: NullableOption<string[]>;
    /**
     * 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;
    // Allows secondary authentication devices to work with Windows.
    authenticationAllowSecondaryDevice?: boolean;
    // Specifies the preferred domain among available domains in the Azure AD tenant.
    authenticationPreferredAzureADTenantDomainName?: NullableOption<string>;
    /**
     * Indicates whether or not Web Credential Provider will be enabled. Possible values are: notConfigured, enabled,
     * disabled.
     */
    authenticationWebSignIn?: Enablement;
    // 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 users from using Swift Pair and other proximity based scenarios.
    bluetoothBlockPromptedProximalConnections?: 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 allow the cellular data channel on the device. If not configured, the cellular data channel is
     * allowed and the user can turn it off. Possible values are: blocked, required, allowed, notConfigured.
     */
    cellularData?: ConfigurationUsage;
    // Whether or not to Block the user from doing manual root certificate installation.
    certificatesBlockManualRootCertificateInstallation?: boolean;
    // Specifies the time zone to be applied to the device. This is the standard Windows name for the target time zone.
    configureTimeZone?: NullableOption<string>;
    /**
     * 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;
    // Specify whether to allow or disallow the Federal Information Processing Standard (FIPS) policy.
    cryptographyAllowFipsAlgorithmPolicy?: boolean;
    /**
     * This policy setting allows you to block direct memory access (DMA) for all hot pluggable PCI downstream ports until a
     * user logs into Windows.
     */
    dataProtectionBlockDirectMemoryAccess?: NullableOption<boolean>;
    // Whether or not to block end user access to Defender.
    defenderBlockEndUserAccess?: boolean;
    // Allows or disallows Windows Defender On Access Protection functionality.
    defenderBlockOnAccessProtection?: boolean;
    // Specifies the level of cloud-delivered protection. Possible values are: notConfigured, high, highPlus, zeroTolerance.
    defenderCloudBlockLevel?: DefenderCloudBlockLevelType;
    // Timeout extension for file scanning by the cloud. Valid values 0 to 50
    defenderCloudExtendedTimeout?: NullableOption<number>;
    // Timeout extension for file scanning by the cloud. Valid values 0 to 50
    defenderCloudExtendedTimeoutInSeconds?: NullableOption<number>;
    // 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>;
    // When blocked, catch-up scans for scheduled full scans will be turned off.
    defenderDisableCatchupFullScan?: boolean;
    // When blocked, catch-up scans for scheduled quick scans will be turned off.
    defenderDisableCatchupQuickScan?: boolean;
    // 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;
    /**
     * Gets or sets Defender’s action to take on Potentially Unwanted Application (PUA), which includes software with
     * behaviors of ad-injection, software bundling, persistent solicitation for payment or subscription, etc. Defender alerts
     * user when PUA is being downloaded or attempts to install itself. Added in Windows 10 for desktop. Possible values are:
     * deviceDefault, block, audit.
     */
    defenderPotentiallyUnwantedAppAction?: NullableOption<DefenderPotentiallyUnwantedAppAction>;
    /**
     * Gets or sets Defender’s action to take on Potentially Unwanted Application (PUA), which includes software with
     * behaviors of ad-injection, software bundling, persistent solicitation for payment or subscription, etc. Defender alerts
     * user when PUA is being downloaded or attempts to install itself. Added in Windows 10 for desktop. Possible values are:
     * userDefined, enable, auditMode, warn, notConfigured.
     */
    defenderPotentiallyUnwantedAppActionSetting?: DefenderProtectionType;
    // 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>;
    // When enabled, low CPU priority will be used during scheduled scans.
    defenderScheduleScanEnableLowCpuPriority?: boolean;
    // The signature update interval in hours. Specify 0 not to check. Valid values 0 to 24
    defenderSignatureUpdateIntervalInHours?: NullableOption<number>;
    /**
     * Checks for the user consent level in Windows Defender to send data. Possible values are: sendSafeSamplesAutomatically,
     * alwaysPrompt, neverSend, sendAllSamplesAutomatically.
     */
    defenderSubmitSamplesConsentType?: NullableOption<DefenderSubmitSamplesConsentType>;
    /**
     * Defender day of the week for the system scan. Possible values are: userDefined, everyday, sunday, monday, tuesday,
     * wednesday, thursday, friday, saturday, noScheduledScan.
     */
    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;
    // List of legacy applications that have GDI DPI Scaling turned off.
    displayAppListWithGdiDPIScalingTurnedOff?: NullableOption<string[]>;
    // List of legacy applications that have GDI DPI Scaling turned on.
    displayAppListWithGdiDPIScalingTurnedOn?: NullableOption<string[]>;
    /**
     * 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 the user from making changes to Favorites.
    edgeBlockEditFavorites?: boolean;
    // Indicates whether or not to block extensions in the Edge browser.
    edgeBlockExtensions?: boolean;
    // Allow or prevent Edge from entering the full screen mode.
    edgeBlockFullScreenMode?: 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;
    // Decide whether Microsoft Edge is prelaunched at Windows startup.
    edgeBlockPrelaunch?: boolean;
    // Configure Edge to allow or block printing.
    edgeBlockPrinting?: boolean;
    // Configure Edge to allow browsing history to be saved or to never save browsing history.
    edgeBlockSavingHistory?: boolean;
    // Indicates whether or not to block the user from adding new search engine or changing the default search engine.
    edgeBlockSearchEngineCustomization?: 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;
    // Indicates whether the user can sideload extensions.
    edgeBlockSideloadingExtensions?: boolean;
    // Configure whether Edge preloads the new tab page at Windows startup.
    edgeBlockTabPreloading?: boolean;
    // Configure to load a blank page in Edge instead of the default New tab page and prevent users from changing it.
    edgeBlockWebContentOnNewTabPage?: 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>;
    /**
     * Get or set a value that specifies whether to set the favorites bar to always be visible or hidden on any page. Possible
     * values are: notConfigured, hide, show.
     */
    edgeFavoritesBarVisibility?: VisibilitySetting;
    // The location of the favorites list to provision. Could be a local file, local network or http location.
    edgeFavoritesListLocation?: NullableOption<string>;
    // The first run URL for when Edge browser is opened for the first time.
    edgeFirstRunUrl?: NullableOption<string>;
    // Causes the Home button to either hide, load the default Start page, load a New tab page, or a custom URL
    edgeHomeButtonConfiguration?: NullableOption<EdgeHomeButtonConfiguration>;
    // Enable the Home button configuration.
    edgeHomeButtonConfigurationEnabled?: boolean;
    // The list of URLs for homepages shodwn on MDM-enrolled devices on Edge browser.
    edgeHomepageUrls?: NullableOption<string[]>;
    /**
     * Controls how the Microsoft Edge settings are restricted based on the configure kiosk mode. Possible values are:
     * notConfigured, digitalSignage, normalMode, publicBrowsingSingleApp, publicBrowsingMultiApp.
     */
    edgeKioskModeRestriction?: EdgeKioskModeRestrictionType;
    /**
     * Specifies the time in minutes from the last user activity before Microsoft Edge kiosk resets. Valid values are 0-1440.
     * The default is 5. 0 indicates no reset. Valid values 0 to 1440
     */
    edgeKioskResetAfterIdleTimeInMinutes?: NullableOption<number>;
    // Specify the page opened when new tabs are created.
    edgeNewTabPageURL?: NullableOption<string>;
    /**
     * Specify what kind of pages are open at start. Possible values are: notConfigured, startPage, newTabPage, previousPages,
     * specificPages.
     */
    edgeOpensWith?: EdgeOpenOptions;
    // Allow or prevent users from overriding certificate errors.
    edgePreventCertificateErrorOverride?: boolean;
    // Specify the list of package family names of browser extensions that are required and cannot be turned off by the user.
    edgeRequiredExtensionPackageFamilyNames?: 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;
    /**
     * Controls the message displayed by Edge before switching to Internet Explorer. Possible values are: notConfigured,
     * disabled, enabled, keepGoing.
     */
    edgeShowMessageWhenOpeningInternetExplorerSites?: InternetExplorerMessageSetting;
    /**
     * Enable favorites sync between Internet Explorer and Microsoft Edge. Additions, deletions, modifications and order
     * changes to favorites are shared between browsers.
     */
    edgeSyncFavoritesWithInternetExplorer?: boolean;
    /**
     * Specifies what type of telemetry data (none, intranet, internet, both) is sent to Microsoft 365 Analytics. Possible
     * values are: notConfigured, intranet, internet, intranetAndInternet.
     */
    edgeTelemetryForMicrosoft365Analytics?: EdgeTelemetryMode;
    /**
     * Allow users with administrative rights to delete all user data and settings using CTRL + Win + R at the device lock
     * screen so that the device can be automatically re-configured and re-enrolled into management.
     */
    enableAutomaticRedeployment?: boolean;
    /**
     * This setting allows you to specify battery charge level at which Energy Saver is turned on. While on battery, Energy
     * Saver is automatically turned on at (and below) the specified battery charge level. Valid input range (0-100). Valid
     * values 0 to 100
     */
    energySaverOnBatteryThresholdPercentage?: NullableOption<number>;
    /**
     * This setting allows you to specify battery charge level at which Energy Saver is turned on. While plugged in, Energy
     * Saver is automatically turned on at (and below) the specified battery charge level. Valid input range (0-100). Valid
     * values 0 to 100
     */
    energySaverPluggedInThresholdPercentage?: NullableOption<number>;
    // 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;
    /**
     * Allow or prevent the syncing of Microsoft Edge Browser settings. Option for IT admins to prevent syncing across
     * devices, but allow user override. Possible values are: notConfigured, blockedWithUserOverride, blocked.
     */
    experienceDoNotSyncBrowserSettings?: BrowserSyncSetting;
    /**
     * Controls if the user can configure search to Find My Files mode, which searches files in secondary hard drives and also
     * outside of the user profile. Find My Files does not allow users to search files or locations to which they do not have
     * access. Possible values are: notConfigured, enabled, disabled.
     */
    findMyFiles?: Enablement;
    // Indicates whether or not to block DVR and broadcasting.
    gameDvrBlocked?: boolean;
    /**
     * Controls the user access to the ink workspace, from the desktop and from above the lock screen. Possible values are:
     * notConfigured, enabled, disabled.
     */
    inkWorkspaceAccess?: InkAccessSetting;
    /**
     * Controls the user access to the ink workspace, from the desktop and from above the lock screen. Possible values are:
     * notConfigured, blocked, allowed.
     */
    inkWorkspaceAccessState?: StateManagementSetting;
    // Specify whether to show recommended app suggestions in the ink workspace.
    inkWorkspaceBlockSuggestedApps?: 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;
    /**
     * This policy setting specifies whether Windows apps can be activated by voice while the system is locked. Possible
     * values are: notConfigured, enabled, disabled.
     */
    lockScreenActivateAppsWithVoice?: Enablement;
    /**
     * 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 the MMS send/receive functionality on the device.
    messagingBlockMMS?: boolean;
    // Indicates whether or not to block the RCS send/receive functionality on the device.
    messagingBlockRichCommunicationServices?: boolean;
    // Indicates whether or not to block text message back up and restore and Messaging Everywhere.
    messagingBlockSync?: boolean;
    // Indicates whether or not to Block a Microsoft account.
    microsoftAccountBlocked?: boolean;
    // Indicates whether or not to Block Microsoft account settings sync.
    microsoftAccountBlockSettingsSync?: boolean;
    // Controls the Microsoft Account Sign-In Assistant (wlidsvc) NT service. Possible values are: notConfigured, disabled.
    microsoftAccountSignInAssistantSettings?: SignInAssistantOptions;
    /**
     * 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>;
    /**
     * This security setting determines the period of time (in days) that a password must be used before the user can change
     * it. Valid values 0 to 998
     */
    passwordMinimumAgeInDays?: 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>;
    /**
     * This setting specifies the action that Windows takes when a user presses the Power button while on battery. Possible
     * values are: notConfigured, noAction, sleep, hibernate, shutdown.
     */
    powerButtonActionOnBattery?: PowerActionType;
    /**
     * This setting specifies the action that Windows takes when a user presses the Power button while plugged in. Possible
     * values are: notConfigured, noAction, sleep, hibernate, shutdown.
     */
    powerButtonActionPluggedIn?: PowerActionType;
    /**
     * This setting allows you to turn off hybrid sleep while on battery. If you set this setting to disable, a hiberfile is
     * not generated when the system transitions to sleep (Stand By). If you set this setting to enable or do not configure
     * this policy setting, users control this setting. Possible values are: notConfigured, enabled, disabled.
     */
    powerHybridSleepOnBattery?: Enablement;
    /**
     * This setting allows you to turn off hybrid sleep while plugged in. If you set this setting to disable, a hiberfile is
     * not generated when the system transitions to sleep (Stand By). If you set this setting to enable or do not configure
     * this policy setting, users control this setting. Possible values are: notConfigured, enabled, disabled.
     */
    powerHybridSleepPluggedIn?: Enablement;
    /**
     * This setting specifies the action that Windows takes when a user closes the lid on a mobile PC while on battery.
     * Possible values are: notConfigured, noAction, sleep, hibernate, shutdown.
     */
    powerLidCloseActionOnBattery?: PowerActionType;
    /**
     * This setting specifies the action that Windows takes when a user closes the lid on a mobile PC while plugged in.
     * Possible values are: notConfigured, noAction, sleep, hibernate, shutdown.
     */
    powerLidCloseActionPluggedIn?: PowerActionType;
    /**
     * This setting specifies the action that Windows takes when a user presses the Sleep button while on battery. Possible
     * values are: notConfigured, noAction, sleep, hibernate, shutdown.
     */
    powerSleepButtonActionOnBattery?: PowerActionType;
    /**
     * This setting specifies the action that Windows takes when a user presses the Sleep button while plugged in. Possible
     * values are: notConfigured, noAction, sleep, hibernate, shutdown.
     */
    powerSleepButtonActionPluggedIn?: PowerActionType;
    // Prevent user installation of additional printers from printers settings.
    printerBlockAddition?: boolean;
    // Name (network host name) of an installed printer.
    printerDefaultName?: NullableOption<string>;
    // Automatically provision printers based on their names (network host names).
    printerNames?: 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;
    // Blocks the usage of cloud based speech services for Cortana, Dictation, or Store applications.
    privacyBlockActivityFeed?: boolean;
    /**
     * Indicates whether or not to block the usage of cloud based speech services for Cortana, Dictation, or Store
     * applications.
     */
    privacyBlockInputPersonalization?: boolean;
    // Blocks the shared experiences/discovery of recently used resources in task switcher etc.
    privacyBlockPublishUserActivities?: boolean;
    // This policy prevents the privacy experience from launching during user logon for new and upgraded users.​
    privacyDisableLaunchExperience?: 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;
    // Indicates whether or not to block the web search.
    searchBlockWebResults?: 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 if search can use location information.
    searchDisableLocation?: boolean;
    // Specifies if search can use location information.
    searchDisableUseLocation?: 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;
    // Specify whether to allow automatic device encryption during OOBE when the device is Azure AD joined (desktop only).
    securityBlockAzureADJoinedDevicesAutoEncryption?: 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;
    /**
     * Added in Windows 10, version 1703. Allows IT Admins to control whether users are allowed to install apps from places
     * other than the Store. Possible values are: notConfigured, anywhere, storeOnly, recommendations, preferStore.
     */
    smartScreenAppInstallControl?: AppInstallControlType;
    // 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;
    /**
     * Gets or sets the fully qualified domain name (FQDN) or IP address of a proxy server to forward Connected User
     * Experiences and Telemetry requests.
     */
    systemTelemetryProxyServer?: NullableOption<string>;
    // Specify whether non-administrators can use Task Manager to end tasks.
    taskManagerBlockEndTask?: boolean;
    // Whether the device is required to connect to the network.
    tenantLockdownRequireNetworkDuringOutOfBoxExperience?: boolean;
    // Indicates whether or not to uninstall a fixed list of built-in Windows apps.
    uninstallBuiltInApps?: 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>;
    // Windows 10 force update schedule for Apps.
    windows10AppsForceUpdateSchedule?: NullableOption<Windows10AppsForceUpdateSchedule>;
    /**
     * 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;
    /**
     * Indicates a list of applications with their access control levels over privacy data categories, and/or the default
     * access levels per category. This collection can contain a maximum of 500 elements.
     */
    privacyAccessControls?: NullableOption<WindowsPrivacyDataAccessControlItem[]>;
}
export interface WindowsPrivacyDataAccessControlItem extends Entity {
    /**
     * This indicates an access level for the privacy data category to which the specified application will be given to.
     * Possible values are: notConfigured, forceAllow, forceDeny, userInControl.
     */
    accessLevel?: WindowsPrivacyDataAccessLevel;
    // The Package Family Name of a Windows app. When set, the access level applies to the specified application.
    appDisplayName?: NullableOption<string>;
    // The Package Family Name of a Windows app. When set, the access level applies to the specified application.
    appPackageFamilyName?: NullableOption<string>;
    /**
     * This indicates a privacy data category to which the specific access control will apply. Possible values are:
     * notConfigured, accountInfo, appsRunInBackground, calendar, callHistory, camera, contacts, diagnosticsInfo, email,
     * location, messaging, microphone, motion, notifications, phone, radios, tasks, syncWithDevices, trustedDevices.
     */
    dataCategory?: WindowsPrivacyDataCategory;
}
export interface Windows10ImportedPFXCertificateProfile extends WindowsCertificateProfileBase {
    /**
     * Intended Purpose of the Certificate Profile - which could be Unassigned, SmimeEncryption, SmimeSigning etc. Possible
     * values are: unassigned, smimeEncryption, smimeSigning, vpn, wifi.
     */
    intendedPurpose?: IntendedPurpose;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface Windows10MobileCompliancePolicy extends DeviceCompliancePolicy {
    // Require active firewall on Windows devices.
    activeFirewallRequired?: boolean;
    // 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;
    // The valid operating system build ranges on Windows devices. This collection can contain a maximum of 10000 elements.
    validOperatingSystemBuildRanges?: NullableOption<OperatingSystemVersionRange[]>;
}
export interface Windows10NetworkBoundaryConfiguration extends DeviceConfiguration {
    // Windows Network Isolation Policy
    windowsNetworkIsolationPolicy?: NullableOption<WindowsNetworkIsolationPolicy>;
}
export interface Windows10PFXImportCertificateProfile extends DeviceConfiguration {
    /**
     * Not yet documented. Possible values are: useTpmKspOtherwiseUseSoftwareKsp, useTpmKspOtherwiseFail,
     * usePassportForWorkKspOtherwiseFail, useSoftwareKsp.
     */
    keyStorageProvider?: KeyStorageProviderOption;
}
export interface Windows10PkcsCertificateProfile extends Windows10CertificateProfileBase {
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    // PKCS Certificate Template Name
    certificateTemplateName?: string;
    // PKCS Certification Authority
    certificationAuthority?: string;
    // PKCS Certification Authority Name
    certificationAuthorityName?: string;
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
    extendedKeyUsages?: NullableOption<ExtendedKeyUsage[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
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;
    /**
     * Specifies the application user model ID of the assessment app launched when a user signs in to a secure assessment with
     * a local guest account. Important notice: this property must be set with localGuestAccountName in order to make the
     * local guest account sign-in experience work properly for secure assessments.
     */
    assessmentAppUserModelId?: NullableOption<string>;
    /**
     * 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>;
    /**
     * The account type used to by ConfigurationAccount. Possible values are: azureADAccount, domainAccount, localAccount,
     * localGuestAccount.
     */
    configurationAccountType?: SecureAssessmentAccountType;
    /**
     * 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>;
    /**
     * Specifies the display text for the local guest account shown on the sign-in screen. Typically is the name of an
     * assessment. When the user clicks the local guest account on the sign-in screen, an assessment app is launched with a
     * specified assessment URL. Secure assessments can only be configured with local guest account sign-in on devices running
     * Windows 10, version 1903 or later. Important notice: this property must be set with assessmentAppUserModelID in order
     * to make the local guest account sign-in experience work properly for secure assessments.
     */
    localGuestAccountName?: 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 WindowsVpnConfiguration extends DeviceConfiguration {
    // Connection name displayed to the user.
    connectionName?: string;
    // Custom XML commands that configures the VPN connection. (UTF8 encoded byte array)
    customXml?: NullableOption<string>;
    /**
     * List of VPN Servers on the network. Make sure end users can access these network locations. This collection can contain
     * a maximum of 500 elements.
     */
    servers?: VpnServer[];
}
export interface Windows10VpnConfiguration extends WindowsVpnConfiguration {
    // Associated Apps. This collection can contain a maximum of 10000 elements.
    associatedApps?: NullableOption<Windows10AssociatedApps[]>;
    // Authentication method. Possible values are: certificate, usernameAndPassword, customEapXml, derivedCredential.
    authenticationMethod?: Windows10VpnAuthenticationMethod;
    /**
     * Connection type. Possible values are: pulseSecure, f5EdgeClient, dellSonicWallMobileConnect, checkPointCapsuleVpn,
     * automatic, ikEv2, l2tp, pptp, citrix, paloAltoGlobalProtect, ciscoAnyConnect, unknownFutureValue, microsoftTunnel.
     */
    connectionType?: Windows10VpnConnectionType;
    // Cryptography Suite security settings for IKEv2 VPN in Windows10 and above
    cryptographySuite?: NullableOption<CryptographySuite>;
    // DNS rules. This collection can contain a maximum of 1000 elements.
    dnsRules?: NullableOption<VpnDnsRule[]>;
    // Specify DNS suffixes to add to the DNS search list to properly route short names.
    dnsSuffixes?: NullableOption<string[]>;
    // Extensible Authentication Protocol (EAP) XML. (UTF8 encoded byte array)
    eapXml?: NullableOption<string>;
    // Enable Always On mode.
    enableAlwaysOn?: NullableOption<boolean>;
    // Enable conditional access.
    enableConditionalAccess?: boolean;
    // Enable device tunnel.
    enableDeviceTunnel?: NullableOption<boolean>;
    // Enable IP address registration with internal DNS.
    enableDnsRegistration?: NullableOption<boolean>;
    // Enable single sign-on (SSO) with alternate certificate.
    enableSingleSignOnWithAlternateCertificate?: boolean;
    // Enable split tunneling.
    enableSplitTunneling?: boolean;
    // ID of the Microsoft Tunnel site associated with the VPN profile.
    microsoftTunnelSiteId?: NullableOption<string>;
    // Only associated Apps can use connection (per-app VPN).
    onlyAssociatedAppsCanUseConnection?: NullableOption<boolean>;
    // Profile target type. Possible values are: user, device, autoPilotDevice.
    profileTarget?: NullableOption<Windows10VpnProfileTarget>;
    // Proxy Server.
    proxyServer?: NullableOption<Windows10VpnProxyServer>;
    // Remember user credentials.
    rememberUserCredentials?: boolean;
    // Routes (optional for third-party providers). This collection can contain a maximum of 1000 elements.
    routes?: NullableOption<VpnRoute[]>;
    // Single sign-on Extended Key Usage (EKU).
    singleSignOnEku?: NullableOption<ExtendedKeyUsage>;
    // Single sign-on issuer hash.
    singleSignOnIssuerHash?: NullableOption<string>;
    // Traffic rules. This collection can contain a maximum of 1000 elements.
    trafficRules?: NullableOption<VpnTrafficRule[]>;
    // Trusted Network Domains
    trustedNetworkDomains?: NullableOption<string[]>;
    // Windows Information Protection (WIP) domain to associate with this connection.
    windowsInformationProtectionDomain?: NullableOption<string>;
    // Identity certificate for client authentication when authentication method is certificate.
    identityCertificate?: NullableOption<WindowsCertificateProfileBase>;
}
export interface Windows81CertificateProfileBase extends WindowsCertificateProfileBase {
    // Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
    customSubjectAlternativeNames?: NullableOption<CustomSubjectAlternativeName[]>;
    // Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
    extendedKeyUsages?: ExtendedKeyUsage[];
}
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;
    /**
     * The minimum update classification to install automatically. Possible values are: userDefined, recommendedAndImportant,
     * important, none.
     */
    minimumAutoInstallClassification?: UpdateClassification;
    // 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;
    /**
     * The minimum update classification to install automatically. Possible values are: userDefined, recommendedAndImportant,
     * important, none.
     */
    updatesMinimumAutoInstallClassification?: UpdateClassification;
    // 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 Windows81SCEPCertificateProfile extends Windows81CertificateProfileBase {
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: NullableOption<CertificateStore>;
    // SCEP Hash Algorithm. Possible values are: sha1, sha2.
    hashAlgorithm?: HashAlgorithms;
    // SCEP Key Size. Possible values are: size1024, size2048, size4096.
    keySize?: KeySize;
    // SCEP Key Usage. Possible values are: keyEncipherment, digitalSignature.
    keyUsage?: KeyUsages;
    // SCEP Server Url(s).
    scepServerUrls?: NullableOption<string[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
    // Trusted Root Certificate
    rootCertificate?: NullableOption<Windows81TrustedRootCertificate>;
}
export interface Windows81TrustedRootCertificate extends DeviceConfiguration {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    /**
     * Destination store location for the Trusted Root Certificate. Possible values are: computerCertStoreRoot,
     * computerCertStoreIntermediate, userCertStoreIntermediate.
     */
    destinationStore?: CertificateDestinationStore;
    // Trusted Root Certificate
    trustedRootCertificate?: string;
}
export interface Windows81VpnConfiguration extends WindowsVpnConfiguration {
    // Value indicating whether this policy only applies to Windows 8.1. This property is read-only.
    applyOnlyToWindows81?: boolean;
    // Connection type. Possible values are: pulseSecure, f5EdgeClient, dellSonicWallMobileConnect, checkPointCapsuleVpn.
    connectionType?: WindowsVpnConnectionType;
    // Enable split tunneling for the VPN.
    enableSplitTunneling?: boolean;
    // Login group or domain when connection type is set to Dell SonicWALL Mobile Connection.
    loginGroupOrDomain?: NullableOption<string>;
    // Proxy Server.
    proxyServer?: NullableOption<Windows81VpnProxyServer>;
}
export interface Windows81WifiImportConfiguration extends DeviceConfiguration {
    // Payload. (UTF8 encoded byte array). This is the XML file saved on the device you used to connect to the Wi-Fi endpoint.
    payload?: string;
    // Payload file name (.xml).
    payloadFileName?: string;
    // Profile name displayed in the UI.
    profileName?: string;
}
export interface WindowsAssignedAccessProfile extends Entity {
    // These are the only Windows Store Apps that will be available to launch from the Start menu.
    appUserModelIds?: NullableOption<string[]>;
    /**
     * These are the paths of the Desktop Apps that will be available on the Start menu and the only apps the user will be
     * able to launch.
     */
    desktopAppPaths?: NullableOption<string[]>;
    /**
     * This is a friendly name used to identify a group of applications, the layout of these apps on the start menu and the
     * users to whom this kiosk configuration is assigned.
     */
    profileName?: string;
    // This setting allows the admin to specify whether the Task Bar is shown or not.
    showTaskBar?: boolean;
    /**
     * Allows admins to override the default Start 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 Binary format.
     */
    startMenuLayoutXml?: string;
    // The user accounts that will be locked to this kiosk configuration.
    userAccounts?: NullableOption<string[]>;
}
export interface WindowsDefenderAdvancedThreatProtectionConfiguration extends DeviceConfiguration {
    // Auto populate onboarding blob programmatically from Advanced Threat protection service
    advancedThreatProtectionAutoPopulateOnboardingBlob?: boolean;
    // Windows Defender AdvancedThreatProtection Offboarding Blob.
    advancedThreatProtectionOffboardingBlob?: NullableOption<string>;
    // Name of the file from which AdvancedThreatProtectionOffboardingBlob was obtained.
    advancedThreatProtectionOffboardingFilename?: NullableOption<string>;
    // Windows Defender AdvancedThreatProtection Onboarding Blob.
    advancedThreatProtectionOnboardingBlob?: NullableOption<string>;
    // Name of the file from which AdvancedThreatProtectionOnboardingBlob was obtained.
    advancedThreatProtectionOnboardingFilename?: NullableOption<string>;
    // Windows Defender AdvancedThreatProtection 'Allow Sample Sharing' Rule
    allowSampleSharing?: boolean;
    // Expedite Windows Defender Advanced Threat Protection telemetry reporting frequency.
    enableExpeditedTelemetryReporting?: boolean;
}
export interface WindowsDeliveryOptimizationConfiguration extends DeviceConfiguration {
    /**
     * Specifies number of seconds to delay an HTTP source in a background download that is allowed to use peer-to-peer. Valid
     * values 0 to 4294967295
     */
    backgroundDownloadFromHttpDelayInSeconds?: number;
    // Specifies foreground and background bandwidth usage using percentages, absolutes, or hours.
    bandwidthMode?: NullableOption<DeliveryOptimizationBandwidth>;
    /**
     * Specifies number of seconds to delay a fall back from cache servers to an HTTP source for a background download. Valid
     * values 0 to 2592000.
     */
    cacheServerBackgroundDownloadFallbackToHttpDelayInSeconds?: number;
    /**
     * Specifies number of seconds to delay a fall back from cache servers to an HTTP source for a foreground download. Valid
     * values 0 to 2592000.​
     */
    cacheServerForegroundDownloadFallbackToHttpDelayInSeconds?: number;
    // Specifies cache servers host names.
    cacheServerHostNames?: NullableOption<string[]>;
    /**
     * Specifies the download method that delivery optimization can use to manage network bandwidth consumption for large
     * content distribution scenarios. Possible values are: userDefined, httpOnly, httpWithPeeringNat,
     * httpWithPeeringPrivateGroup, httpWithInternetPeering, simpleDownload, bypassMode.
     */
    deliveryOptimizationMode?: WindowsDeliveryOptimizationMode;
    // Specifying 0 sets Delivery Optimization to manage this setting using the cloud service. Valid values 0 to 86400
    foregroundDownloadFromHttpDelayInSeconds?: NullableOption<number>;
    /**
     * The options set in this policy only apply to Delivery Optimization mode Group (2) download mode. If Group (2) isn't set
     * as Download mode, this policy will be ignored. For option 3 - DHCP Option ID, the client will query DHCP Option ID 234
     * and use the returned GUID value as the Group ID.
     */
    groupIdSource?: NullableOption<DeliveryOptimizationGroupIdSource>;
    /**
     * Specifies the maximum time in days that each file is held in the Delivery Optimization cache after downloading
     * successfully (0-3650). Valid values 0 to 3650
     */
    maximumCacheAgeInDays?: NullableOption<number>;
    // Specifies the maximum cache size that Delivery Optimization either as a percentage or in GB.
    maximumCacheSize?: NullableOption<DeliveryOptimizationMaxCacheSize>;
    /**
     * The default value is 0. The value 0 (zero) means "not limited" and the cloud service default value will be used. Valid
     * values 0 to 100
     */
    minimumBatteryPercentageAllowedToUpload?: NullableOption<number>;
    // Recommended values: 64 GB to 256 GB. Valid values 1 to 100000
    minimumDiskSizeAllowedToPeerInGigabytes?: NullableOption<number>;
    // Recommended values: 1 MB to 100,000 MB. Valid values 1 to 100000
    minimumFileSizeToCacheInMegabytes?: NullableOption<number>;
    // Specifies the minimum RAM size in GB to use Peer Caching (1-100000). Valid values 1 to 100000
    minimumRamAllowedToPeerInGigabytes?: NullableOption<number>;
    // Specifies the drive that Delivery Optimization should use for its cache.
    modifyCacheLocation?: NullableOption<string>;
    // Option 1 (Subnet mask) only applies to Delivery Optimization modes Download Mode LAN (1) and Group (2).
    restrictPeerSelectionBy?: DeliveryOptimizationRestrictPeerSelectionByOptions;
    // Specifies whether the device is allowed to participate in Peer Caching while connected via VPN to the domain network.
    vpnPeerCaching?: Enablement;
}
export interface WindowsDomainJoinConfiguration extends DeviceConfiguration {
    // Active Directory domain name to join.
    activeDirectoryDomainName?: string;
    // Fixed prefix to be used for computer name.
    computerNameStaticPrefix?: string;
    // Dynamically generated characters used as suffix for computer name. Valid values 3 to 14
    computerNameSuffixRandomCharCount?: number;
    /**
     * Organizational unit (OU) where the computer account will be created. If this parameter is NULL, the well known computer
     * object container will be used as published in the domain.
     */
    organizationalUnit?: NullableOption<string>;
    // Reference to device configurations required for network connectivity
    networkAccessConfigurations?: NullableOption<DeviceConfiguration[]>;
}
export interface WindowsHealthMonitoringConfiguration extends DeviceConfiguration {
    // Enables device health monitoring on the device. Possible values are: notConfigured, enabled, disabled.
    allowDeviceHealthMonitoring?: Enablement;
    // Specifies custom set of events collected from the device where health monitoring is enabled
    configDeviceHealthMonitoringCustomScope?: NullableOption<string>;
    /**
     * Specifies set of events collected from the device where health monitoring is enabled. Possible values are: undefined,
     * healthMonitoring, bootPerformance, windowsUpdates, privilegeManagement.
     */
    configDeviceHealthMonitoringScope?: WindowsHealthMonitoringScope;
}
export interface WindowsIdentityProtectionConfiguration extends DeviceConfiguration {
    /**
     * Boolean value used to enable enhanced anti-spoofing for facial feature recognition on Windows Hello face
     * authentication.
     */
    enhancedAntiSpoofingForFacialFeaturesEnabled?: boolean;
    /**
     * Integer value specifies the period (in days) that a PIN can be used before the system requires the user to change it.
     * Valid values are 0 to 730 inclusive. Valid values 0 to 730
     */
    pinExpirationInDays?: NullableOption<number>;
    /**
     * This value configures the use of lowercase characters in the Windows Hello for Business PIN. Possible values are:
     * blocked, required, allowed, notConfigured.
     */
    pinLowercaseCharactersUsage?: ConfigurationUsage;
    /**
     * Integer value that sets the maximum number of characters allowed for the work PIN. Valid values are 4 to 127 inclusive
     * and greater than or equal to the value set for the minimum PIN. Valid values 4 to 127
     */
    pinMaximumLength?: NullableOption<number>;
    /**
     * Integer value that sets the minimum number of characters required for the Windows Hello for Business PIN. Valid values
     * are 4 to 127 inclusive and less than or equal to the value set for the maximum PIN. Valid values 4 to 127
     */
    pinMinimumLength?: NullableOption<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. Valid values 0 to 50
     */
    pinPreviousBlockCount?: NullableOption<number>;
    // Boolean value that enables a user to change their PIN by using the Windows Hello for Business PIN recovery service.
    pinRecoveryEnabled?: boolean;
    /**
     * Controls the ability to use special characters in the Windows Hello for Business PIN. Possible values are: blocked,
     * required, allowed, notConfigured.
     */
    pinSpecialCharactersUsage?: ConfigurationUsage;
    /**
     * This value configures the use of uppercase characters in the Windows Hello for Business PIN. Possible values are:
     * blocked, required, allowed, notConfigured.
     */
    pinUppercaseCharactersUsage?: ConfigurationUsage;
    /**
     * 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 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;
    // Boolean value that enables Windows Hello for Business to use certificates to authenticate on-premise resources.
    useCertificatesForOnPremisesAuthEnabled?: boolean;
    // Boolean value used to enable the Windows Hello security key as a logon credential.
    useSecurityKeyForSignin?: boolean;
    // Boolean value that blocks Windows Hello for Business as a method for signing into Windows.
    windowsHelloForBusinessBlocked?: NullableOption<boolean>;
}
export interface WindowsKioskConfiguration extends DeviceConfiguration {
    // Enable public browsing kiosk mode for the Microsoft Edge browser. The Default is false.
    edgeKioskEnablePublicBrowsing?: boolean;
    // Specify URLs that the kiosk browser is allowed to navigate to
    kioskBrowserBlockedUrlExceptions?: NullableOption<string[]>;
    // Specify URLs that the kiosk browsers should not navigate to
    kioskBrowserBlockedURLs?: NullableOption<string[]>;
    // Specify the default URL the browser should navigate to on launch.
    kioskBrowserDefaultUrl?: NullableOption<string>;
    // Enable the kiosk browser's end session button. By default, the end session button is disabled.
    kioskBrowserEnableEndSessionButton?: boolean;
    // Enable the kiosk browser's home button. By default, the home button is disabled.
    kioskBrowserEnableHomeButton?: boolean;
    // Enable the kiosk browser's navigation buttons(forward/back). By default, the navigation buttons are disabled.
    kioskBrowserEnableNavigationButtons?: boolean;
    /**
     * Specify the number of minutes the session is idle until the kiosk browser restarts in a fresh state. Valid values are
     * 1-1440. Valid values 1 to 1440
     */
    kioskBrowserRestartOnIdleTimeInMinutes?: NullableOption<number>;
    /**
     * This policy setting allows to define a list of Kiosk profiles for a Kiosk configuration. This collection can contain a
     * maximum of 3 elements.
     */
    kioskProfiles?: NullableOption<WindowsKioskProfile[]>;
    // force update schedule for Kiosk devices.
    windowsKioskForceUpdateSchedule?: NullableOption<WindowsKioskForceUpdateSchedule>;
}
export interface WindowsPhone81CertificateProfileBase extends DeviceConfiguration {
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validtiy Period.
    certificateValidityPeriodValue?: number;
    // Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
    extendedKeyUsages?: ExtendedKeyUsage[];
    /**
     * Key Storage Provider (KSP). Possible values are: useTpmKspOtherwiseUseSoftwareKsp, useTpmKspOtherwiseFail,
     * usePassportForWorkKspOtherwiseFail, useSoftwareKsp.
     */
    keyStorageProvider?: KeyStorageProviderOption;
    // Certificate renewal threshold percentage.
    renewalThresholdPercentage?: number;
    /**
     * Certificate Subject Alternative Name Type. Possible values are: none, emailAddress, userPrincipalName,
     * customAzureADAttribute, domainNameService, universalResourceIdentifier.
     */
    subjectAlternativeNameType?: SubjectAlternativeNameType;
    /**
     * Certificate Subject Name Format. Possible values are: commonName, commonNameIncludingEmail, commonNameAsEmail, custom,
     * commonNameAsIMEI, commonNameAsSerialNumber, commonNameAsAadDeviceId, commonNameAsIntuneDeviceId,
     * commonNameAsDurableDeviceId.
     */
    subjectNameFormat?: SubjectNameFormat;
}
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 WindowsPhone81ImportedPFXCertificateProfile extends WindowsCertificateProfileBase {
    /**
     * Intended Purpose of the Certificate Profile - which could be Unassigned, SmimeEncryption, SmimeSigning etc. Possible
     * values are: unassigned, smimeEncryption, smimeSigning, vpn, wifi.
     */
    intendedPurpose?: IntendedPurpose;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
}
export interface WindowsPhone81SCEPCertificateProfile extends WindowsPhone81CertificateProfileBase {
    // SCEP Hash Algorithm. Possible values are: sha1, sha2.
    hashAlgorithm?: HashAlgorithms;
    // SCEP Key Size. Possible values are: size1024, size2048, size4096.
    keySize?: KeySize;
    // SCEP Key Usage. Possible values are: keyEncipherment, digitalSignature.
    keyUsage?: KeyUsages;
    // SCEP Server Url(s).
    scepServerUrls?: NullableOption<string[]>;
    // Custom String that defines the AAD Attribute.
    subjectAlternativeNameFormatString?: NullableOption<string>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
    // Certificate state for devices. This collection can contain a maximum of 2147483647 elements.
    managedDeviceCertificateStates?: NullableOption<ManagedDeviceCertificateState[]>;
    // Trusted Root Certificate.
    rootCertificate?: NullableOption<WindowsPhone81TrustedRootCertificate>;
}
export interface WindowsPhone81TrustedRootCertificate extends DeviceConfiguration {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    // Trusted Root Certificate
    trustedRootCertificate?: string;
}
export interface WindowsPhone81VpnConfiguration extends Windows81VpnConfiguration {
    // Authentication method. Possible values are: certificate, usernameAndPassword, sharedSecret, derivedCredential, azureAD.
    authenticationMethod?: VpnAuthenticationMethod;
    // Bypass VPN on company Wi-Fi.
    bypassVpnOnCompanyWifi?: boolean;
    // Bypass VPN on home Wi-Fi.
    bypassVpnOnHomeWifi?: boolean;
    // DNS suffix search list.
    dnsSuffixSearchList?: NullableOption<string[]>;
    // Remember user credentials.
    rememberUserCredentials?: boolean;
    // Identity certificate for client authentication when authentication method is certificate.
    identityCertificate?: NullableOption<WindowsPhone81CertificateProfileBase>;
}
export interface WindowsPhoneEASEmailProfileConfiguration extends EasEmailProfileConfigurationBase {
    // Account name.
    accountName?: string;
    // Value indicating whether this policy only applies to Windows 8.1. This property is read-only.
    applyOnlyToWindowsPhone81?: boolean;
    // Duration of email to sync. Possible values are: userDefined, oneDay, threeDays, oneWeek, twoWeeks, oneMonth, unlimited.
    durationOfEmailToSync?: EmailSyncDuration;
    /**
     * Email attribute that is picked from AAD and injected into this profile before installing on the device. Possible values
     * are: userPrincipalName, primarySmtpAddress.
     */
    emailAddressSource?: NullableOption<UserEmailSource>;
    /**
     * Email sync schedule. Possible values are: userDefined, asMessagesArrive, manual, fifteenMinutes, thirtyMinutes,
     * sixtyMinutes, basedOnMyUsage.
     */
    emailSyncSchedule?: EmailSyncSchedule;
    // Exchange location that (URL) that the native mail app connects to.
    hostName?: string;
    // Indicates whether or not to use SSL.
    requireSsl?: boolean;
    // Whether or not to sync the calendar.
    syncCalendar?: boolean;
    // Whether or not to sync contacts.
    syncContacts?: boolean;
    // Whether or not to sync tasks.
    syncTasks?: 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, windowsDefault.
     */
    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 WindowsUpdateState extends Entity {
    // Device display name.
    deviceDisplayName?: NullableOption<string>;
    // The id of the device.
    deviceId?: NullableOption<string>;
    // The current feature update version of the device.
    featureUpdateVersion?: NullableOption<string>;
    // The date time that the Windows Update Agent did a successful scan.
    lastScanDateTime?: string;
    // Last date time that the device sync with with Microsoft Intune.
    lastSyncDateTime?: string;
    // The Quality Update Version of the device.
    qualityUpdateVersion?: NullableOption<string>;
    // Windows udpate status. Possible values are: upToDate, pendingInstallation, pendingReboot, failed.
    status?: WindowsUpdateStatus;
    // The id of the user.
    userId?: NullableOption<string>;
    // User principal name.
    userPrincipalName?: NullableOption<string>;
}
export interface WindowsWifiConfiguration extends DeviceConfiguration {
    // Specify whether the wifi connection should connect automatically when in range.
    connectAutomatically?: NullableOption<boolean>;
    /**
     * Specify whether the wifi connection should connect to more preferred networks when already connected to this one.
     * Requires ConnectAutomatically to be true.
     */
    connectToPreferredNetwork?: NullableOption<boolean>;
    // Specify whether the wifi connection should connect automatically even when the SSID is not broadcasting.
    connectWhenNetworkNameIsHidden?: NullableOption<boolean>;
    // Specify whether to force FIPS compliance.
    forceFIPSCompliance?: NullableOption<boolean>;
    // Specify the metered connection limit type for the wifi connection. Possible values are: unrestricted, fixed, variable.
    meteredConnectionLimit?: NullableOption<MeteredConnectionLimitType>;
    // Specify the network configuration name.
    networkName?: NullableOption<string>;
    // This is the pre-shared key for WPA Personal Wi-Fi network.
    preSharedKey?: NullableOption<string>;
    // Specify the URL for the proxy server configuration script.
    proxyAutomaticConfigurationUrl?: NullableOption<string>;
    // Specify the IP address for the proxy server.
    proxyManualAddress?: NullableOption<string>;
    // Specify the port for the proxy server.
    proxyManualPort?: NullableOption<number>;
    // Specify the proxy setting for Wi-Fi configuration. Possible values are: none, manual, automatic.
    proxySetting?: NullableOption<WiFiProxySetting>;
    // Specify the SSID of the wifi connection.
    ssid?: NullableOption<string>;
    /**
     * Specify the Wifi Security Type. Possible values are: open, wpaPersonal, wpaEnterprise, wep, wpa2Personal,
     * wpa2Enterprise.
     */
    wifiSecurityType?: NullableOption<WiFiSecurityType>;
}
export interface WindowsWifiEnterpriseEAPConfiguration extends WindowsWifiConfiguration {
    // Specify the authentication method. Possible values are: certificate, usernameAndPassword, derivedCredential.
    authenticationMethod?: NullableOption<WiFiAuthenticationMethod>;
    /**
     * Specify the number of seconds for the client to wait after an authentication attempt before failing. Valid range
     * 1-3600.
     */
    authenticationPeriodInSeconds?: NullableOption<number>;
    // Specify the number of seconds between a failed authentication and the next authentication attempt. Valid range 1-3600.
    authenticationRetryDelayPeriodInSeconds?: NullableOption<number>;
    /**
     * Specify whether to authenticate the user, the device, either, or to use guest authentication (none). If you’re using
     * certificate authentication, make sure the certificate type matches the authentication type. Possible values are: none,
     * user, machine, machineOrUser, guest.
     */
    authenticationType?: NullableOption<WifiAuthenticationType>;
    /**
     * Specify whether to cache user credentials on the device so that users don’t need to keep entering them each time they
     * connect.
     */
    cacheCredentials?: NullableOption<boolean>;
    /**
     * Specify whether to prevent the user from being prompted to authorize new servers for trusted certification authorities
     * when EAP type is selected as PEAP.
     */
    disableUserPromptForServerValidation?: NullableOption<boolean>;
    /**
     * Specify the number of seconds to wait before sending an EAPOL (Extensible Authentication Protocol over LAN) Start
     * message. Valid range 1-3600.
     */
    eapolStartPeriodInSeconds?: NullableOption<number>;
    /**
     * Extensible Authentication Protocol (EAP). Indicates the type of EAP protocol set on the Wi-Fi endpoint (router).
     * Possible values are: eapTls, leap, eapSim, eapTtls, peap, eapFast, teap.
     */
    eapType?: EapType;
    // Specify whether the wifi connection should enable pairwise master key caching.
    enablePairwiseMasterKeyCaching?: NullableOption<boolean>;
    // Specify whether pre-authentication should be enabled.
    enablePreAuthentication?: NullableOption<boolean>;
    /**
     * Specify inner authentication protocol for EAP TTLS. Possible values are: unencryptedPassword,
     * challengeHandshakeAuthenticationProtocol, microsoftChap, microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForEAPTTLS?: NullableOption<NonEapAuthenticationMethodForEapTtlsType>;
    // Specify the maximum authentication failures allowed for a set of credentials. Valid range 1-100.
    maximumAuthenticationFailures?: NullableOption<number>;
    // Specify maximum authentication timeout (in seconds). Valid range: 1-120
    maximumAuthenticationTimeoutInSeconds?: NullableOption<number>;
    /**
     * Specifiy the maximum number of EAPOL (Extensible Authentication Protocol over LAN) Start messages to be sent before
     * returning failure. Valid range 1-100.
     */
    maximumEAPOLStartMessages?: NullableOption<number>;
    // Specify maximum number of pairwise master keys in cache. Valid range: 1-255
    maximumNumberOfPairwiseMasterKeysInCache?: NullableOption<number>;
    // Specify maximum pairwise master key cache time (in minutes). Valid range: 5-1440
    maximumPairwiseMasterKeyCacheTimeInMinutes?: NullableOption<number>;
    // Specify maximum pre-authentication attempts. Valid range: 1-16
    maximumPreAuthenticationAttempts?: NullableOption<number>;
    // Specify the network single sign on type. Possible values are: disabled, prelogon, postlogon.
    networkSingleSignOn?: NullableOption<NetworkSingleSignOnType>;
    // Specify the string to replace usernames for privacy when using EAP TTLS or PEAP.
    outerIdentityPrivacyTemporaryValue?: NullableOption<string>;
    /**
     * Specify whether to enable verification of server's identity by validating the certificate when EAP type is selected as
     * PEAP.
     */
    performServerValidation?: NullableOption<boolean>;
    // Specify whether the wifi connection should prompt for additional authentication credentials.
    promptForAdditionalAuthenticationCredentials?: NullableOption<boolean>;
    // Specify whether to enable cryptographic binding when EAP type is selected as PEAP.
    requireCryptographicBinding?: NullableOption<boolean>;
    // Specify trusted server certificate names.
    trustedServerCertificateNames?: NullableOption<string[]>;
    /**
     * Specifiy whether to change the virtual LAN used by the device based on the user’s credentials. Cannot be used when
     * NetworkSingleSignOnType is set to ​Disabled.
     */
    userBasedVirtualLan?: NullableOption<boolean>;
    // Specify identity certificate for client authentication.
    identityCertificateForClientAuthentication?: NullableOption<WindowsCertificateProfileBase>;
    // Specify root certificate for client validation.
    rootCertificateForClientValidation?: NullableOption<Windows81TrustedRootCertificate>;
    // Specify root certificate for server validation. This collection can contain a maximum of 500 elements.
    rootCertificatesForServerValidation?: NullableOption<Windows81TrustedRootCertificate[]>;
}
export interface WindowsWiredNetworkConfiguration extends DeviceConfiguration {
    /**
     * Specify the duration for which automatic authentication attempts will be blocked from occuring after a failed
     * authentication attempt.
     */
    authenticationBlockPeriodInMinutes?: NullableOption<number>;
    /**
     * Specify the authentication method. Possible values are: certificate, usernameAndPassword, derivedCredential. Possible
     * values are: certificate, usernameAndPassword, derivedCredential, unknownFutureValue.
     */
    authenticationMethod?: NullableOption<WiredNetworkAuthenticationMethod>;
    /**
     * Specify the number of seconds for the client to wait after an authentication attempt before failing. Valid range
     * 1-3600.
     */
    authenticationPeriodInSeconds?: NullableOption<number>;
    // Specify the number of seconds between a failed authentication and the next authentication attempt. Valid range 1-3600.
    authenticationRetryDelayPeriodInSeconds?: NullableOption<number>;
    /**
     * Specify whether to authenticate the user, the device, either, or to use guest authentication (none). If you're using
     * certificate authentication, make sure the certificate type matches the authentication type. Possible values are: none,
     * user, machine, machineOrUser, guest. Possible values are: none, user, machine, machineOrUser, guest,
     * unknownFutureValue.
     */
    authenticationType?: NullableOption<WiredNetworkAuthenticationType>;
    /**
     * When TRUE, caches user credentials on the device so that users don't need to keep entering them each time they connect.
     * When FALSE, do not cache credentials. Default value is FALSE.
     */
    cacheCredentials?: NullableOption<boolean>;
    /**
     * When TRUE, prevents the user from being prompted to authorize new servers for trusted certification authorities when
     * EAP type is selected as PEAP. When FALSE, does not prevent the user from being prompted. Default value is FALSE.
     */
    disableUserPromptForServerValidation?: NullableOption<boolean>;
    /**
     * Specify the number of seconds to wait before sending an EAPOL (Extensible Authentication Protocol over LAN) Start
     * message. Valid range 1-3600.
     */
    eapolStartPeriodInSeconds?: NullableOption<number>;
    /**
     * Extensible Authentication Protocol (EAP). Indicates the type of EAP protocol set on the Wi-Fi endpoint (router).
     * Possible values are: eapTls, leap, eapSim, eapTtls, peap, eapFast, teap. Possible values are: eapTls, leap, eapSim,
     * eapTtls, peap, eapFast, teap.
     */
    eapType?: EapType;
    /**
     * When TRUE, the automatic configuration service for wired networks requires the use of 802.1X for port authentication.
     * When FALSE, 802.1X is not required. Default value is FALSE.
     */
    enforce8021X?: NullableOption<boolean>;
    // When TRUE, forces FIPS compliance. When FALSE, does not enable FIPS compliance. Default value is FALSE.
    forceFIPSCompliance?: NullableOption<boolean>;
    /**
     * Specify inner authentication protocol for EAP TTLS. Possible values are: unencryptedPassword,
     * challengeHandshakeAuthenticationProtocol, microsoftChap, microsoftChapVersionTwo. Possible values are:
     * unencryptedPassword, challengeHandshakeAuthenticationProtocol, microsoftChap, microsoftChapVersionTwo.
     */
    innerAuthenticationProtocolForEAPTTLS?: NullableOption<NonEapAuthenticationMethodForEapTtlsType>;
    // Specify the maximum authentication failures allowed for a set of credentials. Valid range 1-100.
    maximumAuthenticationFailures?: NullableOption<number>;
    /**
     * Specify the maximum number of EAPOL (Extensible Authentication Protocol over LAN) Start messages to be sent before
     * returning failure. Valid range 1-100.
     */
    maximumEAPOLStartMessages?: NullableOption<number>;
    // Specify the string to replace usernames for privacy when using EAP TTLS or PEAP.
    outerIdentityPrivacyTemporaryValue?: NullableOption<string>;
    /**
     * When TRUE, enables verification of server's identity by validating the certificate when EAP type is selected as PEAP.
     * When FALSE, the certificate is not validated. Default value is TRUE.
     */
    performServerValidation?: NullableOption<boolean>;
    /**
     * When TRUE, enables cryptographic binding when EAP type is selected as PEAP. When FALSE, does not enable cryptogrpahic
     * binding. Default value is TRUE.
     */
    requireCryptographicBinding?: NullableOption<boolean>;
    /**
     * Specify the secondary authentication method. Possible values are: certificate, usernameAndPassword, derivedCredential.
     * Possible values are: certificate, usernameAndPassword, derivedCredential, unknownFutureValue.
     */
    secondaryAuthenticationMethod?: NullableOption<WiredNetworkAuthenticationMethod>;
    // Specify trusted server certificate names.
    trustedServerCertificateNames?: NullableOption<string[]>;
    // Specify identity certificate for client authentication.
    identityCertificateForClientAuthentication?: NullableOption<WindowsCertificateProfileBase>;
    // Specify root certificate for client validation.
    rootCertificateForClientValidation?: NullableOption<Windows81TrustedRootCertificate>;
    // Specify root certificates for server validation. This collection can contain a maximum of 500 elements.
    rootCertificatesForServerValidation?: NullableOption<Windows81TrustedRootCertificate[]>;
    // Specify secondary identity certificate for client authentication.
    secondaryIdentityCertificateForClientAuthentication?: NullableOption<WindowsCertificateProfileBase>;
    // Specify secondary root certificate for client validation.
    secondaryRootCertificateForClientValidation?: NullableOption<Windows81TrustedRootCertificate>;
}
export interface DeviceManagementComplianceActionItem extends Entity {
    /**
     * What action to take. Possible values are: noAction, notification, block, retire, wipe, removeResourceAccessProfiles,
     * pushNotification, remoteLock.
     */
    actionType?: DeviceManagementComplianceActionType;
    // 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. This collection can contain a maximum of 100
     * elements.
     */
    notificationMessageCCList?: NullableOption<string[]>;
    // What notification Message template to use
    notificationTemplateId?: NullableOption<string>;
}
export interface DeviceManagementConfigurationPolicyAssignment extends Entity {
    /**
     * The assignment source for the device compliance policy, direct or parcel/policySet. Possible values are: direct,
     * policySets.
     */
    source?: DeviceAndAppManagementAssignmentSource;
    // The identifier of the source of the assignment.
    sourceId?: NullableOption<string>;
    // The assignment target for the DeviceManagementConfigurationPolicy.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface DeviceManagementComplianceScheduledActionForRule extends Entity {
    // Name of the rule which this scheduled action applies to.
    ruleName?: NullableOption<string>;
    /**
     * The list of scheduled action configurations for this compliance policy. This collection can contain a maximum of 100
     * elements.
     */
    scheduledActionConfigurations?: NullableOption<DeviceManagementComplianceActionItem[]>;
}
export interface DeviceManagementConfigurationSetting extends Entity {
    // Setting Instance
    settingInstance?: DeviceManagementConfigurationSettingInstance;
    // List of related Setting Definitions. This property is read-only.
    settingDefinitions?: NullableOption<DeviceManagementConfigurationSettingDefinition[]>;
}
export interface DeviceManagementConfigurationChoiceSettingDefinition extends DeviceManagementConfigurationSettingDefinition {
    // Default option for the choice setting.
    defaultOptionId?: NullableOption<string>;
    // Options for the setting that can be selected.
    options?: NullableOption<DeviceManagementConfigurationOptionDefinition[]>;
}
export interface DeviceManagementConfigurationChoiceSettingCollectionDefinition extends DeviceManagementConfigurationChoiceSettingDefinition {
    // Maximum number of choices in the collection. Valid values 1 to 100
    maximumCount?: number;
    // Minimum number of choices in the collection. Valid values 1 to 100
    minimumCount?: number;
}
export interface DeviceManagementConfigurationRedirectSettingDefinition extends DeviceManagementConfigurationSettingDefinition {
    // A deep link that points to the specific location in the Intune console where feature support must be managed from.
    deepLink?: NullableOption<string>;
    // A message that explains that clicking the link will redirect the user to a supported page to manage the settings.
    redirectMessage?: NullableOption<string>;
    /**
     * Indicates the reason for redirecting the user to an alternative location in the console. For example: WiFi profiles are
     * not supported in the settings catalog and must be created with a template policy.
     */
    redirectReason?: NullableOption<string>;
}
export interface DeviceManagementConfigurationSettingGroupDefinition extends DeviceManagementConfigurationSettingDefinition {
    // Dependent child settings to this group of settings.
    childIds?: NullableOption<string[]>;
    // List of child settings that depend on this setting
    dependedOnBy?: NullableOption<DeviceManagementConfigurationSettingDependedOnBy[]>;
    // List of Dependencies for the setting group
    dependentOn?: NullableOption<DeviceManagementConfigurationDependentOn[]>;
}
export interface DeviceManagementConfigurationSettingGroupCollectionDefinition extends DeviceManagementConfigurationSettingGroupDefinition {
    // Maximum number of setting group count in the collection. Valid values 1 to 100
    maximumCount?: number;
    // Minimum number of setting group count in the collection. Valid values 1 to 100
    minimumCount?: number;
}
export interface DeviceManagementConfigurationSimpleSettingDefinition extends DeviceManagementConfigurationSettingDefinition {
    // Default setting value for this setting.
    defaultValue?: NullableOption<DeviceManagementConfigurationSettingValue>;
    // list of child settings that depend on this setting.
    dependedOnBy?: NullableOption<DeviceManagementConfigurationSettingDependedOnBy[]>;
    // list of parent settings this setting is dependent on.
    dependentOn?: NullableOption<DeviceManagementConfigurationDependentOn[]>;
    // Definition of the value for this setting.
    valueDefinition?: NullableOption<DeviceManagementConfigurationSettingValueDefinition>;
}
export interface DeviceManagementConfigurationSimpleSettingCollectionDefinition extends DeviceManagementConfigurationSimpleSettingDefinition {
    // Maximum number of simple settings in the collection
    maximumCount?: number;
    // Minimum number of simple settings in the collection
    minimumCount?: number;
}
export interface DeviceComanagementAuthorityConfiguration extends DeviceEnrollmentConfiguration {
    // CoManagement Authority configuration ConfigurationManagerAgentCommandLineArgument
    configurationManagerAgentCommandLineArgument?: NullableOption<string>;
    // CoManagement Authority configuration InstallConfigurationManagerAgent
    installConfigurationManagerAgent?: boolean;
    // CoManagement Authority configuration ManagedDeviceAuthority
    managedDeviceAuthority?: number;
}
export interface DeviceEnrollmentLimitConfiguration extends DeviceEnrollmentConfiguration {
    // The maximum number of devices that a user can enroll
    limit?: number;
}
export interface DeviceEnrollmentNotificationConfiguration extends DeviceEnrollmentConfiguration {
    /**
     * Branding Options for the Enrollment Notification. Possible values are: none, includeCompanyLogo, includeCompanyName,
     * includeContactInformation, includeCompanyPortalLink, includeDeviceDetails, unknownFutureValue.
     */
    brandingOptions?: EnrollmentNotificationBrandingOptions;
    // DefaultLocale for the Enrollment Notification
    defaultLocale?: NullableOption<string>;
    // Notification Message Template Id
    notificationMessageTemplateId?: string;
    // The list of notification data -
    notificationTemplates?: NullableOption<string[]>;
    /**
     * Platform type of the Enrollment Notification. Possible values are: allPlatforms, ios, windows, windowsPhone, android,
     * androidForWork, mac, linux, unknownFutureValue.
     */
    platformType?: EnrollmentRestrictionPlatformType;
    // Template type of the Enrollment Notification. Possible values are: email, push, unknownFutureValue.
    templateType?: EnrollmentNotificationTemplateType;
}
export interface DeviceEnrollmentPlatformRestrictionConfiguration extends DeviceEnrollmentConfiguration {
    // Restrictions based on platform, platform operating system version, and device ownership
    platformRestriction?: NullableOption<DeviceEnrollmentPlatformRestriction>;
    /**
     * Type of platform for which this restriction applies. Possible values are: allPlatforms, ios, windows, windowsPhone,
     * android, androidForWork, mac, linux, unknownFutureValue.
     */
    platformType?: EnrollmentRestrictionPlatformType;
}
export interface DeviceEnrollmentPlatformRestrictionsConfiguration extends DeviceEnrollmentConfiguration {
    // Android for work restrictions based on platform, platform operating system version, and device ownership
    androidForWorkRestriction?: NullableOption<DeviceEnrollmentPlatformRestriction>;
    // 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>;
    // Mac restrictions based on platform, platform operating system version, and device ownership
    macRestriction?: NullableOption<DeviceEnrollmentPlatformRestriction>;
    // Windows Home Sku restrictions based on platform, platform operating system version, and device ownership
    windowsHomeSkuRestriction?: 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;
    // Setting to configure Enahcned sign-in security. Default is enabled on one secure modality (face or fingerprint)
    enhancedSignInSecurity?: number;
    /**
     * 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;
    /**
     * Security key for Sign In provides the capacity for remotely turning ON/OFF Windows Hello Sercurity Keyl Not configured
     * will honor configurations done on the clinet. Possible values are: notConfigured, enabled, disabled.
     */
    securityKeyForSignIn?: Enablement;
    /**
     * 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 Windows10EnrollmentCompletionPageConfiguration extends DeviceEnrollmentConfiguration {
    // Allow or block device reset on installation failure
    allowDeviceResetOnInstallFailure?: boolean;
    // Allow the user to continue using the device on installation failure
    allowDeviceUseOnInstallFailure?: boolean;
    // Allow or block log collection on installation failure
    allowLogCollectionOnInstallFailure?: boolean;
    // Install all required apps as non blocking apps during white glove
    allowNonBlockingAppInstallation?: boolean;
    // Allow the user to retry the setup on installation failure
    blockDeviceSetupRetryByUser?: boolean;
    // Set custom error message to show upon installation failure
    customErrorMessage?: NullableOption<string>;
    // Only show installation progress for first user post enrollment
    disableUserStatusTrackingAfterFirstUser?: boolean;
    // Set installation progress timeout in minutes
    installProgressTimeoutInMinutes?: NullableOption<number>;
    // Allows quality updates installation during OOBE
    installQualityUpdates?: boolean;
    // Selected applications to track the installation status
    selectedMobileAppIds?: NullableOption<string[]>;
    // Show or hide installation progress to user
    showInstallationProgress?: boolean;
    // Only show installation progress for Autopilot enrollment scenarios
    trackInstallProgressForAutopilotOnly?: boolean;
}
export interface DeviceManagementAbstractComplexSettingDefinition extends DeviceManagementSettingDefinition {
    // List of definition IDs for all possible implementations of this abstract complex setting
    implementations?: NullableOption<string[]>;
}
export interface DeviceManagementSettingInstance extends Entity {
    // The ID of the setting definition for this instance
    definitionId?: string;
    // JSON representation of the value
    valueJson?: NullableOption<string>;
}
export interface DeviceManagementAbstractComplexSettingInstance extends DeviceManagementSettingInstance {
    // The definition ID for the chosen implementation of this complex setting
    implementationId?: NullableOption<string>;
    // The values that make up the complex setting
    value?: NullableOption<DeviceManagementSettingInstance[]>;
}
export interface DeviceManagementBooleanSettingInstance extends DeviceManagementSettingInstance {
    // The boolean value
    value?: NullableOption<boolean>;
}
export interface DeviceManagementCollectionSettingDefinition extends DeviceManagementSettingDefinition {
    // The Setting Definition ID that describes what each element of the collection looks like
    elementDefinitionId?: NullableOption<string>;
}
export interface DeviceManagementCollectionSettingInstance extends DeviceManagementSettingInstance {
    // The collection of values
    value?: NullableOption<DeviceManagementSettingInstance[]>;
}
export interface DeviceManagementComplexSettingDefinition extends DeviceManagementSettingDefinition {
    // The definitions of each property of the complex setting
    propertyDefinitionIds?: NullableOption<string[]>;
}
export interface DeviceManagementComplexSettingInstance extends DeviceManagementSettingInstance {
    // The values that make up the complex setting
    value?: NullableOption<DeviceManagementSettingInstance[]>;
}
export interface DeviceManagementIntegerSettingInstance extends DeviceManagementSettingInstance {
    // The integer value
    value?: NullableOption<number>;
}
export interface DeviceManagementIntentAssignment extends Entity {
    // The assignment target
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface DeviceManagementIntentSettingCategory extends DeviceManagementSettingCategory {
    // The settings this category contains
    settings?: NullableOption<DeviceManagementSettingInstance[]>;
}
export interface DeviceManagementIntentDeviceSettingStateSummary extends Entity {
    // Number of compliant devices
    compliantCount?: number;
    // Number of devices in conflict
    conflictCount?: number;
    // Number of error devices
    errorCount?: number;
    // Number of non compliant devices
    nonCompliantCount?: number;
    // Number of not applicable devices
    notApplicableCount?: number;
    // Number of remediated devices
    remediatedCount?: number;
    // Name of a setting
    settingName?: NullableOption<string>;
}
export interface DeviceManagementIntentDeviceState extends Entity {
    // Device name that is being reported
    deviceDisplayName?: NullableOption<string>;
    // Device id that is being reported
    deviceId?: NullableOption<string>;
    // Last modified date time of an intent report
    lastReportedDateTime?: string;
    /**
     * Device state for an intent. Possible values are: unknown, notApplicable, compliant, remediated, nonCompliant, error,
     * conflict, notAssigned.
     */
    state?: ComplianceStatus;
    // The user name that is being reported on a device
    userName?: NullableOption<string>;
    // The user principal name that is being reported on a device
    userPrincipalName?: NullableOption<string>;
}
export interface DeviceManagementIntentDeviceStateSummary extends Entity {
    // Number of devices in conflict
    conflictCount?: number;
    // Number of error devices
    errorCount?: number;
    // Number of failed devices
    failedCount?: number;
    // Number of not applicable devices
    notApplicableCount?: number;
    // Number of not applicable devices due to mismatch platform and policy
    notApplicablePlatformCount?: number;
    // Number of succeeded devices
    successCount?: number;
}
export interface DeviceManagementIntentUserState extends Entity {
    // Count of Devices that belongs to a user for an intent
    deviceCount?: number;
    // Last modified date time of an intent report
    lastReportedDateTime?: string;
    /**
     * User state for an intent. Possible values are: unknown, notApplicable, compliant, remediated, nonCompliant, error,
     * conflict, notAssigned.
     */
    state?: ComplianceStatus;
    // The user name that is being reported on a device
    userName?: NullableOption<string>;
    // The user principal name that is being reported on a device
    userPrincipalName?: NullableOption<string>;
}
export interface DeviceManagementIntentUserStateSummary extends Entity {
    // Number of users in conflict
    conflictCount?: number;
    // Number of error users
    errorCount?: number;
    // Number of failed users
    failedCount?: number;
    // Number of not applicable users
    notApplicableCount?: number;
    // Number of succeeded users
    successCount?: number;
}
export interface DeviceManagementStringSettingInstance extends DeviceManagementSettingInstance {
    // The string value
    value?: NullableOption<string>;
}
export interface DeviceManagementTemplateSettingCategory extends DeviceManagementSettingCategory {
    // The settings this category contains
    recommendedSettings?: NullableOption<DeviceManagementSettingInstance[]>;
}
export interface SecurityBaselineStateSummary extends Entity {
    // Number of conflict devices
    conflictCount?: number;
    // Number of error devices
    errorCount?: number;
    // Number of not applicable devices
    notApplicableCount?: number;
    // Number of not secure devices
    notSecureCount?: number;
    // Number of secure devices
    secureCount?: number;
    // Number of unknown devices
    unknownCount?: number;
}
export interface SecurityBaselineCategoryStateSummary extends SecurityBaselineStateSummary {
    // The category name
    displayName?: NullableOption<string>;
}
export interface SecurityBaselineDeviceState extends Entity {
    // Display name of the device
    deviceDisplayName?: NullableOption<string>;
    // Last modified date time of the policy report
    lastReportedDateTime?: string;
    // Intune device id
    managedDeviceId?: NullableOption<string>;
    // Security baseline compliance state. Possible values are: unknown, secure, notApplicable, notSecure, error, conflict.
    state?: SecurityBaselineComplianceState;
    // User Principal Name
    userPrincipalName?: NullableOption<string>;
}
export interface SecurityBaselineSettingState extends Entity {
    // The policies that contribute to this setting instance
    contributingPolicies?: NullableOption<SecurityBaselineContributingPolicy[]>;
    // The error code if the setting is in error state
    errorCode?: NullableOption<string>;
    // The setting category id which this setting belongs to
    settingCategoryId?: NullableOption<string>;
    // The setting category name which this setting belongs to
    settingCategoryName?: NullableOption<string>;
    // The setting id guid
    settingId?: NullableOption<string>;
    // The setting name that is being reported
    settingName?: string;
    // The policies that contribute to this setting instance
    sourcePolicies?: NullableOption<SettingSource[]>;
    // The compliance state of the security baseline setting
    state?: SecurityBaselineComplianceState;
}
export interface SecurityBaselineTemplate extends DeviceManagementTemplate {
    // The security baseline per category device state summary
    categoryDeviceStateSummaries?: NullableOption<SecurityBaselineCategoryStateSummary[]>;
    // The security baseline device states
    deviceStates?: NullableOption<SecurityBaselineDeviceState[]>;
    // The security baseline device state summary
    deviceStateSummary?: NullableOption<SecurityBaselineStateSummary>;
}
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 DeviceHealthScriptAssignment extends Entity {
    // Determine whether we want to run detection script only or run both detection script and remediation script
    runRemediationScript?: boolean;
    // Script run schedule for the target group
    runSchedule?: NullableOption<DeviceHealthScriptRunSchedule>;
    // The Azure Active Directory group we are targeting the script to
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface DeviceComplianceScriptDeviceState extends Entity {
    /**
     * Detection state from the lastest device compliance script execution. Possible values are: unknown, success, fail,
     * scriptError, pending, notApplicable.
     */
    detectionState?: RunState;
    // The next timestamp of when the device compliance script is expected to execute
    expectedStateUpdateDateTime?: NullableOption<string>;
    // The last timestamp of when the device compliance script executed
    lastStateUpdateDateTime?: string;
    // The last time that Intune Managment Extension synced with Intune
    lastSyncDateTime?: string;
    // Error from the detection script
    scriptError?: NullableOption<string>;
    // Output of the detection script
    scriptOutput?: NullableOption<string>;
    // The managed device on which the device compliance script executed
    managedDevice?: NullableOption<ManagedDevice>;
}
export interface DeviceComplianceScriptRunSummary extends Entity {
    /**
     * Number of devices on which the detection script execution encountered an error and did not complete. Valid values
     * -2147483648 to 2147483647
     */
    detectionScriptErrorDeviceCount?: number;
    /**
     * Number of devices which have not yet run the latest version of the device compliance script. Valid values -2147483648
     * to 2147483647
     */
    detectionScriptPendingDeviceCount?: number;
    // Number of devices for which the detection script found an issue. Valid values -2147483648 to 2147483647
    issueDetectedDeviceCount?: number;
    // Last run time for the script across all devices
    lastScriptRunDateTime?: NullableOption<string>;
    /**
     * Number of devices for which the detection script did not find an issue and the device is healthy. Valid values
     * -2147483648 to 2147483647
     */
    noIssueDetectedDeviceCount?: number;
}
export interface DeviceHealthScriptDeviceState extends Entity {
    // A list of the assignment filter ids used for health script applicability evaluation
    assignmentFilterIds?: NullableOption<string[]>;
    /**
     * Detection state from the lastest device health script execution. Possible values are: unknown, success, fail,
     * scriptError, pending, notApplicable.
     */
    detectionState?: RunState;
    // The next timestamp of when the device health script is expected to execute
    expectedStateUpdateDateTime?: NullableOption<string>;
    // The last timestamp of when the device health script executed
    lastStateUpdateDateTime?: string;
    // The last time that Intune Managment Extension synced with Intune
    lastSyncDateTime?: string;
    // Error from the detection script after remediation
    postRemediationDetectionScriptError?: NullableOption<string>;
    // Detection script output after remediation
    postRemediationDetectionScriptOutput?: NullableOption<string>;
    // Error from the detection script before remediation
    preRemediationDetectionScriptError?: NullableOption<string>;
    // Output of the detection script before remediation
    preRemediationDetectionScriptOutput?: NullableOption<string>;
    // Error output of the remediation script
    remediationScriptError?: NullableOption<string>;
    /**
     * Remediation state from the lastest device health script execution. Possible values are: unknown, skipped, success,
     * remediationFailed, scriptError, unknownFutureValue.
     */
    remediationState?: RemediationState;
    // The managed device on which the device health script executed
    managedDevice?: NullableOption<ManagedDevice>;
}
export interface DeviceHealthScriptRunSummary extends Entity {
    // Number of devices on which the detection script execution encountered an error and did not complete
    detectionScriptErrorDeviceCount?: number;
    // Number of devices for which the detection script was not applicable
    detectionScriptNotApplicableDeviceCount?: number;
    // Number of devices which have not yet run the latest version of the device health script
    detectionScriptPendingDeviceCount?: number;
    // Number of devices for which the detection script found an issue
    issueDetectedDeviceCount?: number;
    // Number of devices that were remediated over the last 30 days
    issueRemediatedCumulativeDeviceCount?: number;
    // Number of devices for which the remediation script was able to resolve the detected issue
    issueRemediatedDeviceCount?: number;
    // Number of devices for which the remediation script executed successfully but failed to resolve the detected issue
    issueReoccurredDeviceCount?: number;
    // Last run time for the script across all devices
    lastScriptRunDateTime?: NullableOption<string>;
    // Number of devices for which the detection script did not find an issue and the device is healthy
    noIssueDetectedDeviceCount?: number;
    // Number of devices for which the remediation script execution encountered an error and did not complete
    remediationScriptErrorDeviceCount?: number;
    // Number of devices for which remediation was skipped
    remediationSkippedDeviceCount?: number;
}
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: no-empty-interface
export interface WindowsManagedDevice extends ManagedDevice {}
export interface WindowsManagementAppHealthState extends Entity {
    // Name of the device on which Windows management app is installed.
    deviceName?: NullableOption<string>;
    // Windows 10 OS version of the device on which Windows management app is installed.
    deviceOSVersion?: NullableOption<string>;
    // Windows management app health state. Possible values are: unknown, healthy, unhealthy.
    healthState?: HealthState;
    // Windows management app installed version.
    installedVersion?: NullableOption<string>;
    // Windows management app last check-in time.
    lastCheckInDateTime?: string;
}
export interface WindowsManagementAppHealthSummary extends Entity {
    // Healthy device count.
    healthyDeviceCount?: number;
    // Unhealthy device count.
    unhealthyDeviceCount?: number;
    // Unknown device count.
    unknownDeviceCount?: number;
}
export interface DeviceManagementResourceAccessProfileAssignment extends Entity {
    // The assignment intent for the resource access profile. Possible values are: apply, remove.
    intent?: DeviceManagementResourceAccessProfileIntent;
    // The identifier of the source of the assignment.
    sourceId?: NullableOption<string>;
    // The assignment target for the resource access profile.
    target?: DeviceAndAppManagementAssignmentTarget;
}
// tslint:disable-next-line: no-empty-interface
export interface Windows10XCertificateProfile extends DeviceManagementResourceAccessProfileBase {}
export interface Windows10XSCEPCertificateProfile extends Windows10XCertificateProfile {
    // Target store certificate. Possible values are: user, machine.
    certificateStore?: CertificateStore;
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validity Period
    certificateValidityPeriodValue?: number;
    // Extended Key Usage (EKU) settings.
    extendedKeyUsages?: ExtendedKeyUsage[];
    // SCEP Hash Algorithm.
    hashAlgorithm?: HashAlgorithms[];
    // SCEP Key Size. Possible values are: size1024, size2048, size4096.
    keySize?: KeySize;
    /**
     * Key Storage Provider (KSP). Possible values are: useTpmKspOtherwiseUseSoftwareKsp, useTpmKspOtherwiseFail,
     * usePassportForWorkKspOtherwiseFail, useSoftwareKsp.
     */
    keyStorageProvider?: KeyStorageProviderOption;
    // SCEP Key Usage. Possible values are: keyEncipherment, digitalSignature.
    keyUsage?: KeyUsages;
    // Certificate renewal threshold percentage
    renewalThresholdPercentage?: number;
    // Trusted Root Certificate ID
    rootCertificateId?: NullableOption<string>;
    // SCEP Server Url(s).
    scepServerUrls?: NullableOption<string[]>;
    // Custom AAD Attributes.
    subjectAlternativeNameFormats?: NullableOption<Windows10XCustomSubjectAlternativeName[]>;
    /**
     * Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise
     * Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
     */
    subjectNameFormatString?: NullableOption<string>;
}
export interface Windows10XTrustedRootCertificate extends DeviceManagementResourceAccessProfileBase {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    /**
     * Destination store location for the Trusted Root Certificate. Possible values are: computerCertStoreRoot,
     * computerCertStoreIntermediate, userCertStoreIntermediate.
     */
    destinationStore?: CertificateDestinationStore;
    // Trusted Root Certificate
    trustedRootCertificate?: string;
}
export interface Windows10XVpnConfiguration extends DeviceManagementResourceAccessProfileBase {
    // ID to the Authentication Certificate
    authenticationCertificateId?: NullableOption<string>;
    // Custom XML commands that configures the VPN connection. (UTF8 byte encoding)
    customXml?: string;
    // Custom Xml file name.
    customXmlFileName?: NullableOption<string>;
}
export interface Windows10XWifiConfiguration extends DeviceManagementResourceAccessProfileBase {
    // ID to the Authentication Certificate
    authenticationCertificateId?: NullableOption<string>;
    // Custom XML commands that configures the VPN connection. (UTF8 byte encoding)
    customXml?: string;
    // Custom Xml file name.
    customXmlFileName?: NullableOption<string>;
}
export interface ActiveDirectoryWindowsAutopilotDeploymentProfile extends WindowsAutopilotDeploymentProfile {
    /**
     * The Autopilot Hybrid Azure AD join flow will continue even if it does not establish domain controller connectivity
     * during OOBE.
     */
    hybridAzureADJoinSkipConnectivityCheck?: boolean;
    // Configuration to join Active Directory domain
    domainJoinConfiguration?: NullableOption<WindowsDomainJoinConfiguration>;
}
export interface AppleEnrollmentProfileAssignment extends Entity {
    // The assignment target for the Apple user initiated deployment profile.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
// tslint:disable-next-line: no-empty-interface
export interface AzureADWindowsAutopilotDeploymentProfile extends WindowsAutopilotDeploymentProfile {}
export interface EnrollmentProfile extends Entity {
    // Configuration endpoint url to use for Enrollment
    configurationEndpointUrl?: NullableOption<string>;
    // Description of the profile
    description?: NullableOption<string>;
    // Name of the profile
    displayName?: NullableOption<string>;
    // Indicates to authenticate with Apple Setup Assistant instead of Company Portal.
    enableAuthenticationViaCompanyPortal?: boolean;
    // Indicates that Company Portal is required on setup assistant enrolled devices
    requireCompanyPortalOnSetupAssistantEnrolledDevices?: boolean;
    // Indicates if the profile requires user authentication
    requiresUserAuthentication?: boolean;
}
export interface DepEnrollmentBaseProfile extends EnrollmentProfile {
    // Indicates if Apple id setup pane is disabled
    appleIdDisabled?: boolean;
    // Indicates if Apple pay setup pane is disabled
    applePayDisabled?: boolean;
    // URL for setup assistant login
    configurationWebUrl?: boolean;
    // Sets a literal or name pattern.
    deviceNameTemplate?: NullableOption<string>;
    // Indicates if diagnostics setup pane is disabled
    diagnosticsDisabled?: boolean;
    // Indicates if displaytone setup screen is disabled
    displayToneSetupDisabled?: boolean;
    // enabledSkipKeys contains all the enabled skip keys as strings
    enabledSkipKeys?: NullableOption<string[]>;
    // EnrollmentTimeAzureAdGroupIds contains list of enrollment time Azure Group Ids to be associated with profile
    enrollmentTimeAzureAdGroupIds?: string[];
    // Indicates if this is the default profile
    isDefault?: boolean;
    // Indicates if the profile is mandatory
    isMandatory?: boolean;
    // Indicates if Location service setup pane is disabled
    locationDisabled?: boolean;
    // Indicates if privacy screen is disabled
    privacyPaneDisabled?: boolean;
    // Indicates if the profile removal option is disabled
    profileRemovalDisabled?: boolean;
    // Indicates if Restore setup pane is blocked
    restoreBlocked?: boolean;
    // Indicates if screen timeout setup is disabled
    screenTimeScreenDisabled?: boolean;
    // Indicates if siri setup pane is disabled
    siriDisabled?: boolean;
    /**
     * Supervised mode, True to enable, false otherwise. See
     * https://learn.microsoft.com/intune/deploy-use/enroll-devices-in-microsoft-intune for additional information.
     */
    supervisedModeEnabled?: boolean;
    // Support department information
    supportDepartment?: NullableOption<string>;
    // Support phone number
    supportPhoneNumber?: NullableOption<string>;
    // Indicates if 'Terms and Conditions' setup pane is disabled
    termsAndConditionsDisabled?: boolean;
    // Indicates if touch id setup pane is disabled
    touchIdDisabled?: boolean;
    // Indicates if the device will need to wait for configured confirmation
    waitForDeviceConfiguredConfirmation?: boolean;
}
export interface DepEnrollmentProfile extends EnrollmentProfile {
    // Indicates if Apple id setup pane is disabled
    appleIdDisabled?: boolean;
    // Indicates if Apple pay setup pane is disabled
    applePayDisabled?: boolean;
    // Indicates if the device will need to wait for configured confirmation
    awaitDeviceConfiguredConfirmation?: boolean;
    // Indicates if diagnostics setup pane is disabled
    diagnosticsDisabled?: boolean;
    /**
     * This indicates whether the device is to be enrolled in a mode which enables multi user scenarios. Only applicable in
     * shared iPads.
     */
    enableSharedIPad?: boolean;
    // Indicates if this is the default profile
    isDefault?: boolean;
    // Indicates if the profile is mandatory
    isMandatory?: boolean;
    // Indicates the iTunes pairing mode. Possible values are: disallow, allow, requiresCertificate.
    iTunesPairingMode?: ITunesPairingMode;
    // Indicates if Location service setup pane is disabled
    locationDisabled?: boolean;
    // Indicates if Mac OS file vault is disabled
    macOSFileVaultDisabled?: boolean;
    // Indicates if Mac OS registration is disabled
    macOSRegistrationDisabled?: boolean;
    // Management certificates for Apple Configurator
    managementCertificates?: NullableOption<ManagementCertificateWithThumbprint[]>;
    // Indicates if Passcode setup pane is disabled
    passCodeDisabled?: boolean;
    // Indicates if the profile removal option is disabled
    profileRemovalDisabled?: boolean;
    // Indicates if Restore setup pane is blocked
    restoreBlocked?: boolean;
    // Indicates if Restore from Android is disabled
    restoreFromAndroidDisabled?: boolean;
    // This specifies the maximum number of users that can use a shared iPad. Only applicable in shared iPad mode.
    sharedIPadMaximumUserCount?: number;
    // Indicates if siri setup pane is disabled
    siriDisabled?: boolean;
    /**
     * Supervised mode, True to enable, false otherwise. See
     * https://learn.microsoft.com/intune/deploy-use/enroll-devices-in-microsoft-intune for additional information.
     */
    supervisedModeEnabled?: boolean;
    // Support department information
    supportDepartment?: NullableOption<string>;
    // Support phone number
    supportPhoneNumber?: NullableOption<string>;
    // Indicates if 'Terms and Conditions' setup pane is disabled
    termsAndConditionsDisabled?: boolean;
    // Indicates if touch id setup pane is disabled
    touchIdDisabled?: boolean;
    // Indicates if zoom setup pane is disabled
    zoomDisabled?: boolean;
}
export interface DepIOSEnrollmentProfile extends DepEnrollmentBaseProfile {
    // Indicates if Apperance screen is disabled
    appearanceScreenDisabled?: boolean;
    // Indicates if the device will need to wait for configured confirmation
    awaitDeviceConfiguredConfirmation?: boolean;
    // Carrier URL for activating device eSIM.
    carrierActivationUrl?: NullableOption<string>;
    /**
     * If set, indicates which Vpp token should be used to deploy the Company Portal w/ device licensing.
     * 'enableAuthenticationViaCompanyPortal' must be set in order for this property to be set.
     */
    companyPortalVppTokenId?: NullableOption<string>;
    // Indicates if Device To Device Migration is disabled
    deviceToDeviceMigrationDisabled?: boolean;
    /**
     * This indicates whether the device is to be enrolled in a mode which enables multi user scenarios. Only applicable in
     * shared iPads.
     */
    enableSharedIPad?: boolean;
    /**
     * Tells the device to enable single app mode and apply app-lock during enrollment. Default is false.
     * 'enableAuthenticationViaCompanyPortal' and 'companyPortalVppTokenId' must be set for this property to be set.
     */
    enableSingleAppEnrollmentMode?: boolean;
    // Indicates if Express Language screen is disabled
    expressLanguageScreenDisabled?: boolean;
    // Indicates if temporary sessions is enabled
    forceTemporarySession?: boolean;
    // Indicates if home button sensitivity screen is disabled
    homeButtonScreenDisabled?: boolean;
    // Indicates if iMessage and FaceTime screen is disabled
    iMessageAndFaceTimeScreenDisabled?: boolean;
    // Indicates the iTunes pairing mode. Possible values are: disallow, allow, requiresCertificate.
    iTunesPairingMode?: ITunesPairingMode;
    // Management certificates for Apple Configurator
    managementCertificates?: NullableOption<ManagementCertificateWithThumbprint[]>;
    // Indicates if onboarding setup screen is disabled
    onBoardingScreenDisabled?: boolean;
    // Indicates if Passcode setup pane is disabled
    passCodeDisabled?: boolean;
    // Indicates timeout before locked screen requires the user to enter the device passocde to unlock it
    passcodeLockGracePeriodInSeconds?: NullableOption<number>;
    // Indicates if Preferred language screen is disabled
    preferredLanguageScreenDisabled?: boolean;
    // Indicates if Weclome screen is disabled
    restoreCompletedScreenDisabled?: boolean;
    // Indicates if Restore from Android is disabled
    restoreFromAndroidDisabled?: boolean;
    // This specifies the maximum number of users that can use a shared iPad. Only applicable in shared iPad mode.
    sharedIPadMaximumUserCount?: number;
    // Indicates if the SIMSetup screen is disabled
    simSetupScreenDisabled?: boolean;
    // Indicates if the mandatory sofware update screen is disabled
    softwareUpdateScreenDisabled?: boolean;
    // Indicates timeout of temporary session
    temporarySessionTimeoutInSeconds?: number;
    // Indicates if Weclome screen is disabled
    updateCompleteScreenDisabled?: boolean;
    /**
     * Indicates that this apple device is designated to support 'shared device mode' scenarios. This is distinct from the
     * 'shared iPad' scenario. See https://learn.microsoft.com/mem/intune/enrollment/device-enrollment-shared-ios
     */
    userlessSharedAadModeEnabled?: boolean;
    // Indicates timeout of temporary session
    userSessionTimeoutInSeconds?: number;
    // Indicates if the watch migration screen is disabled
    watchMigrationScreenDisabled?: boolean;
    // Indicates if Weclome screen is disabled
    welcomeScreenDisabled?: boolean;
    // Indicates if zoom setup pane is disabled
    zoomDisabled?: boolean;
}
export interface DepMacOSEnrollmentProfile extends DepEnrollmentBaseProfile {
    // Indicates if Accessibility screen is disabled
    accessibilityScreenDisabled?: boolean;
    // Indicates what the full name for the admin account is
    adminAccountFullName?: NullableOption<string>;
    // Indicates what the password for the admin account is
    adminAccountPassword?: NullableOption<string>;
    // Indicates what the user name for the admin account is
    adminAccountUserName?: NullableOption<string>;
    // Indicates if Setup Assistant will automatically advance through its screen
    autoAdvanceSetupEnabled?: boolean;
    // Indicates if UnlockWithWatch screen is disabled
    autoUnlockWithWatchDisabled?: boolean;
    // Indicates if iCloud Documents and Desktop screen is disabled
    chooseYourLockScreenDisabled?: boolean;
    // Indicates whether Setup Assistant will auto populate the primary account information
    dontAutoPopulatePrimaryAccountInfo?: boolean;
    // Indicates whether the user will enable blockediting
    enableRestrictEditing?: boolean;
    // Indicates if file vault is disabled
    fileVaultDisabled?: boolean;
    // Indicates whether the admin account should be hidded or not
    hideAdminAccount?: boolean;
    // Indicates if iCloud Analytics screen is disabled
    iCloudDiagnosticsDisabled?: boolean;
    // Indicates if iCloud Documents and Desktop screen is disabled
    iCloudStorageDisabled?: boolean;
    // Indicates if Passcode setup pane is disabled
    passCodeDisabled?: boolean;
    // Indicates what the full name for the primary account is
    primaryAccountFullName?: NullableOption<string>;
    // Indicates what the account name for the primary account is
    primaryAccountUserName?: NullableOption<string>;
    // Indicates if registration is disabled
    registrationDisabled?: boolean;
    // Indicates if the device is network-tethered to run the command
    requestRequiresNetworkTether?: boolean;
    // Indicates whether Setup Assistant will set the account as a regular user
    setPrimarySetupAccountAsRegularUser?: boolean;
    // Indicates whether Setup Assistant will skip the user interface for primary account setup
    skipPrimarySetupAccountCreation?: boolean;
    // Indicates if zoom setup pane is disabled
    zoomDisabled?: boolean;
}
// tslint:disable-next-line: interface-name
export interface ImportedAppleDeviceIdentity extends Entity {
    // Created Date Time of the device
    createdDateTime?: string;
    // The description of the device
    description?: NullableOption<string>;
    // Apple device discovery source. Possible values are: unknown, adminImport, deviceEnrollmentProgram.
    discoverySource?: DiscoverySource;
    // The state of the device in Intune. Possible values are: unknown, enrolled, pendingReset, failed, notContacted, blocked.
    enrollmentState?: EnrollmentState;
    // Indicates if the device is deleted from Apple Business Manager
    isDeleted?: NullableOption<boolean>;
    // Indicates if the Apple device is supervised. More information is at: https://support.apple.com/en-us/HT202837
    isSupervised?: boolean;
    // Last Contacted Date Time of the device
    lastContactedDateTime?: string;
    // The platform of the Device. Possible values are: unknown, ios, android, windows, windowsMobile, macOS.
    platform?: Platform;
    // The time enrollment profile was assigned to the device
    requestedEnrollmentProfileAssignmentDateTime?: NullableOption<string>;
    // Enrollment profile Id admin intends to apply to the device during next enrollment
    requestedEnrollmentProfileId?: NullableOption<string>;
    // Device serial number
    serialNumber?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface ImportedAppleDeviceIdentityResult extends ImportedAppleDeviceIdentity {
    // Status of imported device identity
    status?: boolean;
}
// tslint:disable-next-line: interface-name
export interface ImportedDeviceIdentityResult extends ImportedDeviceIdentity {
    // Status of imported device identity
    status?: boolean;
}
// 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 GroupPolicySettingMapping extends Entity {
    // Admx Group Policy Id
    admxSettingDefinitionId?: NullableOption<string>;
    // List of Child Ids of the group policy setting.
    childIdList?: NullableOption<string[]>;
    // The Intune Setting Definition Id
    intuneSettingDefinitionId?: NullableOption<string>;
    // The list of Intune Setting URIs this group policy setting maps to
    intuneSettingUriList?: NullableOption<string[]>;
    // Indicates if the setting is supported by Intune or not
    isMdmSupported?: boolean;
    // The CSP name this group policy setting maps to.
    mdmCspName?: NullableOption<string>;
    // The minimum OS version this mdm setting supports.
    mdmMinimumOSVersion?: number;
    // The MDM CSP URI this group policy setting maps to.
    mdmSettingUri?: NullableOption<string>;
    // Indicates if the setting is supported in Mdm or not. Possible values are: unknown, supported, unsupported, deprecated.
    mdmSupportedState?: MdmSupportedState;
    // Parent Id of the group policy setting.
    parentId?: NullableOption<string>;
    // The category the group policy setting is in.
    settingCategory?: NullableOption<string>;
    // The display name of this group policy setting.
    settingDisplayName?: NullableOption<string>;
    // The display value of this group policy setting.
    settingDisplayValue?: NullableOption<string>;
    // The display value type of this group policy setting.
    settingDisplayValueType?: NullableOption<string>;
    // The name of this group policy setting.
    settingName?: NullableOption<string>;
    // The scope of the setting. Possible values are: unknown, device, user.
    settingScope?: GroupPolicySettingScope;
    /**
     * The setting type (security or admx) of the Group Policy. Possible values are: unknown, policy, account,
     * securityOptions, userRightsAssignment, auditSetting, windowsFirewallSettings, appLockerRuleCollection,
     * dataSourcesSettings, devicesSettings, driveMapSettings, environmentVariables, filesSettings, folderOptions, folders,
     * iniFiles, internetOptions, localUsersAndGroups, networkOptions, networkShares, ntServices, powerOptions, printers,
     * regionalOptionsSettings, registrySettings, scheduledTasks, shortcutSettings, startMenuSettings.
     */
    settingType?: GroupPolicySettingType;
    // The value of this group policy setting.
    settingValue?: NullableOption<string>;
    // The display units of this group policy setting value
    settingValueDisplayUnits?: NullableOption<string>;
    // The value type of this group policy setting.
    settingValueType?: NullableOption<string>;
}
export interface UnsupportedGroupPolicyExtension extends Entity {
    // ExtensionType of the unsupported extension.
    extensionType?: NullableOption<string>;
    // Namespace Url of the unsupported extension.
    namespaceUrl?: NullableOption<string>;
    // Node name of the unsupported extension.
    nodeName?: NullableOption<string>;
    // Setting Scope of the unsupported extension. Possible values are: unknown, device, user.
    settingScope?: GroupPolicySettingScope;
}
export interface GroupPolicyConfigurationAssignment extends Entity {
    // The date and time the entity was last modified.
    lastModifiedDateTime?: string;
    // The type of groups targeted the group policy configuration.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface GroupPolicyDefinitionValue extends Entity {
    /**
     * Specifies how the value should be configured. This can be either as a Policy or as a Preference. Possible values are:
     * policy, preference.
     */
    configurationType?: GroupPolicyConfigurationType;
    // The date and time the object was created.
    createdDateTime?: string;
    // Enables or disables the associated group policy definition.
    enabled?: boolean;
    // The date and time the entity was last modified.
    lastModifiedDateTime?: string;
    // The associated group policy definition with the value.
    definition?: NullableOption<GroupPolicyDefinition>;
    // The associated group policy presentation values with the definition value.
    presentationValues?: NullableOption<GroupPolicyPresentationValue[]>;
}
export interface GroupPolicyPresentation extends Entity {
    // Localized text label for any presentation entity. The default value is empty.
    label?: NullableOption<string>;
    // The date and time the entity was last modified.
    lastModifiedDateTime?: string;
    // The group policy definition associated with the presentation.
    definition?: NullableOption<GroupPolicyDefinition>;
}
export interface GroupPolicyPresentationValue extends Entity {
    // The date and time the object was created.
    createdDateTime?: string;
    // The date and time the object was last modified.
    lastModifiedDateTime?: string;
    // The group policy definition value associated with the presentation value.
    definitionValue?: NullableOption<GroupPolicyDefinitionValue>;
    // The group policy presentation associated with the presentation value.
    presentation?: NullableOption<GroupPolicyPresentation>;
}
export interface GroupPolicyOperation extends Entity {
    // The date and time the entity was last modified.
    lastModifiedDateTime?: string;
    // The group policy operation status. Possible values are: unknown, inProgress, success, failed.
    operationStatus?: GroupPolicyOperationStatus;
    /**
     * The type of group policy operation. Possible values are: none, upload, uploadNewVersion, addLanguageFiles,
     * removeLanguageFiles, updateLanguageFiles, remove.
     */
    operationType?: GroupPolicyOperationType;
    // The group policy operation status detail.
    statusDetails?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface GroupPolicyUploadedPresentation extends GroupPolicyPresentation {}
export interface GroupPolicyPresentationCheckBox extends GroupPolicyUploadedPresentation {
    // Default value for the check box. The default value is false.
    defaultChecked?: boolean;
}
export interface GroupPolicyPresentationComboBox extends GroupPolicyUploadedPresentation {
    // Localized default string displayed in the combo box. The default value is empty.
    defaultValue?: NullableOption<string>;
    // An unsigned integer that specifies the maximum number of text characters for the parameter. The default value is 1023.
    maxLength?: number;
    // Specifies whether a value must be specified for the parameter. The default value is false.
    required?: boolean;
    // Localized strings listed in the drop-down list of the combo box. The default value is empty.
    suggestions?: NullableOption<string[]>;
}
export interface GroupPolicyPresentationDecimalTextBox extends GroupPolicyUploadedPresentation {
    // An unsigned integer that specifies the initial value for the decimal text box. The default value is 1.
    defaultValue?: number;
    // An unsigned integer that specifies the maximum allowed value. The default value is 9999.
    maxValue?: number;
    // An unsigned integer that specifies the minimum allowed value. The default value is 0.
    minValue?: number;
    // Requirement to enter a value in the parameter box. The default value is false.
    required?: boolean;
    // If true, create a spin control; otherwise, create a text box for numeric entry. The default value is true.
    spin?: boolean;
    // An unsigned integer that specifies the increment of change for the spin control. The default value is 1.
    spinStep?: number;
}
export interface GroupPolicyPresentationDropdownList extends GroupPolicyUploadedPresentation {
    // Localized string value identifying the default choice of the list of items.
    defaultItem?: NullableOption<GroupPolicyPresentationDropdownListItem>;
    // Represents a set of localized display names and their associated values.
    items?: NullableOption<GroupPolicyPresentationDropdownListItem[]>;
    // Requirement to enter a value in the parameter box. The default value is false.
    required?: boolean;
}
export interface GroupPolicyPresentationListBox extends GroupPolicyUploadedPresentation {
    /**
     * If this option is specified true the user must specify the registry subkey value and the registry subkey name. The list
     * box shows two columns, one for the name and one for the data. The default value is false.
     */
    explicitValue?: boolean;
    // Not yet documented
    valuePrefix?: NullableOption<string>;
}
export interface GroupPolicyPresentationLongDecimalTextBox extends GroupPolicyUploadedPresentation {
    // An unsigned integer that specifies the initial value for the decimal text box. The default value is 1.
    defaultValue?: number;
    // An unsigned long that specifies the maximum allowed value. The default value is 9999.
    maxValue?: number;
    // An unsigned long that specifies the minimum allowed value. The default value is 0.
    minValue?: number;
    // Requirement to enter a value in the parameter box. The default value is false.
    required?: boolean;
    // If true, create a spin control; otherwise, create a text box for numeric entry. The default value is true.
    spin?: boolean;
    // An unsigned integer that specifies the increment of change for the spin control. The default value is 1.
    spinStep?: number;
}
export interface GroupPolicyPresentationMultiTextBox extends GroupPolicyUploadedPresentation {
    // An unsigned integer that specifies the maximum number of text characters. Default value is 1023.
    maxLength?: number;
    // An unsigned integer that specifies the maximum number of strings. Default value is 0.
    maxStrings?: number;
    // Requirement to enter a value in the text box. Default value is false.
    required?: boolean;
}
// tslint:disable-next-line: no-empty-interface
export interface GroupPolicyPresentationText extends GroupPolicyUploadedPresentation {}
export interface GroupPolicyPresentationTextBox extends GroupPolicyUploadedPresentation {
    // Localized default string displayed in the text box. The default value is empty.
    defaultValue?: NullableOption<string>;
    // An unsigned integer that specifies the maximum number of text characters. Default value is 1023.
    maxLength?: number;
    // Requirement to enter a value in the text box. Default value is false.
    required?: boolean;
}
export interface GroupPolicyPresentationValueBoolean extends GroupPolicyPresentationValue {
    // An boolean value for the associated presentation.
    value?: boolean;
}
export interface GroupPolicyPresentationValueDecimal extends GroupPolicyPresentationValue {
    // An unsigned integer value for the associated presentation.
    value?: number;
}
export interface GroupPolicyPresentationValueList extends GroupPolicyPresentationValue {
    // A list of pairs for the associated presentation.
    values?: NullableOption<KeyValuePair[]>;
}
export interface GroupPolicyPresentationValueLongDecimal extends GroupPolicyPresentationValue {
    // An unsigned long value for the associated presentation.
    value?: number;
}
export interface GroupPolicyPresentationValueMultiText extends GroupPolicyPresentationValue {
    // A collection of non-empty strings for the associated presentation.
    values?: NullableOption<string[]>;
}
export interface GroupPolicyPresentationValueText extends GroupPolicyPresentationValue {
    // A string value for the associated presentation.
    value?: NullableOption<string>;
}
export interface AndroidManagedAppRegistration extends ManagedAppRegistration {
    // The patch version for the current android app registration
    patchVersion?: NullableOption<string>;
}
// 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 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>;
}
// tslint:disable-next-line: no-empty-interface
export interface WindowsManagedAppRegistration extends ManagedAppRegistration {}
export interface MicrosoftTunnelServer extends Entity {
    // The digest of the current agent image running on this server
    agentImageDigest?: NullableOption<string>;
    /**
     * The display name for the server. This property is required when a server is created and cannot be cleared during
     * updates.
     */
    displayName?: NullableOption<string>;
    // Indicates when the server last checked in
    lastCheckinDateTime?: string;
    // The digest of the current server image running on this server
    serverImageDigest?: NullableOption<string>;
    /**
     * Indicates the server's health Status as of the last evaluation time. Health is evaluated every 60 seconds, and the
     * possible values are: unknown, healthy, unhealthy, warning, offline, upgradeInProgress, upgradeFailed. Possible values
     * are: unknown, healthy, unhealthy, warning, offline, upgradeInProgress, upgradeFailed, unknownFutureValue.
     */
    tunnelServerHealthStatus?: MicrosoftTunnelServerHealthStatus;
}
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;
}
export interface AppVulnerabilityManagedDevice extends Entity {
    // The device name.
    displayName?: NullableOption<string>;
    // The created date.
    lastSyncDateTime?: string;
    // The Intune managed device ID.
    managedDeviceId?: NullableOption<string>;
}
export interface AppVulnerabilityMobileApp extends Entity {
    // The created date.
    createdDateTime?: string;
    // The device name.
    displayName?: NullableOption<string>;
    // The last modified date.
    lastModifiedDateTime?: string;
    // The Intune mobile app ID.
    mobileAppId?: NullableOption<string>;
    // The app type.
    mobileAppType?: NullableOption<string>;
    // The app version.
    version?: NullableOption<string>;
}
export interface AppVulnerabilityTask extends DeviceAppManagementTask {
    // The app name.
    appName?: NullableOption<string>;
    // The app publisher.
    appPublisher?: NullableOption<string>;
    // The app version.
    appVersion?: NullableOption<string>;
    // Information about the mitigation.
    insights?: NullableOption<string>;
    // The number of vulnerable devices.
    managedDeviceCount?: number;
    // The mitigation type. Possible values are: unknown, update, uninstall, securityConfiguration.
    mitigationType?: AppVulnerabilityTaskMitigationType;
    // The number of vulnerable mobile apps.
    mobileAppCount?: number;
    // The remediation steps.
    remediation?: NullableOption<string>;
    // The vulnerable managed devices.
    managedDevices?: NullableOption<AppVulnerabilityManagedDevice[]>;
    // The vulnerable mobile apps.
    mobileApps?: NullableOption<AppVulnerabilityMobileApp[]>;
}
export interface SecurityConfigurationTask extends DeviceAppManagementTask {
    // The applicable platform. Possible values are: unknown, macOS, windows10AndLater, windows10AndWindowsServer.
    applicablePlatform?: EndpointSecurityConfigurationApplicablePlatform;
    /**
     * The endpoint security policy type. Possible values are: unknown, antivirus, diskEncryption, firewall,
     * endpointDetectionAndResponse, attackSurfaceReduction, accountProtection.
     */
    endpointSecurityPolicy?: EndpointSecurityConfigurationType;
    /**
     * The endpoint security policy profile. Possible values are: unknown, antivirus, windowsSecurity, bitLocker, fileVault,
     * firewall, firewallRules, endpointDetectionAndResponse, deviceControl, appAndBrowserIsolation, exploitProtection,
     * webProtection, applicationControl, attackSurfaceReductionRules, accountProtection.
     */
    endpointSecurityPolicyProfile?: EndpointSecurityConfigurationProfileType;
    // Information about the mitigation.
    insights?: NullableOption<string>;
    // The intended settings and their values.
    intendedSettings?: NullableOption<KeyValuePair[]>;
    // The number of vulnerable devices. Valid values 0 to 65536
    managedDeviceCount?: number;
    // The vulnerable managed devices.
    managedDevices?: NullableOption<VulnerableManagedDevice[]>;
}
export interface VulnerableManagedDevice extends Entity {
    // The device name.
    displayName?: NullableOption<string>;
    // The last sync date.
    lastSyncDateTime?: string;
    // The Intune managed device ID.
    managedDeviceId?: NullableOption<string>;
}
export interface UnmanagedDeviceDiscoveryTask extends DeviceAppManagementTask {
    // Unmanaged devices discovered in the network.
    unmanagedDevices?: NullableOption<UnmanagedDevice[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceAndAppManagementRoleDefinition extends RoleDefinition {}
export interface RoleScopeTagAutoAssignment extends Entity {
    // The auto-assignment target for the specific Role Scope Tag.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface EmbeddedSIMActivationCodePoolAssignment extends Entity {
    // The type of groups targeted by the embedded SIM activation code pool.
    target?: DeviceAndAppManagementAssignmentTarget;
}
export interface EmbeddedSIMDeviceState extends Entity {
    // The time the embedded SIM device status was created. Generated service side.
    createdDateTime?: string;
    // Device name to which the subscription was provisioned e.g. DESKTOP-JOE
    deviceName?: NullableOption<string>;
    // The time the embedded SIM device last checked in. Updated service side.
    lastSyncDateTime?: NullableOption<string>;
    // The time the embedded SIM device status was last modified. Updated service side.
    modifiedDateTime?: string;
    /**
     * The state of the profile operation applied to the device. Possible values are: notEvaluated, failed, installing,
     * installed, deleting, error, deleted, removedByUser.
     */
    state?: EmbeddedSIMDeviceStateValue;
    // String description of the provisioning state.
    stateDetails?: NullableOption<string>;
    /**
     * The Universal Integrated Circuit Card Identifier (UICCID) identifying the hardware onto which a profile is to be
     * deployed.
     */
    universalIntegratedCircuitCardIdentifier?: NullableOption<string>;
    // Username which the subscription was provisioned to e.g. joe@contoso.com
    userName?: NullableOption<string>;
}
export interface AppleVppTokenTroubleshootingEvent extends DeviceManagementTroubleshootingEvent {
    // Apple Volume Purchase Program Token Identifier.
    tokenId?: NullableOption<string>;
}
export interface DeviceManagementAutopilotPolicyStatusDetail extends Entity {
    // The policy compliance status. Possible values are: unknown, compliant, installed, notCompliant, notInstalled, error.
    complianceStatus?: DeviceManagementAutopilotPolicyComplianceStatus;
    // The friendly name of the policy.
    displayName?: NullableOption<string>;
    /**
     * The errorode associated with the compliance or enforcement status of the policy. Error code for enforcement status
     * takes precedence if it exists.
     */
    errorCode?: number;
    // Timestamp of the reported policy status
    lastReportedDateTime?: string;
    // The type of policy. Possible values are: unknown, application, appModel, configurationPolicy.
    policyType?: DeviceManagementAutopilotPolicyType;
    // Indicates if this prolicy was tracked as part of the autopilot bootstrap enrollment sync session
    trackedOnEnrollmentStatus?: boolean;
}
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,
     * azureAdJoinUsingAzureVmExtension, androidEnterpriseDedicatedDevice, androidEnterpriseFullyManaged,
     * androidEnterpriseCorporateWorkProfile.
     */
    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 WindowsDefenderApplicationControlSupplementalPolicyAssignment extends Entity {
    // The target group assignment defined by the admin.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface WindowsDefenderApplicationControlSupplementalPolicyDeploymentSummary extends Entity {
    // Number of Devices that have successfully deployed this WindowsDefenderApplicationControl supplemental policy.
    deployedDeviceCount?: number;
    // Number of Devices that have failed to deploy this WindowsDefenderApplicationControl supplemental policy.
    failedDeviceCount?: number;
}
export interface WindowsDefenderApplicationControlSupplementalPolicyDeploymentStatus extends Entity {
    /**
     * The deployment state of the policy. Possible values are: unknown, success, tokenError, notAuthorizedByToken,
     * policyNotFound.
     */
    deploymentStatus?: WindowsDefenderApplicationControlSupplementalPolicyStatuses;
    // Device ID.
    deviceId?: NullableOption<string>;
    // Device name.
    deviceName?: NullableOption<string>;
    // Last sync date time.
    lastSyncDateTime?: string;
    // Windows OS Version Description.
    osDescription?: NullableOption<string>;
    // Windows OS Version.
    osVersion?: NullableOption<string>;
    // Human readable version of the WindowsDefenderApplicationControl supplemental policy.
    policyVersion?: NullableOption<string>;
    // The name of the user of this device.
    userName?: NullableOption<string>;
    // User Principal Name.
    userPrincipalName?: NullableOption<string>;
    // The navigation link to the WindowsDefenderApplicationControl supplemental policy.
    policy?: NullableOption<WindowsDefenderApplicationControlSupplementalPolicy>;
}
export interface WindowsDriverUpdateInventory extends Entity {
    // The number of devices for which this driver is applicable.
    applicableDeviceCount?: number;
    // The approval status for this driver. Possible values are: needsReview, declined, approved, suspended.
    approvalStatus?: DriverApprovalStatus;
    // The category for this driver. Possible values are: recommended, previouslyApproved, other.
    category?: DriverCategory;
    // The date time when a driver should be deployed if approvalStatus is approved.
    deployDateTime?: string;
    // The class of the driver.
    driverClass?: NullableOption<string>;
    // The manufacturer of the driver.
    manufacturer?: NullableOption<string>;
    // The name of the driver.
    name?: string;
    // The release date time of the driver.
    releaseDateTime?: string;
    // The version of the driver.
    version?: NullableOption<string>;
}
export interface WindowsDriverUpdateProfileAssignment extends Entity {
    // The assignment target that the driver update profile is assigned to.
    target?: DeviceAndAppManagementAssignmentTarget;
}
export interface WindowsFeatureUpdateCatalogItem extends WindowsUpdateCatalogItem {
    // The feature update version
    version?: string;
}
export interface WindowsFeatureUpdateProfileAssignment extends Entity {
    // The assignment target that the feature update profile is assigned to.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface WindowsQualityUpdateCatalogItem extends WindowsUpdateCatalogItem {
    // Classification of the quality update. Possible values are: all, security, nonSecurity.
    classification?: WindowsQualityUpdateClassification;
    // Flag indicating if update qualifies for expedite
    isExpeditable?: boolean;
    // Knowledge base article id
    kbArticleId?: string;
}
export interface WindowsQualityUpdateProfileAssignment extends Entity {
    // The assignment target that the quality update profile is assigned to.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
// tslint:disable-next-line: interface-name
export interface IntuneBrandingProfileAssignment extends Entity {
    // Assignment target that the branding profile is assigned to.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
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 {
    // Extra 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. For more details, see serviceHealthStatus values.
     */
    status?: ServiceHealthStatus;
}
export interface ServiceUpdateMessage extends ServiceAnnouncementBase {
    // The expected deadline of the action for the message.
    actionRequiredByDateTime?: NullableOption<string>;
    // The zip file of 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;
}
export interface DataCollectionInfo extends Entity {
    /**
     * Represents the details and status of data collection about permissions assigned to an identity in the authorization
     * system. Read-only.
     */
    entitlements?: EntitlementsDataCollectionInfo;
}
export interface AwsAuthorizationSystem extends AuthorizationSystem {
    // Identities in the authorization system.
    associatedIdentities?: NullableOption<AwsAssociatedIdentities>;
    // List of actions for service in authorization system.
    actions?: NullableOption<AwsAuthorizationSystemTypeAction[]>;
    // Policies associated with the AWS authorization system type.
    policies?: NullableOption<AwsPolicy[]>;
    // Resources associated with the authorization system type.
    resources?: NullableOption<AwsAuthorizationSystemResource[]>;
    // Services associated with the authorization system type.
    services?: NullableOption<AuthorizationSystemTypeService[]>;
}
export interface AuthorizationSystemTypeAction extends Entity {
    /**
     * The type of action allowed in the authorization system's service. The possible values are: delete, read,
     * unknownFutureValue. Supports $filter and (eq).
     */
    actionType?: NullableOption<AuthorizationSystemActionType>;
    // The display name of an action. Read-only. Supports $filter and (eq).
    externalId?: string;
    // The resource types in the authorization system's service where the action can be performed. Supports $filter and (eq).
    resourceTypes?: NullableOption<string[]>;
    /**
     * The severity of the action in the authorization systems' service. The possible values are: normal, high,
     * unknownFutureValue.
     */
    severity?: AuthorizationSystemActionSeverity;
}
export interface AwsAuthorizationSystemTypeAction extends AuthorizationSystemTypeAction {
    // The service associated with the action in an AWS authorization system. This object auto-expanded.
    service?: AuthorizationSystemTypeService;
}
export interface AwsPolicy extends Entity {
    /**
     * The type of the AWS policy. The possible values are: system, custom, unknownFutureValue. Read-only. Supports $filter
     * and (eq).
     */
    awsPolicyType?: AwsPolicyType;
    // The display name for the AWS policy. Read-only. Supports $filter and (eq,contains).
    displayName?: string;
    // The base64 encoded identifier for the AWS policy as defined by AWS. Read-only. Alternate key. Supports $filter and eq.
    externalId?: string;
}
export interface AuthorizationSystemResource extends Entity {
    // The name of the resource. Read-only. Supports $filter (eq,contains).
    displayName?: NullableOption<string>;
    // The ID of the resource as defined by the authorization system provider. Read-only. Supports $filter (eq).
    externalId?: string;
    // The type of the resource. Read-only. Supports $filter (eq).
    resourceType?: NullableOption<string>;
    // The authorization system that the resource exists in.
    authorizationSystem?: NullableOption<AuthorizationSystem>;
}
export interface AwsAuthorizationSystemResource extends AuthorizationSystemResource {
    // The service associated with the resource in an AWS authorization system. This is auto-expanded.
    service?: NullableOption<AuthorizationSystemTypeService>;
}
export interface AuthorizationSystemTypeService extends Entity {
    // List of actions for the service in an authorization system that is onboarded to Permissions Management.
    actions?: NullableOption<AuthorizationSystemTypeAction[]>;
}
export interface AzureAuthorizationSystem extends AuthorizationSystem {
    // Identities in the authorization system.
    associatedIdentities?: NullableOption<AzureAssociatedIdentities>;
    // List of actions for service in authorization system.
    actions?: NullableOption<AzureAuthorizationSystemTypeAction[]>;
    // Resources associated with the authorization system type.
    resources?: NullableOption<AzureAuthorizationSystemResource[]>;
    // Roles associated with the authorization system type.
    roleDefinitions?: NullableOption<AzureRoleDefinition[]>;
    // Services associated with the authorization system type.
    services?: NullableOption<AuthorizationSystemTypeService[]>;
}
export interface AzureAuthorizationSystemTypeAction extends AuthorizationSystemTypeAction {
    // The service associated with the action in an Azure authorization system. This object is auto-expanded.
    service?: AuthorizationSystemTypeService;
}
export interface AzureAuthorizationSystemResource extends AuthorizationSystemResource {
    // The service associated with the resource in an Azure authorization system. This object is auto-expanded.
    service?: NullableOption<AuthorizationSystemTypeService>;
}
export interface AzureRoleDefinition extends Entity {
    // Scopes at which the Azure role can be assigned. Supports $filter and (eq).
    assignableScopes?: string[];
    // Type of Azure role. The possible values are: system, custom, unknownFutureValue. Supports $filter and (eq).
    azureRoleDefinitionType?: AzureRoleDefinitionType;
    // Name of the Azure role. Supports $filter and (eq,contains).
    displayName?: string;
    // Identifier of an Azure role defined by Microsoft Azure. Alternate key. Supports $filter and eq.
    externalId?: string;
}
export interface GcpAuthorizationSystem extends AuthorizationSystem {
    // Identities in the authorization system.
    associatedIdentities?: NullableOption<GcpAssociatedIdentities>;
    // List of actions for service in authorization system.
    actions?: NullableOption<GcpAuthorizationSystemTypeAction[]>;
    // Resources associated with the authorization system type.
    resources?: NullableOption<GcpAuthorizationSystemResource[]>;
    // Roles associated with the authorization system type.
    roles?: NullableOption<GcpRole[]>;
    // Services associated with the authorization system type.
    services?: NullableOption<AuthorizationSystemTypeService[]>;
}
export interface GcpAuthorizationSystemTypeAction extends AuthorizationSystemTypeAction {
    // The service associated with the action in an GCP authorization system. Ths is auto-expanded.
    service?: AuthorizationSystemTypeService;
}
export interface GcpAuthorizationSystemResource extends AuthorizationSystemResource {
    // The service associated with the resource in an GCP authorization system. This object is auto-expanded.
    service?: NullableOption<AuthorizationSystemTypeService>;
}
export interface GcpRole extends Entity {
    // The name of the GCP role. Supports $filter and (eq,contains).
    displayName?: string;
    // The ID of the GCP role as defined by GCP. Alternate key.
    externalId?: string;
    // The type of GCP role. The possible values are: system, custom, unknownFutureValue. Supports $filter and (eq).
    gcpRoleType?: GcpRoleType;
    // Resources that an identity assigned this GCP role can perform actions on. Supports $filter and (eq).
    scopes?: NullableOption<GcpScope[]>;
}
export interface AuthorizationSystemIdentity extends Entity {
    // The name of the identity. Read-only. Supports $filter and (eq,contains).
    displayName?: NullableOption<string>;
    // Unique ID of the identity within the external system. Read-only.
    externalId?: string;
    // Represents details of the source of the identity.
    source?: NullableOption<AuthorizationSystemIdentitySource>;
    // Navigation to the authorizationSystem object
    authorizationSystem?: NullableOption<AuthorizationSystem>;
}
// tslint:disable-next-line: no-empty-interface
export interface AwsIdentity extends AuthorizationSystemIdentity {}
export interface AwsRole extends AwsIdentity {
    // Indicates whether role is a system or custom role. Supports $filter (eq).
    roleType?: AwsRoleType;
    // Types of role trusts. The possible values are: none, service, sso, crossAccount, webIdentity, unknownFutureValue.
    trustEntityType?: AwsRoleTrustEntityType;
}
export interface AwsUser extends AwsIdentity {
    // Roles assumed by the user.
    assumableRoles?: NullableOption<AwsRole[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface AzureIdentity extends AuthorizationSystemIdentity {}
// tslint:disable-next-line: no-empty-interface
export interface AzureManagedIdentity extends AzureIdentity {}
// tslint:disable-next-line: no-empty-interface
export interface AzureServicePrincipal extends AzureIdentity {}
// tslint:disable-next-line: no-empty-interface
export interface AzureUser extends AzureIdentity {}
// tslint:disable-next-line: no-empty-interface
export interface GcpIdentity extends AuthorizationSystemIdentity {}
// tslint:disable-next-line: no-empty-interface
export interface GcpServiceAccount extends GcpIdentity {}
// tslint:disable-next-line: no-empty-interface
export interface GcpUser extends GcpIdentity {}
export interface AwsAccessKey extends AwsIdentity {
    // Represents the owner of the access key.
    owner?: NullableOption<AwsUser>;
}
export interface AwsEc2Instance extends AwsIdentity {
    // Represents the resources in an authorization system.
    resource?: NullableOption<AwsAuthorizationSystemResource>;
}
// tslint:disable-next-line: no-empty-interface
export interface AwsGroup extends AwsIdentity {}
export interface AwsLambda extends AwsIdentity {
    // Represents the resources in an authorization system..
    resource?: NullableOption<AwsAuthorizationSystemResource>;
}
// tslint:disable-next-line: no-empty-interface
export interface AzureGroup extends AzureIdentity {}
export interface AzureServerlessFunction extends AzureIdentity {
    // Represents the resources in an authorization system.
    resource?: NullableOption<AzureAuthorizationSystemResource>;
}
export interface GcpCloudFunction extends GcpIdentity {
    // Represents the resources in an authorization system..
    resource?: NullableOption<GcpAuthorizationSystemResource>;
}
// tslint:disable-next-line: no-empty-interface
export interface GcpGroup extends GcpIdentity {}
export interface AssignedComputeInstanceDetails extends Entity {
    // Represents a set of S3 buckets accessed by this EC2 instance.
    accessedStorageBuckets?: NullableOption<AuthorizationSystemResource[]>;
    // assigned EC2 instance.
    assignedComputeInstance?: NullableOption<AuthorizationSystemResource>;
}
export interface Finding extends Entity {
    // Defines when the finding was created.
    createdDateTime?: string;
}
export interface AwsExternalSystemAccessFinding extends Finding {
    /**
     * Specifies if the system can be accessed directly, via role chaining, or both. The possible values are: direct,
     * roleChaining, unknownFutureValue. Supports $filter (eq).
     */
    accessMethods?: ExternalSystemAccessMethods;
    systemWithAccess?: AuthorizationSystemInfo;
    // The number of identities in the external system that are trusted, if not all. Supports $orderby.
    trustedIdentityCount?: NullableOption<number>;
    // Flag that determines if all identities in the external system are trusted, or only a subset.
    trustsAllIdentities?: boolean;
    /**
     * The system that can be accessed from an external system. Supports $orderby (affectedSystem/authorizationSystemName) and
     * $filter as follows: $filter=affectedSystem/authorizationSystemId IN ['authorizationSystemIds']
     */
    affectedSystem?: AuthorizationSystem;
}
export interface AwsExternalSystemAccessRoleFinding extends Finding {
    // The IDs of the accounts that this role is able to access.
    accessibleSystemIds?: NullableOption<string[]>;
    /**
     * A score for an identity's excessive permissions that is classified into three buckets: 0-33: low, 34-66: medium,
     * 67-100: high. This property and its values are a snapshot as of when the finding was created and might not reflect the
     * current score for the identity. Supports $filter (gt) and $orderby.
     */
    permissionsCreepIndex?: PermissionsCreepIndex;
    /**
     * The role that has access to external accounts. Supports $orderby (for role/displayName) and $filter as follows:
     * $filter=role/authorizationSystem/authorizationSystemId IN ['authorizationSystemIds'] and
     * $filter=role/authorizationSystem/authorizationSystemName eq 'authsystemname'. Autoexpanded by default.
     */
    role?: AwsRole;
}
export interface AwsIdentityAccessManagementKeyAgeFinding extends Finding {
    /**
     * Contains information on authorization system actions granted to an identity and actions executed by this identity in
     * the last 90 days. This property and its values are a snapshot as of when the finding was created and may not reflect
     * the current values for the identity
     */
    actionSummary?: ActionSummary;
    awsAccessKeyDetails?: NullableOption<AwsAccessKeyDetails>;
    /**
     * A score for an identity's excessive permissions that is classified into three buckets: 0-33: low, 34-66: medium,
     * 67-100: high. This property and its values are a snapshot as of when the finding was created and might not reflect the
     * current score for the identity. Supports $filter (gt) and $orderby.
     */
    permissionsCreepIndex?: PermissionsCreepIndex;
    // Status of the Iam Access Key. The possible values are: active, inactive, disabled, unknownFutureValue.
    status?: IamStatus;
    /**
     * Represents the Aws access key in an authorization system. Note, because of a limit in our current data model, we do not
     * have all of the standard identity information for the access key's owner.
     */
    accessKey?: AwsAccessKey;
}
export interface AwsIdentityAccessManagementKeyUsageFinding extends Finding {
    /**
     * Contains information on authorization system actions granted to an identity and actions executed by this identity in
     * the last 90 days. This property and its values are a snapshot as of when the finding was created and may not reflect
     * the current values for the identity.
     */
    actionSummary?: ActionSummary;
    awsAccessKeyDetails?: NullableOption<AwsAccessKeyDetails>;
    /**
     * A score for an identity's excessive permissions that is classified into three buckets: 0-33: low, 34-66: medium,
     * 67-100: high. This property and its values are a snapshot as of when the finding was created and might not reflect the
     * current score for the identity. Supports $filter (gt) and $orderby.
     */
    permissionsCreepIndex?: PermissionsCreepIndex;
    // Status of the IAM Access Key. The possible values are: active, inactive, disabled, unknownFutureValue.
    status?: IamStatus;
    /**
     * Represents the AWS Access Key in an authorization system. All the standard identity information for the access key's
     * owner is currently unavailable.
     */
    accessKey?: AwsAccessKey;
}
export interface AwsSecretInformationAccessFinding extends Finding {
    identityDetails?: NullableOption<IdentityDetails>;
    /**
     * A score for an identity's excessive permissions that is classified into three buckets: 0-33: low, 34-66: medium,
     * 67-100: high. This property and its values are a snapshot as of when the finding was created and might not reflect the
     * current score for the identity. Supports $filter (gt) and $orderby.
     */
    permissionsCreepIndex?: PermissionsCreepIndex;
    /**
     * AWS secret stores which can be accessed by the user, role, resource or serverless function.The possible values are:
     * secretsManager, certificateAuthority, cloudHsm, certificateManager, unknownFutureValue. Supports $filter (has).
     */
    secretInformationWebServices?: AwsSecretInformationWebServices;
    /**
     * Represents an identity in an authorization system onboarded to Permissions Management. Inherited from identityFinding.
     * Autoexpanded by default. Supports $filter as follows: $filter=identity/authorizationSystem/authorizationSystemId IN
     * ('id1', 'id2').
     */
    identity?: AuthorizationSystemIdentity;
}
export interface AwsSecurityToolAdministrationFinding extends Finding {
    identityDetails?: NullableOption<IdentityDetails>;
    /**
     * A score for an identity's excessive permissions that is classified into three buckets: 0-33: low, 34-66: medium,
     * 67-100: high. This property and its values are a snapshot as of when the finding was created and might not reflect the
     * current score for the identity. Supports $filter (gt) and $orderby.
     */
    permissionsCreepIndex?: PermissionsCreepIndex;
    /**
     * AWS security tools which can be administered by the user, role, resource or serverless function.The possible values
     * are: macie, wafShield, cloudTrail, inspector, securityHub, detective, guardDuty, unknownFutureValue. Supports $filter
     * (has).
     */
    securityTools?: AwsSecurityToolWebServices;
    /**
     * Represents an identity in an authorization system onboarded to Permissions Management. Inherited from identityFinding.
     * Autoexpanded by default. Supports $filter as follows: $filter=identity/authorizationSystem/authorizationSystemId IN
     * ['authorizationSystemIds'].
     */
    identity?: AuthorizationSystemIdentity;
}
export interface EncryptedAwsStorageBucketFinding extends Finding {
    // Aws resources access type. The possible values are: public, restricted, crossAccount, private, unknownFutureValue.
    accessibility?: AwsAccessType;
    // Represents a resource in an AWS authorization system.
    storageBucket?: AuthorizationSystemResource;
}
export interface EncryptedAzureStorageAccountFinding extends Finding {
    /**
     * Specifies who manages encryption of Azure storage accounts. The possible values are: microsoftStorage,
     * microsoftKeyVault, customer, unknownFutureValue.
     */
    encryptionManagedBy?: AzureEncryption;
    // Represents a resource in an Azure authorization system.
    storageAccount?: AuthorizationSystemResource;
}
export interface EncryptedGcpStorageBucketFinding extends Finding {
    // GCP resources access type. The possible values are: public, subjectToObjectAcls, private, unknownFutureValue.
    accessibility?: GcpAccessType;
    // Specifies who manages encryption of GCP storage buckets. The possible values are: google, customer, unknownFutureValue.
    encryptionManagedBy?: GcpEncryption;
    // Represents a resource in an GCP authorization system.
    storageBucket?: AuthorizationSystemResource;
}
export interface ExternallyAccessibleAwsStorageBucketFinding extends Finding {
    // Aws resources access type.The possible values are: public, restricted, crossAccount, private, unknownFutureValue.
    accessibility?: AwsAccessType;
    // Contains information on external Aws accounts that have access to a storage bucket
    accountsWithAccess?: AccountsWithAccess;
    // Represents a resource in an authorization system
    storageBucket?: AuthorizationSystemResource;
}
export interface ExternallyAccessibleAzureBlobContainerFinding extends Finding {
    // resources access type.The possible values are: public, private, unknownFutureValue.
    accessibility?: AzureAccessType;
    /**
     * Specifies who manages encryption of Azure storage accounts.The possible values are: microsoftStorage,
     * microsoftKeyVault, customer, unknownFutureValue.
     */
    encryptionManagedBy?: AzureEncryption;
    // Represents a resource in an authorization system
    storageAccount?: AuthorizationSystemResource;
}
export interface ExternallyAccessibleGcpStorageBucketFinding extends Finding {
    // GCP resources access type. The possible values are: public, subjectToObjectAcls, private, unknownFutureValue.
    accessibility?: GcpAccessType;
    // Specifies who manages encryption of GCP storage buckets.The possible values are: google, customer, unknownFutureValue.
    encryptionManagedBy?: GcpEncryption;
    // Represents a resource in an GCP authorization system.
    storageBucket?: AuthorizationSystemResource;
}
// tslint:disable-next-line: interface-name
export interface IdentityFinding extends Finding {
    /**
     * Contains information on authorization system actions granted to an identity and actions executed by this identity in
     * the last 90 days. This property and its values are a snapshot as of when the finding was created and might not reflect
     * the current values for the identity. Inherited from identityFinding.
     */
    actionSummary?: ActionSummary;
    // An identity's information details.
    identityDetails?: NullableOption<IdentityDetails>;
    /**
     * A score for an identity's excessive permissions that is classified into three buckets: 0-33: low, 34-66: medium,
     * 67-100: high. This property and its values are a snapshot as of when the finding was created and might not reflect the
     * current score for the identity. Supports $filter (gt) and $orderby.
     */
    permissionsCreepIndex?: PermissionsCreepIndex;
    // epresents an identity in an authorization system onboarded to Permissions Management. Autoexpanded by default.
    identity?: AuthorizationSystemIdentity;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface InactiveAwsResourceFinding extends IdentityFinding {}
// tslint:disable-next-line: interface-name no-empty-interface
export interface InactiveAwsRoleFinding extends IdentityFinding {}
// tslint:disable-next-line: interface-name no-empty-interface
export interface InactiveAzureServicePrincipalFinding extends IdentityFinding {}
// tslint:disable-next-line: interface-name no-empty-interface
export interface InactiveGcpServiceAccountFinding extends IdentityFinding {}
// tslint:disable-next-line: interface-name
export interface InactiveGroupFinding extends Finding {
    /**
     * Contains information on authorization system actions granted to this group identity and actions executed by this group
     * identity in the last 90 days. This property and its values are a snapshot as of when the finding was created and may
     * not reflect the current values for the group identity.
     */
    actionSummary?: ActionSummary;
    /**
     * A score for an identity's excessive permissions that is classified into three buckets: 0-33: low, 34-66: medium,
     * 67-100: high. This property and its values are a snapshot as of when the finding was created and might not reflect the
     * current score for the identity. Supports $filter (gt) and $orderby.
     */
    permissionsCreepIndex?: PermissionsCreepIndex;
    // Represents an identity in an authorization system that you've onboarded to Permissions Management.
    group?: AuthorizationSystemIdentity;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface InactiveServerlessFunctionFinding extends IdentityFinding {}
// tslint:disable-next-line: interface-name no-empty-interface
export interface InactiveUserFinding extends IdentityFinding {}
export interface OpenAwsSecurityGroupFinding extends Finding {
    // Contains information on inbound ports related to an open security group. Supports $filter (eq) $select.
    inboundPorts?: InboundPorts;
    // The number of storage buckets accessed by the assigned compute instances.
    totalStorageBucketCount?: number;
    // A set of AWS EC2 compute instances related to this open security group.
    assignedComputeInstancesDetails?: NullableOption<AssignedComputeInstanceDetails[]>;
    // Represents a resource in an AWS authorization system.
    securityGroup?: AwsAuthorizationSystemResource;
}
export interface OpenNetworkAzureSecurityGroupFinding extends Finding {
    // Contains information on inbound ports related to an open security group.
    inboundPorts?: InboundPorts;
    // Represents a resource in an authorization system.
    securityGroup?: AuthorizationSystemResource;
    // Represents a virtual machine in an authorization system.
    virtualMachines?: NullableOption<VirtualMachineDetails[]>;
}
export interface VirtualMachineDetails extends Entity {
    virtualMachine?: NullableOption<AuthorizationSystemResource>;
}
// tslint:disable-next-line: no-empty-interface
export interface OverprovisionedAwsResourceFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface OverprovisionedAwsRoleFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface OverprovisionedAzureServicePrincipalFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface OverprovisionedGcpServiceAccountFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface OverprovisionedServerlessFunctionFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface OverprovisionedUserFinding extends IdentityFinding {}
export interface PermissionsAnalytics extends Entity {
    /**
     * The output of the permissions usage data analysis performed by Permissions Management to assess risk with identities
     * and resources.
     */
    findings?: NullableOption<Finding[]>;
    /**
     * Represents the Permissions Creep Index (PCI) for the authorization system. PCI distribution chart shows the
     * classification of human and nonhuman identities based on the PCI score in three buckets (low, medium, high).
     */
    permissionsCreepIndexDistributions?: NullableOption<PermissionsCreepIndexDistribution[]>;
}
export interface PermissionsCreepIndexDistribution extends Entity {
    // Defines when the PCI distribution was created.
    createdDateTime?: string;
    // Defines the human and non-human identities in a high-risk bucket.
    highRiskProfile?: RiskProfile;
    // Defines the human and nonhuman identities in the low-risk bucket.
    lowRiskProfile?: RiskProfile;
    // Defines human and nonhuman identities in the medium-risk bucket.
    mediumRiskProfile?: RiskProfile;
    // Represents an authorization system onboarded to Permissions Management.
    authorizationSystem?: AuthorizationSystem;
}
export interface PrivilegeEscalation extends Entity {
    // A detailed description of the privilege escalation.
    description?: string;
    // The name of the policy that defines the escalation
    displayName?: string;
    // The list of actions that the identity could perform.
    actions?: NullableOption<AuthorizationSystemTypeAction[]>;
    // The list of resources that the identity could perform actions on.
    resources?: NullableOption<AuthorizationSystemResource[]>;
}
export interface PrivilegeEscalationFinding extends Finding {
    // An identity's information details. Inherited from finding.
    identityDetails?: NullableOption<IdentityDetails>;
    /**
     * A score for an identity's excessive permissions that is classified into three buckets: 0-33: low, 34-66: medium,
     * 67-100: high. This property and its values are a snapshot as of when the finding was created and might not reflect the
     * current score for the identity. Supports $filter (gt) and $orderby.
     */
    permissionsCreepIndex?: PermissionsCreepIndex;
    /**
     * Represents an identity in an authorization system onboarded to Permissions Management. Inherited from identityFinding.
     * Autoexpanded by default.
     */
    identity?: AuthorizationSystemIdentity;
    // The list of escalations that the identity is capable of performing.
    privilegeEscalationDetails?: NullableOption<PrivilegeEscalation[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface PrivilegeEscalationAwsResourceFinding extends PrivilegeEscalationFinding {}
// tslint:disable-next-line: no-empty-interface
export interface PrivilegeEscalationAwsRoleFinding extends PrivilegeEscalationFinding {}
// tslint:disable-next-line: no-empty-interface
export interface PrivilegeEscalationGcpServiceAccountFinding extends PrivilegeEscalationFinding {}
// tslint:disable-next-line: no-empty-interface
export interface PrivilegeEscalationUserFinding extends PrivilegeEscalationFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SecretInformationAccessAwsResourceFinding extends AwsSecretInformationAccessFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SecretInformationAccessAwsRoleFinding extends AwsSecretInformationAccessFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SecretInformationAccessAwsServerlessFunctionFinding extends AwsSecretInformationAccessFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SecretInformationAccessAwsUserFinding extends AwsSecretInformationAccessFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SecurityToolAwsResourceAdministratorFinding extends AwsSecurityToolAdministrationFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SecurityToolAwsRoleAdministratorFinding extends AwsSecurityToolAdministrationFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SecurityToolAwsServerlessFunctionAdministratorFinding extends AwsSecurityToolAdministrationFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SecurityToolAwsUserAdministratorFinding extends AwsSecurityToolAdministrationFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SuperAwsResourceFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SuperAwsRoleFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SuperAzureServicePrincipalFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SuperGcpServiceAccountFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SuperServerlessFunctionFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface SuperUserFinding extends IdentityFinding {}
// tslint:disable-next-line: no-empty-interface
export interface UnenforcedMfaAwsUserFinding extends IdentityFinding {}
export interface VirtualMachineWithAwsStorageBucketAccessFinding extends Finding {
    // The total number of storage buckets that the EC2 instance can access using the role.
    accessibleCount?: number;
    // The total number of storage buckets in the authorization system that hosts the EC2 instance.
    bucketCount?: number;
    /**
     * A score for an identity's excessive permissions that is classified into three buckets: 0-33: low, 34-66: medium,
     * 67-100: high. This property and its values are a snapshot as of when the finding was created and might not reflect the
     * current score for the identity. Supports $filter (gt) and $orderby.
     */
    permissionsCreepIndex?: PermissionsCreepIndex;
    // The AWS EC2 instance that is assigned using the role.
    ec2Instance?: AuthorizationSystemResource;
    /**
     * Represents an AWS role. Supports $filter as follows: $filter=role/authorizationSystem/authorizationSystemId IN
     * ('authorizationSystemIds').
     */
    role?: AwsRole;
}
export interface AwsStatement {
    // The AWS actions.
    actions?: string[];
    // The AWS conditions associated with the statement.
    condition?: NullableOption<AwsCondition>;
    // The AWS action effect, whether to allow or deny. The possible values are: allow, deny, unknownFutureValue.
    effect?: AwsStatementEffect;
    // AWS Not Actions
    notActions?: string[];
    // AWS Not Resources
    notResources?: string[];
    // The AWS resources associated with the statement.
    resources?: string[];
    // The ID of the AWS statement.
    statementId?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface PermissionsDefinitionAwsPolicy extends Entity {}
// tslint:disable-next-line: no-empty-interface
export interface PermissionsDefinitionAzureRole extends Entity {}
// tslint:disable-next-line: no-empty-interface
export interface PermissionsDefinitionGcpRole extends Entity {}
export interface PermissionsDefinitionAuthorizationSystemIdentity {
    /**
     * Unique ID of the identity within the external system. Prefixed with rsn: if this is a SAML or ED user in AWS. Alternate
     * key.
     */
    externalId?: string;
    /**
     * The type of identity that is assigned the permission in the authorization system. The possible values are: user, role,
     * application, managedIdentity, serviceAccount, unknownFutureValue.
     */
    identityType?: PermissionsDefinitionIdentityType;
    // The source system for the identity.
    source?: PermissionsDefinitionIdentitySource;
}
export interface PermissionsRequestChange extends Entity {
    /**
     * The status of the active occurence of the schedule if one exists. The possible values are: grantingFailed, granted,
     * granting, revoked, revoking, revokingFailed, unknownFutureValue.
     */
    activeOccurrenceStatus?: NullableOption<PermissionsRequestOccurrenceStatus>;
    // Time when the change occurred.
    modificationDateTime?: string;
    // The ID of the scheduledPermissionsRequest object.
    permissionsRequestId?: string;
    /**
     * The status that the request changed to. The possible values are: submitted, approved, completed, canceled, rejected,
     * unknownFutureValue.
     */
    statusDetail?: StatusDetail;
    // Represents the ticketing system identifier.
    ticketId?: NullableOption<string>;
}
export interface ScheduledPermissionsRequest extends Entity {
    // Defines when the identity created the request.
    createdDateTime?: string;
    // The identity's justification for the request.
    justification?: NullableOption<string>;
    // Additional context for the permissions request.
    notes?: NullableOption<string>;
    // The permissions requested.
    requestedPermissions?: PermissionsDefinition;
    // When to assign the requested permissions.
    scheduleInfo?: NullableOption<RequestSchedule>;
    /**
     * The current status of the request. The possible values are: submitted, approved, completed, canceled, rejected,
     * unknownFutureValue.
     */
    statusDetail?: StatusDetail;
    // Ticketing-related metadata that you can use to correlate to the request.
    ticketInfo?: NullableOption<TicketInfo>;
}
export interface Account {
    blocked?: NullableOption<boolean>;
    category?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    number?: NullableOption<string>;
    subCategory?: NullableOption<string>;
}
export interface AgedAccountsPayable {
    agedAsOfDate?: NullableOption<string>;
    balanceDue?: NullableOption<number>;
    currencyCode?: NullableOption<string>;
    currentAmount?: NullableOption<number>;
    id?: string;
    name?: NullableOption<string>;
    period1Amount?: NullableOption<number>;
    period2Amount?: NullableOption<number>;
    period3Amount?: NullableOption<number>;
    periodLengthFilter?: NullableOption<string>;
    vendorId?: string;
    vendorNumber?: NullableOption<string>;
}
export interface AgedAccountsReceivable {
    agedAsOfDate?: NullableOption<string>;
    balanceDue?: NullableOption<number>;
    currencyCode?: NullableOption<string>;
    currentAmount?: NullableOption<number>;
    customerId?: string;
    customerNumber?: NullableOption<string>;
    id?: string;
    name?: NullableOption<string>;
    period1Amount?: NullableOption<number>;
    period2Amount?: NullableOption<number>;
    period3Amount?: NullableOption<number>;
    periodLengthFilter?: NullableOption<string>;
}
export interface Company {
    businessProfileId?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    name?: NullableOption<string>;
    systemVersion?: NullableOption<string>;
    accounts?: NullableOption<Account[]>;
    agedAccountsPayable?: NullableOption<AgedAccountsPayable[]>;
    agedAccountsReceivable?: NullableOption<AgedAccountsReceivable[]>;
    companyInformation?: NullableOption<CompanyInformation[]>;
    countriesRegions?: NullableOption<CountryRegion[]>;
    currencies?: NullableOption<Currency[]>;
    customerPaymentJournals?: NullableOption<CustomerPaymentJournal[]>;
    customerPayments?: NullableOption<CustomerPayment[]>;
    customers?: NullableOption<Customer[]>;
    dimensions?: NullableOption<Dimension[]>;
    dimensionValues?: NullableOption<DimensionValue[]>;
    employees?: NullableOption<Employee[]>;
    generalLedgerEntries?: NullableOption<GeneralLedgerEntry[]>;
    itemCategories?: NullableOption<ItemCategory[]>;
    items?: NullableOption<Item[]>;
    journalLines?: NullableOption<JournalLine[]>;
    journals?: NullableOption<Journal[]>;
    paymentMethods?: NullableOption<PaymentMethod[]>;
    paymentTerms?: NullableOption<PaymentTerm[]>;
    picture?: NullableOption<Picture[]>;
    purchaseInvoiceLines?: NullableOption<PurchaseInvoiceLine[]>;
    purchaseInvoices?: NullableOption<PurchaseInvoice[]>;
    salesCreditMemoLines?: NullableOption<SalesCreditMemoLine[]>;
    salesCreditMemos?: NullableOption<SalesCreditMemo[]>;
    salesInvoiceLines?: NullableOption<SalesInvoiceLine[]>;
    salesInvoices?: NullableOption<SalesInvoice[]>;
    salesOrderLines?: NullableOption<SalesOrderLine[]>;
    salesOrders?: NullableOption<SalesOrder[]>;
    salesQuoteLines?: NullableOption<SalesQuoteLine[]>;
    salesQuotes?: NullableOption<SalesQuote[]>;
    shipmentMethods?: NullableOption<ShipmentMethod[]>;
    taxAreas?: NullableOption<TaxArea[]>;
    taxGroups?: NullableOption<TaxGroup[]>;
    unitsOfMeasure?: NullableOption<UnitOfMeasure[]>;
    vendors?: NullableOption<Vendor[]>;
}
export interface CompanyInformation {
    address?: NullableOption<PostalAddressType>;
    currencyCode?: NullableOption<string>;
    currentFiscalYearStartDate?: NullableOption<string>;
    displayName?: NullableOption<string>;
    email?: NullableOption<string>;
    faxNumber?: NullableOption<string>;
    id?: string;
    industry?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    phoneNumber?: NullableOption<string>;
    picture?: NullableOption<any>;
    taxRegistrationNumber?: NullableOption<string>;
    website?: NullableOption<string>;
}
export interface CountryRegion {
    addressFormat?: NullableOption<string>;
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
}
export interface Currency {
    amountDecimalPlaces?: NullableOption<string>;
    amountRoundingPrecision?: NullableOption<number>;
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    symbol?: NullableOption<string>;
}
export interface CustomerPaymentJournal {
    balancingAccountId?: NullableOption<string>;
    balancingAccountNumber?: NullableOption<string>;
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    account?: NullableOption<Account>;
    customerPayments?: NullableOption<CustomerPayment[]>;
}
export interface CustomerPayment {
    amount?: NullableOption<number>;
    appliesToInvoiceId?: NullableOption<string>;
    appliesToInvoiceNumber?: NullableOption<string>;
    comment?: NullableOption<string>;
    contactId?: NullableOption<string>;
    customerId?: NullableOption<string>;
    customerNumber?: NullableOption<string>;
    description?: NullableOption<string>;
    documentNumber?: NullableOption<string>;
    externalDocumentNumber?: NullableOption<string>;
    id?: string;
    journalDisplayName?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    lineNumber?: NullableOption<number>;
    postingDate?: NullableOption<string>;
    customer?: NullableOption<Customer>;
}
export interface Customer {
    address?: NullableOption<PostalAddressType>;
    blocked?: NullableOption<string>;
    currencyCode?: NullableOption<string>;
    currencyId?: NullableOption<string>;
    displayName?: NullableOption<string>;
    email?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    number?: NullableOption<string>;
    paymentMethodId?: NullableOption<string>;
    paymentTermsId?: NullableOption<string>;
    phoneNumber?: NullableOption<string>;
    shipmentMethodId?: NullableOption<string>;
    taxAreaDisplayName?: NullableOption<string>;
    taxAreaId?: NullableOption<string>;
    taxLiable?: NullableOption<boolean>;
    taxRegistrationNumber?: NullableOption<string>;
    type?: NullableOption<string>;
    website?: NullableOption<string>;
    currency?: NullableOption<Currency>;
    paymentMethod?: NullableOption<PaymentMethod>;
    paymentTerm?: NullableOption<PaymentTerm>;
    picture?: NullableOption<Picture[]>;
    shipmentMethod?: NullableOption<ShipmentMethod>;
}
export interface Dimension {
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    dimensionValues?: NullableOption<DimensionValue[]>;
}
export interface DimensionValue {
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
}
export interface Employee {
    address?: NullableOption<PostalAddressType>;
    birthDate?: NullableOption<string>;
    displayName?: NullableOption<string>;
    email?: NullableOption<string>;
    employmentDate?: NullableOption<string>;
    givenName?: NullableOption<string>;
    id?: string;
    jobTitle?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    middleName?: NullableOption<string>;
    mobilePhone?: NullableOption<string>;
    number?: NullableOption<string>;
    personalEmail?: NullableOption<string>;
    phoneNumber?: NullableOption<string>;
    statisticsGroupCode?: NullableOption<string>;
    status?: NullableOption<string>;
    surname?: NullableOption<string>;
    terminationDate?: NullableOption<string>;
    picture?: NullableOption<Picture[]>;
}
export interface GeneralLedgerEntry {
    accountId?: NullableOption<string>;
    accountNumber?: NullableOption<string>;
    creditAmount?: NullableOption<number>;
    debitAmount?: NullableOption<number>;
    description?: NullableOption<string>;
    documentNumber?: NullableOption<string>;
    documentType?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    postingDate?: NullableOption<string>;
    account?: NullableOption<Account>;
}
// tslint:disable-next-line: interface-name
export interface ItemCategory {
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface Item {
    baseUnitOfMeasureId?: NullableOption<string>;
    blocked?: NullableOption<boolean>;
    displayName?: NullableOption<string>;
    gtin?: NullableOption<string>;
    id?: string;
    inventory?: NullableOption<number>;
    itemCategoryCode?: NullableOption<string>;
    itemCategoryId?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    number?: NullableOption<string>;
    priceIncludesTax?: NullableOption<boolean>;
    taxGroupCode?: NullableOption<string>;
    taxGroupId?: NullableOption<string>;
    type?: NullableOption<string>;
    unitCost?: NullableOption<number>;
    unitPrice?: NullableOption<number>;
    itemCategory?: NullableOption<ItemCategory>;
    picture?: NullableOption<Picture[]>;
}
export interface JournalLine {
    accountId?: NullableOption<string>;
    accountNumber?: NullableOption<string>;
    amount?: NullableOption<number>;
    comment?: NullableOption<string>;
    description?: NullableOption<string>;
    documentNumber?: NullableOption<string>;
    externalDocumentNumber?: NullableOption<string>;
    id?: string;
    journalDisplayName?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    lineNumber?: NullableOption<number>;
    postingDate?: NullableOption<string>;
    account?: NullableOption<Account>;
}
export interface Journal {
    balancingAccountId?: NullableOption<string>;
    balancingAccountNumber?: NullableOption<string>;
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    account?: NullableOption<Account>;
    journalLines?: NullableOption<JournalLine[]>;
}
export interface PaymentMethod {
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
}
export interface PaymentTerm {
    calculateDiscountOnCreditMemos?: NullableOption<boolean>;
    code?: NullableOption<string>;
    discountDateCalculation?: NullableOption<string>;
    discountPercent?: NullableOption<number>;
    displayName?: NullableOption<string>;
    dueDateCalculation?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
}
export interface Picture {
    content?: NullableOption<any>;
    contentType?: NullableOption<string>;
    height?: NullableOption<number>;
    id?: string;
    width?: NullableOption<number>;
}
export interface PurchaseInvoiceLine extends Entity {
    accountId?: NullableOption<string>;
    amountExcludingTax?: NullableOption<number>;
    amountIncludingTax?: NullableOption<number>;
    description?: NullableOption<string>;
    discountAmount?: NullableOption<number>;
    discountAppliedBeforeTax?: NullableOption<boolean>;
    discountPercent?: NullableOption<number>;
    documentId?: NullableOption<string>;
    expectedReceiptDate?: NullableOption<string>;
    invoiceDiscountAllocation?: NullableOption<number>;
    itemId?: NullableOption<string>;
    lineType?: NullableOption<string>;
    netAmount?: NullableOption<number>;
    netAmountIncludingTax?: NullableOption<number>;
    netTaxAmount?: NullableOption<number>;
    quantity?: NullableOption<number>;
    sequence?: NullableOption<number>;
    taxCode?: NullableOption<string>;
    taxPercent?: NullableOption<number>;
    totalTaxAmount?: NullableOption<number>;
    unitCost?: NullableOption<number>;
    account?: NullableOption<Account>;
    item?: NullableOption<Item>;
}
export interface PurchaseInvoice {
    buyFromAddress?: NullableOption<PostalAddressType>;
    currencyCode?: NullableOption<string>;
    currencyId?: NullableOption<string>;
    discountAmount?: NullableOption<number>;
    discountAppliedBeforeTax?: NullableOption<boolean>;
    dueDate?: NullableOption<string>;
    id?: string;
    invoiceDate?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    number?: NullableOption<string>;
    payToAddress?: NullableOption<PostalAddressType>;
    payToContact?: NullableOption<string>;
    payToName?: NullableOption<string>;
    payToVendorId?: NullableOption<string>;
    payToVendorNumber?: NullableOption<string>;
    pricesIncludeTax?: NullableOption<boolean>;
    shipToAddress?: NullableOption<PostalAddressType>;
    shipToContact?: NullableOption<string>;
    shipToName?: NullableOption<string>;
    status?: NullableOption<string>;
    totalAmountExcludingTax?: NullableOption<number>;
    totalAmountIncludingTax?: NullableOption<number>;
    totalTaxAmount?: NullableOption<number>;
    vendorId?: NullableOption<string>;
    vendorInvoiceNumber?: NullableOption<string>;
    vendorName?: NullableOption<string>;
    vendorNumber?: NullableOption<string>;
    currency?: NullableOption<Currency>;
    purchaseInvoiceLines?: NullableOption<PurchaseInvoiceLine[]>;
    vendor?: NullableOption<Vendor>;
}
export interface SalesCreditMemoLine extends Entity {
    accountId?: NullableOption<string>;
    amountExcludingTax?: NullableOption<number>;
    amountIncludingTax?: NullableOption<number>;
    description?: NullableOption<string>;
    discountAmount?: NullableOption<number>;
    discountAppliedBeforeTax?: NullableOption<boolean>;
    discountPercent?: NullableOption<number>;
    documentId?: NullableOption<string>;
    invoiceDiscountAllocation?: NullableOption<number>;
    itemId?: NullableOption<string>;
    lineType?: NullableOption<string>;
    netAmount?: NullableOption<number>;
    netAmountIncludingTax?: NullableOption<number>;
    netTaxAmount?: NullableOption<number>;
    quantity?: NullableOption<number>;
    sequence?: NullableOption<number>;
    shipmentDate?: NullableOption<string>;
    taxCode?: NullableOption<string>;
    taxPercent?: NullableOption<number>;
    totalTaxAmount?: NullableOption<number>;
    unitOfMeasureId?: NullableOption<string>;
    unitPrice?: NullableOption<number>;
    account?: NullableOption<Account>;
    item?: NullableOption<Item>;
}
export interface SalesCreditMemo {
    billingPostalAddress?: NullableOption<PostalAddressType>;
    billToCustomerId?: NullableOption<string>;
    billToCustomerNumber?: NullableOption<string>;
    billToName?: NullableOption<string>;
    creditMemoDate?: NullableOption<string>;
    currencyCode?: NullableOption<string>;
    currencyId?: NullableOption<string>;
    customerId?: NullableOption<string>;
    customerName?: NullableOption<string>;
    customerNumber?: NullableOption<string>;
    discountAmount?: NullableOption<number>;
    discountAppliedBeforeTax?: NullableOption<boolean>;
    dueDate?: NullableOption<string>;
    email?: NullableOption<string>;
    externalDocumentNumber?: NullableOption<string>;
    id?: string;
    invoiceId?: NullableOption<string>;
    invoiceNumber?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    number?: NullableOption<string>;
    paymentTermsId?: NullableOption<string>;
    phoneNumber?: NullableOption<string>;
    pricesIncludeTax?: NullableOption<boolean>;
    salesperson?: NullableOption<string>;
    sellingPostalAddress?: NullableOption<PostalAddressType>;
    status?: NullableOption<string>;
    totalAmountExcludingTax?: NullableOption<number>;
    totalAmountIncludingTax?: NullableOption<number>;
    totalTaxAmount?: NullableOption<number>;
    currency?: NullableOption<Currency>;
    customer?: NullableOption<Customer>;
    paymentTerm?: NullableOption<PaymentTerm>;
    salesCreditMemoLines?: NullableOption<SalesCreditMemoLine[]>;
}
export interface SalesInvoiceLine extends Entity {
    accountId?: NullableOption<string>;
    amountExcludingTax?: NullableOption<number>;
    amountIncludingTax?: NullableOption<number>;
    description?: NullableOption<string>;
    discountAmount?: NullableOption<number>;
    discountAppliedBeforeTax?: NullableOption<boolean>;
    discountPercent?: NullableOption<number>;
    documentId?: NullableOption<string>;
    invoiceDiscountAllocation?: NullableOption<number>;
    itemId?: NullableOption<string>;
    lineType?: NullableOption<string>;
    netAmount?: NullableOption<number>;
    netAmountIncludingTax?: NullableOption<number>;
    netTaxAmount?: NullableOption<number>;
    quantity?: NullableOption<number>;
    sequence?: NullableOption<number>;
    shipmentDate?: NullableOption<string>;
    taxCode?: NullableOption<string>;
    taxPercent?: NullableOption<number>;
    totalTaxAmount?: NullableOption<number>;
    unitOfMeasureId?: NullableOption<string>;
    unitPrice?: NullableOption<number>;
    account?: NullableOption<Account>;
    item?: NullableOption<Item>;
}
export interface SalesInvoice {
    billingPostalAddress?: NullableOption<PostalAddressType>;
    billToCustomerId?: NullableOption<string>;
    billToCustomerNumber?: NullableOption<string>;
    billToName?: NullableOption<string>;
    currencyCode?: NullableOption<string>;
    currencyId?: NullableOption<string>;
    customerId?: NullableOption<string>;
    customerName?: NullableOption<string>;
    customerNumber?: NullableOption<string>;
    customerPurchaseOrderReference?: NullableOption<string>;
    discountAmount?: NullableOption<number>;
    discountAppliedBeforeTax?: NullableOption<boolean>;
    dueDate?: NullableOption<string>;
    email?: NullableOption<string>;
    externalDocumentNumber?: NullableOption<string>;
    id?: string;
    invoiceDate?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    number?: NullableOption<string>;
    orderId?: NullableOption<string>;
    orderNumber?: NullableOption<string>;
    paymentTermsId?: NullableOption<string>;
    phoneNumber?: NullableOption<string>;
    pricesIncludeTax?: NullableOption<boolean>;
    salesperson?: NullableOption<string>;
    sellingPostalAddress?: NullableOption<PostalAddressType>;
    shipmentMethodId?: NullableOption<string>;
    shippingPostalAddress?: NullableOption<PostalAddressType>;
    shipToContact?: NullableOption<string>;
    shipToName?: NullableOption<string>;
    status?: NullableOption<string>;
    totalAmountExcludingTax?: NullableOption<number>;
    totalAmountIncludingTax?: NullableOption<number>;
    totalTaxAmount?: NullableOption<number>;
    currency?: NullableOption<Currency>;
    customer?: NullableOption<Customer>;
    paymentTerm?: NullableOption<PaymentTerm>;
    salesInvoiceLines?: NullableOption<SalesInvoiceLine[]>;
    shipmentMethod?: NullableOption<ShipmentMethod>;
}
export interface SalesOrderLine extends Entity {
    accountId?: NullableOption<string>;
    amountExcludingTax?: NullableOption<number>;
    amountIncludingTax?: NullableOption<number>;
    description?: NullableOption<string>;
    discountAmount?: NullableOption<number>;
    discountAppliedBeforeTax?: NullableOption<boolean>;
    discountPercent?: NullableOption<number>;
    documentId?: NullableOption<string>;
    invoiceDiscountAllocation?: NullableOption<number>;
    invoicedQuantity?: NullableOption<number>;
    invoiceQuantity?: NullableOption<number>;
    itemId?: NullableOption<string>;
    lineType?: NullableOption<string>;
    netAmount?: NullableOption<number>;
    netAmountIncludingTax?: NullableOption<number>;
    netTaxAmount?: NullableOption<number>;
    quantity?: NullableOption<number>;
    sequence?: NullableOption<number>;
    shipmentDate?: NullableOption<string>;
    shippedQuantity?: NullableOption<number>;
    shipQuantity?: NullableOption<number>;
    taxCode?: NullableOption<string>;
    taxPercent?: NullableOption<number>;
    totalTaxAmount?: NullableOption<number>;
    unitOfMeasureId?: NullableOption<string>;
    unitPrice?: NullableOption<number>;
    account?: NullableOption<Account>;
    item?: NullableOption<Item>;
}
export interface SalesOrder {
    billingPostalAddress?: NullableOption<PostalAddressType>;
    billToCustomerId?: NullableOption<string>;
    billToCustomerNumber?: NullableOption<string>;
    billToName?: NullableOption<string>;
    currencyCode?: NullableOption<string>;
    currencyId?: NullableOption<string>;
    customerId?: NullableOption<string>;
    customerName?: NullableOption<string>;
    customerNumber?: NullableOption<string>;
    discountAmount?: NullableOption<number>;
    discountAppliedBeforeTax?: NullableOption<boolean>;
    email?: NullableOption<string>;
    externalDocumentNumber?: NullableOption<string>;
    fullyShipped?: NullableOption<boolean>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    number?: NullableOption<string>;
    orderDate?: NullableOption<string>;
    partialShipping?: NullableOption<boolean>;
    paymentTermsId?: NullableOption<string>;
    phoneNumber?: NullableOption<string>;
    pricesIncludeTax?: NullableOption<boolean>;
    requestedDeliveryDate?: NullableOption<string>;
    salesperson?: NullableOption<string>;
    sellingPostalAddress?: NullableOption<PostalAddressType>;
    shippingPostalAddress?: NullableOption<PostalAddressType>;
    shipToContact?: NullableOption<string>;
    shipToName?: NullableOption<string>;
    status?: NullableOption<string>;
    totalAmountExcludingTax?: NullableOption<number>;
    totalAmountIncludingTax?: NullableOption<number>;
    totalTaxAmount?: NullableOption<number>;
    currency?: NullableOption<Currency>;
    customer?: NullableOption<Customer>;
    paymentTerm?: NullableOption<PaymentTerm>;
    salesOrderLines?: NullableOption<SalesOrderLine[]>;
}
export interface SalesQuoteLine extends Entity {
    accountId?: NullableOption<string>;
    amountExcludingTax?: NullableOption<number>;
    amountIncludingTax?: NullableOption<number>;
    description?: NullableOption<string>;
    discountAmount?: NullableOption<number>;
    discountAppliedBeforeTax?: NullableOption<boolean>;
    discountPercent?: NullableOption<number>;
    documentId?: NullableOption<string>;
    itemId?: NullableOption<string>;
    lineType?: NullableOption<string>;
    netAmount?: NullableOption<number>;
    netAmountIncludingTax?: NullableOption<number>;
    netTaxAmount?: NullableOption<number>;
    quantity?: NullableOption<number>;
    sequence?: NullableOption<number>;
    taxCode?: NullableOption<string>;
    taxPercent?: NullableOption<number>;
    totalTaxAmount?: NullableOption<number>;
    unitOfMeasureId?: NullableOption<string>;
    unitPrice?: NullableOption<number>;
    account?: NullableOption<Account>;
    item?: NullableOption<Item>;
}
export interface SalesQuote {
    acceptedDate?: NullableOption<string>;
    billingPostalAddress?: NullableOption<PostalAddressType>;
    billToCustomerId?: NullableOption<string>;
    billToCustomerNumber?: NullableOption<string>;
    billToName?: NullableOption<string>;
    currencyCode?: NullableOption<string>;
    currencyId?: NullableOption<string>;
    customerId?: NullableOption<string>;
    customerName?: NullableOption<string>;
    customerNumber?: NullableOption<string>;
    discountAmount?: NullableOption<number>;
    documentDate?: NullableOption<string>;
    dueDate?: NullableOption<string>;
    email?: NullableOption<string>;
    externalDocumentNumber?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    number?: NullableOption<string>;
    paymentTermsId?: NullableOption<string>;
    phoneNumber?: NullableOption<string>;
    salesperson?: NullableOption<string>;
    sellingPostalAddress?: NullableOption<PostalAddressType>;
    sentDate?: NullableOption<string>;
    shipmentMethodId?: NullableOption<string>;
    shippingPostalAddress?: NullableOption<PostalAddressType>;
    shipToContact?: NullableOption<string>;
    shipToName?: NullableOption<string>;
    status?: NullableOption<string>;
    totalAmountExcludingTax?: NullableOption<number>;
    totalAmountIncludingTax?: NullableOption<number>;
    totalTaxAmount?: NullableOption<number>;
    validUntilDate?: NullableOption<string>;
    currency?: NullableOption<Currency>;
    customer?: NullableOption<Customer>;
    paymentTerm?: NullableOption<PaymentTerm>;
    salesQuoteLines?: NullableOption<SalesQuoteLine[]>;
    shipmentMethod?: NullableOption<ShipmentMethod>;
}
export interface ShipmentMethod {
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
}
export interface TaxArea {
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    taxType?: NullableOption<string>;
}
export interface TaxGroup extends Entity {
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    taxType?: NullableOption<string>;
}
export interface UnitOfMeasure {
    code?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    internationalStandardCode?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
}
export interface Vendor {
    address?: NullableOption<PostalAddressType>;
    balance?: NullableOption<number>;
    blocked?: NullableOption<string>;
    currencyCode?: NullableOption<string>;
    currencyId?: NullableOption<string>;
    displayName?: NullableOption<string>;
    email?: NullableOption<string>;
    id?: string;
    lastModifiedDateTime?: NullableOption<string>;
    number?: NullableOption<string>;
    paymentMethodId?: NullableOption<string>;
    paymentTermsId?: NullableOption<string>;
    phoneNumber?: NullableOption<string>;
    taxLiable?: NullableOption<boolean>;
    taxRegistrationNumber?: NullableOption<string>;
    website?: NullableOption<string>;
    currency?: NullableOption<Currency>;
    paymentMethod?: NullableOption<PaymentMethod>;
    paymentTerm?: NullableOption<PaymentTerm>;
    picture?: NullableOption<Picture[]>;
}
export interface Financials {
    id?: string;
    companies?: NullableOption<Company[]>;
}
export interface Office365ActiveUserCounts extends Entity {
    // The number of active users in Exchange. Any user who can read and send email is considered an active user.
    exchange?: NullableOption<number>;
    /**
     * The number of active users in Microsoft 365. This number includes all the active users in Exchange, OneDrive,
     * SharePoint, Skype For Business, Yammer, and Microsoft Teams. You can find the definition of active user for each
     * product in the respective property description.
     */
    office365?: NullableOption<number>;
    /**
     * The number of active users in OneDrive. Any user who viewed or edited files, shared files internally or externally, or
     * synced files is considered an active user.
     */
    oneDrive?: NullableOption<number>;
    // The date on which a number of users were active.
    reportDate?: NullableOption<string>;
    // The number of days the report covers.
    reportPeriod?: NullableOption<string>;
    // The latest date of the content.
    reportRefreshDate?: NullableOption<string>;
    /**
     * The number of active users in SharePoint. Any user who viewed or edited files, shared files internally or externally,
     * synced files, or viewed SharePoint pages is considered an active user.
     */
    sharePoint?: NullableOption<number>;
    /**
     * The number of active users in Skype For Business. Any user who organized or participated in conferences, or joined
     * peer-to-peer sessions is considered an active user.
     */
    skypeForBusiness?: NullableOption<number>;
    /**
     * The number of active users in Microsoft Teams. Any user who posted messages in team channels, sent messages in private
     * chat sessions, or participated in meetings or calls is considered an active user.
     */
    teams?: NullableOption<number>;
    // The number of active users in Yammer. Any user who can post, read, or like messages is considered an active user.
    yammer?: NullableOption<number>;
}
export interface Office365ActiveUserDetail extends Entity {
    // All the products assigned for the user.
    assignedProducts?: NullableOption<string[]>;
    // The date when the delete operation happened. Default value is 'null' when the user hasn't been deleted.
    deletedDate?: 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 can't be cleared during updates.
     */
    displayName?: NullableOption<string>;
    // The date when user last read or sent email.
    exchangeLastActivityDate?: NullableOption<string>;
    // The last date when the user was assigned an Exchange license.
    exchangeLicenseAssignDate?: NullableOption<string>;
    // Whether the user has been assigned an Exchange license.
    hasExchangeLicense?: NullableOption<boolean>;
    // Whether the user has been assigned a OneDrive license.
    hasOneDriveLicense?: NullableOption<boolean>;
    // Whether the user has been assigned a SharePoint license.
    hasSharePointLicense?: NullableOption<boolean>;
    // Whether the user has been assigned a Skype For Business license.
    hasSkypeForBusinessLicense?: NullableOption<boolean>;
    // Whether the user has been assigned a Teams license.
    hasTeamsLicense?: NullableOption<boolean>;
    // Whether the user has been assigned a Yammer license.
    hasYammerLicense?: NullableOption<boolean>;
    // Whether this user has been deleted or soft deleted.
    isDeleted?: NullableOption<boolean>;
    // The date when user last viewed or edited files, shared files internally or externally, or synced files.
    oneDriveLastActivityDate?: NullableOption<string>;
    // The last date when the user was assigned a OneDrive license.
    oneDriveLicenseAssignDate?: NullableOption<string>;
    // The latest date of the content.
    reportRefreshDate?: NullableOption<string>;
    /**
     * The date when user last viewed or edited files, shared files internally or externally, synced files, or viewed
     * SharePoint pages.
     */
    sharePointLastActivityDate?: NullableOption<string>;
    // The last date when the user was assigned a SharePoint license.
    sharePointLicenseAssignDate?: NullableOption<string>;
    // The date when user last organized or participated in conferences, or joined peer-to-peer sessions.
    skypeForBusinessLastActivityDate?: NullableOption<string>;
    // The last date when the user was assigned a Skype For Business license.
    skypeForBusinessLicenseAssignDate?: NullableOption<string>;
    /**
     * The date when user last posted messages in team channels, sent messages in private chat sessions, or participated in
     * meetings or calls.
     */
    teamsLastActivityDate?: NullableOption<string>;
    // The last date when the user was assigned a Teams license.
    teamsLicenseAssignDate?: 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.
     */
    userPrincipalName?: NullableOption<string>;
    // The date when user last posted, read, or liked message.
    yammerLastActivityDate?: NullableOption<string>;
    // The last date when the user was assigned a Yammer license.
    yammerLicenseAssignDate?: NullableOption<string>;
}
export interface Office365GroupsActivityCounts extends Entity {
    // The number of emails received by Group mailboxes.
    exchangeEmailsReceived?: NullableOption<number>;
    /**
     * The date on which a number of emails were sent to a group mailbox or a number of messages were posted, read, or liked
     * in a Yammer group
     */
    reportDate?: NullableOption<string>;
    // The number of days the report covers.
    reportPeriod?: NullableOption<string>;
    // The latest date of the content.
    reportRefreshDate?: NullableOption<string>;
    // The number of channel messages in Teams team.
    teamsChannelMessages?: NullableOption<number>;
    // The number of meetings organized in Teams team.
    teamsMeetingsOrganized?: NullableOption<number>;
    // The number of messages liked in Yammer groups.
    yammerMessagesLiked?: NullableOption<number>;
    // The number of messages posted to Yammer groups.
    yammerMessagesPosted?: NullableOption<number>;
    // The number of messages read in Yammer groups.
    yammerMessagesRead?: NullableOption<number>;
}
export interface Office365GroupsActivityDetail extends Entity {
    // The storage used of the group mailbox.
    exchangeMailboxStorageUsedInBytes?: NullableOption<number>;
    // The number of items in the group mailbox.
    exchangeMailboxTotalItemCount?: NullableOption<number>;
    // The number of emails that the group mailbox received.
    exchangeReceivedEmailCount?: NullableOption<number>;
    // The group external member count.
    externalMemberCount?: NullableOption<number>;
    // The display name of the group.
    groupDisplayName?: NullableOption<string>;
    // The group id.
    groupId?: NullableOption<string>;
    // The group type. Possible values are: Public or Private.
    groupType?: NullableOption<string>;
    // Whether this user has been deleted or soft deleted.
    isDeleted?: NullableOption<boolean>;
    /**
     * The last activity date for the following scenarios: group mailbox received email; user viewed, edited, shared, or
     * synced files in SharePoint document library; user viewed SharePoint pages; user posted, read, or liked messages in
     * Yammer groups.
     */
    lastActivityDate?: NullableOption<string>;
    // The group member count.
    memberCount?: NullableOption<number>;
    // The group owner principal name.
    ownerPrincipalName?: NullableOption<string>;
    // The number of days the report covers.
    reportPeriod?: NullableOption<string>;
    // The latest date of the content.
    reportRefreshDate?: NullableOption<string>;
    // The number of active files in SharePoint Group site.
    sharePointActiveFileCount?: NullableOption<number>;
    // The storage used by SharePoint Group site.
    sharePointSiteStorageUsedInBytes?: NullableOption<number>;
    // The total number of files in SharePoint Group site.
    sharePointTotalFileCount?: NullableOption<number>;
    // The number of channel messages in Teams team.
    teamsChannelMessagesCount?: NullableOption<number>;
    // The number of meetings organized in Teams team.
    teamsMeetingsOrganizedCount?: NullableOption<number>;
    // The number of messages liked in Yammer groups.
    yammerLikedMessageCount?: NullableOption<number>;
    // The number of messages posted to Yammer groups.
    yammerPostedMessageCount?: NullableOption<number>;
    // The number of messages read in Yammer groups.
    yammerReadMessageCount?: NullableOption<number>;
}
export interface Office365GroupsActivityFileCounts extends Entity {
    // The number of files that were viewed, edited, shared, or synced in the group's SharePoint document library.
    active?: NullableOption<number>;
    // The date on which a number of files were active in the group's SharePoint site.
    reportDate?: NullableOption<string>;
    // The number of days the report covers.
    reportPeriod?: NullableOption<string>;
    // The latest date of the content.
    reportRefreshDate?: NullableOption<string>;
    // The total number of files in the group's SharePoint document library.
    total?: NullableOption<number>;
}
export interface Office365GroupsActivityGroupCounts extends Entity {
    /**
     * The number of active groups. A group is considered active if any of the following occurred: group mailbox received
     * email, or a user viewed, edited, shared, or synced files in SharePoint document library, or a user viewed SharePoint
     * pages, or a user posted, read, or liked messages in Yammer groups.
     */
    active?: NullableOption<number>;
    // The date on which groups were active.
    reportDate?: NullableOption<string>;
    // The number of days the report covers.
    reportPeriod?: NullableOption<string>;
    // The latest date of the content.
    reportRefreshDate?: NullableOption<string>;
    // The total number of groups.
    total?: NullableOption<number>;
}
export interface Office365GroupsActivityStorage extends Entity {
    // The storage used in group mailbox.
    mailboxStorageUsedInBytes?: NullableOption<number>;
    // The snapshot date for Exchange and SharePoint used storage.
    reportDate?: NullableOption<string>;
    // The number of days the report covers.
    reportPeriod?: NullableOption<string>;
    // The latest date of the content.
    reportRefreshDate?: NullableOption<string>;
    // The storage used in SharePoint document library.
    siteStorageUsedInBytes?: NullableOption<number>;
}
export interface Office365ServicesUserCounts extends Entity {
    // The number of active users on Exchange. Any user who can read and send email is considered an active user.
    exchangeActive?: NullableOption<number>;
    // The number of inactive users on Exchange.
    exchangeInactive?: NullableOption<number>;
    // The number of active users on Microsoft 365.
    office365Active?: NullableOption<number>;
    // The number of inactive users on Microsoft 365.
    office365Inactive?: NullableOption<number>;
    /**
     * The number of active users on OneDrive. Any user who viewed or edited files, shared files internally or externally, or
     * synced files is considered an active user.
     */
    oneDriveActive?: NullableOption<number>;
    // The number of inactive users on OneDrive.
    oneDriveInactive?: NullableOption<number>;
    // The number of days the report covers.
    reportPeriod?: NullableOption<string>;
    // The latest date of the content.
    reportRefreshDate?: NullableOption<string>;
    /**
     * The number of active users on SharePoint. Any user who viewed or edited files, shared files internally or externally,
     * synced files, or viewed SharePoint pages is considered an active user.
     */
    sharePointActive?: NullableOption<number>;
    // The number of inactive users on SharePoint.
    sharePointInactive?: NullableOption<number>;
    /**
     * The number of active users on Skype For Business. Any user who organized or participated in conferences, or joined
     * peer-to-peer sessions is considered an active user.
     */
    skypeForBusinessActive?: NullableOption<number>;
    // The number of inactive users on Skype For Business.
    skypeForBusinessInactive?: NullableOption<number>;
    /**
     * The number of active users on Microsoft Teams. Any user who posted messages in team channels, sent messages in private
     * chat sessions, or participated in meetings or calls is considered an active user.
     */
    teamsActive?: NullableOption<number>;
    // The number of inactive users on Microsoft Teams.
    teamsInactive?: NullableOption<number>;
    // The number of active users on Yammer. Any user who can post, read, or like messages is considered an active user.
    yammerActive?: NullableOption<number>;
    // The number of inactive users on Yammer.
    yammerInactive?: NullableOption<number>;
}
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 rosters
    rosters?: NullableOption<PlannerRoster[]>;
    // Read-only. Nullable. Returns a collection of the specified tasks
    tasks?: NullableOption<PlannerTask[]>;
}
export interface PlannerBucket extends PlannerDelta {
    // Contains information about the origin of the bucket.
    creationSource?: NullableOption<PlannerBucketCreation>;
    // 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 PlannerDelta {
    /**
     * Identifies the container of the plan. Either specify all properties, or specify only the url, the containerId, and
     * type. After it's set, this property can’t be updated. It changes when a plan is moved from one container to another,
     * using plan move to container. Required.
     */
    container?: NullableOption<PlannerPlanContainer>;
    // Read-only. Other user experiences in which this plan is used, represented as plannerPlanContext entries.
    contexts?: NullableOption<PlannerPlanContextCollection>;
    // 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>;
    // Contains information about the origin of the plan.
    creationSource?: NullableOption<PlannerPlanCreation>;
    owner?: NullableOption<string>;
    // List of containers the plan is shared with.
    sharedWithContainers?: NullableOption<PlannerSharedWithContainer[]>;
    // Required. Title of the plan.
    title?: string;
    // Collection of buckets in the plan. Read-only. Nullable.
    buckets?: NullableOption<PlannerBucket[]>;
    // Extra details about the plan. Read-only. Nullable.
    details?: NullableOption<PlannerPlanDetails>;
    // Collection of tasks in the plan. Read-only. Nullable.
    tasks?: NullableOption<PlannerTask[]>;
}
export interface PlannerRoster extends Entity {
    // Retrieves the members of the plannerRoster.
    members?: NullableOption<PlannerRosterMember[]>;
    // Retrieves the plans contained by the plannerRoster.
    plans?: NullableOption<PlannerPlan[]>;
}
export interface PlannerAssignedToTaskBoardTaskFormat extends PlannerDelta {
    /**
     * 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 PlannerDelta {
    /**
     * 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 PlannerDelta {
    // An object that specifies the descriptions of the 25 categories that can be associated with tasks in the plan.
    categoryDescriptions?: NullableOption<PlannerCategoryDescriptions>;
    /**
     * A collection of additional information associated with plannerPlanContext entries that are defined for the plannerPlan
     * container. Read-only.
     */
    contextDetails?: NullableOption<PlannerPlanContextDetailsCollection>;
    /**
     * The 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 in order for them to access the plan owned by the group.
     */
    sharedWith?: NullableOption<PlannerUserIds>;
}
export interface PlannerProgressTaskBoardTaskFormat extends PlannerDelta {
    /**
     * 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 PlannerRosterMember extends Entity {
    /**
     * Additional roles associated with the PlannerRosterMember, which determines permissions of the member in the
     * plannerRoster. Currently there are no available roles to assign, and every member has full control over the contents of
     * the plannerRoster.
     */
    roles?: NullableOption<string[]>;
    /**
     * Identifier of the tenant the user belongs to. Currently only the users from the same tenant can be added to a
     * plannerRoster.
     */
    tenantId?: NullableOption<string>;
    // Identifier of the user.
    userId?: NullableOption<string>;
}
export interface PlannerTaskDetails extends PlannerDelta {
    // The collection of checklist items on the task.
    checklist?: NullableOption<PlannerChecklistItems>;
    // Contains detailed information about requirements on the task.
    completionRequirements?: NullableOption<PlannerTaskCompletionRequirementDetails>;
    // Description of the task.
    description?: NullableOption<string>;
    /**
     * Rich text description of the task. To be used by HTML-aware clients. For backwards compatibility, a plain-text version
     * of the HTML description will be synced to the 'description' field. If this field hasn't previously been set but
     * 'description' has been, the existing description is synchronized to 'notes' with minimal whitespace-preserving HTML
     * markup. Setting both 'description' and 'notes' is an error and will result in an exception.
     */
    notes?: NullableOption<ItemBody>;
    /**
     * This sets the type of preview that shows up on the task. 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 BusinessScenarioPlanReference extends Entity {
    // The title property of the plannerPlan.
    title?: NullableOption<string>;
}
export interface MicrosoftApplicationDataAccessSettings extends Entity {
    /**
     * The ID of a Microsoft Entra security group for which the members are allowed to access Microsoft 365 data using only
     * Microsoft 365 apps, but not other Microsoft apps such as Edge. This is only applicable if
     * isEnabledForAllMicrosoftApplications is set to true.
     */
    disabledForGroup?: NullableOption<string>;
    /**
     * When set to true, all users in the organization can access in a Microsoft app any Microsoft 365 data that the user has
     * been authorized to access. The Microsoft app can be a Microsoft 365 app (for example, Excel, Outlook) or non-Microsoft
     * 365 app (for example, Edge). The default is true. It is possible to disable this access for a subset of users in a
     * Microsoft Entra security group, by specifying the group in the disabledForGroup property. When set to false, all users
     * can access authorized Microsoft 365 data only in a Microsoft 365 app.
     */
    isEnabledForAllMicrosoftApplications?: NullableOption<boolean>;
}
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>;
}
// tslint:disable-next-line: interface-name
export interface InsightsSettings extends Entity {
    /**
     * The ID of a Microsoft Entra group, of which the specified type of insights are disabled for its members. Default is
     * empty. Optional.
     */
    disabledForGroup?: NullableOption<string>;
    /**
     * true if the specified type of insights are enabled for the organization; false if the specified type of insights are
     * disabled for all users without exceptions. Default is true. Optional.
     */
    isEnabledInOrganization?: NullableOption<boolean>;
}
export interface OnenoteEntityBaseModel extends Entity {
    self?: NullableOption<string>;
}
export interface OnenoteEntitySchemaObjectModel extends OnenoteEntityBaseModel {
    createdDateTime?: NullableOption<string>;
}
export interface OnenoteEntityHierarchyModel extends OnenoteEntitySchemaObjectModel {
    createdBy?: NullableOption<IdentitySet>;
    displayName?: NullableOption<string>;
    lastModifiedBy?: NullableOption<IdentitySet>;
    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>;
    // Possible values are: notStarted, running, completed, failed. Read-only.
    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 {
    content?: NullableOption<any>;
    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 PronounsSettings extends Entity {
    // true to enable pronouns in the organization, false otherwise. The default is false, and pronouns are disabled.
    isEnabledInOrganization?: boolean;
}
// tslint:disable-next-line: interface-name
export interface ItemFacet extends Entity {
    /**
     * The audiences that are able to see the values contained within the associated entity. Possible values are: me, family,
     * contacts, groupMembers, organization, federatedOrganizations, everyone, unknownFutureValue.
     */
    allowedAudiences?: NullableOption<AllowedAudiences>;
    // Provides the identifier of the user and/or application that created the entity.
    createdBy?: IdentitySet;
    // Provides the dateTimeOffset for when the entity was created.
    createdDateTime?: string;
    // Contains inference detail if the entity is inferred by the creating or modifying application.
    inference?: NullableOption<InferenceData>;
    isSearchable?: NullableOption<boolean>;
    // Provides the identifier of the user and/or application that last modified the entity.
    lastModifiedBy?: IdentitySet;
    // Provides the dateTimeOffset for when the entity was created.
    lastModifiedDateTime?: string;
    // Where the values within an entity originated if synced from another service.
    source?: NullableOption<PersonDataSources>;
}
export interface EducationalActivity extends ItemFacet {
    // The month and year the user graduated or completed the activity.
    completionMonthYear?: NullableOption<string>;
    // The month and year the user completed the educational activity referenced.
    endMonthYear?: NullableOption<string>;
    // Contains details of the institution studied at.
    institution?: InstitutionData;
    // Contains extended information about the program or course.
    program?: EducationalActivityDetail;
    // The month and year the user commenced the activity referenced.
    startMonthYear?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface ItemAddress extends ItemFacet {
    // Details about the address itself.
    detail?: PhysicalAddress;
    // Friendly name the user has assigned to this address.
    displayName?: NullableOption<string>;
    // The geocoordinates of the address.
    geoCoordinates?: NullableOption<GeoCoordinates>;
}
// tslint:disable-next-line: interface-name
export interface ItemEmail extends ItemFacet {
    // The email address itself.
    address?: string;
    // The name or label a user has associated with a particular email address.
    displayName?: NullableOption<string>;
    // The type of email address. Possible values are: unknown, work, personal, main, other.
    type?: EmailType;
}
// tslint:disable-next-line: interface-name
export interface ItemPatent extends ItemFacet {
    // Descpription of the patent or filing.
    description?: NullableOption<string>;
    // Title of the patent or filing.
    displayName?: string;
    // Indicates the patent is pending.
    isPending?: NullableOption<boolean>;
    // The date that the patent was granted.
    issuedDate?: NullableOption<string>;
    // Authority which granted the patent.
    issuingAuthority?: NullableOption<string>;
    // The patent number.
    number?: NullableOption<string>;
    // URL referencing the patent or filing.
    webUrl?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface ItemPhone extends ItemFacet {
    // Friendly name the user has assigned this phone number.
    displayName?: NullableOption<string>;
    // Phone number provided by the user.
    number?: string;
    /**
     * The type of phone number within the object. Possible values are: home, business, mobile, other, assistant, homeFax,
     * businessFax, otherFax, pager, radio.
     */
    type?: PhoneType;
}
// tslint:disable-next-line: interface-name
export interface ItemPublication extends ItemFacet {
    // Description of the publication.
    description?: NullableOption<string>;
    // Title of the publication.
    displayName?: string;
    // The date that the publication was published.
    publishedDate?: NullableOption<string>;
    // Publication or publisher for the publication.
    publisher?: NullableOption<string>;
    // URL referencing a thumbnail of the publication.
    thumbnailUrl?: NullableOption<string>;
    // URL referencing the publication.
    webUrl?: NullableOption<string>;
}
export interface LanguageProficiency extends ItemFacet {
    // Contains the long-form name for the language.
    displayName?: string;
    proficiency?: NullableOption<LanguageProficiencyLevel>;
    /**
     * Represents the users reading comprehension for the language represented by the object. Possible values are: elementary,
     * conversational, limitedWorking, professionalWorking, fullProfessional, nativeOrBilingual, unknownFutureValue.
     */
    reading?: NullableOption<LanguageProficiencyLevel>;
    /**
     * Represents the users spoken proficiency for the language represented by the object. Possible values are: elementary,
     * conversational, limitedWorking, professionalWorking, fullProfessional, nativeOrBilingual, unknownFutureValue.
     */
    spoken?: NullableOption<LanguageProficiencyLevel>;
    // Contains the four-character BCP47 name for the language (en-US, no-NB, en-AU).
    tag?: NullableOption<string>;
    thumbnailUrl?: NullableOption<string>;
    /**
     * Represents the users written proficiency for the language represented by the object. Possible values are: elementary,
     * conversational, limitedWorking, professionalWorking, fullProfessional, nativeOrBilingual, unknownFutureValue.
     */
    written?: NullableOption<LanguageProficiencyLevel>;
}
export interface PersonAnnotation extends ItemFacet {
    // Contains the detail of the note itself.
    detail?: NullableOption<ItemBody>;
    // Contains a friendly name for the note.
    displayName?: NullableOption<string>;
    thumbnailUrl?: NullableOption<string>;
}
export interface PersonAnnualEvent extends ItemFacet {
    date?: NullableOption<string>;
    displayName?: NullableOption<string>;
    type?: NullableOption<PersonAnnualEventType>;
}
export interface PersonAward extends ItemFacet {
    // Descpription of the award or honor.
    description?: NullableOption<string>;
    // Name of the award or honor.
    displayName?: string;
    // The date that the award or honor was granted.
    issuedDate?: NullableOption<string>;
    // Authority which granted the award or honor.
    issuingAuthority?: NullableOption<string>;
    // URL referencing a thumbnail of the award or honor.
    thumbnailUrl?: NullableOption<string>;
    // URL referencing the award or honor.
    webUrl?: NullableOption<string>;
}
export interface PersonCertification extends ItemFacet {
    // The referenceable identifier for the certification.
    certificationId?: NullableOption<string>;
    // Description of the certification.
    description?: NullableOption<string>;
    // Title of the certification.
    displayName?: string;
    // The date that the certification expires.
    endDate?: NullableOption<string>;
    // The date that the certification was issued.
    issuedDate?: NullableOption<string>;
    // Authority which granted the certification.
    issuingAuthority?: NullableOption<string>;
    // Company which granted the certification.
    issuingCompany?: NullableOption<string>;
    // The date that the certification became valid.
    startDate?: NullableOption<string>;
    // URL referencing a thumbnail of the certification.
    thumbnailUrl?: NullableOption<string>;
    // URL referencing the certification.
    webUrl?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface PersonExtension extends Extension {}
export interface PersonInterest extends ItemFacet {
    // Contains categories a user has associated with the interest (for example, personal, recipies).
    categories?: NullableOption<string[]>;
    /**
     * Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are:
     * askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
     */
    collaborationTags?: NullableOption<string[]>;
    // Contains a description of the interest.
    description?: NullableOption<string>;
    // Contains a friendly name for the interest.
    displayName?: string;
    thumbnailUrl?: NullableOption<string>;
    // Contains a link to a web page or resource about the interest.
    webUrl?: NullableOption<string>;
}
export interface PersonName extends ItemFacet {
    // Provides an ordered rendering of firstName and lastName depending on the locale of the user or their device.
    displayName?: NullableOption<string>;
    // First name of the user.
    first?: NullableOption<string>;
    // Initials of the user.
    initials?: NullableOption<string>;
    // Contains the name for the language (en-US, no-NB, en-AU) following IETF BCP47 format.
    languageTag?: NullableOption<string>;
    // Last name of the user.
    last?: NullableOption<string>;
    // Maiden name of the user.
    maiden?: NullableOption<string>;
    // Middle name of the user.
    middle?: NullableOption<string>;
    // Nickname of the user.
    nickname?: NullableOption<string>;
    // Guidance on how to pronounce the users name.
    pronunciation?: NullableOption<PersonNamePronounciation>;
    // Designators used after the users name (eg: PhD.)
    suffix?: NullableOption<string>;
    // Honorifics used to prefix a users name (eg: Dr, Sir, Madam, Mrs.)
    title?: NullableOption<string>;
}
export interface PersonResponsibility extends ItemFacet {
    /**
     * Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are:
     * askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
     */
    collaborationTags?: NullableOption<string[]>;
    // Description of the responsibility.
    description?: NullableOption<string>;
    // Contains a friendly name for the responsibility.
    displayName?: string;
    thumbnailUrl?: NullableOption<string>;
    // Contains a link to a web page or resource about the responsibility.
    webUrl?: NullableOption<string>;
}
export interface PersonWebsite extends ItemFacet {
    // Contains categories a user has associated with the website (for example, personal, recipes).
    categories?: NullableOption<string[]>;
    // Contains a description of the website.
    description?: NullableOption<string>;
    // Contains a friendly name for the website.
    displayName?: string;
    thumbnailUrl?: NullableOption<string>;
    // Contains a link to the website itself.
    webUrl?: string;
}
export interface UserAccountInformation extends ItemFacet {
    /**
     * Shows the age group of user. Allowed values null, minor, notAdult and adult are generated by the directory and can't be
     * changed.
     */
    ageGroup?: NullableOption<string>;
    // Contains the two-character country code associated with the users' account.
    countryCode?: string;
    // Contains the language the user has associated as preferred for the account.
    preferredLanguageTag?: LocaleInfo;
    // The user principal name (UPN) of the user associated with the account.
    userPrincipalName?: string;
}
export interface WorkPosition extends ItemFacet {
    // Categories that the user has associated with this position.
    categories?: NullableOption<string[]>;
    // Colleagues that are associated with this position.
    colleagues?: NullableOption<RelatedPerson[]>;
    // Contains detailed information about the position.
    detail?: PositionDetail;
    // Denotes whether or not the position is current.
    isCurrent?: NullableOption<boolean>;
    // Contains detail of the user's manager in this position.
    manager?: NullableOption<RelatedPerson>;
}
export interface ProjectParticipation extends ItemFacet {
    // Contains categories a user has associated with the project (for example, digital transformation, oil rig).
    categories?: NullableOption<string[]>;
    // Contains detailed information about the client the project was for.
    client?: NullableOption<CompanyDetail>;
    /**
     * Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are:
     * askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
     */
    collaborationTags?: NullableOption<string[]>;
    // Lists people that also worked on the project.
    colleagues?: NullableOption<RelatedPerson[]>;
    // Contains detail about the user's role on the project.
    detail?: NullableOption<PositionDetail>;
    // Contains a friendly name for the project.
    displayName?: string;
    // The Person or people who sponsored the project.
    sponsors?: NullableOption<RelatedPerson[]>;
    thumbnailUrl?: NullableOption<string>;
}
export interface SkillProficiency extends ItemFacet {
    // Contains categories a user has associated with the skill (for example, personal, professional, hobby).
    categories?: NullableOption<string[]>;
    /**
     * Contains experience scenario tags a user has associated with the interest. Allowed values in the collection are:
     * askMeAbout, ableToMentor, wantsToLearn, wantsToImprove.
     */
    collaborationTags?: NullableOption<string[]>;
    // Contains a friendly name for the skill.
    displayName?: string;
    /**
     * Detail of the users proficiency with this skill. Possible values are: elementary, limitedWorking, generalProfessional,
     * advancedProfessional, expert, unknownFutureValue.
     */
    proficiency?: NullableOption<SkillProficiencyLevel>;
    thumbnailUrl?: NullableOption<string>;
    // Contains a link to an information source about the skill.
    webUrl?: NullableOption<string>;
}
export interface WebAccount extends ItemFacet {
    // Contains the description the user has provided for the account on the service being referenced.
    description?: NullableOption<string>;
    // Contains basic detail about the service that is being associated.
    service?: ServiceInformation;
    // Contains a status message from the cloud service if provided or synchronized.
    statusMessage?: NullableOption<string>;
    thumbnailUrl?: NullableOption<string>;
    // The user name displayed for the webaccount.
    userId?: string;
    // Contains a link to the user's profile on the cloud service if one exists.
    webUrl?: NullableOption<string>;
}
export interface GovernanceResource extends Entity {
    // The display name of the resource.
    displayName?: NullableOption<string>;
    /**
     * The external id of the resource, representing its original id in the external system. For example, a subscription
     * resource's external id can be '/subscriptions/c14ae696-5e0c-4e5d-88cc-bef6637737ac'.
     */
    externalId?: NullableOption<string>;
    // Represents the date time when the resource is registered in PIM.
    registeredDateTime?: NullableOption<string>;
    /**
     * The externalId of the resource's root scope that is registered in PIM. The root scope can be the parent, grandparent,
     * or higher ancestor resources.
     */
    registeredRoot?: NullableOption<string>;
    /**
     * The status of a given resource. For example, it could represent whether the resource is locked or not (values:
     * Active/Locked). Note: This property may be extended in the future to support more scenarios.
     */
    status?: NullableOption<string>;
    /**
     * Required. Resource type. For example, for Azure resources, the type could be 'Subscription', 'ResourceGroup',
     * 'Microsoft.Sql/server', etc.
     */
    type?: NullableOption<string>;
    /**
     * Read-only. The parent resource. for pimforazurerbac scenario, it can represent the subscription the resource belongs
     * to.
     */
    parent?: NullableOption<GovernanceResource>;
    // The collection of role assignment requests for the resource.
    roleAssignmentRequests?: NullableOption<GovernanceRoleAssignmentRequest[]>;
    // The collection of role assignments for the resource.
    roleAssignments?: NullableOption<GovernanceRoleAssignment[]>;
    // The collection of role definitions for the resource.
    roleDefinitions?: NullableOption<GovernanceRoleDefinition[]>;
    // The collection of role settings for the resource.
    roleSettings?: NullableOption<GovernanceRoleSetting[]>;
}
export interface GovernanceRoleAssignmentRequest extends Entity {
    /**
     * Required. The state of the assignment. The possible values are: Eligible (for eligible assignment), Active (if it is
     * directly assigned), Active (by administrators, or activated on an eligible assignment by the users).
     */
    assignmentState?: string;
    /**
     * If this is a request for role activation, it represents the id of the eligible assignment being referred; Otherwise,
     * the value is null.
     */
    linkedEligibleRoleAssignmentId?: NullableOption<string>;
    // A message provided by users and administrators when create the request about why it is needed.
    reason?: NullableOption<string>;
    /**
     * Read-only. The request create time. 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
     */
    requestedDateTime?: NullableOption<string>;
    /**
     * Required. The unique identifier of the Azure resource that is associated with the role assignment request. Azure
     * resources can include subscriptions, resource groups, virtual machines, and SQL databases.
     */
    resourceId?: NullableOption<string>;
    // Required. The identifier of the Azure role definition that the role assignment request is associated with.
    roleDefinitionId?: NullableOption<string>;
    // The schedule object of the role assignment request.
    schedule?: NullableOption<GovernanceSchedule>;
    // The status of the role assignment request.
    status?: NullableOption<GovernanceRoleAssignmentRequestStatus>;
    /**
     * Required. The unique identifier of the principal or subject that the role assignment request is associated with.
     * Principals can be users, groups, or service principals.
     */
    subjectId?: NullableOption<string>;
    /**
     * Required. Representing the type of the operation on the role assignment. The possible values are: AdminAdd , UserAdd ,
     * AdminUpdate , AdminRemove , UserRemove , UserExtend , AdminExtend , UserRenew , AdminRenew.
     */
    type?: string;
    // Read-only. The resource that the request aims to.
    resource?: NullableOption<GovernanceResource>;
    // Read-only. The role definition that the request aims to.
    roleDefinition?: NullableOption<GovernanceRoleDefinition>;
    // Read-only. The user/group principal.
    subject?: NullableOption<GovernanceSubject>;
}
export interface GovernanceRoleAssignment extends Entity {
    /**
     * The state of the assignment. The value can be Eligible for eligible assignment or Active if it's directly assigned
     * Active by administrators, or activated on an eligible assignment by the users.
     */
    assignmentState?: string;
    /**
     * For a non-permanent role assignment, this is the time when the role assignment is expired. 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 external ID the resource that is used to identify the role assignment in the provider.
    externalId?: NullableOption<string>;
    /**
     * If this is an active assignment and created due to activation on an eligible assignment, it represents the ID of that
     * eligible assignment; Otherwise, the value is null.
     */
    linkedEligibleRoleAssignmentId?: NullableOption<string>;
    /**
     * The type of member. The value can be: Inherited (if the role assignment is inherited from a parent resource scope),
     * Group (if the role assignment isn't inherited, but comes from the membership of a group assignment), or User (if the
     * role assignment isn't inherited or from a group assignment).
     */
    memberType?: string;
    // Required. The ID of the resource that the role assignment is associated with.
    resourceId?: NullableOption<string>;
    // Required. The ID of the role definition that the role assignment is associated with.
    roleDefinitionId?: NullableOption<string>;
    /**
     * The start time of the role assignment. 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>;
    status?: string;
    // Required. The ID of the subject that the role assignment is associated with.
    subjectId?: NullableOption<string>;
    /**
     * Read-only. If this is an active assignment and created due to activation on an eligible assignment, it represents the
     * object of that eligible assignment; Otherwise, the value is null.
     */
    linkedEligibleRoleAssignment?: NullableOption<GovernanceRoleAssignment>;
    // Read-only. The resource associated with the role assignment.
    resource?: NullableOption<GovernanceResource>;
    // Read-only. The role definition associated with the role assignment.
    roleDefinition?: NullableOption<GovernanceRoleDefinition>;
    // Read-only. The subject associated with the role assignment.
    subject?: NullableOption<GovernanceSubject>;
}
export interface GovernanceRoleDefinition extends Entity {
    // The display name of the role definition.
    displayName?: NullableOption<string>;
    // The external id of the role definition.
    externalId?: NullableOption<string>;
    // Required. The id of the resource associated with the role definition.
    resourceId?: NullableOption<string>;
    templateId?: NullableOption<string>;
    // Read-only. The associated resource for the role definition.
    resource?: NullableOption<GovernanceResource>;
    // The associated role setting for the role definition.
    roleSetting?: NullableOption<GovernanceRoleSetting>;
}
export interface GovernanceRoleSetting extends Entity {
    // The rule settings that are evaluated when an administrator tries to add an eligible role assignment.
    adminEligibleSettings?: NullableOption<GovernanceRuleSetting[]>;
    // The rule settings that are evaluated when an administrator tries to add a direct member role assignment.
    adminMemberSettings?: NullableOption<GovernanceRuleSetting[]>;
    // Read-only. Indicate if the roleSetting is a default roleSetting
    isDefault?: NullableOption<boolean>;
    // Read-only. The display name of the administrator who last updated the roleSetting.
    lastUpdatedBy?: NullableOption<string>;
    /**
     * Read-only. The time when the role setting was last 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?: NullableOption<string>;
    // Required. The id of the resource that the role setting is associated with.
    resourceId?: NullableOption<string>;
    // Required. The id of the role definition that the role setting is associated with.
    roleDefinitionId?: NullableOption<string>;
    /**
     * The rule settings that are evaluated when a user tries to add an eligible role assignment. The setting is not supported
     * for now.
     */
    userEligibleSettings?: NullableOption<GovernanceRuleSetting[]>;
    // The rule settings that are evaluated when a user tries to activate his role assignment.
    userMemberSettings?: NullableOption<GovernanceRuleSetting[]>;
    // Read-only. The associated resource for this role setting.
    resource?: NullableOption<GovernanceResource>;
    // Read-only. The role definition that is enforced with this role setting.
    roleDefinition?: NullableOption<GovernanceRoleDefinition>;
}
export interface GovernanceSubject extends Entity {
    // The display name of the subject.
    displayName?: NullableOption<string>;
    // The email address of the user subject. If the subject is in other types, it's empty.
    email?: NullableOption<string>;
    // The principal name of the user subject. If the subject is in other types, it's empty.
    principalName?: NullableOption<string>;
    // The type of the subject. The value can be User, Group, and ServicePrincipal.
    type?: NullableOption<string>;
}
export interface UnifiedRoleManagementAlertConfiguration extends Entity {
    // The identifier of an alert definition. Supports $filter (eq, ne).
    alertDefinitionId?: NullableOption<string>;
    /**
     * true if the alert is enabled. Setting it to false disables PIM scanning the tenant to identify instances that trigger
     * the alert.
     */
    isEnabled?: NullableOption<boolean>;
    /**
     * The identifier of the scope to which the alert is related. Only / is supported to represent the tenant scope. Supports
     * $filter (eq, ne).
     */
    scopeId?: NullableOption<string>;
    /**
     * The type of scope where the alert is created. DirectoryRole is the only currently supported scope type for Microsoft
     * Entra roles.
     */
    scopeType?: NullableOption<string>;
    /**
     * The definition of the alert that contains its description, impact, and measures to mitigate or prevent it. Supports
     * $expand.
     */
    alertDefinition?: NullableOption<UnifiedRoleManagementAlertDefinition>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface InvalidLicenseAlertConfiguration extends UnifiedRoleManagementAlertConfiguration {}
// tslint:disable-next-line: no-empty-interface
export interface UnifiedRoleManagementAlertIncident extends Entity {}
// tslint:disable-next-line: interface-name
export interface InvalidLicenseAlertIncident extends UnifiedRoleManagementAlertIncident {
    // Status of the tenant's Microsoft Entra ID P2 license.
    tenantLicenseStatus?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface NoMfaOnRoleActivationAlertConfiguration extends UnifiedRoleManagementAlertConfiguration {}
export interface NoMfaOnRoleActivationAlertIncident extends UnifiedRoleManagementAlertIncident {
    // The name of the Microsoft Entra ID directory role.
    roleDisplayName?: NullableOption<string>;
    // The globally unique identifier for a directory role.
    roleTemplateId?: NullableOption<string>;
}
export interface PrivilegedAccess extends Entity {
    // The display name of the provider managed by PIM.
    displayName?: NullableOption<string>;
    // A collection of resources for the provider.
    resources?: NullableOption<GovernanceResource[]>;
    // A collection of role assignment requests for the provider.
    roleAssignmentRequests?: NullableOption<GovernanceRoleAssignmentRequest[]>;
    // A collection of role assignments for the provider.
    roleAssignments?: NullableOption<GovernanceRoleAssignment[]>;
    // A collection of role definitions for the provider.
    roleDefinitions?: NullableOption<GovernanceRoleDefinition[]>;
    // A collection of role settings for the provider.
    roleSettings?: NullableOption<GovernanceRoleSetting[]>;
}
export interface RedundantAssignmentAlertConfiguration extends UnifiedRoleManagementAlertConfiguration {
    // The number of days without activation to look back on from current timestamp.
    duration?: NullableOption<string>;
}
export interface RedundantAssignmentAlertIncident extends UnifiedRoleManagementAlertIncident {
    // Display name of the subject that the incident applies to.
    assigneeDisplayName?: NullableOption<string>;
    // The identifier of the subject that the incident applies to.
    assigneeId?: NullableOption<string>;
    // User principal name of the subject that the incident applies to. Applies to user principals only.
    assigneeUserPrincipalName?: NullableOption<string>;
    // Date and time of the last activation of the eligible assignment.
    lastActivationDateTime?: NullableOption<string>;
    // The identifier for the directory role definition that's in scope of this incident.
    roleDefinitionId?: NullableOption<string>;
    // The display name for the directory role.
    roleDisplayName?: NullableOption<string>;
    // The globally unique identifier for the directory role.
    roleTemplateId?: NullableOption<string>;
}
export interface UnifiedRoleManagementAlertDefinition extends Entity {
    // The description of the alert.
    description?: NullableOption<string>;
    /**
     * The friendly display name that renders in Privileged Identity Management (PIM) alerts in the Microsoft Entra admin
     * center.
     */
    displayName?: NullableOption<string>;
    // Long-form text that indicates the ways to prevent the alert from being triggered in your tenant.
    howToPrevent?: NullableOption<string>;
    /**
     * true if the alert configuration can be customized in the tenant, and false otherwise. For example, the number and
     * percentage thresholds of the 'There are too many global administrators' alert can be configured by users, while the
     * 'This organization doesn't have Microsoft Entra ID P2' can't be configured, because the criteria are restricted.
     */
    isConfigurable?: NullableOption<boolean>;
    // true if the alert can be remediated, and false otherwise.
    isRemediatable?: NullableOption<boolean>;
    /**
     * The methods to mitigate the alert when it's triggered in the tenant. For example, to mitigate the 'There are too many
     * global administrators', you could remove redundant privileged role assignments.
     */
    mitigationSteps?: NullableOption<string>;
    /**
     * The identifier of the scope where the alert is related. / is the only supported one for the tenant. Supports $filter
     * (eq, ne).
     */
    scopeId?: NullableOption<string>;
    /**
     * The type of scope where the alert is created. DirectoryRole is the only currently supported scope type for Microsoft
     * Entra roles.
     */
    scopeType?: NullableOption<string>;
    // Security impact of the alert. For example, it could be information leaks or unauthorized access.
    securityImpact?: NullableOption<string>;
    // Severity level of the alert. The possible values are: unknown, informational, low, medium, high, unknownFutureValue.
    severityLevel?: NullableOption<AlertSeverity>;
}
export interface UnifiedRoleManagementAlert extends Entity {
    // The identifier of an alert definition. Supports $filter (eq, ne).
    alertDefinitionId?: NullableOption<string>;
    // The number of incidents triggered in the tenant and relating to the alert. Can only be a positive integer.
    incidentCount?: NullableOption<number>;
    // false by default. true if the alert is active.
    isActive?: NullableOption<boolean>;
    // The date time when the alert configuration was updated or new incidents generated.
    lastModifiedDateTime?: NullableOption<string>;
    // The date time when the tenant was last scanned for incidents that trigger this alert.
    lastScannedDateTime?: NullableOption<string>;
    /**
     * The identifier of the scope where the alert is related. / is the only supported one for the tenant. Supports $filter
     * (eq, ne).
     */
    scopeId?: NullableOption<string>;
    /**
     * The type of scope where the alert is created. DirectoryRole is the only currently supported scope type for Microsoft
     * Entra roles.
     */
    scopeType?: NullableOption<string>;
    /**
     * The configuration of the alert in PIM for Microsoft Entra roles. Alert configurations are pre-defined and cannot be
     * created or deleted, but some configurations can be modified. Supports $filter for the isEnabled property and $expand.
     */
    alertConfiguration?: NullableOption<UnifiedRoleManagementAlertConfiguration>;
    /**
     * Contains the description, impact, and measures to mitigate or prevent the security alert from being triggered in your
     * tenant. Supports $expand.
     */
    alertDefinition?: NullableOption<UnifiedRoleManagementAlertDefinition>;
    /**
     * Represents the incidents of this type of alert that have been triggered in Privileged Identity Management (PIM) for
     * Microsoft Entra roles in the tenant. Supports $expand.
     */
    alertIncidents?: NullableOption<UnifiedRoleManagementAlertIncident[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface RolesAssignedOutsidePrivilegedIdentityManagementAlertConfiguration extends UnifiedRoleManagementAlertConfiguration {}
export interface RolesAssignedOutsidePrivilegedIdentityManagementAlertIncident extends UnifiedRoleManagementAlertIncident {
    // Display name of the subject that the incident applies to.
    assigneeDisplayName?: NullableOption<string>;
    // The identifier of the subject that the incident applies to.
    assigneeId?: NullableOption<string>;
    // User principal name of the subject that the incident applies to. Applies to user principals.
    assigneeUserPrincipalName?: NullableOption<string>;
    assignmentCreatedDateTime?: NullableOption<string>;
    // The identifier for the directory role definition that's in scope of this incident.
    roleDefinitionId?: NullableOption<string>;
    // The display name for the directory role.
    roleDisplayName?: NullableOption<string>;
    // The globally unique identifier for the directory role.
    roleTemplateId?: NullableOption<string>;
}
export interface SequentialActivationRenewalsAlertConfiguration extends UnifiedRoleManagementAlertConfiguration {
    // The minimum number of activations within the timeIntervalBetweenActivations period to trigger an alert.
    sequentialActivationCounterThreshold?: NullableOption<number>;
    // Time interval between activations to trigger an alert.
    timeIntervalBetweenActivations?: NullableOption<string>;
}
export interface SequentialActivationRenewalsAlertIncident extends UnifiedRoleManagementAlertIncident {
    // The length of sequential activation of the same role.
    activationCount?: NullableOption<number>;
    // Display name of the subject that the incident applies to.
    assigneeDisplayName?: NullableOption<string>;
    // The identifier of the subject that the incident applies to.
    assigneeId?: NullableOption<string>;
    // User principal name of the subject that the incident applies to. Applies to user principals.
    assigneeUserPrincipalName?: NullableOption<string>;
    // The identifier for the directory role definition that's in scope of this incident.
    roleDefinitionId?: NullableOption<string>;
    // The display name for the directory role.
    roleDisplayName?: NullableOption<string>;
    // The globally unique identifier for the directory role.
    roleTemplateId?: NullableOption<string>;
    // End date time of the sequential activation event.
    sequenceEndDateTime?: NullableOption<string>;
    // Start date time of the sequential activation event.
    sequenceStartDateTime?: NullableOption<string>;
}
export interface StaleSignInAlertConfiguration extends UnifiedRoleManagementAlertConfiguration {
    // The number of days to look back from current timestamp within which the account hasn't signed in.
    duration?: NullableOption<string>;
}
export interface StaleSignInAlertIncident extends UnifiedRoleManagementAlertIncident {
    // Display name of the subject that the incident applies to.
    assigneeDisplayName?: NullableOption<string>;
    // The identifier of the subject that the incident applies to.
    assigneeId?: NullableOption<string>;
    // User principal name of the subject that the incident applies to. Applies to user principals.
    assigneeUserPrincipalName?: NullableOption<string>;
    // Date and time of assignment creation.
    assignmentCreatedDateTime?: NullableOption<string>;
    // Date and time of last sign in.
    lastSignInDateTime?: NullableOption<string>;
    // The identifier for the directory role definition that's in scope of this incident.
    roleDefinitionId?: NullableOption<string>;
    // The display name for the directory role.
    roleDisplayName?: NullableOption<string>;
    // The globally unique identifier for the directory role.
    roleTemplateId?: NullableOption<string>;
}
export interface TooManyGlobalAdminsAssignedToTenantAlertConfiguration extends UnifiedRoleManagementAlertConfiguration {
    /**
     * The threshold for the number of accounts assigned the Global Administrator role in the tenant. Triggers an alert if the
     * number of global administrators in the tenant reaches or crosses this threshold value.
     */
    globalAdminCountThreshold?: NullableOption<number>;
    /**
     * Threshold of the percentage of global administrators out of all the role assignments in the tenant. Triggers an alert
     * if the percentage in the tenant reaches or crosses this threshold value.
     */
    percentageOfGlobalAdminsOutOfRolesThreshold?: NullableOption<number>;
}
export interface TooManyGlobalAdminsAssignedToTenantAlertIncident extends UnifiedRoleManagementAlertIncident {
    // Display name of the subject that the incident applies to.
    assigneeDisplayName?: NullableOption<string>;
    // The identifier of the subject that the incident applies to.
    assigneeId?: NullableOption<string>;
    // User principal name of the subject that the incident applies to. Applies to user principals.
    assigneeUserPrincipalName?: NullableOption<string>;
}
export interface UnifiedRoleManagementPolicyRule extends Entity {
    /**
     * Not implemented. 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>;
    // 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 PrivilegedApproval extends Entity {
    approvalDuration?: NullableOption<string>;
    approvalState?: NullableOption<ApprovalState>;
    approvalType?: NullableOption<string>;
    approverReason?: NullableOption<string>;
    endDateTime?: NullableOption<string>;
    requestorReason?: NullableOption<string>;
    roleId?: NullableOption<string>;
    startDateTime?: NullableOption<string>;
    userId?: NullableOption<string>;
    request?: NullableOption<PrivilegedRoleAssignmentRequest>;
    roleInfo?: NullableOption<PrivilegedRole>;
}
export interface PrivilegedRoleAssignmentRequest extends Entity {
    assignmentState?: NullableOption<string>;
    duration?: NullableOption<string>;
    reason?: NullableOption<string>;
    requestedDateTime?: NullableOption<string>;
    roleId?: NullableOption<string>;
    schedule?: NullableOption<GovernanceSchedule>;
    status?: NullableOption<string>;
    ticketNumber?: NullableOption<string>;
    ticketSystem?: NullableOption<string>;
    type?: NullableOption<string>;
    userId?: NullableOption<string>;
    roleInfo?: NullableOption<PrivilegedRole>;
}
export interface PrivilegedRole extends Entity {
    name?: NullableOption<string>;
    assignments?: NullableOption<PrivilegedRoleAssignment[]>;
    settings?: NullableOption<PrivilegedRoleSettings>;
    summary?: NullableOption<PrivilegedRoleSummary>;
}
export interface PrivilegedOperationEvent extends Entity {
    additionalInformation?: NullableOption<string>;
    creationDateTime?: NullableOption<string>;
    expirationDateTime?: NullableOption<string>;
    referenceKey?: NullableOption<string>;
    referenceSystem?: NullableOption<string>;
    requestorId?: NullableOption<string>;
    requestorName?: NullableOption<string>;
    requestType?: NullableOption<string>;
    roleId?: NullableOption<string>;
    roleName?: NullableOption<string>;
    tenantId?: NullableOption<string>;
    userId?: NullableOption<string>;
    userMail?: NullableOption<string>;
    userName?: NullableOption<string>;
}
export interface PrivilegedRoleAssignment extends Entity {
    expirationDateTime?: NullableOption<string>;
    isElevated?: NullableOption<boolean>;
    resultMessage?: NullableOption<string>;
    roleId?: string;
    userId?: string;
    roleInfo?: NullableOption<PrivilegedRole>;
}
export interface PrivilegedRoleSettings extends Entity {
    approvalOnElevation?: NullableOption<boolean>;
    approverIds?: NullableOption<string[]>;
    elevationDuration?: NullableOption<string>;
    isMfaOnElevationConfigurable?: NullableOption<boolean>;
    lastGlobalAdmin?: NullableOption<boolean>;
    maxElavationDuration?: NullableOption<string>;
    mfaOnElevation?: NullableOption<boolean>;
    minElevationDuration?: NullableOption<string>;
    notificationToUserOnElevation?: NullableOption<boolean>;
    ticketingInfoOnElevation?: NullableOption<boolean>;
}
export interface PrivilegedRoleSummary extends Entity {
    elevatedCount?: NullableOption<number>;
    managedCount?: NullableOption<number>;
    mfaEnabled?: NullableOption<boolean>;
    status?: NullableOption<RoleSummaryStatus>;
    usersCount?: NullableOption<number>;
}
export interface PrivilegedSignupStatus extends Entity {
    isRegistered?: NullableOption<boolean>;
    status?: NullableOption<SetupStatus>;
}
export interface TenantSetupInfo extends Entity {
    firstTimeSetup?: NullableOption<boolean>;
    relevantRolesSettings?: NullableOption<string[]>;
    setupStatus?: NullableOption<SetupStatus>;
    skipSetup?: NullableOption<boolean>;
    userRolesActions?: NullableOption<string>;
    defaultRolesSettings?: NullableOption<PrivilegedRoleSettings>;
}
export interface DocumentComment extends Entity {
    content?: NullableOption<string>;
    replies?: NullableOption<DocumentCommentReply[]>;
}
export interface DocumentCommentReply extends Entity {
    content?: NullableOption<string>;
    location?: NullableOption<string>;
}
export interface Presentation extends Entity {
    comments?: NullableOption<DocumentComment[]>;
}
export interface PrinterBase extends Entity {
    capabilities?: NullableOption<PrinterCapabilities>;
    defaults?: NullableOption<PrinterDefaults>;
    displayName?: string;
    isAcceptingJobs?: NullableOption<boolean>;
    location?: NullableOption<PrinterLocation>;
    manufacturer?: NullableOption<string>;
    model?: NullableOption<string>;
    name?: NullableOption<string>;
    status?: PrinterStatus;
    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[]>;
    operations?: NullableOption<PrintOperation[]>;
    // The list of printers registered in the tenant.
    printers?: NullableOption<Printer[]>;
    printerShares?: NullableOption<PrinterShare[]>;
    // The list of available Universal Print service endpoints.
    services?: NullableOption<PrintService[]>;
    // The list of printer shares registered in the tenant.
    shares?: NullableOption<PrinterShare[]>;
    taskDefinitions?: NullableOption<PrintTaskDefinition[]>;
}
export interface PrintConnector extends Entity {
    // The connector's version.
    appVersion?: string;
    // The connector's device health.
    deviceHealth?: NullableOption<DeviceHealth>;
    // 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>;
    name?: NullableOption<string>;
    // 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 {
    acceptingJobs?: NullableOption<boolean>;
    // 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[]>;
    share?: NullableOption<PrinterShare>;
    /**
     * 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 {
    configuration?: PrinterDocumentConfiguration;
    // The document's content (MIME) type. Read-only.
    contentType?: NullableOption<string>;
    // The document's name. Read-only.
    displayName?: NullableOption<string>;
    downloadedDateTime?: NullableOption<string>;
    // The document's size in bytes. Read-only.
    size?: number;
    uploadedDateTime?: NullableOption<string>;
}
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 {
    acknowledgedDateTime?: NullableOption<string>;
    completedDateTime?: NullableOption<string>;
    // 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;
    // The name of the print job.
    displayName?: NullableOption<string>;
    errorCode?: NullableOption<number>;
    // 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>;
    printer?: NullableOption<Printer>;
}
export interface PrintTask extends Entity {
    /**
     * The URL for the print entity that triggered this task. For example,
     * https://graph.microsoft.com/beta/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?: NullableOption<string>;
    name?: NullableOption<string>;
    // The URI that can be used to access the service.
    uri?: NullableOption<string>;
}
export interface ActivityHistoryItem extends Entity {
    activeDurationSeconds?: NullableOption<number>;
    createdDateTime?: NullableOption<string>;
    expirationDateTime?: NullableOption<string>;
    lastActiveDateTime?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    startedDateTime?: string;
    status?: NullableOption<Status>;
    userTimezone?: NullableOption<string>;
    activity?: UserActivity;
}
// tslint:disable-next-line: no-empty-interface
export interface PayloadResponse extends Entity {}
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 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?: NullableOption<string>;
    // Indicates whether this language is default.
    isDefaultLangauge?: NullableOption<boolean>;
    // Notification language.
    language?: NullableOption<string>;
    // Notification locale.
    locale?: NullableOption<string>;
    // Email details of the sender.
    sentFrom?: NullableOption<EmailIdentity>;
    // Mail subject.
    subject?: NullableOption<string>;
}
export interface LandingPageDetail extends Entity {
    // Landing page detail content.
    content?: NullableOption<string>;
    // Indicates whether this language detail is default for the landing page.
    isDefaultLangauge?: NullableOption<boolean>;
    // The content language for the landing page.
    language?: NullableOption<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?: NullableOption<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?: NullableOption<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. The specific type will be one of the following derived
     * types of identity, depending on the type of the user: communicationsUserIdentity,
     * azureCommunicationServicesUserIdentity.
     */
    identity?: NullableOption<Identity>;
    // Unique identifier of a meetingRegistrant. Presents when the participant has registered for the meeting.
    registrantId?: NullableOption<string>;
    // 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;
    isIdentityAnonymized?: boolean;
    // 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>;
    // The participant's preferred display name that overrides the original display name.
    preferredDisplayName?: NullableOption<string>;
    // Information on whether the participant has recording capability.
    recordingInfo?: NullableOption<RecordingInfo>;
    // Indicates the reason why the participant was removed from the roster.
    removedState?: NullableOption<RemovedState>;
    // Indicates the reason or reasons why media content from this participant is restricted.
    restrictedExperience?: NullableOption<OnlineMeetingRestricted>;
    // Indicates the roster sequence number the participant was last updated in.
    rosterSequenceNumber?: NullableOption<number>;
}
export interface CallEvent extends Entity {
    callEventType?: NullableOption<CallEventType>;
    direction?: NullableOption<CallDirection>;
    joinCallUrl?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface CancelMediaProcessingOperation extends CommsOperation {}
export interface CommsApplication {
    calls?: NullableOption<Call[]>;
    onlineMeetings?: NullableOption<OnlineMeeting[]>;
}
export interface DeltaParticipants extends Entity {
    // The sequence number for the roster update that is used to identify the notification order.
    sequenceNumber?: NullableOption<number>;
    participants?: NullableOption<Participant[]>;
}
export interface MeetingRegistrantBase extends Entity {
    // A unique web URL for the registrant to join the meeting. Read-only.
    joinWebUrl?: NullableOption<string>;
}
export interface ExternalMeetingRegistrant extends MeetingRegistrantBase {
    // The tenant ID of this registrant if in Microsoft Entra ID.
    tenantId?: NullableOption<string>;
    // The user ID of this registrant if in Microsoft Entra ID.
    userId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface ExternalMeetingRegistration extends MeetingRegistrationBase {}
// tslint:disable-next-line: interface-name
export interface InviteParticipantsOperation extends CommsOperation {
    // The participants to invite.
    participants?: InvitationParticipantInfo[];
}
export interface MeetingRegistrant extends MeetingRegistrantBase {
    // The registrant's answer to custom questions.
    customQuestionAnswers?: NullableOption<CustomQuestionAnswer[]>;
    // The email address of the registrant.
    email?: NullableOption<string>;
    // The first name of the registrant.
    firstName?: NullableOption<string>;
    // The last name of the registrant.
    lastName?: NullableOption<string>;
    // Time in UTC when the registrant registers for the meeting. Read-only.
    registrationDateTime?: NullableOption<string>;
    // The registration status of the registrant. Read-only.
    status?: NullableOption<MeetingRegistrantStatus>;
}
export interface MeetingRegistrationQuestion extends Entity {
    // Answer input type of the custom registration question.
    answerInputType?: NullableOption<AnswerInputType>;
    // Answer options when answerInputType is radioButton.
    answerOptions?: NullableOption<string[]>;
    // Display name of the custom registration question.
    displayName?: NullableOption<string>;
    // Indicates whether the question is required. Default value is false.
    isRequired?: NullableOption<boolean>;
}
// tslint:disable-next-line: no-empty-interface
export interface MuteParticipantOperation extends CommsOperation {}
export interface MuteParticipantsOperation extends CommsOperation {
    participants?: NullableOption<string[]>;
}
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>;
}
export interface PlayPromptOperation extends CommsOperation {
    // Possible values are: unknown, completedSuccessfully, mediaOperationCanceled.
    completionReason?: NullableOption<PlayPromptCompletionReason>;
}
export interface RecordOperation extends CommsOperation {
    /**
     * Possible values are: operationCanceled, stopToneDetected, maxRecordDurationReached, initialSilenceTimeout,
     * maxSilenceTimeout, playPromptFailed, playBeepFailed, mediaReceiveTimeout, unspecifiedError, none.
     */
    completionReason?: NullableOption<RecordCompletionReason>;
    // The access token required to retrieve the recording.
    recordingAccessToken?: NullableOption<string>;
    // The location where the recording is located.
    recordingLocation?: NullableOption<string>;
}
export interface SendDtmfTonesOperation extends CommsOperation {
    /**
     * The results of the action. Possible values are: unknown, completedSuccessfully, mediaOperationCanceled,
     * unknownfutureValue.
     */
    completionReason?: NullableOption<SendDtmfCompletionReason>;
}
// 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 {
    // Identity information of who created the virtual event. Inherited from virtualEvent.
    createdBy?: NullableOption<CommunicationsIdentitySet>;
    // Description of the virtual event.
    description?: NullableOption<ItemBody>;
    // Display name of the virtual event
    displayName?: NullableOption<string>;
    /**
     * End time of the virtual event. The timeZone property can be set to any of the time zones currently supported by
     * Windows.
     */
    endDateTime?: NullableOption<DateTimeTimeZone>;
    /**
     * Start time of the virtual event. The timeZone property can be set to any of the time zones currently supported by
     * Windows.
     */
    startDateTime?: NullableOption<DateTimeTimeZone>;
    // Status of the virtual event. The possible values are: draft, published, canceled, unknownFutureValue.
    status?: NullableOption<VirtualEventStatus>;
    // Presenters' information of the virtual event.
    presenters?: NullableOption<VirtualEventPresenter[]>;
    // Sessions of the virtual event.
    sessions?: NullableOption<VirtualEventSession[]>;
}
export interface VirtualEventWebinar extends VirtualEvent {
    // To whom the webinar is visible.
    audience?: NullableOption<MeetingAudience>;
    // Identity information of coorganizers of the webinar.
    coOrganizers?: NullableOption<CommunicationsUserIdentity[]>;
    registrationConfiguration?: NullableOption<VirtualEventWebinarRegistrationConfiguration>;
    // Registration records of the webinar.
    registrations?: NullableOption<VirtualEventRegistration[]>;
}
export interface VirtualEventPresenter extends Entity {
    // Email address of the presenter.
    email?: NullableOption<string>;
    // Identity information of the presenter.
    identity?: NullableOption<CommunicationsUserIdentity>;
    // Other detail information of the presenter.
    presenterDetails?: NullableOption<VirtualEventPresenterDetails>;
    profilePhoto?: NullableOption<any>;
    sessions?: NullableOption<VirtualEventSession[]>;
}
export interface VirtualEventSession extends OnlineMeetingBase {
    endDateTime?: NullableOption<DateTimeTimeZone>;
    startDateTime?: NullableOption<DateTimeTimeZone>;
    presenters?: NullableOption<VirtualEventPresenter[]>;
    registrations?: NullableOption<VirtualEventRegistration[]>;
}
export interface VirtualEventRegistrationQuestionBase extends Entity {
    displayName?: NullableOption<string>;
    isRequired?: NullableOption<boolean>;
}
export interface VirtualEventRegistratioCustomQuestion extends VirtualEventRegistrationQuestionBase {
    answerChoices?: NullableOption<string[]>;
    answerInputType?: NullableOption<VirtualEventRegistrationQuestionAnswerInputType>;
}
export interface VirtualEventRegistration extends Entity {
    /**
     * Date and time when the registrant cancels their registration for the virtual event. Only appears when applicable. 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.
     */
    cancelationDateTime?: NullableOption<string>;
    // Email address of the registrant.
    email?: NullableOption<string>;
    // First name of the registrant.
    firstName?: NullableOption<string>;
    // Last name of the registrant.
    lastName?: NullableOption<string>;
    /**
     * Date and time when the registrant registers for the virtual event. 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.
     */
    registrationDateTime?: NullableOption<string>;
    // The registrant's answer to the registration questions.
    registrationQuestionAnswers?: NullableOption<VirtualEventRegistrationQuestionAnswer[]>;
    // Registration status of the registrant. Read-only.
    status?: NullableOption<VirtualEventAttendeeRegistrationStatus>;
    // The registrant's ID in Microsoft Entra ID. Only appears when the registrant is registered in Microsoft Entra ID.
    userId?: NullableOption<string>;
    sessions?: NullableOption<VirtualEventSession[]>;
}
export interface VirtualEventRegistrationConfiguration extends Entity {
    // Total capacity of the virtual event.
    capacity?: NullableOption<number>;
    // Registration URL of the virtual event.
    registrationWebUrl?: NullableOption<string>;
    // Registration questions.
    questions?: NullableOption<VirtualEventRegistrationQuestionBase[]>;
}
export interface VirtualEventRegistrationPredefinedQuestion extends VirtualEventRegistrationQuestionBase {
    label?: NullableOption<VirtualEventRegistrationPredefinedQuestionLabel>;
}
export interface VirtualEventTownhall extends VirtualEvent {
    audience?: NullableOption<MeetingAudience>;
    coOrganizers?: NullableOption<CommunicationsUserIdentity[]>;
    invitedAttendees?: NullableOption<CommunicationsUserIdentity[]>;
    isInviteOnly?: NullableOption<boolean>;
}
export interface VirtualEventWebinarRegistrationConfiguration extends VirtualEventRegistrationConfiguration {
    isManualApprovalEnabled?: NullableOption<boolean>;
    isWaitlistEnabled?: NullableOption<boolean>;
}
// 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, notAttested, unknownFutureValue.
    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 app that the user has registered to use to approve push notifications. The possible values are:
     * microsoftAuthenticator, outlookMobile, unknownFutureValue.
     */
    clientAppName?: NullableOption<MicrosoftAuthenticatorAuthenticationMethodClientAppName>;
    /**
     * The date and time that this app was registered. This property is null if the device is not 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 is not registered
     * for passwordless Phone Sign-In.
     */
    device?: NullableOption<Device>;
}
export interface PasswordlessMicrosoftAuthenticatorAuthenticationMethod extends AuthenticationMethod {
    createdDateTime?: NullableOption<string>;
    // The timestamp when this method was registered to the user.
    creationDateTime?: NullableOption<string>;
    // The display name of the mobile device as given by the user.
    displayName?: NullableOption<string>;
    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 '+&amp;lt;country code&amp;gt;
     * &amp;lt;number&amp;gt;x&amp;lt;extension&amp;gt;', with extension optional. For example, +1 5555551234 or +1
     * 5555551234x123 are valid. Numbers are rejected when creating/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 PlatformCredentialAuthenticationMethod extends AuthenticationMethod {
    // The date and time that this Platform Credential Key was registered.
    createdDateTime?: NullableOption<string>;
    // The name of the device on which Platform Credential is registered.
    displayName?: NullableOption<string>;
    // Key strength of this Platform Credential key. Possible values are: normal, weak, unknown.
    keyStrength?: NullableOption<AuthenticationMethodKeyStrength>;
    /**
     * Platform on which this Platform Credential key is present. Possible values are: unknown, windows, macOS,iOS, android,
     * linux.
     */
    platform?: NullableOption<AuthenticationMethodPlatform>;
    /**
     * The registered device on which this Platform Credential resides. Supports $expand. When you get a user's Platform
     * Credential registration information, this property is returned only on a single GET and when you specify ?$expand. For
     * example, GET
     * /users/admin@contoso.com/authentication/platformCredentialAuthenticationMethod/_jpuR-TGZtk6aQCLF3BQjA2?$expand=device.
     */
    device?: NullableOption<Device>;
}
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>;
    /**
     * 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>;
    // 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 ConnectionOperation extends Entity {
    error?: NullableOption<PublicError>;
    status?: NullableOption<ConnectionOperationStatus>;
}
export interface External extends Entity {
    connections?: NullableOption<ExternalConnection[]>;
}
export interface ExternalConnection extends Entity {
    configuration?: NullableOption<Configuration>;
    description?: NullableOption<string>;
    name?: NullableOption<string>;
    state?: NullableOption<ConnectionState>;
    groups?: NullableOption<ExternalGroup[]>;
    items?: NullableOption<ExternalItem[]>;
    operations?: NullableOption<ConnectionOperation[]>;
    schema?: NullableOption<Schema>;
}
export interface ExternalGroup extends Entity {
    description?: NullableOption<string>;
    displayName?: NullableOption<string>;
}
export interface ExternalItem extends Entity {
    acl?: NullableOption<Acl[]>;
    content?: NullableOption<ExternalItemContent>;
    properties?: NullableOption<Properties>;
}
export interface Schema extends Entity {
    baseType?: string;
    properties?: NullableOption<Property[]>;
}
export interface TeamworkPeripheral extends Entity {
    // Display name for the peripheral.
    displayName?: NullableOption<string>;
    // The product ID of the device. Each product from a vendor has its own ID.
    productId?: NullableOption<string>;
    // The unique identifier for the vendor of the device. Each vendor has a unique ID.
    vendorId?: NullableOption<string>;
}
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 {
    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, channel, and tag.
    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;
    // User attribution of the message when bot sends a message on behalf of a user.
    onBehalfOf?: NullableOption<ChatMessageFromIdentitySet>;
    // 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>;
    messageId?: NullableOption<string>;
    // Index of the order used for sorting tabs.
    sortOrderIndex?: NullableOption<string>;
    teamsAppId?: NullableOption<string>;
    // Deep link URL of the tab instance. Read only.
    webUrl?: NullableOption<string>;
    // The application that is linked to the tab.
    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 {}
// tslint:disable-next-line: no-empty-interface
export interface DeletedChat extends Entity {}
export interface DeletedTeam extends Entity {
    // The channels those 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 {
    /**
     * A collection of scopes where the Teams app can be installed. Possible values are:team—Indicates that the Teams app can
     * be installed within a team and is authorized to access that team's data. groupChat—Indicates that the Teams app can be
     * installed within a group chat and is authorized to access that group chat's data. personal—Indicates that the Teams app
     * can be installed in the personal scope of a user and is authorized to access that user's data.
     */
    allowedInstallationScopes?: NullableOption<TeamsAppInstallationScopes>;
    // Authorization requirements specified in the Teams app manifest.
    authorization?: NullableOption<TeamsAppAuthorization>;
    // The WebApplicationInfo.Id from the Teams app manifest.
    azureADAppId?: NullableOption<string>;
    createdBy?: NullableOption<IdentitySet>;
    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 request to publish the specific version of
     * the Teams app was rejected by the admin.
     */
    publishingState?: NullableOption<TeamsAppPublishingState>;
    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>;
    // The color version of the Teams app's icon.
    colorIcon?: NullableOption<TeamsAppIcon>;
    // The outline version of the Teams app's icon.
    outlineIcon?: NullableOption<TeamsAppIcon>;
}
// tslint:disable-next-line: no-empty-interface
export interface TeamworkBot extends Entity {}
export interface TeamsAppIcon extends Entity {
    // The web URL that can be used for downloading the image.
    webUrl?: NullableOption<string>;
    // The contents of the app icon if the icon is hosted within the Teams infrastructure.
    hostedContent?: NullableOption<TeamworkHostedContent>;
}
export interface TeamsAppSettings extends Entity {
    // Indicates whether users are allowed to request access to the unavailable Teams apps.
    allowUserRequestsForAppAccess?: NullableOption<boolean>;
    /**
     * Indicates whether resource-specific consent for chats/meetings has been enabled for the tenant. True indicates that
     * Teams apps that are allowed in the tenant and require resource-specific permissions can be installed inside chats and
     * meetings. False blocks the installation of any Teams app that requires resource-specific permissions in a chat or a
     * meeting.
     */
    isChatResourceSpecificConsentEnabled?: NullableOption<boolean>;
    /**
     * Indicates whether resource-specific consent for personal scope in Teams apps has been enabled for the tenant. True
     * indicates that Teams apps that are allowed in the tenant and require resource-specific permissions can be installed in
     * the personal scope. False blocks the installation of any Teams app that requires resource-specific permissions in the
     * personal scope.
     */
    isUserPersonalScopeResourceSpecificConsentEnabled?: NullableOption<boolean>;
}
export interface TeamTemplate extends Entity {
    // A generic representation of a team template definition for a team with a specific structure and configuration.
    definitions?: NullableOption<TeamTemplateDefinition[]>;
}
export interface Teamwork extends Entity {
    // A workforce integration with shifts.
    workforceIntegrations?: NullableOption<WorkforceIntegration[]>;
    // A collection of deleted chats.
    deletedChats?: NullableOption<DeletedChat[]>;
    // A collection of deleted teams.
    deletedTeams?: NullableOption<DeletedTeam[]>;
    // The Teams devices provisioned for the tenant.
    devices?: NullableOption<TeamworkDevice[]>;
    // Represents tenant-wide settings for all Teams apps in the tenant.
    teamsAppSettings?: NullableOption<TeamsAppSettings>;
    // The templates associated with a team.
    teamTemplates?: NullableOption<TeamTemplate[]>;
}
export interface WorkforceIntegration extends ChangeTrackedEntity {
    // API version for the callback URL. Start with 1.
    apiVersion?: NullableOption<number>;
    // Name of the workforce integration.
    displayName?: NullableOption<string>;
    eligibilityFilteringEnabledEntities?: NullableOption<EligibilityFilteringEnabledEntities>;
    // The workforce integration encryption resource.
    encryption?: NullableOption<WorkforceIntegrationEncryption>;
    // Indicates whether this workforce integration is currently active and available.
    isActive?: NullableOption<boolean>;
    /**
     * This property has replaced supports in v1.0. We recommend that you use this property instead of supports. The supports
     * property is still supported in beta for the time being. The possible values are: none, shift, swapRequest, openshift,
     * openShiftRequest, userShiftPreferences, offerShiftRequest, unknownFutureValue, timeCard, timeOffReason, timeOff,
     * timeOffRequest. You must use the Prefer: include-unknown-enum-members request header to get the following values in
     * this evolvable enum: timeCard, timeOffReason, timeOff, timeOffRequest. If selecting more than one value, all values
     * must start with the first letter in uppercase.
     */
    supportedEntities?: NullableOption<WorkforceIntegrationSupportedEntities>;
    /**
     * The Shifts entities supported for synchronous change notifications. Shifts make a callback to the url provided on
     * client changes on those entities added here. By default, no entities are supported for change notifications. The
     * possible values are: none, shift, swapRequest, openshift, openShiftRequest, userShiftPreferences, offerShiftRequest,
     * unknownFutureValue, timeCard, timeOffReason, timeOff, timeOffRequest. You must use the Prefer:
     * include-unknown-enum-members request header to get the following values in this evolvable enum: timeCard,
     * timeOffReason, timeOff, timeOffRequest. If selecting more than one value, all values must start with the first letter
     * in uppercase.
     */
    supports?: NullableOption<WorkforceIntegrationSupportedEntities>;
    // Workforce Integration URL for callbacks from the Shifts service.
    url?: NullableOption<string>;
}
export interface TeamworkDevice extends Entity {
    // The activity state of the device. The possible values are: unknown, busy, idle, unavailable, unknownFutureValue.
    activityState?: NullableOption<TeamworkDeviceActivityState>;
    // The company asset tag assigned by the admin on the device.
    companyAssetTag?: NullableOption<string>;
    // Identity of the user who enrolled the device to the tenant.
    createdBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the device was enrolled to the tenant.
    createdDateTime?: NullableOption<string>;
    // The signed-in user on the device.
    currentUser?: NullableOption<TeamworkUserIdentity>;
    /**
     * The type of device. The possible values are: unknown, ipPhone, teamsRoom, surfaceHub, collaborationBar, teamsDisplay,
     * touchConsole, lowCostPhone, teamsPanel, sip, sipAnalog, unknownFutureValue.
     */
    deviceType?: TeamworkDeviceType;
    // A collection of hardware-related properties. For example, oemSerialNumber and model.
    hardwareDetail?: TeamworkHardwareDetail;
    /**
     * The health status of the device. The possible values are: unknown, offline, critical, nonUrgent, healthy,
     * unknownFutureValue.
     */
    healthStatus?: NullableOption<TeamworkDeviceHealthStatus>;
    // Identity of the user who last modified the device details.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the device detail was last modified.
    lastModifiedDateTime?: NullableOption<string>;
    // The notes added by the admin to the device.
    notes?: NullableOption<string>;
    // The activity properties that change based on the device usage.
    activity?: NullableOption<TeamworkDeviceActivity>;
    // The configuration properties of the device.
    configuration?: NullableOption<TeamworkDeviceConfiguration>;
    // The health properties of the device.
    health?: NullableOption<TeamworkDeviceHealth>;
    // The async operations on the device.
    operations?: NullableOption<TeamworkDeviceOperation[]>;
}
export interface TeamworkDeviceActivity extends Entity {
    // The active peripheral devices attached to the device.
    activePeripherals?: NullableOption<TeamworkActivePeripherals>;
    // Identity of the user who created the device activity document.
    createdBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the device activity document was created.
    createdDateTime?: NullableOption<string>;
    // Identity of the user who last modified the device activity details.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the device activity detail was last modified.
    lastModifiedDateTime?: NullableOption<string>;
}
export interface TeamworkDeviceConfiguration extends Entity {
    // The camera configuration. Applicable only for Microsoft Teams Rooms-enabled devices.
    cameraConfiguration?: NullableOption<TeamworkCameraConfiguration>;
    // Identity of the user who created the device configuration document.
    createdBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the device configuration document was created.
    createdDateTime?: NullableOption<string>;
    // The display configuration.
    displayConfiguration?: NullableOption<TeamworkDisplayConfiguration>;
    // The hardware configuration. Applicable only for Teams Rooms-enabled devices.
    hardwareConfiguration?: NullableOption<TeamworkHardwareConfiguration>;
    // Identity of the user who last modified the device configuration.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the device configuration was last modified.
    lastModifiedDateTime?: NullableOption<string>;
    // The microphone configuration. Applicable only for Teams Rooms-enabled devices.
    microphoneConfiguration?: NullableOption<TeamworkMicrophoneConfiguration>;
    /**
     * Information related to software versions for the device, such as firmware, operating system, Teams client, and admin
     * agent.
     */
    softwareVersions?: NullableOption<TeamworkDeviceSoftwareVersions>;
    // The speaker configuration. Applicable only for Teams Rooms-enabled devices.
    speakerConfiguration?: NullableOption<TeamworkSpeakerConfiguration>;
    // The system configuration. Not applicable for Teams Rooms-enabled devices.
    systemConfiguration?: NullableOption<TeamworkSystemConfiguration>;
    // The Teams client configuration. Applicable only for Teams Rooms-enabled devices.
    teamsClientConfiguration?: NullableOption<TeamworkTeamsClientConfiguration>;
}
export interface TeamworkDeviceHealth extends Entity {
    // Information about the connection status.
    connection?: TeamworkConnection;
    // Identity of the user who created the device health document.
    createdBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the device health document was created.
    createdDateTime?: NullableOption<string>;
    // Health details about the device hardware.
    hardwareHealth?: NullableOption<TeamworkHardwareHealth>;
    // Identity of the user who last modified the device health details.
    lastModifiedBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the device health detail was last modified.
    lastModifiedDateTime?: NullableOption<string>;
    // The login status of Microsoft Teams, Skype for Business, and Exchange.
    loginStatus?: NullableOption<TeamworkLoginStatus>;
    // Health details about all peripherals (for example, speaker and microphone) attached to a device.
    peripheralsHealth?: NullableOption<TeamworkPeripheralsHealth>;
    // Software updates available for the device.
    softwareUpdateHealth?: NullableOption<TeamworkSoftwareUpdateHealth>;
}
export interface TeamworkDeviceOperation extends Entity {
    // Time at which the operation reached a final state (for example, Successful, Failed, and Cancelled).
    completedDateTime?: NullableOption<string>;
    // Identity of the user who created the device operation.
    createdBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the device operation was created.
    createdDateTime?: NullableOption<string>;
    // Error details are available only in case of a failed status.
    error?: NullableOption<OperationError>;
    // Identity of the user who last modified the device operation.
    lastActionBy?: NullableOption<IdentitySet>;
    // The UTC date and time when the device operation was last modified.
    lastActionDateTime?: NullableOption<string>;
    /**
     * Type of async operation on a device. The possible values are: deviceRestart, configUpdate, deviceDiagnostics,
     * softwareUpdate, deviceManagementAgentConfigUpdate, remoteLogin, remoteLogout, unknownFutureValue.
     */
    operationType?: TeamworkDeviceOperationType;
    // Time at which the operation was started.
    startedDateTime?: NullableOption<string>;
    /**
     * The current status of the async operation, for example, Queued, Scheduled, InProgress, Successful, Cancelled, and
     * Failed.
     */
    status?: 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 DayNote extends ChangeTrackedEntity {
    dayNoteDate?: NullableOption<string>;
    draftDayNote?: NullableOption<ItemBody>;
    sharedDayNote?: NullableOption<ItemBody>;
}
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>;
    isStagedForDeletion?: NullableOption<boolean>;
    // ID for the scheduling group that the open shift belongs to.
    schedulingGroupId?: NullableOption<string>;
    schedulingGroupName?: NullableOption<string>;
    // A published open shift.
    sharedOpenShift?: NullableOption<OpenShiftItem>;
    teamId?: NullableOption<string>;
    teamName?: NullableOption<string>;
}
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>;
    isStagedForDeletion?: NullableOption<boolean>;
    // 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 {
    // Shift ID for the recipient user with whom the request is to swap.
    recipientShiftId?: NullableOption<string>;
}
export interface TimeCard extends ChangeTrackedEntity {
    // The list of breaks associated with the timeCard.
    breaks?: NullableOption<TimeCardBreak[]>;
    // The clock-in event of the timeCard.
    clockInEvent?: NullableOption<TimeCardEvent>;
    // The clock-out event of the timeCard.
    clockOutEvent?: NullableOption<TimeCardEvent>;
    // Indicates whether this timeCard entry is confirmed. Possible values are none, user, manager, unknownFutureValue.
    confirmedBy?: NullableOption<ConfirmedBy>;
    // Notes about the timeCard.
    notes?: NullableOption<ItemBody>;
    // The original timeCardEntry of the timeCard, before user edits.
    originalEntry?: NullableOption<TimeCardEntry>;
    /**
     * The current state of the timeCard during its life cycle.Possible values are: clockedIn, onBreak, clockedOut,
     * unknownFutureValue.
     */
    state?: NullableOption<TimeCardState>;
    // User ID to which the timeCard belongs.
    userId?: 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>;
    isStagedForDeletion?: NullableOption<boolean>;
    // 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 (only for mail assessment), 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 smaller subtasks linked to the more complex parent 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 GoalsExportJob extends LongRunningOperation {
    // The content of the goalsExportJob.
    content?: NullableOption<any>;
    // The date and time of expiry of the result of the operation.
    expirationDateTime?: NullableOption<string>;
    // The unique identifier of the explorer view to be exported.
    explorerViewId?: NullableOption<string>;
    // The unique identifier of the viva goals organization.
    goalsOrganizationId?: NullableOption<string>;
}
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>;
}
export interface AdminWindowsUpdates extends Entity {
    // Catalog of content that can be approved for deployment by the deployment service. Read-only.
    catalog?: NullableOption<WindowsUpdates.Catalog>;
    // The set of updatableAsset resources to which a deployment can apply.
    deploymentAudiences?: NullableOption<WindowsUpdates.DeploymentAudience[]>;
    // Deployments created using the deployment service.
    deployments?: NullableOption<WindowsUpdates.Deployment[]>;
    // Service connections to external resources such as analytics workspaces.
    resourceConnections?: NullableOption<WindowsUpdates.ResourceConnection[]>;
    // Assets registered with the deployment service that can receive updates.
    updatableAssets?: NullableOption<WindowsUpdates.UpdatableAsset[]>;
    // A collection of policies for approving the deployment of different content to an audience over time.
    updatePolicies?: NullableOption<WindowsUpdates.UpdatePolicy[]>;
}
export interface Document extends Entity {
    comments?: NullableOption<DocumentComment[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface CustomExtensionAuthenticationConfiguration {}
// tslint:disable-next-line: no-empty-interface
export interface AzureAdPopTokenAuthentication extends CustomExtensionAuthenticationConfiguration {}
export interface AzureAdTokenAuthentication extends CustomExtensionAuthenticationConfiguration {
    /**
     * The appID of the Microsoft Entra application to use to authenticate a logic app with a custom access package workflow
     * extension.
     */
    resourceId?: NullableOption<string>;
}
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 number of retries that Microsoft Entra ID makes to the external API. Values of 0 or 1 are supported. If null,
     * the default for the service applies.
     */
    maximumRetries?: NullableOption<number>;
    /**
     * 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. If null, the default for the service
     * applies.
     */
    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. When the unique identifier is unavailable, the displayName property is provided for
     * the identity, but the id property isn't included in the response.
     */
    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 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. You must specify a new GUID identifier when you create a new app
     * role.
     */
    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 AuthenticationBehaviors {
    // Removes the email claim from tokens sent to an application when the email address's domain can't be verified.
    removeUnverifiedEmailClaim?: NullableOption<boolean>;
    /**
     * Requires multitenant applications to have a service principal in the resource tenant as part of authorization checks
     * before they're granted access tokens. This property is only modifiable for multi-tenant resource applications that rely
     * on access from clients without a service principal and had this behavior as set to false by Microsoft. Tenant
     * administrators should respond to security advisories sent through Azure Health Service events and the Microsoft 365
     * message center.
     */
    requireClientServicePrincipal?: NullableOption<boolean>;
}
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>;
    /**
     * Value for the key credential. Should be a Base64 encoded value. 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 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, or X509CertAndPassword.
    type?: NullableOption<string>;
    /**
     * A string that describes the purpose for which the key can be used; for example, None​, Verify​, PairwiseIdentifier​,
     * Delegation​, Decrypt​, Encrypt​, HashedIdentifier​, SelfSignedTls, or Sign. If usage is Sign​, the type should be
     * X509CertAndPassword​, and the passwordCredentials​ for signing should be defined.
     */
    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 whether this application accepts weak algorithms. 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 Microsoft Partner Network (MPN) 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 will be used by Microsoft's authorization service to logout a user using front-channel,
     * back-channel or SAML logout protocols.
     */
    logoutUrl?: NullableOption<string>;
    oauth2AllowImplicitFlow?: NullableOption<boolean>;
    /**
     * 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[];
    // Specifies the index of the URLs where user tokens are sent for sign-in. This is only valid for applications using SAML.
    redirectUriSettings?: RedirectUriSettings[];
}
export interface WindowsApplication {
    // The package security identifier that Microsoft has assigned the application. Optional. Read-only.
    packageSid?: 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. Only available for applications that support the PersonalMicrosoftAccount signInAudience.
     */
    redirectUris?: string[];
}
export interface OnPremisesPublishing {
    /**
     * If you're configuring a traffic manager in front of multiple App Proxy applications, the alternateUrl is the
     * user-friendly URL that points to the traffic manager.
     */
    alternateUrl?: NullableOption<string>;
    /**
     * The duration the connector waits for a response from the backend application before closing the connection. Possible
     * values are default, long. When set to default, the backend application timeout has a length of 85 seconds. When set to
     * long, the backend timeout is increased to 180 seconds. Use long if your server takes more than 85 seconds to respond to
     * requests or if you are unable to access the application and the error status is 'Backend Timeout'. Default value is
     * default.
     */
    applicationServerTimeout?: NullableOption<string>;
    // Indicates if this application is an Application Proxy configured application. This is pre-set by the system. Read-only.
    applicationType?: NullableOption<string>;
    /**
     * Details the pre-authentication setting for the application. Pre-authentication enforces that users must authenticate
     * before accessing the app. Pass through doesn't require authentication. Possible values are: passthru,
     * aadPreAuthentication.
     */
    externalAuthenticationType?: NullableOption<ExternalAuthenticationType>;
    // The published external url for the application. For example, https://intranet-contoso.msappproxy.net/.
    externalUrl?: NullableOption<string>;
    // The internal url of the application. For example, https://intranet/.
    internalUrl?: NullableOption<string>;
    isAccessibleViaZTNAClient?: NullableOption<boolean>;
    /**
     * Indicates whether backend SSL certificate validation is enabled for the application. For all new Application Proxy
     * apps, the property is set to true by default. For all existing apps, the property is set to false.
     */
    isBackendCertificateValidationEnabled?: NullableOption<boolean>;
    isDnsResolutionEnabled?: NullableOption<boolean>;
    /**
     * Indicates if the HTTPOnly cookie flag should be set in the HTTP response headers. Set this value to true to have
     * Application Proxy cookies include the HTTPOnly flag in the HTTP response headers. If using Remote Desktop Services, set
     * this value to False. Default value is false.
     */
    isHttpOnlyCookieEnabled?: NullableOption<boolean>;
    /**
     * Indicates if the application is currently being published via Application Proxy or not. This is preset by the system.
     * Read-only.
     */
    isOnPremPublishingEnabled?: NullableOption<boolean>;
    /**
     * Indicates if the Persistent cookie flag should be set in the HTTP response headers. Keep this value set to false. Only
     * use this setting for applications that can't share cookies between processes. For more information about cookie
     * settings, see Cookie settings for accessing on-premises applications in Microsoft Entra ID. Default value is false.
     */
    isPersistentCookieEnabled?: NullableOption<boolean>;
    /**
     * Indicates if the Secure cookie flag should be set in the HTTP response headers. Set this value to true to transmit
     * cookies over a secure channel such as an encrypted HTTPS request. Default value is true.
     */
    isSecureCookieEnabled?: NullableOption<boolean>;
    /**
     * Indicates whether validation of the state parameter when the client uses the OAuth 2.0 authorization code grant flow is
     * enabled. This setting allows admins to specify whether they want to enable CSRF protection for their apps.
     */
    isStateSessionEnabled?: NullableOption<boolean>;
    /**
     * Indicates if the application should translate urls in the response headers. Keep this value as true unless your
     * application required the original host header in the authentication request. Default value is true.
     */
    isTranslateHostHeaderEnabled?: NullableOption<boolean>;
    /**
     * Indicates if the application should translate urls in the application body. Keep this value as false unless you have
     * hardcoded HTML links to other on-premises applications and don't use custom domains. For more information, see Link
     * translation with Application Proxy. Default value is false.
     */
    isTranslateLinksInBodyEnabled?: NullableOption<boolean>;
    onPremisesApplicationSegments?: NullableOption<OnPremisesApplicationSegment[]>;
    /**
     * Represents the collection of application segments for an on-premises wildcard application that's published through
     * Microsoft Entra application proxy.
     */
    segmentsConfiguration?: NullableOption<SegmentConfiguration>;
    // Represents the single sign-on configuration for the on-premises application.
    singleSignOnSettings?: NullableOption<OnPremisesPublishingSingleSignOn>;
    useAlternateUrlForTranslationAndRedirect?: NullableOption<boolean>;
    /**
     * Details of the certificate associated with the application when a custom domain is in use. null when using the default
     * domain. Read-only.
     */
    verifiedCustomDomainCertificatesMetadata?: NullableOption<VerifiedCustomDomainCertificatesMetadata>;
    // The associated key credential for the custom domain used.
    verifiedCustomDomainKeyCredential?: NullableOption<KeyCredential>;
    // The associated password credential for the custom domain used.
    verifiedCustomDomainPasswordCredential?: NullableOption<PasswordCredential>;
}
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 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 LicenseProcessingState {
    state?: 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 ServiceProvisioningError {
    // The date and time at which the error occurred.
    createdDateTime?: NullableOption<string>;
    // Indicates whether the Error has been attended to.
    isResolved?: NullableOption<boolean>;
    // Qualified service instance (for example, 'SharePoint/Dublin') that published the service error information.
    serviceInstance?: NullableOption<string>;
}
export interface WritebackConfiguration {
    /**
     * Indicates whether writeback of cloud groups to on-premise Active Directory is enabled. Default value is true for
     * Microsoft 365 groups and false for security groups.
     */
    isEnabled?: NullableOption<boolean>;
}
export interface GroupWritebackConfiguration extends WritebackConfiguration {
    /**
     * Indicates the target on-premises group type the cloud object is written back as. Nullable. The possible values are:
     * universalDistributionGroup, universalSecurityGroup, universalMailEnabledSecurityGroup.If the cloud group is a unified
     * (Microsoft 365) group, this property can be one of the following: universalDistributionGroup, universalSecurityGroup,
     * universalMailEnabledSecurityGroup. Microsoft Entra security groups can be written back as universalSecurityGroup. If
     * isEnabled or the NewUnifiedGroupWritebackDefault group setting is true but this property isn't explicitly configured:
     * Microsoft 365 groups are written back as universalDistributionGroup by defaultSecurity groups are written back as
     * universalSecurityGroup by default
     */
    onPremisesGroupType?: NullableOption<string>;
}
export interface MembershipRuleProcessingStatus {
    // Detailed error message if dynamic group processing ran into an error. Optional. Read-only.
    errorMessage?: NullableOption<string>;
    // Most recent date and time when membership of a dynamic group was updated. Optional. Read-only.
    lastMembershipUpdated?: NullableOption<string>;
    /**
     * Current status of a dynamic group processing. Possible values are: NotStarted, Running, Succeeded, Failed, and
     * UnknownFutureValue. Required. Read-only.
     */
    status?: NullableOption<MembershipRuleProcessingStatusDetails>;
}
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 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 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 AssignedPlan {
    /**
     * The date and time at which the plan was assigned; for example: 2013-01-02T19:32:30Z. 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.
    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 {
    /**
     * The collection of unique identifiers that can be associated with a user and can be used to bind the Microsoft Entra
     * user to a certificate for authentication and authorization into non-Azure AD environments. The identifiers must be
     * unique in the tenant.
     */
    certificateUserIds?: NullableOption<string[]>;
}
export interface CloudRealtimeCommunicationInfo {
    // Indicates whether the user has a SIP-enabled client registered for them. Read-only.
    isSipEnabled?: NullableOption<boolean>;
}
// tslint:disable-next-line: no-empty-interface
export interface CustomSecurityAttributeValue {}
export interface DeviceKey {
    deviceId?: NullableOption<string>;
    keyMaterial?: NullableOption<string>;
    keyType?: NullableOption<string>;
}
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 an 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. Extra 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 {
    /**
     * Indicates whether the license is directly-assigned or inherited from a group. If directly-assigned, this field is null;
     * if inherited through a group membership, this field contains the ID of the group. Read-Only.
     */
    assignedByGroup?: NullableOption<string>;
    // The service plans that are disabled in this assignment. Read-Only.
    disabledPlans?: NullableOption<string[]>;
    /**
     * License assignment failure error. If the license is assigned successfully, this field will be Null. Read-Only. The
     * possible values are CountViolation, MutuallyExclusiveViolation, DependencyViolation,
     * ProhibitedInUsageLocationViolation, UniquenessViolation, and Other. For more information on how to identify and resolve
     * license assignment errors, see here.
     */
    error?: NullableOption<string>;
    // The timestamp when the state of the license assignment was last updated.
    lastUpdatedDateTime?: NullableOption<string>;
    // The unique identifier for the SKU. Read-Only.
    skuId?: NullableOption<string>;
    /**
     * Indicate the current state of this assignment. Read-Only. The possible values are Active, ActiveWithError, Disabled,
     * and Error.
     */
    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 OnPremisesSipInfo {
    // Indicates whether the user is currently enabled for on-premises Skype for Business.
    isSipEnabled?: boolean;
    // Indicates a fully qualified DNS name of the Microsoft Online Communications Server deployment.
    sipDeploymentLocation?: NullableOption<string>;
    // Serves as a unique identifier for each user on the on-premises Skype for Business.
    sipPrimaryAddress?: NullableOption<string>;
}
export interface PasswordProfile {
    // true if the user must change her password on the next login; otherwise false. If not set, default is 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 MailboxSettings {
    // Folder ID of an archive folder for the user. Read-only.
    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. The default is 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>;
    userPurposeV2?: NullableOption<MailboxRecipientType>;
    // 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 ActionStep {
    // A link to the documentation or Microsoft Entra admin center page that is associated with the action step.
    actionUrl?: NullableOption<ActionUrl>;
    // Indicates the position for this action in the order of the collection of actions to be taken.
    stepNumber?: number;
    // Friendly description of the action to take.
    text?: NullableOption<string>;
}
export interface ActionUrl {
    // Brief title for the page that the links directs to.
    displayName?: string;
    // The URL to the documentation or Microsoft Entra admin center page.
    url?: NullableOption<string>;
}
export interface AppIdentity {
    // Refers to the unique identifier representing Application Id in the 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 identifier indicating Service Principal Id in Microsoft Entra ID for the corresponding App.
    servicePrincipalId?: NullableOption<string>;
    // Refers to the Service Principal Name is the Application name in the tenant.
    servicePrincipalName?: NullableOption<string>;
}
export interface AppliedAuthenticationEventListener {
    /**
     * The type of authentication event that triggered the custom authentication extension request. The possible values are:
     * tokenIssuanceStart, pageRenderStart, unknownFutureValue.
     */
    eventType?: NullableOption<AuthenticationEventType>;
    // ID of the authentication event listener that was executed.
    executedListenerId?: NullableOption<string>;
    // The result from the listening client, such as an Azure Logic App and Azure Functions, of this authentication event.
    handlerResult?: NullableOption<AuthenticationEventHandlerResult>;
}
// tslint:disable-next-line: no-empty-interface
export interface AuthenticationEventHandlerResult {}
export interface AppliedConditionalAccessPolicy {
    // The custom authentication strength enforced in a Conditional Access policy.
    authenticationStrength?: NullableOption<AuthenticationStrength>;
    /**
     * Refers to the conditional access policy conditions that aren't satisfied. The possible values are: none, application,
     * users, devicePlatform, location, clientType, signInRisk, userRisk, time, deviceState,
     * client,ipAddressSeenByAzureAD,ipAddressSeenByResourceProvider,unknownFutureValue,servicePrincipals,servicePrincipalRisk,
     * authenticationFlows, insiderRisk . You must use the Prefer: include-unknown-enum-members request header to get the
     * following values in this evolvable enum: servicePrincipals,servicePrincipalRisk, authenticationFlows, insiderRisk.
     * conditionalAccessConditions is a multi-valued enumeration and the property can contain multiple values in a
     * comma-separated list.
     */
    conditionsNotSatisfied?: NullableOption<ConditionalAccessConditions[]>;
    /**
     * Refers to the conditional access policy conditions that are satisfied. The possible values are: none, application,
     * users, devicePlatform, location, clientType, signInRisk, userRisk, time, deviceState,
     * client,ipAddressSeenByAzureAD,ipAddressSeenByResourceProvider,unknownFutureValue,servicePrincipals,servicePrincipalRisk,
     * authenticationFlows, insiderRisk. You must use the Prefer: include-unknown-enum-members request header to get the
     * following values in this evolvable enum: servicePrincipals,servicePrincipalRisk, authenticationFlows, insiderRisk.
     * conditionalAccessConditions is a multi-valued enumeration and the property can contain multiple values in a
     * comma-separated list.
     */
    conditionsSatisfied?: NullableOption<ConditionalAccessConditions[]>;
    // Name of the conditional access policy.
    displayName?: NullableOption<string>;
    /**
     * Refers to the grant controls enforced by the conditional access policy (example: 'Require multi-factor
     * authentication').
     */
    enforcedGrantControls?: NullableOption<string[]>;
    // Refers to the session controls enforced by the conditional access policy (example: 'Require app enforced controls').
    enforcedSessionControls?: NullableOption<string[]>;
    /**
     * List of key-value pairs containing each matched exclude condition in the conditional access policy. Example:
     * [{'devicePlatform' : 'DevicePlatform'}] means the policy didn't apply, because the DevicePlatform condition was a
     * match.
     */
    excludeRulesSatisfied?: NullableOption<ConditionalAccessRuleSatisfied[]>;
    // Identifier of the conditional access policy.
    id?: NullableOption<string>;
    /**
     * List of key-value pairs containing each matched include condition in the conditional access policy. Example: [{
     * 'application' : 'AllApps'}, {'users': 'Group'}], meaning Application condition was a match because AllApps are included
     * and Users condition was a match because the user was part of the included Group rule.
     */
    includeRulesSatisfied?: NullableOption<ConditionalAccessRuleSatisfied[]>;
    /**
     * 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, reportOnlySuccess, reportOnlyFailure, reportOnlyNotApplied, reportOnlyInterrupted. You must use the
     * Prefer: include-unknown-enum-members request header to get the following values in this evolvable enum:
     * reportOnlySuccess, reportOnlyFailure, reportOnlyNotApplied, reportOnlyInterrupted.
     */
    result?: NullableOption<AppliedConditionalAccessPolicyResult>;
    // Refers to the session controls that a sign-in activity didn't satisfy. (Example: Application enforced Restrictions).
    sessionControlsNotSatisfied?: NullableOption<string[]>;
}
export interface AuthenticationStrength {
    // Identifier of the authentication strength.
    authenticationStrengthId?: NullableOption<string>;
    /**
     * The result of the authentication strength. The possible values are: notSet, skippedForProofUp, satisfied,
     * singleChallengeRequired, multipleChallengesRequired, singleRegistrationRequired, multipleRegistrationsRequired,
     * cannotSatisfyDueToCombinationConfiguration, cannotSatisfy, unknownFutureValue.
     */
    authenticationStrengthResult?: NullableOption<AuthenticationStrengthResult>;
    // The name of the authentication strength.
    displayName?: NullableOption<string>;
}
export interface ConditionalAccessRuleSatisfied {
    /**
     * Refers to the conditional access policy conditions that are satisfied. The possible values are: none, application,
     * users, devicePlatform, location, clientType, signInRisk, userRisk, time, deviceState, client, ipAddressSeenByAzureAD,
     * ipAddressSeenByResourceProvider, unknownFutureValue, servicePrincipals, servicePrincipalRisk, authenticationFlows,
     * insiderRisk. Note that you must use the Prefer: include-unknown-enum-members request header to get the following values
     * in this evolvable enum: servicePrincipals, servicePrincipalRisk, authenticationFlows, insiderRisk.
     * conditionalAccessConditions is a multi-valued enumeration and the property can contain multiple values in a
     * comma-separated list.
     */
    conditionalAccessCondition?: NullableOption<ConditionalAccessConditions>;
    /**
     * Refers to the conditional access policy conditions that were satisfied. The possible values are: allApps,
     * firstPartyApps, office365, appId, acr, appFilter, allUsers, guest, groupId, roleId, userId, allDevicePlatforms,
     * devicePlatform, allLocations, insideCorpnet, allTrustedLocations, locationId, allDevices, deviceFilter, deviceState,
     * unknownFutureValue, deviceFilterIncludeRuleNotMatched, allDeviceStates, anonymizedIPAddress, unfamiliarFeatures,
     * nationStateIPAddress, realTimeThreatIntelligence, internalGuest, b2bCollaborationGuest, b2bCollaborationMember,
     * b2bDirectConnectUser, otherExternalUser, serviceProvider, microsoftAdminPortals, deviceCodeFlow, accountTransfer,
     * insiderRisk. Note that you must use the Prefer: include-unknown-enum-members request header to get the following values
     * in this evolvable enum: deviceFilterIncludeRuleNotMatched, allDeviceStates, anonymizedIPAddress, unfamiliarFeatures,
     * nationStateIPAddress, realTimeThreatIntelligence, internalGuest, b2bCollaborationGuest, b2bCollaborationMember,
     * b2bDirectConnectUser, otherExternalUser, serviceProvider, microsoftAdminPortals, deviceCodeFlow, accountTransfer,
     * insiderRisk.
     */
    ruleSatisfied?: NullableOption<ConditionalAccessRule>;
}
export interface AuditActivityInitiator {
    /**
     * If the actor initiating the activity is an app, this property indicates all its identification information including
     * appId, displayName, servicePrincipalId, and servicePrincipalName.
     */
    app?: NullableOption<AppIdentity>;
    /**
     * If the actor initiating the activity is a user, this property indicates their identification information including
     * their id, displayName, and userPrincipalName.
     */
    user?: NullableOption<AuditUserIdentity>;
}
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>;
}
export interface AuditUserIdentity extends UserIdentity {
    // For user sign ins, the identifier of the tenant that the user is a member of.
    homeTenantId?: NullableOption<string>;
    /**
     * For user sign ins, the name of the tenant that the user is a member of. Only populated in cases where the home tenant
     * has provided affirmative consent to Microsoft Entra ID to show the tenant content.
     */
    homeTenantName?: NullableOption<string>;
}
export interface AuthenticationAppDeviceDetails {
    // The version of the client authentication app used during the authentication step.
    appVersion?: NullableOption<string>;
    // The name of the client authentication app used during the authentication step.
    clientApp?: NullableOption<string>;
    // ID of the device used during the authentication step.
    deviceId?: NullableOption<string>;
    // The operating system running on the device used for the authentication step.
    operatingSystem?: NullableOption<string>;
}
export interface AuthenticationAppPolicyDetails {
    /**
     * The admin configuration of the policy on the user's authentication app. For a policy that does not impact the
     * success/failure of the authentication, the evaluation defaults to notApplicable. The possible values are:
     * notApplicable, enabled, disabled, unknownFutureValue.
     */
    adminConfiguration?: NullableOption<AuthenticationAppAdminConfiguration>;
    /**
     * Evaluates the success/failure of the authentication based on the admin configuration of the policy on the user's client
     * authentication app. The possible values are: success, failure, unknownFutureValue.
     */
    authenticationEvaluation?: NullableOption<AuthenticationAppEvaluation>;
    // The name of the policy enforced on the user's authentication app.
    policyName?: NullableOption<string>;
    /**
     * Refers to whether the policy executed as expected on the user's client authentication app. The possible values are:
     * unknown, appLockOutOfDate, appLockEnabled, appLockDisabled, appContextOutOfDate, appContextShown, appContextNotShown,
     * locationContextOutOfDate, locationContextShown, locationContextNotShown, numberMatchOutOfDate,
     * numberMatchCorrectNumberEntered, numberMatchIncorrectNumberEntered, numberMatchDeny, tamperResistantHardwareOutOfDate,
     * tamperResistantHardwareUsed, tamperResistantHardwareNotUsed, unknownFutureValue.
     */
    status?: NullableOption<AuthenticationAppPolicyStatus>;
}
export interface AuthenticationContext {
    /**
     * Describes how the conditional access authentication context was triggered. A value of previouslySatisfied means the
     * auth context was because the user already satisfied the requirements for that authentication context in some previous
     * authentication event. A value of required means the user had to meet the authentication context requirement as part of
     * the sign-in flow. The possible values are: required, previouslySatisfied, notApplicable, unknownFutureValue.
     */
    detail?: NullableOption<AuthenticationContextDetail>;
    // The identifier of an authentication context in your tenant.
    id?: NullableOption<string>;
}
export interface AuthenticationDetail {
    /**
     * The type of authentication method used to perform this step of authentication. Possible values: Password, SMS, Voice,
     * Authenticator App, Software OATH token, Satisfied by token, Previously satisfied.
     */
    authenticationMethod?: NullableOption<string>;
    /**
     * Details about the authentication method used to perform this authentication step. For example, phone number (for SMS
     * and voice), device name (for Authenticator app), and password source (for example, cloud, AD FS, PTA, PHS).
     */
    authenticationMethodDetail?: NullableOption<string>;
    /**
     * 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.
     */
    authenticationStepDateTime?: NullableOption<string>;
    // The step of authentication that this satisfied. For example, primary authentication, or multifactor authentication.
    authenticationStepRequirement?: NullableOption<string>;
    /**
     * Details about why the step succeeded or failed. For examples, user is blocked, fraud code entered, no phone input -
     * timed out, phone unreachable, or claim in token.
     */
    authenticationStepResultDetail?: NullableOption<string>;
    // Indicates the status of the authentication step. Possible values: succeeded, failed.
    succeeded?: NullableOption<boolean>;
}
export interface AuthenticationRequirementPolicy {
    // Provides additional detail on the feature identified in requirementProvider.
    detail?: NullableOption<string>;
    /**
     * Identifies what Microsoft Entra feature requires MFA in this policy. Possible values are: user, request,
     * servicePrincipal, v1ConditionalAccess, multiConditionalAccess, tenantSessionRiskPolicy, accountCompromisePolicies,
     * v1ConditionalAccessDependency, v1ConditionalAccessPolicyIdRequested, mfaRegistrationRequiredByIdentityProtectionPolicy,
     * baselineProtection, mfaRegistrationRequiredByBaselineProtection, mfaRegistrationRequiredByMultiConditionalAccess,
     * enforcedForCspAdmins, securityDefaults, mfaRegistrationRequiredBySecurityDefaults, proofUpCodeRequest,
     * crossTenantOutboundRule, gpsLocationCondition, riskBasedPolicy, unknownFutureValue.
     */
    requirementProvider?: NullableOption<RequirementProvider>;
}
export interface CustomExtensionCalloutResult extends AuthenticationEventHandlerResult {
    /**
     * When the API transaction was initiated, the date and time information uses ISO 8601 format and is always in UTC time.
     * Example: midnight on Jan 1, 2014, is reported as 2014-01-01T00:00:00Z.
     */
    calloutDateTime?: NullableOption<string>;
    // Identifier of the custom extension that was called.
    customExtensionId?: NullableOption<string>;
    // Error code that was returned when the last API attempt failed.
    errorCode?: NullableOption<number>;
    // The HTTP status code that was returned by the target API endpoint after the last API attempt.
    httpStatus?: NullableOption<number>;
    // The number of API calls to the customer's API.
    numberOfAttempts?: NullableOption<number>;
}
// 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>;
    browserId?: 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 or not.
    isCompliant?: NullableOption<boolean>;
    // Indicates if the device is managed or not.
    isManaged?: NullableOption<boolean>;
    // Indicates the OS name and version used for signing-in.
    operatingSystem?: NullableOption<string>;
    // Indicates information on 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. Writable on OneDrive Personal.
    latitude?: NullableOption<number>;
    // Optional. The longitude, in decimal, for the item. Writable on OneDrive Personal.
    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.
    key?: NullableOption<string>;
    // Value.
    value?: NullableOption<string>;
}
export interface LastSignIn {
    interactiveDateTime?: NullableOption<string>;
    nonInteractiveDateTime?: NullableOption<string>;
}
export interface ManagedIdentity {
    // The ARM resource ID of the Azure resource associated with the managed identity used for sign in.
    associatedResourceId?: NullableOption<string>;
    // The unique ID of the federated token.
    federatedTokenId?: NullableOption<string>;
    // The issuer of the federated token.
    federatedTokenIssuer?: NullableOption<string>;
    // The possible values are: none, userAssigned, systemAssigned, unknownFutureValue.
    msiType?: NullableOption<MsiType>;
}
export interface MfaDetail {
    // Indicates the MFA auth detail for the corresponding Sign-in activity when the MFA Required is 'Yes'.
    authDetail?: NullableOption<string>;
    /**
     * Indicates the MFA Auth methods (SMS, Phone, Authenticator App are some of the value) for the corresponding sign-in
     * activity when the MFA Required field is 'Yes'.
     */
    authMethod?: NullableOption<string>;
}
export interface ModifiedProperty {
    // Name of property that was modified.
    displayName?: NullableOption<string>;
    // New property value.
    newValue?: NullableOption<string>;
    // Old property value.
    oldValue?: NullableOption<string>;
}
export interface NetworkLocationDetail {
    // Provides the name of the network used when signing in.
    networkNames?: NullableOption<string[]>;
    /**
     * Provides the type of network used when signing in. Possible values are: intranet, extranet, namedNetwork, trusted,
     * unknownFutureValue.
     */
    networkType?: NullableOption<NetworkType>;
}
export interface PrivateLinkDetails {
    // The unique identifier for the Private Link policy.
    policyId?: NullableOption<string>;
    // The name of the Private Link policy in Microsoft Entra ID.
    policyName?: NullableOption<string>;
    // The tenant identifier of the Microsoft Entra tenant the Private Link policy belongs to.
    policyTenantId?: NullableOption<string>;
    // The Azure Resource Manager (ARM) path for the Private Link policy resource.
    resourceId?: 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 is 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, failure, skipped, warning, unknownFutureValue. Supports $filter (eq, contains).
    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 ServiceActivityValueMetric {
    // The starting date and time (UTC) of the interval.
    intervalStartDateTime?: string;
    /**
     * The aggregated value over the given aggregation interval starting from the intervalStartDateTime. The value is
     * caculated at the minute level. The value at the starting minute of the intervalStartDateTime is included. The value at
     * the last minute of the given interval is excluded. For example, if intervalStartDateTime is 2023-09-20T18:00:00Z and
     * aggregation interval is 5 minutes, then the value is aggregated from 2023-09-20T18:00:00Z(inclusive) to
     * 2023-09-20T18:05:00Z(exclusive).
     */
    value?: number;
}
export interface ServiceLevelAgreementAttainment {
    // The end date for the calendar month for which SLA attainment is measured.
    endDate?: string;
    /**
     * The level of SLA attainment achieved by the tenant for the calendar month identified, as described in Microsoft Entra
     * SLA performance. Values are truncated, not rounded, so the actual value is always equal to or higher than the displayed
     * value. Values are expressed as a percentage of availability for the tenant.
     */
    score?: number;
    // The start date for the calendar month for which SLA attainment is measured.
    startDate?: string;
}
export interface SessionLifetimePolicy {
    // The human-readable details of the conditional access session management policy applied to the sign-in.
    detail?: NullableOption<string>;
    /**
     * If a conditional access session management policy required the user to authenticate in this sign-in event, this field
     * describes the policy type that required authentication. The possible values are:
     * rememberMultifactorAuthenticationOnTrustedDevices, tenantTokenLifetimePolicy, audienceTokenLifetimePolicy,
     * signInFrequencyPeriodicReauthentication, ngcMfa, signInFrequencyEveryTime, unknownFutureValue.
     */
    expirationRequirement?: NullableOption<ExpirationRequirement>;
}
export interface SignInCounts {
    noSignIn?: NullableOption<number>;
    withSignIn?: NullableOption<number>;
}
export interface SignInLocation {
    /**
     * Provides the city where the sign-in originated. This is calculated 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 StatusBase {
    // Possible values are: success, warning, failure, skipped, unknownFutureValue. Supports $filter (eq, contains).
    status?: NullableOption<ProvisioningResult>;
}
export interface StatusDetails extends StatusBase {
    // Additional details if there is an error.
    additionalDetails?: NullableOption<string>;
    // Categorizes the error code. Possible values are Failure, NonServiceFailure, Success.
    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>;
}
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 TenantSecureScore {
    // When this Secure Score was created.
    createDateTime?: string;
    // The maximum historical Secure Score for the tenant.
    tenantMaxScore?: number;
    // The Secure Score.
    tenantScore?: number;
}
export interface UserRegistrationCount {
    // Provides the registration count for your tenant.
    registrationCount?: number;
    // Represents the status of user registration. Possible values are: registered, enabled, capable, and mfaRegistered.
    registrationStatus?: RegistrationStatusType;
}
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 multifactor 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 an entity instance.
    address?: NullableOption<string>;
    // The display name of an entity instance.
    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 Settings {
    // Specifies if the user's primary mailbox is hosted in the cloud and is enabled for Microsoft Graph.
    hasGraphMailbox?: boolean;
    // Specifies if the user has a MyAnalytics license assigned.
    hasLicense?: boolean;
    // Specifies if the user opted out of MyAnalytics.
    hasOptedOut?: boolean;
}
export interface ApplicationServicePrincipal {
    application?: NullableOption<Application>;
    servicePrincipal?: NullableOption<ServicePrincipal>;
}
export interface Credential {
    /**
     * The name of the field for this credential. e.g, username or password or phoneNumber. This is defined by the
     * application. Must match what is in the html field on singleSignOnSettings/password object.
     */
    fieldId?: NullableOption<string>;
    // The type for this credential. Valid values: username, password, or other.
    type?: NullableOption<string>;
    /**
     * The value for this credential. e.g, mysuperhiddenpassword. Note the value for passwords is write-only, the value can
     * never be read back.
     */
    value?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InformationalUrls {
    appSignUpUrl?: NullableOption<string>;
    singleSignOnDocumentationUrl?: NullableOption<string>;
}
export interface PasswordSingleSignOnCredentialSet {
    // A list of credential objects that define the complete sign in flow.
    credentials?: NullableOption<Credential[]>;
    // The ID of the user or group this credential set belongs to.
    id?: string;
}
export interface PasswordSingleSignOnField {
    // Title/label override for customization.
    customizedLabel?: NullableOption<string>;
    // Label that would be used if no customizedLabel is provided. Read only.
    defaultLabel?: NullableOption<string>;
    /**
     * Id used to identity the field type. This is an internal ID and possible values are param1, param2, paramuserName,
     * parampassword.
     */
    fieldId?: NullableOption<string>;
    // Type of the credential. The values can be text, password.
    type?: NullableOption<string>;
}
export interface PasswordSingleSignOnSettings {
    fields?: NullableOption<PasswordSingleSignOnField[]>;
}
export interface SupportedClaimConfiguration {
    nameIdPolicyFormat?: NullableOption<string>;
}
export interface AddIn {
    id?: NullableOption<string>;
    properties?: KeyValue[];
    type?: string;
}
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 SamlSingleSignOnSettings {
    // The relative URI the service provider would redirect to after completion of the single sign-on flow.
    relayState?: 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>;
}
export interface AuthenticationMethodFeatureConfiguration {
    // A single entity that's excluded from using this feature.
    excludeTarget?: NullableOption<FeatureTarget>;
    // A single entity that's allowed to use 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 {
    /**
     * Specifies whether a user is required to perform registration after snoozing 3 times. If true, the user is required to
     * register after 3 snoozes. If false, the user can snooze indefinitely. The default value is true.
     */
    enforceRegistrationAfterAllowedSnoozes?: NullableOption<boolean>;
    // 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 group.
    id?: string;
    // The type of the authentication method target. Possible values are: group and 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>;
}
// tslint:disable-next-line: interface-name
export interface IncludeTarget {
    // The ID of the entity targeted.
    id?: string;
    // The kind of entity targeted. Possible values are: user, group.
    targetType?: AuthenticationMethodTargetType;
}
export interface MicrosoftAuthenticatorFeatureSettings {
    // Determines whether users are able to approve push notifications on other Microsoft applications such as Outlook Mobile.
    companionAppAllowedState?: NullableOption<AuthenticationMethodFeatureConfiguration>;
    // 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>;
    /**
     * Specifies whether the user needs to enter a number in the Authenticator app from the login screen to complete their
     * login. Value is ignored for phone sign-in notifications.
     */
    numberMatchingRequiredState?: NullableOption<AuthenticationMethodFeatureConfiguration>;
}
export interface RegistrationEnforcement {
    // Run campaigns to remind users to set up targeted authentication methods.
    authenticationMethodsRegistrationCampaign?: NullableOption<AuthenticationMethodsRegistrationCampaign>;
}
export interface ReportSuspiciousActivitySettings {
    // Group IDs in scope for report suspicious activity.
    includeTarget?: IncludeTarget;
    /**
     * Specifies the state of the reportSuspiciousActivitySettings object. The possible values are: default, enabled,
     * disabled, unknownFutureValue. Setting to default results in a disabled state.
     */
    state?: AdvancedConfigState;
    // Specifies the number the user enters on their phone to report the MFA prompt as suspicious.
    voiceReportingCode?: NullableOption<number>;
}
export interface SystemCredentialPreferences {
    // Users and groups excluded from the preferred authentication method experience of the system.
    excludeTargets?: ExcludeTarget[];
    // Users and groups included in the preferred authentication method experience of the system.
    includeTargets?: IncludeTarget[];
    /**
     * Indicates whether the feature is enabled or disabled. 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 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>;
    /**
     * Determines the default value for the tenant affinity binding level. The possible values are: low, high,
     * unknownFutureValue.
     */
    x509CertificateDefaultRequiredAffinityLevel?: NullableOption<X509CertificateAffinityLevel>;
}
export interface X509CertificateRule {
    // The identifier of the X.509 certificate. Required.
    identifier?: NullableOption<string>;
    // The identifier of the certificate issuer.
    issuerSubjectIdentifier?: NullableOption<string>;
    // The identifier of the X.509 certificate policyOID.
    policyOidIdentifier?: NullableOption<string>;
    /**
     * The type of strong authentication mode. The possible values are: x509CertificateSingleFactor,
     * x509CertificateMultiFactor, unknownFutureValue. Required.
     */
    x509CertificateAuthenticationMode?: NullableOption<X509CertificateAuthenticationMode>;
    // The possible values are: low, high, unknownFutureValue.
    x509CertificateRequiredAffinityLevel?: NullableOption<X509CertificateAffinityLevel>;
    /**
     * The type of the X.509 certificate mode configuration rule. The possible values are: issuerSubject, policyOID,
     * unknownFutureValue, issuerSubjectAndPolicyOID. Note that you must use the Prefer: include-unknown-enum-members request
     * header to get the following values from this evolvable enum: issuerSubjectAndPolicyOID. Required.
     */
    x509CertificateRuleType?: NullableOption<X509CertificateRuleType>;
}
export interface X509CertificateIssuerHintsConfiguration {
    // The possible values are: disabled, enabled, unknownFutureValue.
    state?: NullableOption<X509CertificateIssuerHintsState>;
}
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;
    // The affinity level of the username binding rule. The possible values are: low, high, unknownFutureValue.
    trustAffinityLevel?: NullableOption<X509CertificateAffinityLevel>;
    /**
     * Defines the Microsoft Entra user property of the user object to use for the binding. The possible values are:
     * userPrincipalName, onPremisesUserPrincipalName, email. Required.
     */
    userProperty?: NullableOption<string>;
    // The field on the X.509 certificate to use for the binding. The possible values are: PrincipalName, RFC822Name.
    x509CertificateField?: NullableOption<string>;
}
export interface Phone {
    // The phone number.
    number?: NullableOption<string>;
    /**
     * The type of phone number. Possible values are: home, business, mobile, other, assistant, homeFax, businessFax,
     * otherFax, pager, radio.
     */
    type?: NullableOption<PhoneType>;
}
export interface SearchQuery {
    // The search query containing the search terms. Required.
    queryString?: NullableOption<string>;
    // Provides a way to decorate the query string. Supports both KQL and query variables. Optional.
    queryTemplate?: NullableOption<string>;
}
export interface SearchQueryString {
    // Contains the actual search terms of the request.
    query?: 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, '2019-04-16T09:00:00'.
    dateTime?: string;
    // Represents a time zone, for example, 'Pacific Standard Time'. See below for 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>;
    // Indicates if the SMS notifications will be sent to the customer for the appointment
    smsNotificationsEnabled?: boolean;
    // 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. 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 {
    // Indicates whether it's mandatory to answer the custom question.
    isRequired?: boolean;
    // If 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 and 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.
    end?: string;
    // The time of the day when work starts. For example, 08:00:00.0000000.
    start?: 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 post office box number.
    postOfficeBox?: NullableOption<string>;
    // The state.
    state?: NullableOption<string>;
    // The street.
    street?: NullableOption<string>;
    // The type of address. Possible values are: unknown, home, business, other.
    type?: NullableOption<PhysicalAddressType>;
}
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 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 PlannerFieldRules {
    // The default rules that apply if no override matches to the current data.
    defaultRules?: NullableOption<string[]>;
    // Overrides that specify different rules for specific data associated with the field.
    overrides?: NullableOption<PlannerRuleOverride[]>;
}
export interface PlannerRuleOverride {
    // Name of the override. Allowed override values will be dependent on the property affected by the rule.
    name?: NullableOption<string>;
    // Overridden rules. These are used as rules for the override instead of the default rules.
    rules?: NullableOption<string[]>;
}
export interface PlannerPlanConfigurationBucketDefinition {
    // Application-specified identifier of the bucket.
    externalBucketId?: NullableOption<string>;
}
export interface PlannerPlanConfigurationBucketLocalization {
    // Application-specified identifier of the bucket.
    externalBucketId?: NullableOption<string>;
    // Name of the bucket.
    name?: NullableOption<string>;
}
export interface PlannerPropertyRule {
    /**
     * Identifies which type of property rules is represented by this instance. The possible values are: taskRule, bucketRule,
     * planRule, unknownFutureValue.
     */
    ruleKind?: NullableOption<PlannerRuleKind>;
}
export interface PlannerTaskConfigurationRoleBase {
    // Type of the role. The possible values are: relationship, unknownFutureValue.
    roleKind?: PlannerUserRoleKind;
}
export interface PlannerRelationshipBasedUserType extends PlannerTaskConfigurationRoleBase {
    /**
     * Identifies the relationship of the caller to the task. The possible values are: defaultRules, groupOwners,
     * groupMembers, taskAssignees, applications, unknownFutureValue.
     */
    role?: PlannerRelationshipUserRoles;
}
export interface PlannerTaskPolicy {
    /**
     * The rules that should be enforced on the tasks when they're being changed outside of the scenario, based on the role of
     * the caller.
     */
    rules?: NullableOption<PlannerTaskRoleBasedRule[]>;
}
export interface PlannerTaskRoleBasedRule {
    // Default rule that applies when a property or action-specific rule is not provided. Possible values are: Allow, Block
    defaultRule?: NullableOption<string>;
    // Rules for specific properties and actions.
    propertyRule?: NullableOption<PlannerTaskPropertyRule>;
    // The role these rules apply to.
    role?: NullableOption<PlannerTaskConfigurationRoleBase>;
}
export interface PlannerTaskPropertyRule extends PlannerPropertyRule {
    /**
     * Rules and restrictions for applied categories. This value does not currently support overrides. Accepted values for the
     * default rule and individual overrides are allow, block.
     */
    appliedCategories?: NullableOption<PlannerFieldRules>;
    /**
     * Rules and restrictions for assignments. Allowed overrides are userCreated and applicationCreated. Accepted values for
     * the default rule and individual overrides are allow, add, addSelf, addOther, remove, removeSelf, removeOther, block.
     */
    assignments?: NullableOption<PlannerFieldRules>;
    /**
     * Rules and restrictions for checklist. Allowed overrides are userCreated and applicationCreated. Accepted values for the
     * default rule and individual overrides are allow, add, remove, update, check, reorder, block.
     */
    checkLists?: NullableOption<PlannerFieldRules>;
    /**
     * Rules and restrictions for completion requirements of the task. Accepted values are allow, add, remove, edit, and
     * block.
     */
    completionRequirements?: NullableOption<string[]>;
    // Rules and restrictions for deleting the task. Accepted values are allow and block.
    delete?: NullableOption<string[]>;
    // Rules and restrictions for changing the due date of the task. Accepted values are allow and block.
    dueDate?: NullableOption<string[]>;
    /**
     * Rules and restrictions for moving the task between buckets or plans. Accepted values are allow, moveBetweenPlans,
     * moveBetweenBuckets, and block.
     */
    move?: NullableOption<string[]>;
    // Rules and restrictions for changing the notes of the task. Accepted values are allow and block.
    notes?: NullableOption<string[]>;
    // Rules and restrictions for changing the order of the task. Accepted values are allow and block.
    order?: NullableOption<string[]>;
    /**
     * Rules and restrictions for changing the completion percentage of the task. Accepted values are allow, setToComplete,
     * overrideRequirements, setToNotStarted, setToInProgress, and block.
     */
    percentComplete?: NullableOption<string[]>;
    // Rules and restrictions for changing the preview type of the task. Accepted values are allow and block.
    previewType?: NullableOption<string[]>;
    // Rules and restrictions for changing the priority of the task. Accepted values are allow and block.
    priority?: NullableOption<string[]>;
    /**
     * Rules and restrictions for references. Allowed overrides are userCreated and applicationCreated. Accepted values for
     * the default rule and individual overrides are allow, add, remove, block.
     */
    references?: NullableOption<PlannerFieldRules>;
    // Rules and restrictions for changing the start date of the task. Accepted values are allow and block.
    startDate?: NullableOption<string[]>;
    // Rules and restrictions for changing the title of the task. Accepted values are allow and block.
    title?: NullableOption<string[]>;
}
export interface CloudPcAuditActor {
    // Name of the application.
    applicationDisplayName?: NullableOption<string>;
    // Microsoft Entra application ID.
    applicationId?: NullableOption<string>;
    // IP address.
    ipAddress?: NullableOption<string>;
    // The delegated partner tenant ID.
    remoteTenantId?: NullableOption<string>;
    // The delegated partner user ID.
    remoteUserId?: NullableOption<string>;
    // Service Principal Name (SPN).
    servicePrincipalName?: NullableOption<string>;
    // The actor type. Possible values include ItPro, Application, Partner and Unknown.
    type?: CloudPcAuditActorType;
    // Microsoft Entra user ID.
    userId?: NullableOption<string>;
    // List of user permissions and application permissions when the audit event was performed.
    userPermissions?: string[];
    // User Principal Name (UPN).
    userPrincipalName?: NullableOption<string>;
    // List of role scope tags.
    userRoleScopeTags?: NullableOption<CloudPcUserRoleScopeTagInfo[]>;
}
export interface CloudPcUserRoleScopeTagInfo {
    // Scope tag display name.
    displayName?: string;
    // Scope tag ID.
    roleScopeTagId?: string;
}
export interface CloudPcAuditProperty {
    // Display name.
    displayName?: string;
    // New value.
    newValue?: string;
    // Old value.
    oldValue?: NullableOption<string>;
}
export interface CloudPcAuditResource {
    // The resource entity display name.
    displayName?: NullableOption<string>;
    // A list of modified properties.
    modifiedProperties?: CloudPcAuditProperty[];
    // The ID of the audit resource.
    resourceId?: string;
    // The type of the audit resource.
    type?: string;
}
export interface CloudPcBulkActionSummary {
    failedCount?: number;
    inProgressCount?: number;
    notSupportedCount?: number;
    pendingCount?: number;
    successfulCount?: number;
}
export interface CloudPcBulkRemoteActionResult {
    // A list of all the Intune managed device IDs that completed the bulk action with a failure.
    failedDeviceIds?: NullableOption<string[]>;
    // A list of all the Intune managed device IDs that were not found when the bulk action was attempted.
    notFoundDeviceIds?: NullableOption<string[]>;
    // A list of all the Intune managed device IDs that were identified as unsupported for the bulk action.
    notSupportedDeviceIds?: NullableOption<string[]>;
    // A list of all the Intune managed device IDs that completed the bulk action successfully.
    successfulDeviceIds?: NullableOption<string[]>;
}
export interface CloudPcConnectionSettings {
    enableSingleSignOn?: boolean;
}
export interface CloudPcConnectivityEvent {
    /**
     * Indicates the date and time when this event was created. The timestamp is shown in ISO 8601 format and Coordinated
     * Universal Time (UTC). For example, midnight UTC on Jan 1, 2014 appears as 2014-01-01T00:00:00Z.
     */
    eventDateTime?: string;
    // Name of the event.
    eventName?: NullableOption<string>;
    // Result of this event. Possible values are: unknown, success, failure, and unknownFutureValue.
    eventResult?: CloudPcConnectivityEventResult;
    /**
     * Type of this event. Possible values are: unknown, userConnection, userTroubleshooting, deviceHealthCheck, and
     * unknownFutureValue.
     */
    eventType?: CloudPcConnectivityEventType;
    // Additional message for this event.
    message?: NullableOption<string>;
}
export interface CloudPcConnectivityResult {
    // A list of failed health check items. If the status property is available, this property will be empty.
    failedHealthCheckItems?: NullableOption<CloudPcHealthCheckItem[]>;
    /**
     * Connectivity status of the Cloud PC. Possible values are: unknown, available, availableWithWarning, unavailable, and
     * unknownFutureValue.
     */
    status?: CloudPcConnectivityStatus;
    /**
     * Datetime when the status was updated. The timestamp is shown in ISO 8601 format and Coordinated Universal Time (UTC).
     * For example, midnight UTC on Jan 1, 2014 appears as 2014-01-01T00:00:00Z.
     */
    updatedDateTime?: string;
}
export interface CloudPcHealthCheckItem {
    // Additional message for this health check.
    additionalDetails?: NullableOption<string>;
    // The connectivity health check item name.
    displayName?: string;
    /**
     * Timestamp when the last check occurs. The timestamp is shown in ISO 8601 format and Coordinated Universal Time (UTC).
     * For example, midnight UTC on Jan 1, 2014 appears as 2014-01-01T00:00:00Z.
     */
    lastHealthCheckDateTime?: NullableOption<string>;
    // The result of this health check item. Possible values are: unknown, success, failure.
    result?: CloudPcConnectivityEventResult;
}
export interface CloudPcDomainJoinConfiguration {
    /**
     * The Azure network connection ID that matches the virtual network IT admins want the provisioning policy to use when
     * they create Cloud PCs. You can use this property in both domain join types: Azure AD joined or Hybrid Microsoft Entra
     * joined. If you enter an onPremisesConnectionId, leave regionName as empty.
     */
    onPremisesConnectionId?: NullableOption<string>;
    /**
     * The logical geographic group this region belongs to. Multiple regions can belong to one region group. A customer can
     * select a regionGroup when provisioning a Cloud PC, and the Cloud PC will be put in one of the regions in the group
     * based on resource status. For example, the Europe region group contains the Northern Europe and Western Europe regions.
     * Possible values are: default, australia, canada, usCentral, usEast, usWest, france, germany, europeUnion,
     * unitedKingdom, japan, asia, india, southAmerica, euap, usGovernment, usGovernmentDOD, unknownFutureValue, norway,
     * switzerland, and southKorea. Read-only.
     */
    regionGroup?: NullableOption<CloudPcRegionGroup>;
    /**
     * The supported Azure region where the IT admin wants the provisioning policy to create Cloud PCs. The underlying virtual
     * network will be created and managed by the Windows 365 service. This can only be entered if the IT admin chooses
     * Microsoft Entra joined as the domain join type. If you enter a regionName, leave onPremisesConnectionId as empty.
     */
    regionName?: NullableOption<string>;
    /**
     * Specifies how the provisioned Cloud PC will be joined to Microsoft Entra ID. If you choose the hybridAzureADJoin type,
     * only provide a value for the onPremisesConnectionId property and leave regionName as empty. If you choose the
     * azureADJoin type, provide a value for either onPremisesConnectionId or regionName. The possible values are:
     * azureADJoin, hybridAzureADJoin, unknownFutureValue.
     */
    type?: NullableOption<CloudPcDomainJoinType>;
}
export interface CloudPcForensicStorageAccount extends Entity {
    // The ID of the storage account.
    storageAccountId?: NullableOption<string>;
    // The name of the storage account.
    storageAccountName?: NullableOption<string>;
}
export interface CloudPcLaunchInfo {
    // The unique identifier of the Cloud PC.
    cloudPcId?: NullableOption<string>;
    // The connect URL of the Cloud PC.
    cloudPcLaunchUrl?: NullableOption<string>;
    /**
     * Indicates whether the Cloud PC supports switch functionality. If the value is true, it supports switch functionality;
     * otherwise, false.
     */
    windows365SwitchCompatible?: NullableOption<boolean>;
    /**
     * Indicates the reason the Cloud PC doesn't support switch. CPCOsVersionNotMeetRequirement indicates that the user needs
     * to update their Cloud PC operation system version. CPCHardwareNotMeetRequirement indicates that the Cloud PC needs more
     * CPU or RAM to support the functionality.
     */
    windows365SwitchNotCompatibleReason?: NullableOption<string>;
}
export interface CloudPcLoginResult {
    /**
     * The time of the Cloud PC sign in action. The timestamp is shown in ISO 8601 format and Coordinated Universal Time
     * (UTC). For example, midnight UTC on Jan 1, 2014 appears as '2014-01-01T00:00:00Z'. Read-only.
     */
    time?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface CloudPcManagementAssignmentTarget {}
export interface CloudPcManagementGroupAssignmentTarget extends CloudPcManagementAssignmentTarget {
    // The ID of the target group for the assignment.
    groupId?: NullableOption<string>;
    /**
     * The unique identifier for the service plan that indicates which size of the Cloud PC to provision for the user. Use a
     * null value, when the provisioningType is dedicated.
     */
    servicePlanId?: NullableOption<string>;
}
export interface CloudPcOnPremisesConnectionHealthCheck {
    // More details about the health check or the recommended action.
    additionalDetails?: NullableOption<string>;
    // The unique identifier of the health check item-related activities. This identifier can be useful in troubleshooting.
    correlationId?: NullableOption<string>;
    // The display name for this health check item.
    displayName?: NullableOption<string>;
    // The end time of the health check item. Read-only.
    endDateTime?: string;
    // The type of error that occurred during this health check.
    errorType?: NullableOption<CloudPcOnPremisesConnectionHealthCheckErrorType>;
    // The recommended action to fix the corresponding error.
    recommendedAction?: NullableOption<string>;
    // The start time of the health check item. Read-only.
    startDateTime?: string;
    /**
     * The status of the health check item. Possible values are: pending, running, passed, failed, warning, informational,
     * unknownFutureValue. Read-only.
     */
    status?: CloudPcOnPremisesConnectionStatus;
}
export interface CloudPcOnPremisesConnectionStatusDetails {
    /**
     * The end time of the connection health check. 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?: string;
    // All checks that are done on the connection.
    healthChecks?: NullableOption<CloudPcOnPremisesConnectionHealthCheck[]>;
    /**
     * The start time of the connection health check. 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?: string;
}
export interface CloudPcPartnerAgentInstallResult {
    errorMessage?: NullableOption<string>;
    /**
     * The status of a partner agent installation. Possible values are: installed, installFailed, installing, uninstalling,
     * uninstallFailed and licensed. Read-Only.
     */
    installStatus?: NullableOption<CloudPcPartnerAgentInstallStatus>;
    /**
     * Indicates if the partner agent is a third party. When 'TRUE' the agent is a third-party (non-Microsoft) agent and when
     * 'FALSE' the agent is a Microsoft agent or isn't known. The default value is 'FALSE'
     */
    isThirdPartyPartner?: NullableOption<boolean>;
    /**
     * The name of the partner agent, whether first party or third party. Possible values for third-party partners are Citrix
     * and VMware. Read-Only.
     */
    partnerAgentName?: NullableOption<CloudPcPartnerAgentName>;
    /**
     * Indicates if the partner agent is a third party. When 'TRUE' the agent is a third-party (non-Microsoft) agent and when
     * 'FALSE' the agent is a Microsoft agent or isn't known. The default value is 'FALSE'
     */
    retriable?: NullableOption<boolean>;
}
export interface CloudPcRemoteActionCapability {
    /**
     * Indicates the state of the supported action capability to perform a Cloud PC remote action. Possible values are:
     * enabled, disabled. Default value is enabled.
     */
    actionCapability?: NullableOption<ActionCapability>;
    /**
     * The name of the supported Cloud PC remote action. Possible values are: unknown, restart, rename, restore, resize,
     * reprovision, troubleShoot, changeUserAccountType, placeUnderReview. Default value is unknown.
     */
    actionName?: NullableOption<CloudPcRemoteActionName>;
}
export interface CloudPcRemoteActionResult {
    /**
     * The specified action. Supported values in the Microsoft Endpoint Manager portal are: Reprovision, Resize, Restore.
     * Supported values in enterprise Cloud PC devices are: Reboot, Rename, Reprovision, Troubleshoot.
     */
    actionName?: NullableOption<string>;
    // State of the action. Possible values are: None, pending, canceled, active, done, failed, notSupported. Read-only.
    actionState?: NullableOption<ActionState>;
    // The ID of the Cloud PC device on which the remote action is performed. Read-only.
    cloudPcId?: NullableOption<string>;
    /**
     * Last update time for action. The Timestamp is shown in ISO 8601 format and Coordinated Universal Time (UTC). For
     * example, midnight UTC on Jan 1, 2014 appears as '2014-01-01T00:00:00Z'.
     */
    lastUpdatedDateTime?: NullableOption<string>;
    // The ID of the Intune managed device on which the remote action is performed. Read-only.
    managedDeviceId?: NullableOption<string>;
    /**
     * Time the action was initiated. The Timestamp is shown in ISO 8601 format and Coordinated Universal Time (UTC). For
     * example, midnight UTC on Jan 1, 2014 appears as '2014-01-01T00:00:00Z'.
     */
    startDateTime?: NullableOption<string>;
    // The details of the Cloud PC status.
    statusDetails?: NullableOption<CloudPcStatusDetails>;
}
export interface CloudPcStatusDetails {
    // Any additional information about the Cloud PC status.
    additionalInformation?: NullableOption<KeyValuePair[]>;
    // The code associated with the Cloud PC status.
    code?: NullableOption<string>;
    // The status message.
    message?: NullableOption<string>;
}
export interface CloudPcResizeValidationResult {
    // The cloudPC ID that corresponds to its unique identifier.
    cloudPcId?: NullableOption<string>;
    /**
     * Describes a list of the validation result for the Cloud PC resize action. The possible values are: success,
     * cloudPcNotFound, operationCnflict, operationNotSupported, targetLicenseHasAssigned, internalServerError, and
     * unknownFutureValue.
     */
    validationResult?: NullableOption<CloudPcResizeValidationCode>;
}
export interface CloudPcRestorePointSetting {
    /**
     * The time interval in hours to take snapshots (restore points) of a Cloud PC automatically. Possible values are 4, 6,
     * 12, 16, and 24. The default frequency is 12 hours.
     */
    frequencyInHours?: NullableOption<number>;
    /**
     * If true, the user has the ability to use snapshots to restore Cloud PCs. If false, non-admin users can't use snapshots
     * to restore the Cloud PC.
     */
    userRestoreEnabled?: NullableOption<boolean>;
}
export interface CloudPcReviewStatus {
    // The resource ID of the Azure Storage account in which the Cloud PC snapshot is being saved.
    azureStorageAccountId?: NullableOption<string>;
    // The name of the Azure Storage account in which the Cloud PC snapshot is being saved.
    azureStorageAccountName?: NullableOption<string>;
    // The name of the container in an Azure Storage account in which the Cloud PC snapshot is being saved.
    azureStorageContainerName?: NullableOption<string>;
    // True if the Cloud PC is set to in review by the administrator.
    inReview?: boolean;
    /**
     * The specific date and time of the Cloud PC snapshot that was taken and saved automatically, when the Cloud PC is set to
     * in review. The timestamp is shown in ISO 8601 format and Coordinated Universal Time (UTC). For example, midnight UTC on
     * Jan 1, 2014 appears as 2014-01-01T00:00:00Z.
     */
    restorePointDateTime?: NullableOption<string>;
    /**
     * The specific date and time when the Cloud PC was set to in review. The timestamp is shown in ISO 8601 format and
     * Coordinated Universal Time (UTC). For example, midnight UTC on Jan 1, 2014 appears as 2014-01-01T00:00:00Z.
     */
    reviewStartDateTime?: NullableOption<string>;
    // The ID of the Azure subscription in which the Cloud PC snapshot is being saved, in GUID format.
    subscriptionId?: NullableOption<string>;
    // The name of the Azure subscription in which the Cloud PC snapshot is being saved.
    subscriptionName?: NullableOption<string>;
    // The access level of the end user on the Cloud PC. Possible values are: unrestricted, restricted.
    userAccessLevel?: CloudPcUserAccessLevel;
}
export interface CloudPcScopedPermission {
    permission?: NullableOption<string>;
    scopeIds?: NullableOption<string[]>;
}
export interface CloudPcSourceDeviceImage {
    // The display name for the source image.
    displayName?: NullableOption<string>;
    // The ID of the source image.
    id?: NullableOption<string>;
    // The display name of subscription that hosts the source image.
    subscriptionDisplayName?: NullableOption<string>;
    // The ID of subscription that hosts the source image.
    subscriptionId?: NullableOption<string>;
}
export interface CloudPcSubscription extends Entity {
    // The ID of the subscription.
    subscriptionId?: NullableOption<string>;
    // The name of the subscription.
    subscriptionName?: NullableOption<string>;
}
export interface CloudPcTenantEncryptionSetting {
    lastSyncDateTime?: NullableOption<string>;
    tenantDiskEncryptionType?: NullableOption<CloudPcDiskEncryptionType>;
}
export interface CloudPcWindowsSettings {
    /**
     * The Windows language/region tag to use for language pack configuration and localization of the Cloud PC. The default
     * value is en-US, which corresponds to English (United States).
     */
    language?: NullableOption<string>;
}
export interface MicrosoftManagedDesktop {
    // The name of the Microsoft Managed Desktop profile that the Windows 365 Cloud PC is associated with.
    profile?: NullableOption<string>;
    /**
     * Indicates whether the provisioning policy enables Microsoft Managed Desktop. It indicates the type of plan under which
     * the device is managed if the provisioning policy is enabled. Possible values are: notManaged, premiumManaged,
     * standardManaged, starterManaged, unknownFutureValue.
     */
    type?: NullableOption<MicrosoftManagedDesktopType>;
}
export interface UnifiedRolePermission {
    // Set of tasks that can be performed on a resource.
    allowedResourceActions?: string[];
    // Optional constraints that must be met for the permission to be effective. Not supported for custom roles.
    condition?: NullableOption<string>;
    excludedResourceActions?: NullableOption<string[]>;
}
export interface DeviceManagementSettings {
    // The property to determine if Android device administrator enrollment is enabled for this account.
    androidDeviceAdministratorEnrollmentEnabled?: boolean;
    /**
     * The Derived Credential Provider to use for this account. Possible values are: notConfigured, entrustDataCard, purebred,
     * xTec, intercede.
     */
    derivedCredentialProvider?: DerivedCredentialProviderType;
    // The Derived Credential Provider self-service URI.
    derivedCredentialUrl?: NullableOption<string>;
    // The number of days a device is allowed to go without checking in to remain compliant.
    deviceComplianceCheckinThresholdDays?: number;
    /**
     * When the device does not check in for specified number of days, the company data might be removed and the device will
     * not be under management. Valid values 30 to 270
     */
    deviceInactivityBeforeRetirementInDay?: number;
    // Determines whether the autopilot diagnostic feature is enabled or not.
    enableAutopilotDiagnostics?: boolean;
    // Determines whether the device group membership report feature is enabled or not.
    enableDeviceGroupMembershipReport?: boolean;
    // Determines whether the enhanced troubleshooting UX is enabled or not.
    enableEnhancedTroubleshootingExperience?: boolean;
    // Determines whether the log collection feature should be available for use.
    enableLogCollection?: boolean;
    // Is feature enabled or not for enhanced jailbreak detection.
    enhancedJailBreak?: boolean;
    // The property to determine whether to ignore unsupported compliance settings on certian models of devices.
    ignoreDevicesForUnsupportedSettingsEnabled?: boolean;
    // 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 {
    // Collection of blocked actions on the company portal as per platform and device ownership types.
    companyPortalBlockedActions?: NullableOption<CompanyPortalBlockedAction[]>;
    // 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>;
    // The custom privacy message used to explain what the organization can see and do on managed devices.
    customCanSeePrivacyMessage?: NullableOption<string>;
    // The custom privacy message used to explain what the organization can’t see or do on managed devices.
    customCantSeePrivacyMessage?: NullableOption<string>;
    // The custom privacy message used to explain what the organization can’t see or do on managed devices.
    customPrivacyMessage?: NullableOption<string>;
    // Logo image displayed in Company Portal apps which have a dark background behind the logo.
    darkBackgroundLogo?: NullableOption<MimeContent>;
    /**
     * Applies to telemetry sent from all clients to the Intune service. When disabled, all proactive troubleshooting and
     * issue warnings within the client are turned off, and telemetry settings appear inactive or hidden to the device user.
     */
    disableClientTelemetry?: boolean;
    // Boolean that indicates if Device Category Selection will be shown in Company Portal
    disableDeviceCategorySelection?: boolean;
    // Company/organization name that is displayed to end users.
    displayName?: NullableOption<string>;
    /**
     * Customized device enrollment flow displayed to the end user . Possible values are: availableWithPrompts,
     * availableWithoutPrompts, unavailable.
     */
    enrollmentAvailability?: EnrollmentAvailabilityOptions;
    // Boolean that represents whether the adminsistrator has disabled the 'Factory Reset' action on corporate owned devices.
    isFactoryResetDisabled?: boolean;
    // Boolean that represents whether the adminsistrator has disabled the 'Remove Device' action on corporate owned devices.
    isRemoveDeviceDisabled?: boolean;
    // Customized image displayed in Company Portal app landing page
    landingPageCustomizedImage?: NullableOption<MimeContent>;
    // 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>;
    // List of scope tags assigned to the default branding profile
    roleScopeTagIds?: NullableOption<string[]>;
    /**
     * Boolean that indicates if a push notification is sent to users when their device ownership type changes from personal
     * to corporate
     */
    sendDeviceOwnershipChangePushNotification?: boolean;
    // Boolean that indicates if AzureAD Enterprise Apps will be shown in Company Portal
    showAzureADEnterpriseApps?: boolean;
    // Boolean that indicates if ConfigurationManagerApps will be shown in Company Portal
    showConfigurationManagerApps?: boolean;
    // 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;
    // Boolean that indicates if Office WebApps will be shown in Company Portal
    showOfficeWebApps?: boolean;
    // Primary theme color used in the Company Portal applications and web portal.
    themeColor?: NullableOption<RgbColor>;
}
export interface AdminConsent {
    /**
     * The admin consent state of sharing user and device data to Apple. Possible values are: notConfigured, granted,
     * notGranted.
     */
    shareAPNSData?: AdminConsentState;
    /**
     * Gets or sets the admin consent for sharing User experience analytics data. Possible values are: notConfigured, granted,
     * notGranted.
     */
    shareUserExperienceAnalyticsData?: AdminConsentState;
}
export interface DataProcessorServiceForWindowsFeaturesOnboarding {
    /**
     * Indicates whether the tenant has enabled MEM features utilizing Data Processor Service for Windows (DPSW) data. When
     * TRUE, the tenant has enabled MEM features utilizing Data Processor Service for Windows (DPSW) data. When FALSE, the
     * tenant has not enabled MEM features utilizing Data Processor Service for Windows (DPSW) data. Default value is FALSE.
     */
    areDataProcessorServiceForWindowsFeaturesEnabled?: boolean;
    /**
     * Indicates whether the tenant has required Windows license. When TRUE, the tenant has the required Windows license. When
     * FALSE, the tenant does not have the required Windows license. Default value is FALSE.
     */
    hasValidWindowsLicense?: boolean;
}
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 ManagedDeviceCleanupSettings {
    // Number of days when the device has not contacted Intune.
    deviceInactivityBeforeRetirementInDays?: NullableOption<string>;
}
export interface UserExperienceAnalyticsAnomalySeverityOverview {
    // Indicates count of high severity anomalies which have been detected. Valid values -2147483648 to 2147483647
    highSeverityAnomalyCount?: number;
    // Indicates count of informational severity anomalies which have been detected. Valid values -2147483648 to 2147483647
    informationalSeverityAnomalyCount?: number;
    // Indicates count of low severity anomalies which have been detected. Valid values -2147483648 to 2147483647
    lowSeverityAnomalyCount?: number;
    // Indicates count of medium severity anomalies which have been detected. Valid values -2147483648 to 2147483647
    mediumSeverityAnomalyCount?: 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 ConnectorStatusDetails {
    // Connector Instance Id
    connectorInstanceId?: NullableOption<string>;
    // Connector name
    connectorName?: ConnectorName;
    // Event datetime
    eventDateTime?: string;
    // Connector health state
    status?: ConnectorHealthState;
}
export interface ChromeOSDeviceProperty {
    // Name of the property
    name?: NullableOption<string>;
    // Whether this property is updatable
    updatable?: boolean;
    // Value of the property
    value?: NullableOption<string>;
    // Type of the value
    valueType?: NullableOption<string>;
}
export interface ConfigurationManagerClientEnabledFeatures {
    // Whether compliance policy is managed by Intune
    compliancePolicy?: boolean;
    // Whether device configuration is managed by Intune
    deviceConfiguration?: boolean;
    // Whether Endpoint Protection is managed by Intune
    endpointProtection?: boolean;
    // Whether inventory is managed by Intune
    inventory?: boolean;
    // Whether modern application is managed by Intune
    modernApps?: boolean;
    // Whether Office application is managed by Intune
    officeApps?: boolean;
    // Whether resource access is managed by Intune
    resourceAccess?: boolean;
    // Whether Windows Update for Business is managed by Intune
    windowsUpdateForBusiness?: boolean;
}
export interface ConfigurationManagerClientHealthState {
    // Error code for failed state.
    errorCode?: number;
    // Datetime for last sync with configuration manager management point.
    lastSyncDateTime?: string;
    /**
     * Current configuration manager client state. Possible values are: unknown, installed, healthy, installFailed,
     * updateFailed, communicationError.
     */
    state?: ConfigurationManagerClientState;
}
export interface ConfigurationManagerClientInformation {
    // Configuration Manager Client Id from SCCM
    clientIdentifier?: NullableOption<string>;
    // Configuration Manager Client version from SCCM
    clientVersion?: NullableOption<string>;
    // Configuration Manager Client blocked status from SCCM
    isBlocked?: 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>;
    /**
     * Indicates whether the device has Firmware protection enabled. Firmware protection is a set of features that helps to
     * ensure attackers can't get your device to start with untrusted or malicious firmware. Possible values are
     * "systemGuardSecureLaunch", "firmwareAttackSurfaceReduction", "disabled" and "notApplicable". "systemGuardSecureLaunch"
     * indicates System Guard Secure Launch is enabled for Firmware protection. "firmwareAttackSurfaceReduction" indicates
     * Firmware Attack Surface Reduction is enabled for Firmware protection. "disabled" indicates Firmware protection is
     * disabled. "notApplicable" indicates the device is not a Windows 11 device. Default value is "notApplicable".
     */
    firmwareProtection?: FirmwareProtectionType;
    // 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>;
    /**
     * Indicates whether the device has Memory access protection enabled. A Windows security feature that protects against
     * external peripherals from gaining unauthorized access to memory. Possible values are "enabled", "disabled" and
     * "notApplicable". "enabled" indicates Memory access protection is enabled. "disabled" indicates Memory access protection
     * is disabled. "notApplicable" indicates the device is not a Windows 11 device. Default value is "notApplicable".
     */
    memoryAccessProtection?: AzureAttestationSettingStatus;
    /**
     * Indicates whether the device has Memory Integrity protection enabled. Memory Integrity is a feature of
     * Virtualization-based security, also known as Hypervisor-protected code integrity (HVCI). It improves the threat mode of
     * Windows and provides stronger protections against malware trying to exploit the Windows kernel. Possible values are
     * "enabled", "disabled" and "notApplicable". "enabled" indicates Memory Integrity protection is enabled. "disabled"
     * indicates Memory Integrity protection is disabled. "notApplicable" indicates the device is not a Windows 11 device.
     * Default value is "notApplicable".
     */
    memoryIntegrityProtection?: AzureAttestationSettingStatus;
    // 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>;
    /**
     * Indicates whether the device has Secured-core PC enabled. Secured-core PCs provide protections that are useful against
     * sophisticated attacks and provide increased assurance when handling mission-critical data. Possible values are
     * "enabled", "disabled" and "notApplicable". "enabled" indicates Secured-core PC is enabled. "disabled" indicates
     * Secured-core PC is disabled. "notApplicable" indicates the device is not a Windows 11 device. Default value is
     * "notApplicable".
     */
    securedCorePC?: AzureAttestationSettingStatus;
    /**
     * Indicates the device meets enhanced hardware security. Possible values are "level1", "level2", "level3" and
     * "notApplicable". "level1" indicates that deny System Management Mode (SMM) read/write access to OS and
     * Virtualization-based security (VBS) memory. "level2" indicates that in addition to the System Management Mode (SMM)
     * Level 1 protections, this level prevents System Management Mode (SMM) from tampering with Input-Output Memory
     * Management Unit (IOMMU) config. "level3" indicates that in addition to the System Management Mode (SMM) Level 2
     * protections, this level reduces System Management Mode (SMM) save state capabilities. "notApplicable" indicates that
     * the device does not have Firmware protection (System Management Mode) enabled. Default value is "notApplicable".
     */
    systemManagementMode?: SystemManagementModeLevel;
    // 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>;
    /**
     * Indicates whether the device has Virtualization-based security (VBS) enabled. Virtualization-based security (VBS) uses
     * hardware virtualization and the Windows hypervisor to create an isolated virtual environment that becomes the root of
     * trust of the OS that assumes the kernel can be compromised. Possible values are "enabled", "disabled" and
     * "notApplicable". "enabled" indicates Virtualization-based security (VBS) is enabled. "disabled" indicates
     * Virtualization-based security (VBS) is disabled. "notApplicable" indicates the device is not a Windows 11 device.
     * Default value is "notApplicable".
     */
    virtualizationBasedSecurity?: AzureAttestationSettingStatus;
    // 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 DeviceIdentityAttestationDetail {
    /**
     * Indicates the attestation status of the managed device. And in which way. Default: Unknown. This property is read-only.
     * Possible values are: unknown, trusted, unTrusted, notSupported, incompleteData, unknownFutureValue.
     */
    deviceIdentityAttestationStatus?: DeviceIdentityAttestationStatus;
}
export interface HardwareInformation {
    // The number of charge cycles the device’s current battery has gone through. Valid values 0 to 2147483647
    batteryChargeCycles?: number;
    // The device’s current battery’s health percentage. Valid values 0 to 100
    batteryHealthPercentage?: number;
    /**
     * The battery level, between 0.0 and 100, or null if the battery level cannot be determined. The update frequency of this
     * property is per-checkin. Note this property is currently supported only on devices running iOS 5.0 and later, and is
     * available only when Device Information access right is obtained. Valid values 0 to 100
     */
    batteryLevelPercentage?: NullableOption<number>;
    // The serial number of the device’s current battery
    batterySerialNumber?: NullableOption<string>;
    // Cellular technology of the device
    cellularTechnology?: NullableOption<string>;
    /**
     * Returns the fully qualified domain name of the device (if any). If the device is not domain-joined, it returns an empty
     * string.
     */
    deviceFullQualifiedDomainName?: NullableOption<string>;
    /**
     * Local System Authority (LSA) credential guard status. . Possible values are: running, rebootRequired, notLicensed,
     * notConfigured, virtualizationBasedSecurityNotRunning.
     */
    deviceGuardLocalSystemAuthorityCredentialGuardState?: DeviceGuardLocalSystemAuthorityCredentialGuardState;
    /**
     * Virtualization-based security hardware requirement status. Possible values are: meetHardwareRequirements,
     * secureBootRequired, dmaProtectionRequired, hyperVNotSupportedForGuestVM, hyperVNotAvailable.
     */
    deviceGuardVirtualizationBasedSecurityHardwareRequirementState?: DeviceGuardVirtualizationBasedSecurityHardwareRequirementState;
    /**
     * Virtualization-based security status. . Possible values are: running, rebootRequired, require64BitArchitecture,
     * notLicensed, notConfigured, doesNotMeetHardwareRequirements, other.
     */
    deviceGuardVirtualizationBasedSecurityState?: DeviceGuardVirtualizationBasedSecurityState;
    /**
     * A standard error code indicating the last error, or 0 indicating no error (default). The update frequency of this
     * property is daily. Note this property is currently supported only for Windows based Device based subscription
     * licensing. Valid values 0 to 2147483647
     */
    deviceLicensingLastErrorCode?: number;
    /**
     * Error text message as a descripition for deviceLicensingLastErrorCode. The update frequency of this property is daily.
     * Note this property is currently supported only for Windows based Device based subscription licensing.
     */
    deviceLicensingLastErrorDescription?: NullableOption<string>;
    /**
     * Device based subscription licensing status. The update frequency of this property is daily. Note this property is
     * currently supported only for Windows based Device based subscription licensing. In case it is not supported, the value
     * will be set to unknown (-1). Possible values are: licenseRefreshStarted, licenseRefreshPending,
     * deviceIsNotAzureActiveDirectoryJoined, verifyingMicrosoftDeviceIdentity, deviceIdentityVerificationFailed,
     * verifyingMicrosoftAccountIdentity, microsoftAccountVerificationFailed, acquiringDeviceLicense, refreshingDeviceLicense,
     * deviceLicenseRefreshSucceed, deviceLicenseRefreshFailed, removingDeviceLicense, deviceLicenseRemoveSucceed,
     * deviceLicenseRemoveFailed, unknownFutureValue, unknown.
     */
    deviceLicensingStatus?: DeviceLicensingStatus;
    // eSIM identifier
    esimIdentifier?: NullableOption<string>;
    // Free storage space of the device.
    freeStorageSpace?: number;
    // IMEI
    imei?: NullableOption<string>;
    // IPAddressV4
    ipAddressV4?: NullableOption<string>;
    // Encryption status of the device
    isEncrypted?: boolean;
    // Shared iPad
    isSharedDevice?: boolean;
    // Supervised mode of the device
    isSupervised?: boolean;
    // Manufacturer of the device
    manufacturer?: NullableOption<string>;
    // MEID
    meid?: NullableOption<string>;
    // Model of the device
    model?: NullableOption<string>;
    // String that specifies the OS edition.
    operatingSystemEdition?: NullableOption<string>;
    // Operating system language of the device
    operatingSystemLanguage?: NullableOption<string>;
    /**
     * Int that specifies the Windows Operating System ProductType. More details here
     * https://go.microsoft.com/fwlink/?linkid=2126950. Valid values 0 to 2147483647
     */
    operatingSystemProductType?: number;
    // Operating System Build Number on Android device
    osBuildNumber?: NullableOption<string>;
    // Phone number of the device
    phoneNumber?: NullableOption<string>;
    /**
     * The product name, e.g. iPad8,12 etc. The update frequency of this property is weekly. Note this property is currently
     * supported only on iOS/MacOS devices, and is available only when Device Information access right is obtained.
     */
    productName?: NullableOption<string>;
    /**
     * The number of users currently on this device, or null (default) if the value of this property cannot be determined. The
     * update frequency of this property is per-checkin. Note this property is currently supported only on devices running iOS
     * 13.4 and later, and is available only when Device Information access right is obtained. Valid values 0 to 2147483647
     */
    residentUsersCount?: NullableOption<number>;
    // Serial number.
    serialNumber?: NullableOption<string>;
    // All users on the shared Apple device
    sharedDeviceCachedUsers?: NullableOption<SharedAppleDeviceUser[]>;
    // SubnetAddress
    subnetAddress?: NullableOption<string>;
    // Subscriber carrier of the device
    subscriberCarrier?: NullableOption<string>;
    // BIOS version as reported by SMBIOS
    systemManagementBIOSVersion?: NullableOption<string>;
    // Total storage space of the device.
    totalStorageSpace?: number;
    // The identifying information that uniquely names the TPM manufacturer
    tpmManufacturer?: NullableOption<string>;
    // String that specifies the specification version.
    tpmSpecificationVersion?: NullableOption<string>;
    // The version of the TPM, as specified by the manufacturer
    tpmVersion?: NullableOption<string>;
    // WiFi MAC address of the device
    wifiMac?: NullableOption<string>;
    /**
     * A list of wired IPv4 addresses. The update frequency (the maximum delay for the change of property value to be
     * synchronized from the device to the cloud storage) of this property is daily. Note this property is currently supported
     * only on devices running on Windows.
     */
    wiredIPv4Addresses?: NullableOption<string[]>;
}
export interface LoggedOnUser {
    // Date time when user logs on
    lastLogOnDateTime?: string;
    // User id
    userId?: NullableOption<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 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 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 {
    upns?: NullableOption<string[]>;
    /**
     * 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 SecurityProviderStatus {
    enabled?: NullableOption<boolean>;
    endpoint?: NullableOption<string>;
    provider?: NullableOption<string>;
    region?: NullableOption<string>;
    vendor?: NullableOption<string>;
}
export interface TeamDiscoverySettings {
    // If set to true, the team is visible via search and suggestions from the Teams client.
    showInTeamsSearchAndSuggestions?: NullableOption<boolean>;
}
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 any 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 sub-code.
    subcode?: number;
}
export interface Deleted {
    // Represents the state of the deleted item.
    state?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface Root {}
export interface SiteSettings {
    // The language tag for the language used on this site.
    languageTag?: NullableOption<string>;
    // Indicates the time offset for the time zone of the site from Coordinated Universal Time (UTC).
    timeZone?: NullableOption<string>;
}
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>;
}
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>;
}
// tslint:disable-next-line: no-empty-interface
export interface ApiAuthenticationConfigurationBase {}
export interface AssignmentOrder {
    /**
     * A list of identityUserFlowAttribute IDs provided to determine the order in which attributes should be collected within
     * a user flow.
     */
    order?: NullableOption<string[]>;
}
export interface AuthenticationAttributeCollectionInputConfiguration {
    // The built-in or custom attribute for which a value is being collected.
    attribute?: string;
    // The default value of the attribute displayed to the end user.
    defaultValue?: NullableOption<string>;
    // Whether the attribute is editable by the end user.
    editable?: NullableOption<boolean>;
    // Whether the attribute is displayed to the end user.
    hidden?: NullableOption<boolean>;
    /**
     * The type of input field. The possible values are: text, radioSingleSelect, checkboxMultiSelect, boolean,
     * checkboxSingleSelect, unknownFutureValue.
     */
    inputType?: AuthenticationAttributeCollectionInputType;
    // The label of the attribute field that is displayed to end user, unless overridden.
    label?: string;
    // The option values for certain multiple-option input types.
    options?: NullableOption<AuthenticationAttributeCollectionOptionConfiguration[]>;
    // Whether the field is required.
    required?: NullableOption<boolean>;
    // The regex for the value of the field.
    validationRegEx?: NullableOption<string>;
    // Whether the value collected is stored.
    writeToDirectory?: NullableOption<boolean>;
}
export interface AuthenticationAttributeCollectionOptionConfiguration {
    // The label of the option that will be displayed to user, unless overridden.
    label?: string;
    // The value of the option that will be stored.
    value?: string;
}
export interface AuthenticationAttributeCollectionPage {
    customStringsFileId?: NullableOption<string>;
    // A collection of displays of the attribute collection page.
    views?: NullableOption<AuthenticationAttributeCollectionPageViewConfiguration[]>;
}
export interface AuthenticationAttributeCollectionPageViewConfiguration {
    // The description of the page.
    description?: NullableOption<string>;
    // The display configuration of attributes being collected on the attribute collection page.
    inputs?: NullableOption<AuthenticationAttributeCollectionInputConfiguration[]>;
    // The title of the attribute collection page.
    title?: NullableOption<string>;
}
export interface AuthenticationConditions {
    // Applications which will trigger a custom authentication extension.
    applications?: NullableOption<AuthenticationConditionsApplications>;
}
export interface AuthenticationConditionsApplications {
    /**
     * Whether the custom authentication extension should trigger for all applications with appIds specified in the
     * includeApplications relationship. This property must be set to false for listener of type onTokenIssuanceStartListener.
     */
    includeAllApplications?: boolean;
    includeApplications?: NullableOption<AuthenticationConditionApplication[]>;
}
export interface AuthenticationConfigurationValidation {
    // Errors in the validation result of a customAuthenticationExtension.
    errors?: NullableOption<GenericError[]>;
    // Warnings in the validation result of a customAuthenticationExtension.
    warnings?: NullableOption<GenericError[]>;
}
export interface GenericError {
    // The error code.
    code?: NullableOption<string>;
    // The error message.
    message?: NullableOption<string>;
}
export interface AuthenticationSourceFilter {
    /**
     * Applications to include for evaluation of the authenticationListener. These applications trigger the associated action
     * when used as the client application in the authentication flow. The application identifer is the application's client
     * id.
     */
    includeApplications?: 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 ClaimsMapping {
    // The claim that provides the display name or full name for the user. It's a required property.
    displayName?: NullableOption<string>;
    // The claim that provides the email address of the user.
    email?: NullableOption<string>;
    // The claim that provides the first name of the user.
    givenName?: NullableOption<string>;
    // The claim that provides the last name of the user.
    surname?: NullableOption<string>;
    // The claim that provides the unique identifier for the signed-in user. It is a required property.
    userId?: 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 CustomExtensionOverwriteConfiguration {
    clientConfiguration?: NullableOption<CustomExtensionClientConfiguration>;
}
export interface HttpRequestEndpoint extends CustomExtensionEndpointConfiguration {
    // The HTTP endpoint that a custom extension calls.
    targetUrl?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface OnAttributeCollectionHandler {}
export interface OnAttributeCollectionExternalUsersSelfServiceSignUp extends OnAttributeCollectionHandler {
    /**
     * Required. The configuration for how attributes are displayed in the sign up experience defined by a user flow, like the
     * externalUsersSelfServiceSignupEventsFlow, specifically on the attribute collection page.
     */
    attributeCollectionPage?: NullableOption<AuthenticationAttributeCollectionPage>;
    attributes?: NullableOption<IdentityUserFlowAttribute[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface OnAuthenticationMethodLoadStartHandler {}
export interface OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp extends OnAuthenticationMethodLoadStartHandler {
    identityProviders?: NullableOption<IdentityProviderBase[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface OnInteractiveAuthFlowStartHandler {}
export interface OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp extends OnInteractiveAuthFlowStartHandler {
    /**
     * Optional. Specifies whether the authentication flow includes an option to sign up (create account) and sign in. Default
     * value is false meaning only sign in is enabled.
     */
    isSignUpAllowed?: boolean;
}
// tslint:disable-next-line: no-empty-interface
export interface OnTokenIssuanceStartHandler {}
export interface OnTokenIssuanceStartCustomExtensionHandler extends OnTokenIssuanceStartHandler {
    configuration?: NullableOption<CustomExtensionOverwriteConfiguration>;
    customExtension?: NullableOption<OnTokenIssuanceStartCustomExtension>;
}
export interface OnTokenIssuanceStartReturnClaim {
    // The identifier of the claim returned by an API that is to be add to a token being issued.
    claimIdInApiResponse?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface OnUserCreateStartHandler {}
export interface OnUserCreateStartExternalUsersSelfServiceSignUp extends OnUserCreateStartHandler {
    // The type of user object to create. The possible values are: member, guest, unknownFutureValue.
    userTypeToCreate?: NullableOption<UserType>;
}
export interface Pkcs12Certificate extends ApiAuthenticationConfigurationBase {
    // Specifies the password for the pfx file. Required. If no password is used, must still provide a value of ''.
    password?: NullableOption<string>;
    /**
     * Specifies the field for sending pfx content. 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 TrustFrameworkKey {
    // RSA Key - private exponent. Field can't be read back.
    d?: NullableOption<string>;
    // RSA Key - first exponent. Field can't be read back.
    dp?: NullableOption<string>;
    // RSA Key - second exponent. Field can't be read back.
    dq?: NullableOption<string>;
    // RSA Key - public exponent
    e?: NullableOption<string>;
    /**
     * 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.)
     */
    exp?: NullableOption<number>;
    // Symmetric Key for oct key type. Field can't be read back.
    k?: NullableOption<string>;
    // The unique identifier for the key.
    kid?: NullableOption<string>;
    /**
     * The kty (key type) parameter identifies the cryptographic algorithm family used with the key, The valid values are rsa,
     * oct.
     */
    kty?: NullableOption<string>;
    // RSA Key - modulus
    n?: NullableOption<string>;
    /**
     * 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.)
     */
    nbf?: NullableOption<number>;
    // RSA Key - first prime. Field can't be read back.
    p?: NullableOption<string>;
    // RSA Key - second prime. Field can't be read back.
    q?: NullableOption<string>;
    // RSA Key - Coefficient. Field can't be read back.
    qi?: NullableOption<string>;
    /**
     * The use (public key use) parameter identifies the intended use of the public key. The use parameter is employed to
     * indicate whether a public key is used for encrypting data or verifying the signature on data. Possible values are: sig
     * (signature), enc (encryption)
     */
    use?: NullableOption<string>;
    // The x5c (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates RFC 5280.
    x5c?: NullableOption<string[]>;
    /**
     * The x5t (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (also known as digest)
     * of the DER encoding of an X.509 certificate RFC 5280.
     */
    x5t?: NullableOption<string>;
}
export interface UserAttributeValuesItem {
    // Used to set the value as the default.
    isDefault?: boolean;
    // The display name of the property displayed to the end 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>;
    preTokenIssuance?: NullableOption<IdentityApiConnector>;
}
export interface LabelActionBase {
    name?: NullableOption<string>;
}
export interface MarkContent extends LabelActionBase {
    fontColor?: NullableOption<string>;
    fontSize?: NullableOption<number>;
    text?: NullableOption<string>;
}
export interface AddFooter extends MarkContent {
    alignment?: NullableOption<Alignment>;
    margin?: NullableOption<number>;
}
export interface AddHeader extends MarkContent {
    alignment?: NullableOption<Alignment>;
    margin?: NullableOption<number>;
}
export interface AddWatermark extends MarkContent {
    orientation?: NullableOption<PageOrientation>;
}
export interface ContentProperties {
    extensions?: NullableOption<string[]>;
    lastModifiedBy?: NullableOption<string>;
    lastModifiedDateTime?: NullableOption<string>;
    metadata?: NullableOption<ContentMetadata>;
}
export interface AttachmentContentProperties extends ContentProperties {
    currentLabel?: NullableOption<CurrentLabel>;
    discoveredSensitiveTypes?: NullableOption<DiscoveredSensitiveType[]>;
}
export interface CurrentLabel {
    applicationMode?: NullableOption<ApplicationMode>;
    id?: NullableOption<string>;
}
export interface DiscoveredSensitiveType {
    classificationAttributes?: NullableOption<ClassificationAttribute[]>;
    confidence?: NullableOption<number>;
    count?: NullableOption<number>;
    id?: string;
}
export interface AutoLabeling {
    message?: NullableOption<string>;
    sensitiveTypeIds?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface DlpActionInfo {}
// tslint:disable-next-line: no-empty-interface
export interface BlockAccessAction extends DlpActionInfo {}
export interface ClassifcationErrorBase {
    code?: NullableOption<string>;
    innerError?: NullableOption<ClassificationInnerError>;
    message?: NullableOption<string>;
    target?: NullableOption<string>;
}
export interface ClassificationInnerError {
    activityId?: NullableOption<string>;
    clientRequestId?: NullableOption<string>;
    code?: NullableOption<string>;
    errorDateTime?: NullableOption<string>;
}
export interface ClassificationAttribute {
    confidence?: NullableOption<number>;
    count?: NullableOption<number>;
}
export interface ClassificationError extends ClassifcationErrorBase {
    details?: NullableOption<ClassifcationErrorBase[]>;
}
export interface ClassificationRequestContentMetaData {
    sourceId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface ContentMetadata {}
// tslint:disable-next-line: no-empty-interface
export interface Dictionary {}
// tslint:disable-next-line: no-empty-interface
export interface CustomMetadataDictionary extends Dictionary {}
export interface DetectedSensitiveContentBase {
    confidence?: NullableOption<number>;
    displayName?: NullableOption<string>;
    id?: NullableOption<string>;
    recommendedConfidence?: NullableOption<number>;
    uniqueCount?: NullableOption<number>;
}
export interface DetectedSensitiveContent extends DetectedSensitiveContentBase {
    classificationAttributes?: NullableOption<ClassificationAttribute[]>;
    classificationMethod?: NullableOption<ClassificationMethod>;
    matches?: NullableOption<SensitiveContentLocation[]>;
    scope?: NullableOption<SensitiveTypeScope>;
    sensitiveTypeSource?: NullableOption<SensitiveTypeSource>;
}
export interface SensitiveContentLocation {
    confidence?: NullableOption<number>;
    evidences?: NullableOption<SensitiveContentEvidence[]>;
    idMatch?: NullableOption<string>;
    length?: NullableOption<number>;
    offset?: NullableOption<number>;
}
export interface DetectedSensitiveContentWrapper {
    classification?: NullableOption<DetectedSensitiveContent[]>;
}
export interface DlpEvaluatePoliciesRequest {
    evaluationInput?: NullableOption<DlpEvaluationInput>;
    notificationInfo?: NullableOption<DlpNotification>;
    target?: NullableOption<string>;
}
export interface DlpEvaluationInput {
    currentLabel?: NullableOption<CurrentLabel>;
    discoveredSensitiveTypes?: NullableOption<DiscoveredSensitiveType[]>;
}
export interface DlpNotification {
    author?: NullableOption<string>;
}
export interface DlpEvaluationWindowsDevicesInput extends DlpEvaluationInput {
    contentProperties?: NullableOption<ContentProperties>;
    sharedBy?: NullableOption<string>;
}
export interface DlpPoliciesJobResult {
    auditCorrelationId?: NullableOption<string>;
    evaluationDateTime?: NullableOption<string>;
    matchingRules?: NullableOption<MatchingDlpRule[]>;
}
export interface MatchingDlpRule {
    actions?: NullableOption<DlpActionInfo[]>;
    isMostRestrictive?: NullableOption<boolean>;
    policyId?: NullableOption<string>;
    policyName?: NullableOption<string>;
    priority?: NullableOption<number>;
    ruleId?: NullableOption<string>;
    ruleMode?: NullableOption<RuleMode>;
    ruleName?: NullableOption<string>;
}
export interface DlpWindowsDevicesNotification extends DlpNotification {
    contentName?: NullableOption<string>;
    lastModfiedBy?: NullableOption<string>;
}
export interface EncryptContent extends LabelActionBase {
    encryptWith?: NullableOption<EncryptWith>;
}
export interface EncryptWithTemplate extends EncryptContent {
    availableForEncryption?: NullableOption<boolean>;
    templateId?: NullableOption<string>;
}
export interface EncryptWithUserDefinedRights extends EncryptContent {
    allowAdHocPermissions?: NullableOption<boolean>;
    allowMailForwarding?: NullableOption<boolean>;
    decryptionRightsManagementTemplateId?: NullableOption<string>;
}
export interface EvaluateLabelJobResult {
    responsiblePolicy?: NullableOption<ResponsiblePolicy>;
    responsibleSensitiveTypes?: NullableOption<ResponsibleSensitiveType[]>;
    sensitivityLabel?: NullableOption<MatchingLabel>;
}
export interface ResponsiblePolicy {
    id?: NullableOption<string>;
    name?: NullableOption<string>;
}
export interface ResponsibleSensitiveType {
    description?: NullableOption<string>;
    id?: NullableOption<string>;
    name?: NullableOption<string>;
    publisherName?: NullableOption<string>;
    rulePackageId?: NullableOption<string>;
    rulePackageType?: NullableOption<string>;
}
export interface MatchingLabel {
    applicationMode?: NullableOption<ApplicationMode>;
    description?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: NullableOption<string>;
    isEndpointProtectionEnabled?: NullableOption<boolean>;
    labelActions?: NullableOption<LabelActionBase[]>;
    name?: NullableOption<string>;
    policyTip?: NullableOption<string>;
    priority?: NullableOption<number>;
    toolTip?: NullableOption<string>;
}
export interface EvaluateLabelJobResultGroup {
    automatic?: NullableOption<EvaluateLabelJobResult>;
    recommended?: NullableOption<EvaluateLabelJobResult>;
}
export interface EvaluateSensitivityLabelsRequest {
    currentLabel?: NullableOption<CurrentLabel>;
    discoveredSensitiveTypes?: NullableOption<DiscoveredSensitiveType[]>;
}
export interface JustInTimeEnforcementConfiguration {
    isEnabled?: boolean;
}
export interface LabelPolicy {
    id?: string;
    name?: NullableOption<string>;
}
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 MachineLearningDetectedSensitiveContent extends DetectedSensitiveContent {
    matchTolerance?: NullableOption<MlClassificationMatchTolerance>;
    modelVersion?: NullableOption<string>;
}
export interface MatchedCondition {
    condition?: string;
    displayName?: string;
    values?: string[];
}
export interface MetadataEntry {
    key?: string;
    value?: NullableOption<string>;
}
export interface NotifyUserAction extends DlpActionInfo {
    actionLastModifiedDateTime?: NullableOption<string>;
    emailText?: NullableOption<string>;
    policyTip?: NullableOption<string>;
    recipients?: NullableOption<string[]>;
}
export interface OpticalCharacterRecognitionConfiguration {
    isEnabled?: NullableOption<boolean>;
}
export interface ProtectGroup extends LabelActionBase {
    allowEmailFromGuestUsers?: NullableOption<boolean>;
    allowGuestUsers?: NullableOption<boolean>;
    privacy?: NullableOption<GroupPrivacy>;
}
export interface ProtectOnlineMeetingAction extends LabelActionBase {
    allowedForwarders?: NullableOption<OnlineMeetingForwarders>;
    allowedPresenters?: NullableOption<OnlineMeetingPresenters>;
    isCopyToClipboardEnabled?: NullableOption<boolean>;
    isLobbyEnabled?: NullableOption<boolean>;
    lobbyBypassSettings?: NullableOption<LobbyBypassSettings>;
}
export interface ProtectSite extends LabelActionBase {
    accessType?: NullableOption<SiteAccessType>;
    conditionalAccessProtectionLevelId?: NullableOption<string>;
}
export interface SensitiveContentEvidence {
    length?: NullableOption<number>;
    match?: NullableOption<string>;
    offset?: NullableOption<number>;
}
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 adminstrator account credential for the device object was backed up to Microsoft Entra ID.
    backupDateTime?: string;
    /**
     * The password for the local administrator account that is backed up to Microsoft Entra ID and returned as a base 64
     * encoded value.
     */
    passwordBase64?: string;
}
export interface AzureADJoinPolicy {
    /**
     * The identifiers of the groups that are in the scope of the policy. Required when the appliesTo property is set to
     * selected.
     */
    allowedGroups?: NullableOption<string[]>;
    // The identifiers of users that are in the scope of the policy. Required when the appliesTo property is set to selected.
    allowedUsers?: NullableOption<string[]>;
    /**
     * Specifies whether to block or allow fine-grained control of the policy scope. The possible values are: 0 (meaning
     * none), 1 (meaning all), 2 (meaning selected), 3 (meaning unknownFutureValue). The default value is 1. When set to 2, at
     * least one user or group identifier must be specified in either allowedUsers or allowedGroups. Setting this property to
     * 0 or 1 removes all identifiers in both allowedUsers and allowedGroups.
     */
    appliesTo?: NullableOption<PolicyScope>;
    /**
     * Specifies whether this policy scope is configurable by the admin. The default value is false. When an admin has enabled
     * Intune (MEM) to manage devices, this property is set to false and appliesTo defaults to 1 (meaning all).
     */
    isAdminConfigurable?: NullableOption<boolean>;
}
export interface AzureADRegistrationPolicy {
    /**
     * The identifiers of the groups that are in the scope of the policy. Either this property or allowedUsers is required
     * when the appliesTo property is set to selected.
     */
    allowedGroups?: NullableOption<string[]>;
    /**
     * The identifiers of users that are in the scope of the policy. Either this property or allowedGroups is required when
     * the appliesTo property is set to selected.
     */
    allowedUsers?: NullableOption<string[]>;
    /**
     * Specifies whether to block or allow fine-grained control of the policy scope. The possible values are: 0 (meaning
     * none), 1 (meaning all), 2 (meaning selected), 3 (meaning unknownFutureValue). The default value is 1. When set to 2, at
     * least one user or group identifier must be specified in either allowedUsers or allowedGroups. Setting this property to
     * 0 or 1 removes all identifiers in both allowedUsers and allowedGroups.
     */
    appliesTo?: NullableOption<PolicyScope>;
    /**
     * Specifies whether this policy scope is configurable by the admin. The default value is false. When an admin has enabled
     * Intune (MEM) to manage devices, this property is set to false and appliesTo defaults to 1 (meaning all).
     */
    isAdminConfigurable?: NullableOption<boolean>;
}
export interface LocalAdminPasswordSettings {
    /**
     * Specifies whether this policy scope is configurable by the admin. The default value is false. An admin can set it to
     * true to enable Local Admin Password Solution (LAPS) within their organzation.
     */
    isEnabled?: NullableOption<boolean>;
}
export interface ValidatingDomains {
    rootDomains?: RootDomains;
}
// tslint:disable-next-line: no-empty-interface
export interface AllDomains extends ValidatingDomains {}
export interface PreAuthorizedApplication {
    // The unique identifier for the client application.
    appId?: string;
    // The unique identifier for the scopes the client application is granted.
    permissionIds?: NullableOption<string[]>;
}
export interface ApiServicePrincipal {
    resourceSpecificApplicationPermissions?: ResourceSpecificPermission[];
}
export interface ResourceSpecificPermission {
    description?: NullableOption<string>;
    displayName?: NullableOption<string>;
    id?: string;
    isEnabled?: boolean;
    value?: NullableOption<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 {
    /**
     * Collection of GUIDs that point to the certificateBasedApplicationConfiguration that contains the collection of allowed
     * root and intermediate certificate authorities.
     */
    certificateBasedApplicationConfigurationIds?: NullableOption<string[]>;
    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 backdated. To apply to all applications, this date 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 AppMetadata {
    data?: NullableOption<AppMetadataEntry[]>;
    version?: number;
}
export interface AppMetadataEntry {
    key?: NullableOption<string>;
    value?: NullableOption<string>;
}
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 ContentCustomization {
    // Represents the content options of External Identities to be customized throughout the authentication flow for a tenant.
    attributeCollection?: KeyValue[];
    /**
     * A relative URL for the content options of External Identities to be customized throughout the authentication flow for a
     * tenant.
     */
    attributeCollectionRelativeUrl?: NullableOption<string>;
}
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 {
    /**
     * Can be one of the following values: The unique identifier of the user, group, or application AllUsers AllApplications -
     * Refers to any Microsoft cloud application. Office365 - Includes the applications mentioned as part of the Office365
     * suite.
     */
    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 CrossTenantAccessPolicyTenantRestrictions extends CrossTenantAccessPolicyB2BSetting {
    /**
     * Defines the rule for filtering devices and whether devices satisfying the rule should be allowed or blocked. Not
     * implemented.
     */
    devices?: NullableOption<DevicesFilter>;
}
export interface DevicesFilter {
    /**
     * Determines whether devices satisfying the rule should be allowed or blocked.The possible values are: allowed, blocked,
     * unknownFutureValue.
     */
    mode?: NullableOption<CrossTenantAccessPolicyTargetConfigurationAccessType>;
    // Defines the rule to filter the devices. For example, device.deviceAttribute2 -eq 'PrivilegedAccessWorkstation'.
    rule?: NullableOption<string>;
}
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>;
}
// tslint:disable-next-line: interface-name
export interface InvitationRedemptionIdentityProviderConfiguration {
    /**
     * The fallback identity provider to be used in case no primary identity provider can be used for guest invitation
     * redemption. Possible values are: defaultConfiguredIdp, emailOneTimePasscode, or microsoftAccount.
     */
    fallbackIdentityProvider?: NullableOption<B2bIdentityProvidersType>;
    /**
     * Collection of identity providers in priority order of preference to be used for guest invitation redemption. Possible
     * values are: azureActiveDirectory, externalFederation, or socialIdentityProviders.
     */
    primaryIdentityProviderPrecedenceOrder?: NullableOption<B2bIdentityProvidersType[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface DefaultInvitationRedemptionIdentityProviderConfiguration extends InvitationRedemptionIdentityProviderConfiguration {}
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;
}
export interface DirectorySizeQuota {
    // Total amount of the directory quota.
    total?: NullableOption<number>;
    // Used amount of the directory quota.
    used?: NullableOption<number>;
}
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>;
}
export interface EnumeratedDomains extends ValidatingDomains {
    domainNames?: 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 MultiTenantOrganizationJoinRequestTransitionDetails {
    /**
     * State of the tenant in the multitenant organization currently being processed. The possible values are: pending,
     * active, removed, unknownFutureValue. Read-only.
     */
    desiredMemberState?: NullableOption<MultiTenantOrganizationMemberState>;
    // Details that explain the processing status if any. Read-only.
    details?: NullableOption<string>;
    /**
     * Processing state of the asynchronous job. The possible values are: notStarted, running, succeeded, failed,
     * unknownFutureValue. Read-only.
     */
    status?: NullableOption<MultiTenantOrganizationMemberProcessingStatus>;
}
export interface MultiTenantOrganizationMemberTransitionDetails {
    // Role of the tenant in the multitenant organization. The possible values are: owner, member, unknownFutureValue.
    desiredRole?: NullableOption<MultiTenantOrganizationMemberRole>;
    /**
     * State of the tenant in the multitenant organization currently being processed. The possible values are: pending,
     * active, removed, unknownFutureValue. Read-only.
     */
    desiredState?: NullableOption<MultiTenantOrganizationMemberState>;
    // Details that explain the processing status if any. Read-only.
    details?: NullableOption<string>;
    /**
     * Processing state of the asynchronous job. The possible values are: notStarted, running, succeeded, failed,
     * unknownFutureValue. Read-only.
     */
    status?: NullableOption<MultiTenantOrganizationMemberProcessingStatus>;
}
export interface OathTokenMetadata {
    enabled?: NullableOption<boolean>;
    manufacturer?: NullableOption<string>;
    manufacturerProperties?: NullableOption<KeyValue[]>;
    serialNumber?: NullableOption<string>;
    tokenType?: string;
}
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 OnPremisesCurrentExportData {
    // The name of the onPremises client machine that ran the last export.
    clientMachineName?: NullableOption<string>;
    // The count of pending adds from on-premises directory.
    pendingObjectsAddition?: NullableOption<number>;
    // The count of pending deletes from on-premises directory.
    pendingObjectsDeletion?: NullableOption<number>;
    // The count of pending updates from on-premises directory.
    pendingObjectsUpdate?: NullableOption<number>;
    // The name of the dirsync service account that is configured to connect to the directory.
    serviceAccount?: NullableOption<string>;
    // The count of updated links during the current directory sync export run.
    successfulLinksProvisioningCount?: NullableOption<number>;
    // The count of objects that were successfully provisioned during the current directory sync export run.
    successfulObjectsProvisioningCount?: NullableOption<number>;
    // The total number of objects in the AAD Connector Space.
    totalConnectorSpaceObjects?: NullableOption<number>;
}
export interface OnPremisesDirectorySynchronizationConfiguration {
    // Contains the accidental deletion prevention configuration for a tenant.
    accidentalDeletionPrevention?: NullableOption<OnPremisesAccidentalDeletionPrevention>;
    /**
     * The anchor attribute allows customers to customize the property used to create source anchors for synchronization
     * enabled objects.
     */
    anchorAttribute?: NullableOption<string>;
    // The identifier of the on-premises directory synchronization client application that is configured for the tenant.
    applicationId?: NullableOption<string>;
    // Data for the current export run.
    currentExportData?: NullableOption<OnPremisesCurrentExportData>;
    // Interval of time that the customer requested the sync client waits between sync cycles.
    customerRequestedSynchronizationInterval?: NullableOption<string>;
    // Indicates the version of the on-premises directory synchronization application.
    synchronizationClientVersion?: NullableOption<string>;
    // Interval of time the sync client should honor between sync cycles
    synchronizationInterval?: NullableOption<string>;
    // Configuration to control how cloud created or owned objects are synchronized back to the on-premises directory.
    writebackConfiguration?: NullableOption<OnPremisesWritebackConfiguration>;
}
export interface OnPremisesWritebackConfiguration {
    /**
     * The distinguished name of the on-premises container that the customer is using to store unified groups which are
     * created in the cloud.
     */
    unifiedGroupContainer?: NullableOption<string>;
    /**
     * The distinguished name of the on-premises container that the customer is using to store users which are created in the
     * cloud.
     */
    userContainer?: NullableOption<string>;
}
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 PasswordValidationInformation {
    /**
     * Specifies whether the password is valid based on the calculation of the results in the validationResults property. Not
     * nullable. Read-only.
     */
    isValid?: NullableOption<boolean>;
    // The list of password validation rules and whether the password passed those rules. Not nullable. Read-only.
    validationResults?: NullableOption<ValidationResult[]>;
}
export interface ValidationResult {
    // The string containing the reason for why the rule passed or not. Read-only. Not nullable.
    message?: NullableOption<string>;
    /**
     * The string containing the name of the password validation rule that the action was validated against. Read-only. Not
     * nullable.
     */
    ruleName?: NullableOption<string>;
    // Whether the password passed or failed the validation rule. Read-only. Not nullable.
    validationPassed?: NullableOption<boolean>;
}
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 {
    /**
     * Identifies the specific URI within the redirectURIs collection in SAML SSO flows. Defaults to null. The index is unique
     * across all the redirectUris for the application.
     */
    index?: NullableOption<number>;
    // Specifies the URI that tokens are sent to.
    uri?: NullableOption<string>;
}
export interface SelfSignedCertificate {
    // Custom key identifier.
    customKeyIdentifier?: NullableOption<string>;
    // The friendly name for the key.
    displayName?: NullableOption<string>;
    /**
     * The date and time at which the credential 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.
     */
    endDateTime?: NullableOption<string>;
    // The value for the key credential. Should be a base-64 encoded value.
    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 thumbprint value for the key.
    thumbprint?: NullableOption<string>;
    // The type of key credential. '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 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 ServiceProvisioningResourceErrorDetail {
    code?: NullableOption<string>;
    details?: NullableOption<string>;
    message?: NullableOption<string>;
}
export interface ServiceProvisioningLinkedResourceErrorDetail extends ServiceProvisioningResourceErrorDetail {
    propertyName?: NullableOption<string>;
    target?: NullableOption<string>;
}
export interface ServiceProvisioningResourceError extends ServiceProvisioningError {
    errors?: NullableOption<ServiceProvisioningResourceErrorDetail[]>;
}
export interface ServiceProvisioningXmlError extends ServiceProvisioningError {
    // Error Information published by the Federated Service as an xml string.
    errorDetail?: NullableOption<string>;
}
export interface SettingTemplateValue {
    // Default value for the setting. Read-only.
    defaultValue?: NullableOption<string>;
    // Description of the setting. Read-only.
    description?: NullableOption<string>;
    // Name of the setting. Read-only.
    name?: NullableOption<string>;
    // Type of the setting. Read-only.
    type?: NullableOption<string>;
}
export interface SettingValue {
    // Name of the setting (as defined by the directorySettingTemplate).
    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 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 CertificateConnectorSetting {
    // Certificate expire time
    certExpiryTime?: string;
    // Version of certificate connector
    connectorVersion?: NullableOption<string>;
    // Certificate connector enrollment error
    enrollmentError?: NullableOption<string>;
    // Last time certificate connector connected
    lastConnectorConnectionTime?: string;
    // Version of last uploaded certificate connector
    lastUploadVersion?: number;
    // Certificate connector status
    status?: number;
}
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 {
    // Who created the 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>;
    // Display name of resource.
    displayName?: NullableOption<string>;
    // Who was 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 EducationChannelResource extends EducationResource {
    // URL of the channel resource.
    url?: 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 EducationLinkedAssignmentResource extends EducationResource {
    // URL of the actual assignment.
    url?: 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;
    // Email address of the contact.
    emailAddress?: NullableOption<string>;
    id?: NullableOption<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>;
    // Possible values are: female, male, other.
    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 external source system.
    externalId?: NullableOption<string>;
    // Teacher number.
    teacherNumber?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface EducationSynchronizationDataProvider {}
export interface EducationCsvDataProvider extends EducationSynchronizationDataProvider {
    // Optional customizations to be applied to the synchronization profile.
    customizations?: NullableOption<EducationSynchronizationCustomizations>;
}
// tslint:disable-next-line: no-empty-interface
export interface EducationSynchronizationCustomizationsBase {}
export interface EducationSynchronizationCustomizations extends EducationSynchronizationCustomizationsBase {
    // Customizations for School entities.
    school?: NullableOption<EducationSynchronizationCustomization>;
    // Customizations for Section entities.
    section?: NullableOption<EducationSynchronizationCustomization>;
    // Customizations for Student entities.
    student?: NullableOption<EducationSynchronizationCustomization>;
    // Customizations for Student Enrollments.
    studentEnrollment?: NullableOption<EducationSynchronizationCustomization>;
    // Customizations for Teacher entities.
    teacher?: NullableOption<EducationSynchronizationCustomization>;
    // Customizations for Teacher Rosters.
    teacherRoster?: NullableOption<EducationSynchronizationCustomization>;
}
export interface EducationFileSynchronizationVerificationMessage {
    // Detailed information about the message type.
    description?: NullableOption<string>;
    fileName?: NullableOption<string>;
    // Type of the message. Possible values are: error, warning, information.
    type?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface EducationIdentitySynchronizationConfiguration {}
export interface EducationIdentityCreationConfiguration extends EducationIdentitySynchronizationConfiguration {
    userDomains?: EducationIdentityDomain[];
}
export interface EducationIdentityDomain {
    // The user role type to assign to the license. Possible values are: student, teacher, faculty.
    appliesTo?: EducationUserRole;
    // Represents the domain for the user account.
    name?: string;
}
export interface EducationIdentityMatchingConfiguration extends EducationIdentitySynchronizationConfiguration {
    // Mapping between the user account and the options to use to uniquely identify the user to update.
    matchingOptions?: EducationIdentityMatchingOptions[];
}
export interface EducationIdentityMatchingOptions {
    // The user role type to assign to the license. Possible values are: student, teacher, faculty.
    appliesTo?: EducationUserRole;
    // The name of the source property, which should be a field name in the source data. This property is case-sensitive.
    sourcePropertyName?: string;
    /**
     * The domain to suffix with the source property to match on the target. If provided as null, the source property will be
     * used to match with the target property.
     */
    targetDomain?: NullableOption<string>;
    /**
     * The name of the target property, which should be a valid property in Microsoft Entra ID. This property is
     * case-sensitive.
     */
    targetPropertyName?: string;
}
export interface EducationOneRosterApiDataProvider extends EducationSynchronizationDataProvider {
    // The [OAuth 1.0][onerosteroauth1] or [OAuth 2.0][onerosteroauth2] settings for the OneRoster instance.
    connectionSettings?: EducationSynchronizationConnectionSettings;
    // The connection URL to the OneRoster instance.
    connectionUrl?: string;
    // Optional customization to be applied to the synchronization profile.
    customizations?: NullableOption<EducationSynchronizationCustomizations>;
    // The OneRoster Service Provider name as defined by the [OneRoster specification][oneroster].
    providerName?: NullableOption<string>;
    // The list of [School/Org][orgs] sourcedId to sync.
    schoolsIds?: NullableOption<string[]>;
    // The list of [academic sessions][terms] to sync.
    termIds?: NullableOption<string[]>;
}
export interface EducationSynchronizationConnectionSettings {
    // Client ID used to connect to the provider.
    clientId?: string;
    // Client secret to authenticate the connection to the provider.
    clientSecret?: NullableOption<string>;
}
export interface EducationPowerSchoolDataProvider extends EducationSynchronizationDataProvider {
    // Indicates whether the source has multiple identifiers for a single student or teacher.
    allowTeachersInMultipleSchools?: NullableOption<boolean>;
    // The client ID used to connect to PowerSchool.
    clientId?: string;
    // The client secret to authenticate the connection to the PowerSchool instance.
    clientSecret?: NullableOption<string>;
    // The connection URL to the PowerSchool instance.
    connectionUrl?: string;
    // Optional customization to be applied to the synchronization profile.
    customizations?: NullableOption<EducationSynchronizationCustomizations>;
    // The list of schools to sync.
    schoolsIds?: NullableOption<string[]>;
    // The school year to sync.
    schoolYear?: NullableOption<string>;
}
export interface EducationSynchronizationCustomization {
    // Indicates whether the display name of the resource can be overwritten by the sync.
    allowDisplayNameUpdate?: NullableOption<boolean>;
    // Indicates whether synchronization of the parent entity is deferred to a later date.
    isSyncDeferred?: NullableOption<boolean>;
    /**
     * The collection of property names to sync. If set to null, all properties will be synchronized. Does not apply to
     * Student Enrollments or Teacher Rosters
     */
    optionalPropertiesToSync?: NullableOption<string[]>;
    /**
     * The date that the synchronization should start. This value should be set to a future date. If set to null, the resource
     * will be synchronized when the profile setup completes. Only applies to Student Enrollments
     */
    synchronizationStartDate?: NullableOption<string>;
}
export interface EducationSynchronizationLicenseAssignment {
    // The user role type to assign to license. Possible values are: student, teacher, faculty.
    appliesTo?: NullableOption<EducationUserRole>;
    // Represents the SKU identifiers of the licenses to assign.
    skuIds?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface EducationSynchronizationOAuth1ConnectionSettings extends EducationSynchronizationConnectionSettings {}
export interface EducationSynchronizationOAuth2ClientCredentialsConnectionSettings extends EducationSynchronizationConnectionSettings {
    // The scope of the access request (see RFC6749).
    scope?: NullableOption<string>;
    // The URL to get access tokens for the data provider.
    tokenUrl?: string;
}
export interface RetentionSetting {
    interval?: NullableOption<string>;
    period?: NullableOption<string>;
}
export interface ContentClassification {
    confidence?: NullableOption<number>;
    matches?: NullableOption<MatchLocation[]>;
    sensitiveTypeId?: NullableOption<string>;
    uniqueCount?: NullableOption<number>;
}
export interface MatchLocation {
    length?: NullableOption<number>;
    offset?: NullableOption<number>;
}
export interface DataStoreField {
    name?: NullableOption<string>;
    searchable?: NullableOption<boolean>;
    unique?: NullableOption<boolean>;
}
export interface ExactDataMatchStoreColumn {
    ignoredDelimiters?: NullableOption<string[]>;
    isCaseInsensitive?: NullableOption<boolean>;
    isSearchable?: NullableOption<boolean>;
    name?: NullableOption<string>;
}
export interface ExactMatchClassificationRequest {
    contentClassifications?: NullableOption<ContentClassification[]>;
    sensitiveTypeIds?: NullableOption<string[]>;
    text?: NullableOption<string>;
    timeoutInMs?: NullableOption<number>;
}
export interface ExactMatchClassificationResult {
    classification?: NullableOption<ExactMatchDetectedSensitiveContent[]>;
    errors?: NullableOption<ClassificationError[]>;
}
export interface ExactMatchDetectedSensitiveContent extends DetectedSensitiveContentBase {
    matches?: NullableOption<SensitiveContentLocation[]>;
}
export interface WorkbookDocumentTaskSchedule {
    /**
     * The due date and time for the task. Nullable. 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>;
    /**
     * The start date and time for the task. Nullable. 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 WorkbookEmailIdentity {
    // Display name of the user.
    displayName?: NullableOption<string>;
    // Email address of the user.
    email?: NullableOption<string>;
    // The unique identifier of the user.
    id?: 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. 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 {
    date?: NullableOption<string>;
    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. 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. 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 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 Media {
    /**
     * If a file has a transcript, this setting controls if the closed captions / transcription for the media file should be
     * shown to people during viewing. Read-Write.
     */
    isTranscriptionShown?: NullableOption<boolean>;
    // Information about the source of media. Read-only.
    mediaSource?: NullableOption<MediaSource>;
}
export interface Package {
    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>;
    // The date and time the photo was taken in UTC time. 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>;
    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 DriveItemSource {
    // Enumeration value that indicates the source application where the file was created.
    application?: NullableOption<DriveItemSourceApplication>;
    // The external identifier for the drive item from the source.
    externalId?: 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>;
    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. Possible values are: free, tentative, busy, oof, workingElsewhere, unknown.
    availability?: NullableOption<FreeBusyStatus>;
}
export interface AttendeeBase extends Recipient {
    /**
     * The type of attendee. 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. 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. 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. Possible values are: work, personal, unrestricted, or unknown.
    activityDomain?: NullableOption<ActivityDomain>;
    timeSlots?: NullableOption<TimeSlot[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface CustomAppScopeAttributesDictionary extends Dictionary {}
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 in case of in-line attachments using &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 that 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. 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. 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, unconverted identifier.
    sourceId?: NullableOption<string>;
    // The converted identifier. This value isn't present if the conversion failed.
    targetId?: 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 MentionsPreview {
    // True if the signed-in user is mentioned in the parent resource instance. Read-only. Supports filter.
    isMentioned?: NullableOption<boolean>;
}
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 address 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. Do not specify for a one-time access review. 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. Possible values are: endDate, noEnd, numbered. Required.
    type?: NullableOption<RecurrenceRangeType>;
}
export interface PersonDataSource {
    // The type of data source.
    type?: NullableOption<string>;
}
export interface RankedEmailAddress {
    // The email address.
    address?: NullableOption<string>;
    /**
     * The rank of the email address. A rank is used as a sort key, in relation to the other returned results. A higher rank
     * value corresponds to a more relevant result. Relevance is determined by communication, collaboration, and business
     * relationship signals.
     */
    rank?: NullableOption<number>;
}
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 TimeZoneInformation {
    // An identifier for the time zone.
    alias?: NullableOption<string>;
    // A display string that represents the time zone.
    displayName?: NullableOption<string>;
}
export interface TypedEmailAddress extends EmailAddress {
    /**
     * To specify a custom type of email address, set type to other, and assign otherLabel to a custom string. For example,
     * you may use a specific email address for your volunteer activities. Set type to other, and set otherLabel to a custom
     * string such as Volunteer work.
     */
    otherLabel?: NullableOption<string>;
    /**
     * The type of email address. Possible values are: unknown, work, personal, main, other. The default value is unknown,
     * which means address has not been set as a specific type.
     */
    type?: NullableOption<EmailType>;
}
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>;
    /**
     * When uploading files to document libraries, this is 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>;
    // 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[]>;
    // Indicates whether to add the name of the document set to each file name.
    propagateWelcomePageChanges?: NullableOption<boolean>;
    // 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 (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>;
}
// tslint:disable-next-line: no-empty-interface
export interface FlexSchemaContainer {}
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 doesn't have source data before the specified time.
    missingDataBeforeDateTime?: NullableOption<string>;
    // Some data wasn't recorded due to excessive activity.
    wasThrottled?: NullableOption<boolean>;
}
// tslint:disable-next-line: interface-name
export interface ItemActionSet {
    // A comment was added to the item.
    comment?: NullableOption<CommentAction>;
    // An item was created.
    create?: NullableOption<CreateAction>;
    // An item was deleted.
    delete?: NullableOption<DeleteAction>;
    // An item was edited.
    edit?: NullableOption<EditAction>;
    // A user was mentioned in the item.
    mention?: NullableOption<MentionAction>;
    // An item was moved.
    move?: NullableOption<MoveAction>;
    // An item was renamed.
    rename?: NullableOption<RenameAction>;
    // An item was restored.
    restore?: NullableOption<RestoreAction>;
    // An item was shared.
    share?: NullableOption<ShareAction>;
    // An item was versioned.
    version?: NullableOption<VersionAction>;
}
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 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 ShareAction {
    // The identities the item was shared with in this action.
    recipients?: NullableOption<IdentitySet[]>;
}
export interface VersionAction {
    // The name of the new version that was created by this action.
    newVersion?: NullableOption<string>;
}
// 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 ItemActivityTimeSet {
    lastRecordedDateTime?: NullableOption<string>;
    // When the activity was observed to take place.
    observedDateTime?: NullableOption<string>;
    // When the observation was recorded on the service.
    recordedDateTime?: NullableOption<string>;
}
// 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 MediaSource {
    // Enumeration value that indicates the media content category.
    contentCategory?: NullableOption<MediaSourceContentCategory>;
}
export interface MetaDataKeyStringPair {
    // Key of the meta data.
    key?: NullableOption<string>;
    // Value of the meta data.
    value?: NullableOption<string>;
}
export interface MetaDataKeyValuePair {
    // Key of the metadata.
    key?: NullableOption<string>;
    // Value of the metadata. Should be an object.
    value?: NullableOption<any>;
}
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 if there are higher storage quota plans available. Read-only.
    upgradeAvailable?: NullableOption<boolean>;
}
export interface ReactionsFacet {
    // Count of comments.
    commentCount?: NullableOption<number>;
    // Count of likes.
    likeCount?: NullableOption<number>;
    // Count of shares.
    shareCount?: NullableOption<number>;
}
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 ServerProcessedContent {
    /**
     * A key-value map where keys are string identifiers and values are component ids. SharePoint servers might decide to use
     * this hint to preload the script for corresponding components for performance boost.
     */
    componentDependencies?: NullableOption<MetaDataKeyStringPair[]>;
    // A key-value map where keys are string identifier and values are object of custom key-value pair.
    customMetadata?: NullableOption<MetaDataKeyValuePair[]>;
    /**
     * A key-value map where keys are string identifiers and values are rich text with HTML format. SharePoint servers treat
     * the values as HTML content and run services like safety checks, search index and link fixup on them.
     */
    htmlStrings?: NullableOption<MetaDataKeyStringPair[]>;
    /**
     * A key-value map where keys are string identifiers and values are image sources. SharePoint servers treat the values as
     * image sources and run services like search index and link fixup on them.
     */
    imageSources?: NullableOption<MetaDataKeyStringPair[]>;
    /**
     * A key-value map where keys are string identifiers and values are links. SharePoint servers treat the values as links
     * and run services like link fixup on them.
     */
    links?: NullableOption<MetaDataKeyStringPair[]>;
    // A key-value map where keys are string identifiers and values are strings that should be search indexed.
    searchablePlainTexts?: NullableOption<MetaDataKeyStringPair[]>;
}
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>;
    configuratorUrl?: NullableOption<string>;
    /**
     * 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 TitleArea {
    // Alternative text on the title area.
    alternativeText?: NullableOption<string>;
    // Indicates whether the title area has a gradient effect enabled.
    enableGradientEffect?: NullableOption<boolean>;
    // URL of the image in the title area.
    imageWebUrl?: NullableOption<string>;
    /**
     * Enumeration value that indicates the layout of the title area. The possible values are: imageAndTitle, plain,
     * colorBlock, overlap, unknownFutureValue.
     */
    layout?: NullableOption<TitleAreaLayoutType>;
    // Contains collections of data that can be processed by server side services like search index and link fixup.
    serverProcessedContent?: NullableOption<ServerProcessedContent>;
    // Indicates whether the author should be shown in title area.
    showAuthor?: NullableOption<boolean>;
    // Indicates whether the published date should be shown in title area.
    showPublishedDate?: NullableOption<boolean>;
    // Indicates whether the text block above title should be shown in title area.
    showTextBlockAboveTitle?: NullableOption<boolean>;
    // The text above title line.
    textAboveTitle?: NullableOption<string>;
    /**
     * Enumeration value that indicates the text alignment of the title area. The possible values are: left, center,
     * unknownFutureValue.
     */
    textAlignment?: NullableOption<TitleAreaTextAlignmentType>;
}
export interface WebPartData {
    // Audience information of the web part. By using this property, specific content is prioritized to specific audiences.
    audiences?: NullableOption<string[]>;
    /**
     * Data version of the web part. The value is defined by the web part developer. Different dataVersions usually refers to
     * a different property structure.
     */
    dataVersion?: NullableOption<string>;
    // Description of the web part.
    description?: NullableOption<string>;
    // Properties bag of the web part.
    properties?: NullableOption<any>;
    // Contains collections of data that can be processed by server side services like search index and link fixup.
    serverProcessedContent?: NullableOption<ServerProcessedContent>;
    // Title of the web part.
    title?: NullableOption<string>;
}
export interface WebPartPosition {
    // Indicates the identifier of the column where the web part is located.
    columnId?: NullableOption<number>;
    // Indicates the horizontal section where the web part is located.
    horizontalSectionId?: NullableOption<number>;
    // Indicates whether the web part is located in the vertical section.
    isInVerticalSection?: NullableOption<boolean>;
    // Index of the current web part. Represents the order of the web part in this column or section.
    webPartIndex?: NullableOption<number>;
}
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 {
    // Information of the meeting attendees.
    attendees?: NullableOption<MeetingParticipantInfo[]>;
    contributors?: NullableOption<MeetingParticipantInfo[]>;
    // Information of the meeting organizer.
    organizer?: NullableOption<MeetingParticipantInfo>;
    producers?: 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 below for more details.
     */
    type?: NullableOption<string>;
}
export interface CorsConfiguration {
    /**
     * The request headers that the origin domain may specify on the CORS request. The wildcard character * indicates that any
     * header beginning with the specified prefix is allowed.
     */
    allowedHeaders?: NullableOption<string[]>;
    // The HTTP request methods that the origin domain may use for a CORS request.
    allowedMethods?: NullableOption<string[]>;
    /**
     * The origin domains that are permitted to make a request against the service via CORS. The origin domain is the domain
     * from which the request originates. The origin must be an exact case-sensitive match with the origin that the user age
     * sends to the service.
     */
    allowedOrigins?: NullableOption<string[]>;
    // The maximum amount of time that a browser should cache the response to the preflight OPTIONS request.
    maxAgeInSeconds?: NullableOption<number>;
    /**
     * Resource within the application segment for which CORS permissions are granted. / grants permission for whole app
     * segment.
     */
    resource?: NullableOption<string>;
}
export interface HybridAgentUpdaterConfiguration {
    /**
     * Indicates if updater configuration will be skipped and the agent will receive an update when the next version of the
     * agent is available.
     */
    allowUpdateConfigurationOverride?: 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
     */
    deferUpdateDateTime?: NullableOption<string>;
    updateWindow?: NullableOption<UpdateWindow>;
}
export interface UpdateWindow {
    // End of a time window during which agents can receive updates
    updateWindowEndTime?: NullableOption<string>;
    // Start of a time window during which agents can receive updates
    updateWindowStartTime?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface SegmentConfiguration {}
// tslint:disable-next-line: interface-name
export interface IpSegmentConfiguration extends SegmentConfiguration {
    applicationSegments?: NullableOption<IpApplicationSegment[]>;
}
export interface KerberosSignOnSettings {
    /**
     * The Internal Application SPN of the application server. This SPN needs to be in the list of services to which the
     * connector can present delegated credentials.
     */
    kerberosServicePrincipalName?: NullableOption<string>;
    /**
     * The Delegated Login Identity for the connector to use on behalf of your users. For more information, see Working with
     * different on-premises and cloud identities . Possible values are: userPrincipalName, onPremisesUserPrincipalName,
     * userPrincipalUsername, onPremisesUserPrincipalUsername, onPremisesSAMAccountName.
     */
    kerberosSignOnMappingAttributeType?: NullableOption<KerberosSignOnMappingAttributeType>;
}
export interface OnPremisesApplicationSegment {
    /**
     * If you're configuring a traffic manager in front of multiple App Proxy application segments, contains the user-friendly
     * URL that will point to the traffic manager.
     */
    alternateUrl?: NullableOption<string>;
    // CORS Rule definition for a particular application segment.
    corsConfigurations?: NullableOption<CorsConfiguration[]>;
    // The published external URL for the application segment; for example, https://intranet.contoso.com./
    externalUrl?: NullableOption<string>;
    // The internal URL of the application segment; for example, https://intranet/.
    internalUrl?: NullableOption<string>;
}
export interface OnPremisesPublishingSingleSignOn {
    // The Kerberos Constrained Delegation settings for applications that use Integrated Window Authentication.
    kerberosSignOnSettings?: NullableOption<KerberosSignOnSettings>;
    /**
     * The preferred single-sign on mode for the application. Possible values are: none, onPremisesKerberos,
     * aadHeaderBased,pingHeaderBased, oAuthToken.
     */
    singleSignOnMode?: NullableOption<SingleSignOnMode>;
}
export interface VerifiedCustomDomainCertificatesMetadata {
    /**
     * The expiry date of the custom domain certificate. 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.
     */
    expiryDate?: NullableOption<string>;
    /**
     * The issue date of the custom domain. 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.
     */
    issueDate?: NullableOption<string>;
    // The issuer name of the custom domain certificate.
    issuerName?: NullableOption<string>;
    // The subject name of the custom domain certificate.
    subjectName?: NullableOption<string>;
    // The thumbprint associated with the custom domain certificate.
    thumbprint?: NullableOption<string>;
}
export interface WebSegmentConfiguration extends SegmentConfiguration {
    applicationSegments?: NullableOption<WebApplicationSegment[]>;
}
export interface EvaluateDynamicMembershipResult {
    /**
     * If a group ID is provided, the value is the membership rule for the group. If a group ID isn't provided, the value is
     * the membership rule that was provided as a parameter. For more information, see Dynamic membership rules for groups in
     * Microsoft Entra ID.
     */
    membershipRule?: NullableOption<string>;
    // Provides a detailed analysis of the membership evaluation result.
    membershipRuleEvaluationDetails?: NullableOption<ExpressionEvaluationDetails>;
    /**
     * The value is true if the user or device is a member of the group. The value can also be true if a membership rule was
     * provided and the user or device passes the rule evaluation; otherwise false.
     */
    membershipRuleEvaluationResult?: boolean;
}
export interface ExpressionEvaluationDetails {
    // Represents expression which has been evaluated.
    expression?: NullableOption<string>;
    // Represents the details of the evaluation of the expression.
    expressionEvaluationDetails?: NullableOption<ExpressionEvaluationDetails[]>;
    // Represents the value of the result of the current expression.
    expressionResult?: boolean;
    // Defines the name of the property and the value of that property.
    propertyToEvaluate?: NullableOption<PropertyToEvaluate>;
}
export interface PropertyToEvaluate {
    // Provides the property name.
    propertyName?: NullableOption<string>;
    // Provides the property value.
    propertyValue?: NullableOption<string>;
}
export interface MembershipRuleEvaluationDetails {
    membershipRuleEvaluationDetails?: NullableOption<ExpressionEvaluationDetails>;
}
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 de-provisioned'. 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, 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 de-provisioned. 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 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 Azure AD.
     */
    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 Azure
     * AD.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
     * re-evaluate 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 will expire. 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 1 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 {}
// tslint:disable-next-line: no-empty-interface
export interface AccessReviewError extends GenericError {}
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>;
    // Resource ID
    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>;
}
// tslint:disable-next-line: no-empty-interface
export interface AccessReviewInstanceDecisionItemTarget {}
export interface AccessReviewInstanceDecisionItemServicePrincipalTarget extends AccessReviewInstanceDecisionItemTarget {
    // The appId for the service principal entity being reviewed.
    appId?: NullableOption<string>;
    // The display name of the service principal whose access is being reviewed.
    servicePrincipalDisplayName?: NullableOption<string>;
    servicePrincipalId?: NullableOption<string>;
}
export interface AccessReviewInstanceDecisionItemUserTarget extends AccessReviewInstanceDecisionItemTarget {
    // The name of user.
    userDisplayName?: NullableOption<string>;
    // The identifier of user.
    userId?: NullableOption<string>;
    // The user principal name.
    userPrincipalName?: 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 AccessReviewRecurrenceSettings {
    // The duration in days for recurrence.
    durationInDays?: number;
    // The count of recurrences, if the value of recurrenceEndType is occurrences, or 0 otherwise.
    recurrenceCount?: number;
    /**
     * How the recurrence ends. Possible values: never, endBy, occurrences, or recurrenceCount. If it's never, then there's no
     * explicit end of the recurrence series. If it's endBy, then the recurrence ends at a certain date. If it's occurrences,
     * then the series ends after recurrenceCount instances of the review have completed.
     */
    recurrenceEndType?: NullableOption<string>;
    // The recurrence interval. Possible values: onetime, weekly, monthly, quarterly, halfyearly or annual.
    recurrenceType?: NullableOption<string>;
}
export interface AccessReviewReviewerScope extends AccessReviewScope {
    // 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 each recurrence of review (accessReviewInstance) in number of 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 AccessReviewSettings {
    // Indicates whether showing recommendations to reviewers is enabled.
    accessRecommendationsEnabled?: boolean;
    // The number of days of user activities to show to reviewers.
    activityDurationInDays?: number;
    /**
     * Indicates whether the auto-apply capability, to automatically change the target object access resource, is enabled. If
     * not enabled, a user must, after the review completes, apply the access review.
     */
    autoApplyReviewResultsEnabled?: boolean;
    /**
     * Indicates whether a decision should be set if the reviewer didn't supply one. For use when, auto-apply is enabled. If
     * you don't want to have a review decision recorded unless the reviewer makes an explicit choice, set it to false.
     */
    autoReviewEnabled?: boolean;
    // Detailed settings for how the feature should set the review decision. For use when, auto-apply is enabled.
    autoReviewSettings?: NullableOption<AutoReviewSettings>;
    // Indicates whether reviewers are required to provide a justification when reviewing access.
    justificationRequiredOnApproval?: boolean;
    // Indicates whether sending mails to reviewers and the review creator is enabled.
    mailNotificationsEnabled?: boolean;
    // Detailed settings for recurrence.
    recurrenceSettings?: NullableOption<AccessReviewRecurrenceSettings>;
    // Indicates whether sending reminder emails to reviewers is enabled.
    remindersEnabled?: boolean;
}
export interface AutoReviewSettings {
    /**
     * Possible values: Approve, Deny, or Recommendation. If Recommendation, then accessRecommendationsEnabled in the
     * accessReviewSettings resource should also be set to true. If you want to have the system provide a decision even if the
     * reviewer does not make a choice, set the autoReviewEnabled property in the accessReviewSettings resource to true and
     * include an autoReviewSettings object with the notReviewedResult property. Then, when a review completes, based on the
     * notReviewedResult property, the decision is recorded as either Approve or Deny.
     */
    notReviewedResult?: NullableOption<string>;
}
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[]>;
    /**
     * Optional field. Indicates the time period of inactivity (with respect to the start date of the review instance) from
     * which that recommendations will be configured. The recommendation is 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: The value of this property overrides
     * the corresponding setting on the accessReviewScheduleDefinition object.
     */
    recommendationLookBackDuration?: NullableOption<string>;
    /**
     * Indicates whether showing recommendations to reviewers is enabled. Required. NOTE: The value of this property overrides
     * 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. The stageId is used in dependsOn property to indicate the stage
     * relationship. Required.
     */
    stageId?: string;
}
export interface AppConsentRequestScope {
    // The name of the scope.
    displayName?: NullableOption<string>;
}
export interface BusinessFlowSettings extends AccessReviewSettings {
    durationInDays?: number;
}
export interface DecisionItemPrincipalResourceMembership {
    /**
     * Type of membership that the principal has to the resource. Multi-valued. The possible values are: direct, indirect,
     * unknownFutureValue.
     */
    membershipType?: DecisionItemPrincipalResourceMembershipType;
}
// tslint:disable-next-line: no-empty-interface
export interface DisableAndDeleteUserApplyAction extends AccessReviewApplyAction {}
// tslint:disable-next-line: no-empty-interface
export interface GovernanceCriteria {}
export interface GovernanceNotificationPolicy {
    enabledTemplateTypes?: NullableOption<string[]>;
    notificationTemplates?: NullableOption<GovernanceNotificationTemplate[]>;
}
export interface GovernanceNotificationTemplate {
    culture?: NullableOption<string>;
    id?: NullableOption<string>;
    source?: NullableOption<string>;
    type?: NullableOption<string>;
    version?: NullableOption<string>;
}
export interface GovernancePolicy {
    decisionMakerCriteria?: NullableOption<GovernanceCriteria[]>;
    notificationPolicy?: NullableOption<GovernanceNotificationPolicy>;
}
export interface GroupMembershipGovernanceCriteria extends GovernanceCriteria {
    groupId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface GroupPeerOutlierRecommendationInsightSettings extends AccessReviewRecommendationInsightSetting {}
export interface PrincipalResourceMembershipsScope extends AccessReviewScope {
    // Defines the scopes of the principals for which 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[]>;
}
export interface ProgramResource extends Identity {
    // Type of the resource, indicating whether it is a group or an app.
    type?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface RemoveAccessApplyAction extends AccessReviewApplyAction {}
export interface RoleMembershipGovernanceCriteria extends GovernanceCriteria {
    roleId?: NullableOption<string>;
    roleTemplateId?: NullableOption<string>;
}
export interface ServicePrincipalIdentity extends Identity {
    // The application identifier of the service principal.
    appId?: NullableOption<string>;
}
export interface UserGovernanceCriteria extends GovernanceCriteria {
    userId?: 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. Note: You can use the .NET Convert.ToBase64String method
     * to convert your file to binary data for uploading using the Create agreements API. A sample syntax using this method in
     * PowerShell is [convert]::ToBase64String((Get-Content -path 'yourfilepath' -Encoding byte)).
     */
    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. To learn more about these values, 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 {
    /**
     * Filter that defines the dynamic-application-syntax rule to include/exclude cloud applications. A filter can use custom
     * security attributes to include/exclude applications.
     */
    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[];
    // Authentication context class references include. Supported values are c1 through c25.
    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;
}
// tslint:disable-next-line: no-empty-interface
export interface ConditionalAccessAuthenticationFlows {}
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[];
    /**
     * Filter that defines the dynamic-servicePrincipal-syntax rule to include/exclude service principals. A filter can use
     * custom security attributes to include/exclude service principals.
     */
    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>;
    // Device states in the policy. To be deprecated and removed. Use the devices property instead.
    deviceStates?: NullableOption<ConditionalAccessDeviceStates>;
    // 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. Cannot be set if includeDevices or excludeDevices is set.
     */
    deviceFilter?: NullableOption<ConditionalAccessFilter>;
    /**
     * States excluded from the scope of the policy. Possible values: Compliant, DomainJoined. Cannot be set if deviceFIlter
     * is set.
     */
    excludeDevices?: string[];
    excludeDeviceStates?: string[];
    // States in the scope of the policy. All is the only allowed value. Cannot be set if deviceFilter is set.
    includeDevices?: string[];
    includeDeviceStates?: string[];
}
export interface ConditionalAccessDeviceStates {
    // States excluded from the scope of the policy. Possible values: Compliant, DomainJoined.
    excludeStates?: string[];
    // States in the scope of the policy. All is the only allowed value.
    includeStates?: string[];
}
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, all, unknownFutureValue, linux.
    excludePlatforms?: ConditionalAccessDevicePlatform[];
    // Possible values are: android, iOS, windows, windowsPhone, macOS, all, unknownFutureValue,linux.
    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. To learn more about custom control, see Custom controls (preview).
    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 for continuous access evaluation settings.
    continuousAccessEvaluation?: NullableOption<ContinuousAccessEvaluationSessionControl>;
    /**
     * Session control that determines whether it's 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 require sign in sessions to be bound to a device.
    secureSignInSession?: NullableOption<SecureSignInSessionControl>;
    // Session control to enforce signin frequency.
    signInFrequency?: NullableOption<SignInFrequencySessionControl>;
}
export interface ContinuousAccessEvaluationSessionControl {
    /**
     * Specifies continuous access evaluation settings. The possible values are: strictEnforcement, disabled,
     * unknownFutureValue, strictLocation. Note that you must use the Prefer: include-unknown-enum-members request header to
     * get the following value(s) in this evolvable enum: strictLocation.
     */
    mode?: NullableOption<ContinuousAccessEvaluationMode>;
}
export interface PersistentBrowserSessionControl extends ConditionalAccessSessionControl {
    // Possible values are: always, never.
    mode?: NullableOption<PersistentBrowserSessionMode>;
}
// tslint:disable-next-line: no-empty-interface
export interface SecureSignInSessionControl extends ConditionalAccessSessionControl {}
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, or null if frequencyInterval is everyTime .
    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 that 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 {
    /**
     * The possible values are none, adminGeneratedTemporaryPassword, userPerformedSecuredPasswordChange,
     * userPerformedSecuredPasswordReset, adminConfirmedSigninSafe, aiConfirmedSigninSafe,
     * userPassedMFADrivenByRiskBasedPolicy, adminDismissedAllRiskForUser, adminConfirmedSigninCompromised, hidden,
     * adminConfirmedUserCompromised, unknownFutureValue.
     */
    detail?: NullableOption<RiskDetail>;
    eventTypes?: NullableOption<RiskEventType[]>;
    riskEventTypes?: NullableOption<string[]>;
}
export interface AccessPackageAnswer {
    // The question the answer is for. Required and Read-only.
    answeredQuestion?: NullableOption<AccessPackageQuestion>;
    // The display value of the answer. Required.
    displayValue?: NullableOption<string>;
}
export interface AccessPackageQuestion {
    // ID of the question.
    id?: NullableOption<string>;
    // Specifies whether the requestor is allowed to edit answers to questions.
    isAnswerEditable?: NullableOption<boolean>;
    // Whether the requestor is required to supply an answer or not.
    isRequired?: NullableOption<boolean>;
    // 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<AccessPackageLocalizedContent>;
}
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 localized display values shown to the requestor and approvers. Required.
    displayValue?: NullableOption<AccessPackageLocalizedContent>;
}
export interface AccessPackageLocalizedContent {
    // The fallback string, which is used when a requested localization isn't available. Required.
    defaultText?: NullableOption<string>;
    // Content represented in a format for a specific locale.
    localizedTexts?: NullableOption<AccessPackageLocalizedText[]>;
}
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 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 AccessPackageAssignmentRequestRequirements {
    // Answers that have already been provided.
    existingAnswers?: NullableOption<AccessPackageAnswer[]>;
    // Indicates whether a request must be approved by an approver.
    isApprovalRequired?: NullableOption<boolean>;
    // Indicates whether approval is required when a user tries to extend their access.
    isApprovalRequiredForExtension?: NullableOption<boolean>;
    // Indicates whether the requestor is allowed to set a custom schedule.
    isCustomAssignmentScheduleAllowed?: NullableOption<boolean>;
    // Indicates whether a requestor must supply justification when submitting an assignment request.
    isRequestorJustificationRequired?: 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>;
    /**
     * Questions that are configured on the policy. The questions can be required or optional; callers can determine whether a
     * question is required or optional based on the isRequired property on accessPackageQuestion.
     */
    questions?: NullableOption<AccessPackageQuestion[]>;
    // Schedule restrictions enforced, if any.
    schedule?: NullableOption<RequestSchedule>;
    // The status of the process to process the verifiable credential, if any.
    verifiableCredentialRequirementStatus?: NullableOption<VerifiableCredentialRequirementStatus>;
}
export interface RequestSchedule {
    // In entitlement management, when the access should expire.
    expiration?: NullableOption<ExpirationPattern>;
    /**
     * For recurring access, or eligible or active assignment. This property is currently unsupported in both PIM and
     * entitlement management.
     */
    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. In PIM, when the eligible or active assignment becomes active.
     */
    startDateTime?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface VerifiableCredentialRequirementStatus {}
export interface AccessPackageLocalizedText {
    // The ISO code for the intended language. Required.
    languageCode?: NullableOption<string>;
    // The text in the specific language. Required.
    text?: NullableOption<string>;
}
export interface AccessPackageMultipleChoiceQuestion extends AccessPackageQuestion {
    // Indicates whether requestor can select multiple choices as their answer.
    allowsMultipleSelection?: NullableOption<boolean>;
    // List of answer choices.
    choices?: NullableOption<AccessPackageAnswerChoice[]>;
}
export interface AccessPackageResourceAttribute {
    // Information about how to set the attribute, currently a accessPackageUserDirectoryAttributeStore object type.
    attributeDestination?: NullableOption<AccessPackageResourceAttributeDestination>;
    /**
     * The name of the attribute in the end system. If the destination is accessPackageUserDirectoryAttributeStore, then a
     * user property such as jobTitle or a directory schema extension for the user object type, such as
     * extension2b676109c7c74ae2b41549205f1947edpersonalTitle.
     */
    attributeName?: NullableOption<string>;
    /**
     * Information about how to populate the attribute value when an accessPackageAssignmentRequest is being fulfilled,
     * currently a accessPackageResourceAttributeQuestion object type.
     */
    attributeSource?: NullableOption<AccessPackageResourceAttributeSource>;
    // Unique identifier for the attribute on the access package resource. Read-only.
    id?: NullableOption<string>;
    // Specifies whether or not an existing attribute value can be edited by the requester.
    isEditable?: NullableOption<boolean>;
    // Specifies whether the attribute will remain in the end system after an assignment ends.
    isPersistedOnAssignmentRemoval?: NullableOption<boolean>;
}
// tslint:disable-next-line: no-empty-interface
export interface AccessPackageResourceAttributeDestination {}
// tslint:disable-next-line: no-empty-interface
export interface AccessPackageResourceAttributeSource {}
export interface AccessPackageResourceAttributeQuestion extends AccessPackageResourceAttributeSource {
    // The question asked in order to get the value of the attribute
    question?: NullableOption<AccessPackageQuestion>;
}
export interface AccessPackageTextInputQuestion extends AccessPackageQuestion {
    // Indicates whether the answer will be in single or multiple line format.
    isSingleLineQuestion?: NullableOption<boolean>;
    // The regex pattern that the corresponding text answer must follow.
    regexPattern?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface AccessPackageUserDirectoryAttributeStore extends AccessPackageResourceAttributeDestination {}
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<ApprovalStage[]>;
    // 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 ApprovalStage {
    // The number of days that a request can be pending a response before it's automatically denied.
    approvalStageTimeOutInDays?: NullableOption<number>;
    /**
     * If escalation is enabled and the primary approvers don't respond before the escalation time, the escalationApprovers
     * are the users who will be asked to approve requests. This can be a collection of singleUser, groupMembers,
     * requestorManager, internalSponsors and externalSponsors. When creating or updating a policy, if there are no escalation
     * approvers, or escalation approvers aren't required for the stage, the value of this property should be an empty
     * collection.
     */
    escalationApprovers?: NullableOption<UserSet[]>;
    // If escalation is required, the time a request can be pending a response from a primary approver.
    escalationTimeInMinutes?: NullableOption<number>;
    // Indicates whether the approver is required to provide a justification for approving a request.
    isApproverJustificationRequired?: NullableOption<boolean>;
    // If true, then one or more escalation approvers are configured in this approval stage.
    isEscalationEnabled?: NullableOption<boolean>;
    /**
     * The users who are asked to approve requests. A collection of singleUser, groupMembers, requestorManager,
     * internalSponsors, externalSponsors and targetUserSponsors. When creating or updating a policy, include at least one
     * userSet in this collection.
     */
    primaryApprovers?: NullableOption<UserSet[]>;
}
export interface UserSet {
    // For a user in an approval stage, this property indicates whether the user is a backup fallback approver.
    isBackup?: NullableOption<boolean>;
}
export interface AssignmentReviewSettings {
    /**
     * The default decision to apply if the request isn't reviewed within the period specified in durationInDays. The possible
     * values are: acceptAccessRecommendation, keepAccess, removeAccess, and unknownFutureValue.
     */
    accessReviewTimeoutBehavior?: NullableOption<AccessReviewTimeoutBehavior>;
    // The number of days within which reviewers should provide input.
    durationInDays?: NullableOption<number>;
    // Specifies whether to display recommendations to the reviewer. The default value is true
    isAccessRecommendationEnabled?: NullableOption<boolean>;
    // Specifies whether the reviewer must provide justification for the approval. The default value is true.
    isApprovalJustificationRequired?: NullableOption<boolean>;
    // If true, access reviews are required for assignments from this policy.
    isEnabled?: NullableOption<boolean>;
    // The interval for recurrence, such as monthly or quarterly.
    recurrenceType?: NullableOption<string>;
    /**
     * If the reviewerType is Reviewers, this collection specifies the users who will be reviewers, either by ID or as members
     * of a group, using a collection of singleUser and groupMembers.
     */
    reviewers?: NullableOption<UserSet[]>;
    // Who should be asked to do the review, either Self, Reviewers or Manager.
    reviewerType?: NullableOption<string>;
    // When the first review should start.
    startDateTime?: NullableOption<string>;
}
export interface ConnectedOrganizationMembers extends UserSet {
    // The name of the connected organization. Read only.
    description?: NullableOption<string>;
    // The ID of the connected organization in entitlement management.
    id?: 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 CustomExtensionHandlerInstance {
    // Identifier of the customAccessPackageWorkflowExtension triggered at this instance.
    customExtensionId?: NullableOption<string>;
    // The unique run ID for the logic app.
    externalCorrelationId?: NullableOption<string>;
    /**
     * Indicates the stage of the request workflow when the access package custom extension runs. The possible values are:
     * assignmentRequestCreated, assignmentRequestApproved, assignmentRequestGranted, assignmentRequestRemoved,
     * assignmentFourteenDaysBeforeExpiration, assignmentOneDayBeforeExpiration, unknownFutureValue.
     */
    stage?: NullableOption<AccessPackageCustomExtensionStage>;
    /**
     * Status of the request to run the access package custom extension workflow that is associated with the logic app. The
     * possible values are: requestSent, requestReceived, unknownFutureValue.
     */
    status?: NullableOption<AccessPackageCustomExtensionHandlerStatus>;
}
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.
    type?: NullableOption<ExpirationPatternType>;
}
// tslint:disable-next-line: no-empty-interface
export interface ExternalSponsors extends UserSet {}
export interface GroupMembers extends UserSet {
    // The name of the group in Microsoft Entra ID. Read only.
    description?: NullableOption<string>;
    // The ID of the group in Microsoft Entra ID.
    id?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface InternalSponsors extends UserSet {}
export interface RequestorManager extends UserSet {
    /**
     * 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 RequestorSettings {
    // Indicates whether new requests are accepted on this policy.
    acceptRequests?: NullableOption<boolean>;
    /**
     * The users who are allowed to request on this policy, which can be singleUser, groupMembers, and
     * connectedOrganizationMembers.
     */
    allowedRequestors?: NullableOption<UserSet[]>;
    /**
     * Who can request. One of NoSubjects, SpecificDirectorySubjects, SpecificConnectedOrganizationSubjects,
     * AllConfiguredConnectedOrganizationSubjects, AllExistingConnectedOrganizationSubjects, AllExistingDirectoryMemberUsers,
     * AllExistingDirectorySubjects or AllExternalSubjects.
     */
    scopeType?: NullableOption<string>;
}
export interface SingleUser extends UserSet {
    // The name of the user in Microsoft Entra ID. Read only.
    description?: NullableOption<string>;
    // The ID of the user in Microsoft Entra ID.
    id?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface TargetUserSponsors extends UserSet {}
export interface VerifiableCredentialSettings {
    /**
     * The types of verifiable credentials that a requestor must present when requesting an access package that has the
     * policy.
     */
    credentialTypes?: NullableOption<VerifiableCredentialType[]>;
}
export interface VerifiedCredentialData {
    // The authority ID for the issuer.
    authority?: NullableOption<string>;
    // Key-value pair of claims retrieved from the credential that the user presented, and the service verified.
    claims?: NullableOption<VerifiedCredentialClaims>;
    // The list of credential types provided by the issuer.
    type?: NullableOption<string[]>;
}
export interface VerifiableCredentialRequired extends VerifiableCredentialRequirementStatus {
    // When the presentation request will expire and a new one will need to be generated.
    expiryDateTime?: string;
    /**
     * A URL that launches the digital wallet and starts the presentation process. You can present this URL to the user if
     * they can't scan the QR code.
     */
    url?: NullableOption<string>;
}
export interface VerifiableCredentialRetrieved extends VerifiableCredentialRequirementStatus {
    // The specific date and time that the presentation request will expire and a new one will need to be generated.
    expiryDateTime?: string;
}
export interface VerifiableCredentialType {
    // The type of credential issued, for example, BusinessCardCredential.
    credentialType?: NullableOption<string>;
    /**
     * List of the accepted issuers authority as identified by the Microsoft Entra Verified ID service, for example,
     * did:ion:EiAlrenrtD3Lsw0GlbzS1O2YFdy3Xtu8yo35W/&amp;lt;SNIP/&amp;gt;....
     */
    issuers?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface VerifiableCredentialVerified extends VerifiableCredentialRequirementStatus {}
// tslint:disable-next-line: no-empty-interface
export interface VerifiedCredentialClaims {}
// 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: interface-name no-empty-interface
export interface InformationProtectionAction {}
export interface AddContentFooterAction extends InformationProtectionAction {
    // Possible values are: left, right, center.
    alignment?: ContentAlignment;
    // Color of the font to use for the footer.
    fontColor?: NullableOption<string>;
    // Name of the font to use for the footer.
    fontName?: NullableOption<string>;
    // Font size to use for the footer.
    fontSize?: number;
    // The margin of the header from the bottom of the document.
    margin?: number;
    // The contents of the footer itself.
    text?: NullableOption<string>;
    // The name of the UI element where the footer should be placed.
    uiElementName?: NullableOption<string>;
}
export interface AddContentHeaderAction extends InformationProtectionAction {
    // Possible values are: left, right, center.
    alignment?: ContentAlignment;
    // Color of the font to use for the header.
    fontColor?: NullableOption<string>;
    // Name of the font to use for the header.
    fontName?: NullableOption<string>;
    // Font size to use for the header.
    fontSize?: number;
    // The margin of the header from the top of the document.
    margin?: number;
    // The contents of the header itself.
    text?: NullableOption<string>;
    // The name of the UI element where the header should be placed.
    uiElementName?: NullableOption<string>;
}
export interface AddWatermarkAction extends InformationProtectionAction {
    // Color of the font to use for the watermark.
    fontColor?: NullableOption<string>;
    // Name of the font to use for the watermark.
    fontName?: NullableOption<string>;
    // Font size to use for the watermark.
    fontSize?: number;
    // Possible values are: horizontal, diagonal.
    layout?: WatermarkLayout;
    // The contents of the watermark itself.
    text?: NullableOption<string>;
    // The name of the UI element where the watermark should be placed.
    uiElementName?: NullableOption<string>;
}
export interface ApplyLabelAction extends InformationProtectionAction {
    /**
     * The collection of specific actions that should be taken by the consuming application to label the document. See
     * informationProtectionAction for the full list.
     */
    actions?: NullableOption<InformationProtectionAction[]>;
    // Possible values are: manual, automatic, recommended, default.
    actionSource?: ActionSource;
    // Object that describes the details of the label to apply.
    label?: NullableOption<LabelDetails>;
    /**
     * If the label was the result of an automatic classification, supply the list of sensitive info type GUIDs that resulted
     * in the returned label.
     */
    responsibleSensitiveTypeIds?: string[];
}
export interface ParentLabelDetails {
    // The color that the user interface should display for the label, if configured.
    color?: NullableOption<string>;
    // The admin-defined description for the label.
    description?: NullableOption<string>;
    // The label ID is a globally unique identifier (GUID).
    id?: NullableOption<string>;
    // Indicates whether the label is active or not. Active labels should be hidden or disabled in user interfaces.
    isActive?: boolean;
    // The plaintext name of the label.
    name?: NullableOption<string>;
    parent?: NullableOption<ParentLabelDetails>;
    // The sensitivity value of the label, where lower is less sensitive.
    sensitivity?: number;
    // The tooltip that should be displayed for the label in a user interface.
    tooltip?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface LabelDetails extends ParentLabelDetails {}
export interface BufferDecryptionResult {
    decryptedBuffer?: NullableOption<string>;
}
export interface BufferEncryptionResult {
    encryptedBuffer?: NullableOption<string>;
    publishingLicense?: NullableOption<string>;
}
export interface ClassificationResult {
    // The confidence level, 0 to 100, of the result.
    confidenceLevel?: number;
    // The number of instances of the specific information type in the input.
    count?: number;
    // The GUID of the discovered sensitive information type.
    sensitiveTypeId?: string;
}
export interface ContentInfo {
    // Possible values are: default, email.
    format?: ContentFormat;
    // Identifier used for Azure Information Protection Analytics.
    identifier?: NullableOption<string>;
    /**
     * Existing Microsoft Purview Information Protection metadata is passed as key/value pairs, where the key is the
     * MSIPLabelGUID_PropName.
     */
    metadata?: NullableOption<KeyValuePair[]>;
    // Possible values are: rest, motion, use.
    state?: ContentState;
}
export interface CustomAction extends InformationProtectionAction {
    // Name of the custom action.
    name?: NullableOption<string>;
    // Properties, in key value pair format, of the action.
    properties?: NullableOption<KeyValuePair[]>;
}
export interface DowngradeJustification {
    // Indicates whether the downgrade is or isn't justified.
    isDowngradeJustified?: boolean;
    // Message that indicates why a downgrade is justified. The message appears in administrative logs.
    justificationMessage?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InformationProtectionContentLabel {
    // Possible values are: standard, privileged, auto.
    assignmentMethod?: AssignmentMethod;
    /**
     * 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
     */
    creationDateTime?: NullableOption<string>;
    // Details on the label that is currently applied to the file.
    label?: NullableOption<LabelDetails>;
}
// tslint:disable-next-line: no-empty-interface
export interface JustifyAction extends InformationProtectionAction {}
export interface LabelingOptions {
    // Possible values are: standard, privileged, auto.
    assignmentMethod?: AssignmentMethod;
    // The downgrade justification object that indicates if downgrade was justified and, if so, the reason.
    downgradeJustification?: NullableOption<DowngradeJustification>;
    /**
     * Extended properties will be parsed and returned in the standard MIP labeled metadata format as part of the label
     * information.
     */
    extendedProperties?: NullableOption<KeyValuePair[]>;
    // The GUID of the label that should be applied to the information.
    labelId?: string;
}
export interface MetadataAction extends InformationProtectionAction {
    // A collection of key value pairs that should be added to the file.
    metadataToAdd?: NullableOption<KeyValuePair[]>;
    // A collection of strings that indicate which keys to remove from the file metadata.
    metadataToRemove?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface ProtectAdhocAction extends InformationProtectionAction {}
export interface ProtectByTemplateAction extends InformationProtectionAction {
    // The GUID of the Azure Information Protection template to apply to the information.
    templateId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface ProtectDoNotForwardAction extends InformationProtectionAction {}
export interface RecommendLabelAction extends InformationProtectionAction {
    // Actions to take if the label is accepted by the user.
    actions?: NullableOption<InformationProtectionAction[]>;
    // Possible values are: manual, automatic, recommended, default.
    actionSource?: ActionSource;
    // The label that is being recommended.
    label?: NullableOption<LabelDetails>;
    // The sensitive information type GUIDs that caused the recommendation to be given.
    responsibleSensitiveTypeIds?: string[];
}
export interface RemoveContentFooterAction extends InformationProtectionAction {
    // The name of the UI element of the footer to be removed.
    uiElementNames?: NullableOption<string[]>;
}
export interface RemoveContentHeaderAction extends InformationProtectionAction {
    // The name of the UI element of the header to be removed.
    uiElementNames?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface RemoveProtectionAction extends InformationProtectionAction {}
export interface RemoveWatermarkAction extends InformationProtectionAction {
    // The name of the UI element of footer to be removed.
    uiElementNames?: NullableOption<string[]>;
}
export interface SigningResult {
    signature?: NullableOption<string>;
    signingKeyId?: NullableOption<string>;
}
export interface VerificationResult {
    signatureValid?: boolean;
}
export interface AndroidEnrollmentCompanyCode {
    // Enrollment Token used by the User to enroll their device.
    enrollmentToken?: NullableOption<string>;
    // String used to generate a QR code for the token.
    qrCodeContent?: NullableOption<string>;
    // Generated QR code for the token.
    qrCodeImage?: NullableOption<MimeContent>;
}
export interface MimeContent {
    // Indicates the content mime type.
    type?: NullableOption<string>;
    // The byte array that contains the actual content.
    value?: NullableOption<string>;
}
export interface AndroidForWorkAppConfigurationSchemaItem {
    /**
     * The type of value this item describes. Possible values are: bool, integer, string, choice, multiselect, bundle,
     * bundleArray, hidden.
     */
    dataType?: AndroidForWorkAppConfigurationSchemaItemDataType;
    // Default value for boolean type items, if specified by the app developer
    defaultBoolValue?: NullableOption<boolean>;
    // Default value for integer type items, if specified by the app developer
    defaultIntValue?: NullableOption<number>;
    // Default value for string array type items, if specified by the app developer
    defaultStringArrayValue?: NullableOption<string[]>;
    // Default value for string type items, if specified by the app developer
    defaultStringValue?: NullableOption<string>;
    // Description of what the item controls within the application
    description?: NullableOption<string>;
    // Human readable name
    displayName?: NullableOption<string>;
    // Unique key the application uses to identify the item
    schemaItemKey?: NullableOption<string>;
    /**
     * List of human readable name/value pairs for the valid values that can be set for this item (Choice and Multiselect
     * items only)
     */
    selections?: NullableOption<KeyValuePair[]>;
}
export interface AndroidManagedStoreAppConfigurationSchemaItem {
    /**
     * The type of value this item describes. Possible values are: bool, integer, string, choice, multiselect, bundle,
     * bundleArray, hidden.
     */
    dataType?: AndroidManagedStoreAppConfigurationSchemaItemDataType;
    // Default value for boolean type items, if specified by the app developer
    defaultBoolValue?: NullableOption<boolean>;
    // Default value for integer type items, if specified by the app developer
    defaultIntValue?: NullableOption<number>;
    // Default value for string array type items, if specified by the app developer
    defaultStringArrayValue?: NullableOption<string[]>;
    // Default value for string type items, if specified by the app developer
    defaultStringValue?: NullableOption<string>;
    // Description of what the item controls within the application
    description?: NullableOption<string>;
    // Human readable name
    displayName?: NullableOption<string>;
    // Unique index the application uses to maintain nested schema items
    index?: number;
    // Index of parent schema item to track nested schema items
    parentIndex?: NullableOption<number>;
    // Unique key the application uses to identify the item
    schemaItemKey?: NullableOption<string>;
    /**
     * List of human readable name/value pairs for the valid values that can be set for this item (Choice and Multiselect
     * items only)
     */
    selections?: NullableOption<KeyValuePair[]>;
}
export interface DeviceAndAppManagementAssignmentTarget {
    // The Id of the filter for the target assignment.
    deviceAndAppManagementAssignmentFilterId?: NullableOption<string>;
    // The type of filter of the target assignment i.e. Exclude or Include. Possible values are: none, include, exclude.
    deviceAndAppManagementAssignmentFilterType?: DeviceAndAppManagementAssignmentFilterType;
}
// tslint:disable-next-line: no-empty-interface
export interface AllDevicesAssignmentTarget extends DeviceAndAppManagementAssignmentTarget {}
// tslint:disable-next-line: no-empty-interface
export interface AllLicensedUsersAssignmentTarget extends DeviceAndAppManagementAssignmentTarget {}
// tslint:disable-next-line: no-empty-interface
export interface MobileAppAssignmentSettings {}
export interface AndroidManagedStoreAppAssignmentSettings extends MobileAppAssignmentSettings {
    // The track IDs to enable for this app assignment.
    androidManagedStoreAppTrackIds?: NullableOption<string[]>;
    /**
     * The prioritization of automatic updates for this app assignment. Possible values are: default, postponed, priority,
     * unknownFutureValue.
     */
    autoUpdateMode?: AndroidManagedStoreAutoUpdateMode;
}
export interface AndroidManagedStoreAppTrack {
    // Friendly name for track.
    trackAlias?: NullableOption<string>;
    // Unique track identifier.
    trackId?: NullableOption<string>;
}
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 AndroidPermissionAction {
    // Type of Android permission action. Possible values are: prompt, autoGrant, autoDeny.
    action?: AndroidPermissionActionType;
    // Android permission string, defined in the official Android documentation. Example 'android.permission.READ_CONTACTS'.
    permission?: NullableOption<string>;
}
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 ExcludedApps {
    // The value for if MS Office Access should be excluded or not.
    access?: boolean;
    // The value for if Microsoft Search as default should be excluded or not.
    bing?: boolean;
    // The value for if MS Office Excel should be excluded or not.
    excel?: boolean;
    // The value for if MS Office OneDrive for Business - Groove should be excluded or not.
    groove?: boolean;
    // The value for if MS Office InfoPath should be excluded or not.
    infoPath?: boolean;
    // The value for if MS Office Skype for Business - Lync should be excluded or not.
    lync?: boolean;
    // The value for if MS Office OneDrive should be excluded or not.
    oneDrive?: boolean;
    // The value for if MS Office OneNote should be excluded or not.
    oneNote?: boolean;
    // The value for if MS Office Outlook should be excluded or not.
    outlook?: boolean;
    // The value for if MS Office PowerPoint should be excluded or not.
    powerPoint?: boolean;
    // The value for if MS Office Publisher should be excluded or not.
    publisher?: boolean;
    // The value for if MS Office SharePointDesigner should be excluded or not.
    sharePointDesigner?: boolean;
    // The value for if MS Office Teams should be excluded or not.
    teams?: boolean;
    // The value for if MS Office Visio should be excluded or not.
    visio?: boolean;
    // The value for if MS Office Word should be excluded or not.
    word?: boolean;
}
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: 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 not be backed up to iCloud. When FALSE, indicates that the app may be backed
     * up to iCloud. By default, this property is set to null which internally is treated as FALSE.
     */
    preventManagedAppBackup?: NullableOption<boolean>;
    // Whether or not to uninstall the app when device is removed from Intune.
    uninstallOnDeviceRemoval?: NullableOption<boolean>;
    // The VPN Configuration Id to apply for this 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 16.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v16_0?: boolean;
    /**
     * When TRUE, only Version 17.0 or later is supported. Default value is FALSE. Exactly one of the minimum operating system
     * boolean values will be TRUE.
     */
    v17_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 not be backed up to iCloud. When FALSE, indicates that the app may be backed
     * up to iCloud. By default, this property is set to null which internally is treated as FALSE.
     */
    preventManagedAppBackup?: NullableOption<boolean>;
    // Whether or not to uninstall the app when device is removed from Intune.
    uninstallOnDeviceRemoval?: NullableOption<boolean>;
    // The VPN Configuration Id to apply for this app.
    vpnConfigurationId?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosVppAppAssignmentSettings extends MobileAppAssignmentSettings {
    // Whether or not the app can be removed by the user.
    isRemovable?: NullableOption<boolean>;
    /**
     * When TRUE, indicates that the app should not be automatically updated with the latest version from Apple app store.
     * When FALSE, indicates that the app may be auto updated. By default, this property is set to null which internally is
     * treated as FALSE.
     */
    preventAutoAppUpdate?: NullableOption<boolean>;
    /**
     * When TRUE, indicates that the app should not be backed up to iCloud. When FALSE, indicates that the app may be backed
     * up to iCloud. By default, this property is set to null which internally is treated as FALSE.
     */
    preventManagedAppBackup?: NullableOption<boolean>;
    // Whether or not to uninstall the app when device is removed from Intune.
    uninstallOnDeviceRemoval?: NullableOption<boolean>;
    // Whether or not to use device licensing.
    useDeviceLicensing?: boolean;
    // The VPN Configuration Id to apply for this app.
    vpnConfigurationId?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosVppAppRevokeLicensesActionResult {
    /**
     * The reason for the revoke licenses action failure. Possible values are: none, appleFailure, internalError,
     * expiredVppToken, expiredApplePushNotificationCertificate.
     */
    actionFailureReason?: VppTokenActionFailureReason;
    // Action name
    actionName?: NullableOption<string>;
    // State of the action. Possible values are: none, pending, canceled, active, done, failed, notSupported.
    actionState?: ActionState;
    // A count of the number of licenses for which revoke failed.
    failedLicensesCount?: number;
    // Time the action state was last updated
    lastUpdatedDateTime?: string;
    // DeviceId associated with the action.
    managedDeviceId?: NullableOption<string>;
    // Time the action was initiated
    startDateTime?: string;
    // A count of the number of licenses for which revoke was attempted.
    totalLicensesCount?: number;
    // UserId associated with the action.
    userId?: NullableOption<string>;
}
export interface MacOSAppScript {
    // The base64 encoded shell script (.sh) that assists managing macOS apps.
    scriptContent?: 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 {
    // Whether or not to uninstall the app when 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;
    /**
     * When TRUE, indicates macOS 14.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.
     */
    v14_0?: boolean;
}
export interface MacOsVppAppAssignmentSettings extends MobileAppAssignmentSettings {
    /**
     * When TRUE, indicates that the app should not be automatically updated with the latest version from Apple app store.
     * When FALSE, indicates that the app may be auto updated. By default, this property is set to null which internally is
     * treated as FALSE.
     */
    preventAutoAppUpdate?: NullableOption<boolean>;
    /**
     * When TRUE, indicates that the app should not be backed up to iCloud. When FALSE, indicates that the app may be backed
     * up to iCloud. By default, this property is set to null which internally is treated as FALSE.
     */
    preventManagedAppBackup?: NullableOption<boolean>;
    // Whether or not to uninstall the app when device is removed from Intune.
    uninstallOnDeviceRemoval?: NullableOption<boolean>;
    // Whether or not to use device licensing.
    useDeviceLicensing?: boolean;
}
export interface MacOsVppAppRevokeLicensesActionResult {
    /**
     * The reason for the revoke licenses action failure. Possible values are: none, appleFailure, internalError,
     * expiredVppToken, expiredApplePushNotificationCertificate.
     */
    actionFailureReason?: VppTokenActionFailureReason;
    // Action name
    actionName?: NullableOption<string>;
    // State of the action. Possible values are: none, pending, canceled, active, done, failed, notSupported.
    actionState?: ActionState;
    // A count of the number of licenses for which revoke failed.
    failedLicensesCount?: number;
    // Time the action state was last updated
    lastUpdatedDateTime?: string;
    // DeviceId associated with the action.
    managedDeviceId?: NullableOption<string>;
    // Time the action was initiated
    startDateTime?: string;
    // A count of the number of licenses for which revoke was attempted.
    totalLicensesCount?: number;
    // UserId associated with the action.
    userId?: NullableOption<string>;
}
export interface MicrosoftStoreForBusinessAppAssignmentSettings extends MobileAppAssignmentSettings {
    // Whether or not to use device execution context for Microsoft Store for Business mobile app.
    useDeviceContext?: boolean;
}
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.
    supportDeviceLicensing?: boolean;
    // Whether the program supports the device licensing type.
    supportsDeviceLicensing?: boolean;
    // Whether the program supports the user licensing type.
    supportsUserLicensing?: boolean;
    // Whether the program supports the user licensing type.
    supportUserLicensing?: boolean;
}
export interface Win32LobAppAssignmentSettings extends MobileAppAssignmentSettings {
    // The auto-update settings to apply for this app assignment.
    autoUpdateSettings?: NullableOption<Win32LobAppAutoUpdateSettings>;
    /**
     * 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>;
}
// tslint:disable-next-line: no-empty-interface
export interface Win32CatalogAppAssignmentSettings extends Win32LobAppAssignmentSettings {}
export interface Win32LobAppAutoUpdateSettings {
    /**
     * The auto-update superseded apps setting for the app assignment. Possible values are notConfigured and enabled. Default
     * value is notConfigured. Possible values are: notConfigured, enabled, unknownFutureValue.
     */
    autoUpdateSupersededApps?: Win32LobAppAutoUpdateSupersededApps;
}
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>;
}
// tslint:disable-next-line: no-empty-interface
export interface Win32LobAppDetection {}
export interface Win32LobAppFileSystemDetection extends Win32LobAppDetection {
    // A value indicating whether this file or folder is for checking 32-bit app on 64-bit system
    check32BitOn64System?: boolean;
    /**
     * The file system detection type. Possible values are: notConfigured, exists, modifiedDate, createdDate, version,
     * sizeInMB, doesNotExist.
     */
    detectionType?: Win32LobAppFileSystemDetectionType;
    // The file or folder detection value
    detectionValue?: NullableOption<string>;
    // The file or folder name to detect Win32 Line of Business (LoB) app
    fileOrFolderName?: NullableOption<string>;
    /**
     * The operator for file or folder detection. Possible values are: notConfigured, equal, notEqual, greaterThan,
     * greaterThanOrEqual, lessThan, lessThanOrEqual.
     */
    operator?: Win32LobAppDetectionOperator;
    // The file or folder path to detect Win32 Line of Business (LoB) app
    path?: NullableOption<string>;
}
export interface Win32LobAppRequirement {
    // The detection value
    detectionValue?: NullableOption<string>;
    /**
     * The operator for detection. Possible values are: notConfigured, equal, notEqual, greaterThan, greaterThanOrEqual,
     * lessThan, lessThanOrEqual.
     */
    operator?: Win32LobAppDetectionOperator;
}
export interface Win32LobAppFileSystemRequirement extends Win32LobAppRequirement {
    // A value indicating whether this file or folder is for checking 32-bit app on 64-bit system
    check32BitOn64System?: boolean;
    /**
     * The file system detection type. Possible values are: notConfigured, exists, modifiedDate, createdDate, version,
     * sizeInMB, doesNotExist.
     */
    detectionType?: Win32LobAppFileSystemDetectionType;
    // The file or folder name to detect Win32 Line of Business (LoB) app
    fileOrFolderName?: NullableOption<string>;
    // The file or folder path to detect Win32 Line of Business (LoB) app
    path?: NullableOption<string>;
}
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, doesNotExist.
     */
    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;
    // The number of minutes the system will wait for install program to finish. Default value is 60 minutes.
    maxRunTimeInMinutes?: NullableOption<number>;
    // 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 Win32LobAppPowerShellScriptDetection extends Win32LobAppDetection {
    // A value indicating whether signature check is enforced
    enforceSignatureCheck?: boolean;
    // A value indicating whether this script should run as 32-bit
    runAs32Bit?: boolean;
    // The base64 encoded script content to detect Win32 Line of Business (LoB) app
    scriptContent?: NullableOption<string>;
}
export interface Win32LobAppPowerShellScriptRequirement extends Win32LobAppRequirement {
    /**
     * The detection type for script output. Possible values are: notConfigured, string, dateTime, integer, float, version,
     * boolean.
     */
    detectionType?: Win32LobAppPowerShellScriptDetectionType;
    // The unique display name for this rule
    displayName?: string;
    // A value indicating whether signature check is enforced
    enforceSignatureCheck?: boolean;
    // A value indicating whether this script should run as 32-bit
    runAs32Bit?: boolean;
    // Indicates the type of execution context the script runs in. Possible values are: system, user.
    runAsAccount?: RunAsAccountType;
    // The base64 encoded script content to detect Win32 Line of Business (LoB) app
    scriptContent?: 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 Win32LobAppProductCodeDetection extends Win32LobAppDetection {
    // The product code of Win32 Line of Business (LoB) app.
    productCode?: NullableOption<string>;
    // The product version of Win32 Line of Business (LoB) app.
    productVersion?: NullableOption<string>;
    /**
     * The operator to detect product version. Possible values are: notConfigured, equal, notEqual, greaterThan,
     * greaterThanOrEqual, lessThan, lessThanOrEqual.
     */
    productVersionOperator?: Win32LobAppDetectionOperator;
}
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 Win32LobAppRegistryDetection extends Win32LobAppDetection {
    // A value indicating whether this registry path is for checking 32-bit app on 64-bit system
    check32BitOn64System?: boolean;
    // The registry data detection type. Possible values are: notConfigured, exists, doesNotExist, string, integer, version.
    detectionType?: Win32LobAppRegistryDetectionType;
    // The registry detection value
    detectionValue?: NullableOption<string>;
    // The registry key path to detect Win32 Line of Business (LoB) app
    keyPath?: NullableOption<string>;
    /**
     * The operator for registry data detection. Possible values are: notConfigured, equal, notEqual, greaterThan,
     * greaterThanOrEqual, lessThan, lessThanOrEqual.
     */
    operator?: Win32LobAppDetectionOperator;
    // The registry value name
    valueName?: NullableOption<string>;
}
export interface Win32LobAppRegistryRequirement extends Win32LobAppRequirement {
    // A value indicating whether this registry path is for checking 32-bit app on 64-bit system
    check32BitOn64System?: boolean;
    // The registry data detection type. Possible values are: notConfigured, exists, doesNotExist, string, integer, version.
    detectionType?: Win32LobAppRegistryDetectionType;
    // The registry key path to detect Win32 Line of Business (LoB) app
    keyPath?: NullableOption<string>;
    // The registry value name
    valueName?: NullableOption<string>;
}
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 {
    // Whether or not to use device execution context for Windows AppX mobile app.
    useDeviceContext?: boolean;
}
export interface WindowsMinimumOperatingSystem {
    // Windows version 10.0 or later.
    v10_0?: boolean;
    // Windows 10 1607 or later.
    v10_1607?: boolean;
    // Windows 10 1703 or later.
    v10_1703?: boolean;
    // Windows 10 1709 or later.
    v10_1709?: boolean;
    // Windows 10 1803 or later.
    v10_1803?: boolean;
    // Windows 10 1809 or later.
    v10_1809?: boolean;
    // Windows 10 1903 or later.
    v10_1903?: boolean;
    // Windows 10 1909 or later.
    v10_1909?: boolean;
    // Windows 10 2004 or later.
    v10_2004?: boolean;
    // Windows 10 21H1 or later.
    v10_21H1?: boolean;
    // Windows 10 2H20 or later.
    v10_2H20?: boolean;
    // Windows version 8.0 or later.
    v8_0?: boolean;
    // Windows version 8.1 or later.
    v8_1?: boolean;
}
export interface WindowsPackageInformation {
    // The Windows architecture for which this app can run on. Possible values are: none, x86, x64, arm, neutral, arm64.
    applicableArchitecture?: WindowsArchitecture;
    // The Display Name.
    displayName?: NullableOption<string>;
    // The Identity Name.
    identityName?: NullableOption<string>;
    // The Identity Publisher.
    identityPublisher?: NullableOption<string>;
    // The Identity Resource Identifier.
    identityResourceIdentifier?: NullableOption<string>;
    // The Identity Version.
    identityVersion?: NullableOption<string>;
    // The value for the minimum applicable operating system.
    minimumSupportedOperatingSystem?: NullableOption<WindowsMinimumOperatingSystem>;
}
export interface WindowsUniversalAppXAppAssignmentSettings extends MobileAppAssignmentSettings {
    // Whether or not to use device execution context for Windows Universal AppX mobile app.
    useDeviceContext?: boolean;
}
export interface WinGetAppAssignmentSettings extends MobileAppAssignmentSettings {
    // The install time settings to apply for this app assignment.
    installTimeSettings?: NullableOption<WinGetAppInstallTimeSettings>;
    // The notification status for this app assignment. Possible values are: showAll, showReboot, hideAll, unknownFutureValue.
    notifications?: WinGetAppNotification;
    // The reboot settings to apply for this app assignment.
    restartSettings?: NullableOption<WinGetAppRestartSettings>;
}
export interface WinGetAppInstallTimeSettings {
    // The time at which the app should be installed.
    deadlineDateTime?: string;
    // Whether the local device time or UTC time should be used when determining the deadline times.
    useLocalTime?: boolean;
}
export interface WinGetAppRestartSettings {
    // 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 WinGetAppInstallExperience {
    /**
     * Indicates the type of execution context the app setup runs in on target devices. Options include values of the
     * RunAsAccountType enum, which are System and User. Required at creation time, cannot be modified on existing objects.
     * Possible values are: system, user.
     */
    runAsAccount?: RunAsAccountType;
}
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>;
    // Remote Tenant Id
    remoteTenantId?: NullableOption<string>;
    // Remote User Id
    remoteUserId?: NullableOption<string>;
    // Service Principal Name (SPN).
    servicePrincipalName?: NullableOption<string>;
    // Actor Type.
    type?: 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>;
    // List of user scope tags when the audit was performed.
    userRoleScopeTags?: NullableOption<RoleScopeTagInfo[]>;
}
export interface RoleScopeTagInfo {
    // Scope Tag Display name.
    displayName?: NullableOption<string>;
    // Scope Tag Id.
    roleScopeTagId?: 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>;
    // Audit resource's type.
    type?: NullableOption<string>;
}
export interface AssignmentFilterEvaluateRequest {
    // Order the devices should be sorted in. Default is ascending on device name.
    orderBy?: NullableOption<string[]>;
    /**
     * Platform type of the devices on which the Assignment Filter will be applicable. Possible values are: android,
     * androidForWork, iOS, macOS, windowsPhone81, windows81AndLater, windows10AndLater, androidWorkProfile, unknown,
     * androidAOSP, androidMobileApplicationManagement, iOSMobileApplicationManagement, unknownFutureValue.
     */
    platform?: DevicePlatformType;
    // Rule definition of the Assignment Filter.
    rule?: string;
    // Search keyword applied to scope found devices.
    search?: NullableOption<string>;
    // Number of records to skip. Default value is 0
    skip?: number;
    // Limit of records per request. Default value is 100, if provided less than 0 or greater than 100
    top?: number;
}
export interface AssignmentFilterEvaluationSummary {
    // The admin defined name for assignment filter.
    assignmentFilterDisplayName?: NullableOption<string>;
    // Unique identifier for the assignment filter object
    assignmentFilterId?: NullableOption<string>;
    // The time the assignment filter was last modified.
    assignmentFilterLastModifiedDateTime?: string;
    /**
     * The platform for which this assignment filter is created. Possible values are: android, androidForWork, iOS, macOS,
     * windowsPhone81, windows81AndLater, windows10AndLater, androidWorkProfile, unknown, androidAOSP,
     * androidMobileApplicationManagement, iOSMobileApplicationManagement, unknownFutureValue.
     */
    assignmentFilterPlatform?: DevicePlatformType;
    // Indicate filter type either include or exclude. Possible values are: none, include, exclude.
    assignmentFilterType?: DeviceAndAppManagementAssignmentFilterType;
    // A collection of filter types and their corresponding evaluation results.
    assignmentFilterTypeAndEvaluationResults?: NullableOption<AssignmentFilterTypeAndEvaluationResult[]>;
    // The time assignment filter was evaluated.
    evaluationDateTime?: string;
    /**
     * Assignment filter evaluation result. Possible values are: unknown, match, notMatch, inconclusive, failure,
     * notEvaluated.
     */
    evaluationResult?: AssignmentFilterEvaluationResult;
}
export interface AssignmentFilterTypeAndEvaluationResult {
    // Represents the filter type. Possible values are: none, include, exclude.
    assignmentFilterType?: DeviceAndAppManagementAssignmentFilterType;
    /**
     * Represents the evalaution result of the filter. Possible values are: unknown, match, notMatch, inconclusive, failure,
     * notEvaluated.
     */
    evaluationResult?: AssignmentFilterEvaluationResult;
}
export interface AssignmentFilterState {
    // Indicator to if AssignmentFilter is enabled or disabled.
    enabled?: boolean;
}
export interface AssignmentFilterStatusDetails {
    // Device properties used for filter evaluation during device check-in time.
    deviceProperties?: NullableOption<KeyValuePair[]>;
    // Evaluation result summaries for each filter associated to device and payload
    evalutionSummaries?: NullableOption<AssignmentFilterEvaluationSummary[]>;
    // Unique identifier for the device object.
    managedDeviceId?: NullableOption<string>;
    // Unique identifier for payload object.
    payloadId?: NullableOption<string>;
    // Unique identifier for UserId object. Can be null
    userId?: NullableOption<string>;
}
export interface AssignmentFilterSupportedProperty {
    // The data type of the property.
    dataType?: NullableOption<string>;
    // Indicates whether the property is a collection type or not.
    isCollection?: boolean;
    // Name of the property.
    name?: NullableOption<string>;
    // Regex string to do validation on the property value.
    propertyRegexConstraint?: NullableOption<string>;
    // List of all supported operators on this property.
    supportedOperators?: AssignmentFilterOperator[];
    // List of all supported values for this property, empty if everything is supported.
    supportedValues?: NullableOption<string[]>;
}
export interface AssignmentFilterValidationResult {
    // Indicator to valid or invalid rule.
    isValidRule?: boolean;
}
export interface HasPayloadLinkResultItem {
    // Exception information indicates if check for this item was successful or not.Empty string for no error.
    error?: NullableOption<string>;
    // Indicate whether a payload has any link or not.
    hasLink?: NullableOption<boolean>;
    // Key of the Payload, In the format of Guid.
    payloadId?: NullableOption<string>;
    // The reason where the link comes from.
    sources?: DeviceAndAppManagementAssignmentSource[];
}
export interface PayloadByFilter {
    /**
     * An enum to indicate whether the filter is applied. Possible values are include,exclude,none.'include' means devices
     * that match the filter conditions receive the app or policy. Devices that don't match the filter conditions don't
     * receive the app or policy. 'exclude' means devices that match the filter conditions don't receive the app or policy.
     * Devices that don't match the filter conditions receive the app or policy.'none' means no filter is assigned. Possible
     * values are: none, include, exclude.
     */
    assignmentFilterType?: DeviceAndAppManagementAssignmentFilterType;
    // The Azure AD security group ID
    groupId?: NullableOption<string>;
    // The policy identifier
    payloadId?: NullableOption<string>;
    /**
     * The policy type identifier. Possible values are
     * unknown,settingsPolicy,application,microsoftApplicationManagementPolicy,androidForWorkApplication,enrollmentConfiguration,microsoftIntuneManagementExtension,groupPolicy,zeroTouchDeploymentDeviceConfigProfile,androidEnterprisePolicy,deviceFirmwareConfigurationInterfacePolicy,windowsUpdateProfile,resourceAccessPolicy,sidecarPolicy,deviceConfigurationPolicy,microsoftManagementPlatformCloud.
     * Possible values are: unknown, deviceConfigurationAndCompliance, application, androidEnterpriseApp,
     * enrollmentConfiguration, groupPolicyConfiguration, zeroTouchDeploymentDeviceConfigProfile,
     * androidEnterpriseConfiguration, deviceFirmwareConfigurationInterfacePolicy, resourceAccessPolicy, win32app,
     * deviceManagmentConfigurationAndCompliancePolicy.
     */
    payloadType?: AssociatedAssignmentPayloadType;
}
export interface DeviceManagementApplicabilityRuleDeviceMode {
    // Applicability rule for device mode. Possible values are: standardConfiguration, sModeConfiguration.
    deviceMode?: Windows10DeviceModeType;
    // Name for object.
    name?: NullableOption<string>;
    // Applicability Rule type. Possible values are: include, exclude.
    ruleType?: DeviceManagementApplicabilityRuleType;
}
export interface DeviceManagementApplicabilityRuleOsEdition {
    // Name for object.
    name?: NullableOption<string>;
    // Applicability rule OS edition type.
    osEditionTypes?: Windows10EditionType[];
    // Applicability Rule type. Possible values are: include, exclude.
    ruleType?: DeviceManagementApplicabilityRuleType;
}
export interface DeviceManagementApplicabilityRuleOsVersion {
    // Max OS version for Applicability Rule.
    maxOSVersion?: NullableOption<string>;
    // Min OS version for Applicability Rule.
    minOSVersion?: NullableOption<string>;
    // Name for object.
    name?: NullableOption<string>;
    // Applicability Rule type. Possible values are: include, exclude.
    ruleType?: DeviceManagementApplicabilityRuleType;
}
export interface WindowsEnrollmentStatusScreenSettings {
    // Allow or block user to use device before profile and app installation complete
    allowDeviceUseBeforeProfileAndAppInstallComplete?: boolean;
    // Allow the user to continue using the device on installation failure
    allowDeviceUseOnInstallFailure?: boolean;
    // Allow or block log collection on installation failure
    allowLogCollectionOnInstallFailure?: boolean;
    // Allow the user to retry the setup on installation failure
    blockDeviceSetupRetryByUser?: boolean;
    // Set custom error message to show upon installation failure
    customErrorMessage?: NullableOption<string>;
    // Show or hide installation progress to user
    hideInstallationProgress?: boolean;
    // Set installation progress timeout in minutes
    installProgressTimeoutInMinutes?: NullableOption<number>;
}
export interface OutOfBoxExperienceSettings {
    // AAD join authentication type. Possible values are: singleUser, shared.
    deviceUsageType?: WindowsDeviceUsageType;
    // If set to true, then the user can't start over with different account, on company sign-in
    hideEscapeLink?: boolean;
    // Show or hide EULA to user
    hideEULA?: boolean;
    // Show or hide privacy settings to user
    hidePrivacySettings?: boolean;
    // If set, then skip the keyboard selection page if Language and Region are set
    skipKeyboardSelectionPage?: boolean;
    // Type of user. Possible values are: administrator, standard.
    userType?: WindowsUserType;
}
// tslint:disable-next-line: no-empty-interface
export interface ScopeTagGroupAssignmentTarget extends DeviceAndAppManagementAssignmentTarget {}
// tslint:disable-next-line: no-empty-interface
export interface ServiceNowAuthenticationMethod {}
export interface ServiceNowOauthSecretAuthentication extends ServiceNowAuthenticationMethod {
    // Tenant appId registered with Azure AD
    appId?: NullableOption<string>;
}
export interface AirPrintDestination {
    /**
     * If true AirPrint connections are secured by Transport Layer Security (TLS). Default is false. Available in iOS 11.0 and
     * later.
     */
    forceTls?: boolean;
    // The IP Address of the AirPrint destination.
    ipAddress?: string;
    /**
     * The listening port of the AirPrint destination. If this key is not specified AirPrint will use the default port.
     * Available in iOS 11.0 and later.
     */
    port?: NullableOption<number>;
    /**
     * The Resource Path associated with the printer. This corresponds to the rp parameter of the _ipps.tcp Bonjour record.
     * For example: printers/Canon_MG5300_series, printers/Xerox_Phaser_7600, ipp/print, Epson_IPP_Printer.
     */
    resourcePath?: string;
}
export interface AndroidDeviceOwnerDelegatedScopeAppSetting {
    // Information about the app like Name, AppStoreUrl, Publisher and AppId
    appDetail?: AppListItem;
    // List of scopes an app has been assigned.
    appScopes?: AndroidDeviceOwnerDelegatedAppScopeType[];
}
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>;
}
// tslint:disable-next-line: no-empty-interface
export interface AndroidDeviceOwnerGlobalProxy {}
export interface AndroidDeviceOwnerGlobalProxyAutoConfig extends AndroidDeviceOwnerGlobalProxy {
    // The proxy auto-config URL
    proxyAutoConfigURL?: string;
}
export interface AndroidDeviceOwnerGlobalProxyDirect extends AndroidDeviceOwnerGlobalProxy {
    // The excluded hosts
    excludedHosts?: NullableOption<string[]>;
    // The host name
    host?: string;
    // The port
    port?: number;
}
// tslint:disable-next-line: no-empty-interface
export interface AndroidDeviceOwnerKioskModeHomeScreenItem {}
// tslint:disable-next-line: no-empty-interface
export interface AndroidDeviceOwnerKioskModeFolderItem extends AndroidDeviceOwnerKioskModeHomeScreenItem {}
export interface AndroidDeviceOwnerKioskModeApp extends AndroidDeviceOwnerKioskModeFolderItem {
    // Class name of application
    className?: NullableOption<string>;
    // Package name of application
    package?: string;
}
export interface AndroidDeviceOwnerKioskModeAppPositionItem {
    // Item to be arranged
    item?: AndroidDeviceOwnerKioskModeHomeScreenItem;
    // Position of the item on the grid. Valid values 0 to 9999999
    position?: number;
}
export interface AndroidDeviceOwnerKioskModeManagedFolder {
    // Unique identifier for the folder
    folderIdentifier?: NullableOption<string>;
    // Display name for the folder
    folderName?: string;
    // Items to be added to managed folder. This collection can contain a maximum of 500 elements.
    items?: AndroidDeviceOwnerKioskModeFolderItem[];
}
export interface AndroidDeviceOwnerKioskModeManagedFolderReference extends AndroidDeviceOwnerKioskModeHomeScreenItem {
    // Unique identifier for the folder
    folderIdentifier?: NullableOption<string>;
    // Name of the folder
    folderName?: string;
}
export interface AndroidDeviceOwnerKioskModeWeblink extends AndroidDeviceOwnerKioskModeFolderItem {
    // Display name for weblink
    label?: NullableOption<string>;
    // Link for weblink
    link?: NullableOption<string>;
}
export interface AndroidDeviceOwnerSilentCertificateAccess {
    // Package ID that has the pre-granted access to the certificate.
    packageId?: string;
}
export interface AndroidDeviceOwnerSystemUpdateFreezePeriod {
    // The day of the end date of the freeze period. Valid values 1 to 31
    endDay?: number;
    // The month of the end date of the freeze period. Valid values 1 to 12
    endMonth?: number;
    // The day of the start date of the freeze period. Valid values 1 to 31
    startDay?: number;
    // The month of the start date of the freeze period. Valid values 1 to 12
    startMonth?: number;
}
export interface AndroidDeviceOwnerUserFacingMessage {
    // The default message displayed if the user's locale doesn't match with any of the localized messages
    defaultMessage?: string;
    // The list of &amp;lt;locale, message&amp;gt; pairs. This collection can contain a maximum of 500 elements.
    localizedMessages?: KeyValuePair[];
}
// tslint:disable-next-line: no-empty-interface
export interface AppleAppListItem extends AppListItem {}
export interface AppleVpnAlwaysOnConfiguration {
    /**
     * Determine whether AirPrint service will be exempt from the always-on VPN connection. Possible values are:
     * forceTrafficViaVPN, allowTrafficOutside, dropTraffic.
     */
    airPrintExceptionAction?: NullableOption<VpnServiceExceptionAction>;
    // Specifies whether traffic from all captive network plugins should be allowed outside the vpn
    allowAllCaptiveNetworkPlugins?: NullableOption<boolean>;
    // Determines whether traffic from the Websheet app is allowed outside of the VPN
    allowCaptiveWebSheet?: NullableOption<boolean>;
    // Determines whether all, some, or no non-native captive networking apps are allowed
    allowedCaptiveNetworkPlugins?: NullableOption<SpecifiedCaptiveNetworkPlugins>;
    /**
     * Determine whether Cellular service will be exempt from the always-on VPN connection. Possible values are:
     * forceTrafficViaVPN, allowTrafficOutside, dropTraffic.
     */
    cellularExceptionAction?: NullableOption<VpnServiceExceptionAction>;
    // Specifies how often in seconds to send a network address translation keepalive package through the VPN
    natKeepAliveIntervalInSeconds?: NullableOption<number>;
    // Enable hardware offloading of NAT keepalive signals when the device is asleep
    natKeepAliveOffloadEnable?: NullableOption<boolean>;
    /**
     * Determines what connections the specific tunnel configuration applies to. Possible values are: wifiAndCellular,
     * cellular, wifi.
     */
    tunnelConfiguration?: VpnTunnelConfigurationType;
    // Allow the user to toggle the VPN configuration using the UI
    userToggleEnabled?: NullableOption<boolean>;
    /**
     * Determine whether voicemail service will be exempt from the always-on VPN connection. Possible values are:
     * forceTrafficViaVPN, allowTrafficOutside, dropTraffic.
     */
    voicemailExceptionAction?: NullableOption<VpnServiceExceptionAction>;
}
export interface SpecifiedCaptiveNetworkPlugins {
    // Address of the IKEv2 server. Must be a FQDN, UserFQDN, network address, or ASN1DN
    allowedBundleIdentifiers?: NullableOption<string[]>;
}
export interface BitLockerFixedDrivePolicy {
    // Select the encryption method for fixed drives. Possible values are: aesCbc128, aesCbc256, xtsAes128, xtsAes256.
    encryptionMethod?: NullableOption<BitLockerEncryptionMethod>;
    /**
     * This policy setting allows you to control how BitLocker-protected fixed data drives are recovered in the absence of the
     * required credentials. This policy setting is applied when you turn on BitLocker.
     */
    recoveryOptions?: NullableOption<BitLockerRecoveryOptions>;
    /**
     * This policy setting determines whether BitLocker protection is required for fixed data drives to be writable on a
     * computer.
     */
    requireEncryptionForWriteAccess?: boolean;
}
export interface BitLockerRecoveryOptions {
    // Indicates whether to block certificate-based data recovery agent.
    blockDataRecoveryAgent?: boolean;
    // Indicates whether or not to enable BitLocker until recovery information is stored in AD DS.
    enableBitLockerAfterRecoveryInformationToStore?: boolean;
    // Indicates whether or not to allow BitLocker recovery information to store in AD DS.
    enableRecoveryInformationSaveToStore?: boolean;
    // Indicates whether or not to allow showing recovery options in BitLocker Setup Wizard for fixed or system disk.
    hideRecoveryOptions?: boolean;
    /**
     * Configure what pieces of BitLocker recovery information are stored to AD DS. Possible values are: passwordAndKey,
     * passwordOnly.
     */
    recoveryInformationToStore?: BitLockerRecoveryInformationType;
    /**
     * Indicates whether users are allowed or required to generate a 256-bit recovery key for fixed or system disk. Possible
     * values are: blocked, required, allowed, notConfigured.
     */
    recoveryKeyUsage?: ConfigurationUsage;
    /**
     * Indicates whether users are allowed or required to generate a 48-digit recovery password for fixed or system disk.
     * Possible values are: blocked, required, allowed, notConfigured.
     */
    recoveryPasswordUsage?: ConfigurationUsage;
}
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 BitLockerSystemDrivePolicy {
    /**
     * Select the encryption method for operating system drives. Possible values are: aesCbc128, aesCbc256, xtsAes128,
     * xtsAes256.
     */
    encryptionMethod?: NullableOption<BitLockerEncryptionMethod>;
    // Indicates the minimum length of startup pin. Valid values 4 to 20
    minimumPinLength?: NullableOption<number>;
    // Enable pre-boot recovery message and Url. If requireStartupAuthentication is false, this value does not affect.
    prebootRecoveryEnableMessageAndUrl?: boolean;
    // Defines a custom recovery message.
    prebootRecoveryMessage?: NullableOption<string>;
    // Defines a custom recovery URL.
    prebootRecoveryUrl?: NullableOption<string>;
    /**
     * Allows to recover BitLocker encrypted operating system drives in the absence of the required startup key information.
     * This policy setting is applied when you turn on BitLocker.
     */
    recoveryOptions?: NullableOption<BitLockerRecoveryOptions>;
    /**
     * Indicates whether to allow BitLocker without a compatible TPM (requires a password or a startup key on a USB flash
     * drive).
     */
    startupAuthenticationBlockWithoutTpmChip?: boolean;
    // Require additional authentication at startup.
    startupAuthenticationRequired?: boolean;
    /**
     * Indicates if TPM startup key is allowed/required/disallowed. Possible values are: blocked, required, allowed,
     * notConfigured.
     */
    startupAuthenticationTpmKeyUsage?: ConfigurationUsage;
    /**
     * Indicates if TPM startup pin key and key are allowed/required/disallowed. Possible values are: blocked, required,
     * allowed, notConfigured.
     */
    startupAuthenticationTpmPinAndKeyUsage?: ConfigurationUsage;
    /**
     * Indicates if TPM startup pin is allowed/required/disallowed. Possible values are: blocked, required, allowed,
     * notConfigured.
     */
    startupAuthenticationTpmPinUsage?: ConfigurationUsage;
    /**
     * Indicates if TPM startup is allowed/required/disallowed. Possible values are: blocked, required, allowed,
     * notConfigured.
     */
    startupAuthenticationTpmUsage?: ConfigurationUsage;
}
// tslint:disable-next-line: no-empty-interface
export interface SingleSignOnExtension {}
export interface CredentialSingleSignOnExtension extends SingleSignOnExtension {
    /**
     * Gets or sets a list of typed key-value pairs used to configure Credential-type profiles. This collection can contain a
     * maximum of 500 elements.
     */
    configurations?: NullableOption<KeyTypedValuePair[]>;
    // Gets or sets a list of hosts or domain names for which the app extension performs SSO.
    domains?: NullableOption<string[]>;
    // Gets or sets the bundle ID of the app extension that performs SSO for the specified URLs.
    extensionIdentifier?: string;
    // Gets or sets the case-sensitive realm name for this profile.
    realm?: string;
    // Gets or sets the team ID of the app extension that performs SSO for the specified URLs.
    teamIdentifier?: NullableOption<string>;
}
export interface KeyTypedValuePair {
    // The string key of the key-value pair.
    key?: string;
}
export interface CryptographySuite {
    // Authentication Transform Constants. Possible values are: md596, sha196, sha256128, aes128Gcm, aes192Gcm, aes256Gcm.
    authenticationTransformConstants?: NullableOption<AuthenticationTransformConstant>;
    /**
     * Cipher Transform Constants. Possible values are: aes256, des, tripleDes, aes128, aes128Gcm, aes256Gcm, aes192,
     * aes192Gcm, chaCha20Poly1305.
     */
    cipherTransformConstants?: NullableOption<VpnEncryptionAlgorithmType>;
    // Diffie Hellman Group. Possible values are: group1, group2, group14, ecp256, ecp384, group24.
    dhGroup?: NullableOption<DiffieHellmanGroup>;
    /**
     * Encryption Method. Possible values are: aes256, des, tripleDes, aes128, aes128Gcm, aes256Gcm, aes192, aes192Gcm,
     * chaCha20Poly1305.
     */
    encryptionMethod?: NullableOption<VpnEncryptionAlgorithmType>;
    // Integrity Check Method. Possible values are: sha2256, sha196, sha1160, sha2384, sha2_512, md5.
    integrityCheckMethod?: NullableOption<VpnIntegrityAlgorithmType>;
    // Perfect Forward Secrecy Group. Possible values are: pfs1, pfs2, pfs2048, ecp256, ecp384, pfsMM, pfs24.
    pfsGroup?: NullableOption<PerfectForwardSecrecyGroup>;
}
export interface CustomSubjectAlternativeName {
    // Custom SAN Name
    name?: NullableOption<string>;
    /**
     * Custom SAN Type. Possible values are: none, emailAddress, userPrincipalName, customAzureADAttribute, domainNameService,
     * universalResourceIdentifier.
     */
    sanType?: SubjectAlternativeNameType;
}
export interface CustomUpdateTimeWindow {
    // End day of the time window. Possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday.
    endDay?: DayOfWeek;
    // End time of the time window
    endTime?: string;
    // Start day of the time window. Possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday.
    startDay?: DayOfWeek;
    // Start time of the time window
    startTime?: string;
}
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;
}
// tslint:disable-next-line: no-empty-interface
export interface DeliveryOptimizationBandwidth {}
export interface DeliveryOptimizationBandwidthAbsolute extends DeliveryOptimizationBandwidth {
    /**
     * The value 0 (zero) means that Delivery Optimization dynamically adjusts to use the available bandwidth for downloads.
     * Valid values 0 to 4294967295
     */
    maximumDownloadBandwidthInKilobytesPerSecond?: NullableOption<number>;
    /**
     * The default value is 0, which permits unlimited possible bandwidth (optimized for minimal usage of upload bandwidth).
     * Valid values 0 to 4000000
     */
    maximumUploadBandwidthInKilobytesPerSecond?: NullableOption<number>;
}
export interface DeliveryOptimizationBandwidthBusinessHoursLimit {
    // Specifies the beginning of business hours using a 24-hour clock (0-23). Valid values 0 to 23
    bandwidthBeginBusinessHours?: number;
    // Specifies the end of business hours using a 24-hour clock (0-23). Valid values 0 to 23
    bandwidthEndBusinessHours?: number;
    // Specifies the percentage of bandwidth to limit during business hours (0-100). Valid values 0 to 100
    bandwidthPercentageDuringBusinessHours?: number;
    // Specifies the percentage of bandwidth to limit outsidse business hours (0-100). Valid values 0 to 100
    bandwidthPercentageOutsideBusinessHours?: number;
}
export interface DeliveryOptimizationBandwidthHoursWithPercentage extends DeliveryOptimizationBandwidth {
    // Background download percentage hours.
    bandwidthBackgroundPercentageHours?: NullableOption<DeliveryOptimizationBandwidthBusinessHoursLimit>;
    // Foreground download percentage hours.
    bandwidthForegroundPercentageHours?: NullableOption<DeliveryOptimizationBandwidthBusinessHoursLimit>;
}
export interface DeliveryOptimizationBandwidthPercentage extends DeliveryOptimizationBandwidth {
    /**
     * The default value 0 (zero) means that Delivery Optimization dynamically adjusts to use the available bandwidth for
     * background downloads. Valid values 0 to 100
     */
    maximumBackgroundBandwidthPercentage?: NullableOption<number>;
    /**
     * The default value 0 (zero) means that Delivery Optimization dynamically adjusts to use the available bandwidth for
     * foreground downloads. Valid values 0 to 100
     */
    maximumForegroundBandwidthPercentage?: NullableOption<number>;
}
// tslint:disable-next-line: no-empty-interface
export interface DeliveryOptimizationGroupIdSource {}
export interface DeliveryOptimizationGroupIdCustom extends DeliveryOptimizationGroupIdSource {
    // Specifies an arbitrary group ID that the device belongs to
    groupIdCustom?: string;
}
export interface DeliveryOptimizationGroupIdSourceOptions extends DeliveryOptimizationGroupIdSource {
    /**
     * Set this policy to restrict peer selection to a specific source. Possible values are: notConfigured, adSite,
     * authenticatedDomainSid, dhcpUserOption, dnsSuffix.
     */
    groupIdSourceOption?: DeliveryOptimizationGroupIdOptionsType;
}
// tslint:disable-next-line: no-empty-interface
export interface DeliveryOptimizationMaxCacheSize {}
export interface DeliveryOptimizationMaxCacheSizeAbsolute extends DeliveryOptimizationMaxCacheSize {
    /**
     * The value 0 (zero) means "unlimited" cache. Delivery Optimization will clear the cache when the device is running low
     * on disk space. Valid values 0 to 4294967295
     */
    maximumCacheSizeInGigabytes?: number;
}
export interface DeliveryOptimizationMaxCacheSizePercentage extends DeliveryOptimizationMaxCacheSize {
    /**
     * Specifies the maximum cache size that Delivery Optimization can utilize, as a percentage of disk size (1-100). Valid
     * values 1 to 100
     */
    maximumCacheSizePercentage?: number;
}
export interface DeviceCompliancePolicyScript {
    // Device compliance script Id.
    deviceComplianceScriptId?: NullableOption<string>;
    // Json of the rules.
    rulesContent?: NullableOption<string>;
}
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>;
    // SettingInstanceId
    settingInstanceId?: 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 DeviceComplianceScriptError {
    /**
     * Error code. Possible values are: none, jsonFileInvalid, jsonFileMissing, jsonFileTooLarge, rulesMissing,
     * duplicateRules, tooManyRulesSpecified, operatorMissing, operatorNotSupported, datatypeMissing, datatypeNotSupported,
     * operatorDataTypeCombinationNotSupported, moreInfoUriMissing, moreInfoUriInvalid, moreInfoUriTooLarge,
     * descriptionMissing, descriptionInvalid, descriptionTooLarge, titleMissing, titleInvalid, titleTooLarge, operandMissing,
     * operandInvalid, operandTooLarge, settingNameMissing, settingNameInvalid, settingNameTooLarge, englishLocaleMissing,
     * duplicateLocales, unrecognizedLocale, unknown, remediationStringsMissing.
     */
    code?: Code;
    /**
     * Error code. Possible values are: none, jsonFileInvalid, jsonFileMissing, jsonFileTooLarge, rulesMissing,
     * duplicateRules, tooManyRulesSpecified, operatorMissing, operatorNotSupported, datatypeMissing, datatypeNotSupported,
     * operatorDataTypeCombinationNotSupported, moreInfoUriMissing, moreInfoUriInvalid, moreInfoUriTooLarge,
     * descriptionMissing, descriptionInvalid, descriptionTooLarge, titleMissing, titleInvalid, titleTooLarge, operandMissing,
     * operandInvalid, operandTooLarge, settingNameMissing, settingNameInvalid, settingNameTooLarge, englishLocaleMissing,
     * duplicateLocales, unrecognizedLocale, unknown, remediationStringsMissing.
     */
    deviceComplianceScriptRulesValidationError?: DeviceComplianceScriptRulesValidationError;
    // Error message.
    message?: NullableOption<string>;
}
export interface DeviceComplianceScriptRule {
    /**
     * Data type specified in the rule. Possible values are: none, boolean, int64, double, string, dateTime, version, base64,
     * xml, booleanArray, int64Array, doubleArray, stringArray, dateTimeArray, versionArray.
     */
    dataType?: DataType;
    /**
     * Data type specified in the rule. Possible values are: none, boolean, int64, double, string, dateTime, version, base64,
     * xml, booleanArray, int64Array, doubleArray, stringArray, dateTimeArray, versionArray.
     */
    deviceComplianceScriptRuleDataType?: DeviceComplianceScriptRuleDataType;
    /**
     * Operator specified in the rule. Possible values are: none, and, or, isEquals, notEquals, greaterThan, lessThan,
     * between, notBetween, greaterEquals, lessEquals, dayTimeBetween, beginsWith, notBeginsWith, endsWith, notEndsWith,
     * contains, notContains, allOf, oneOf, noneOf, setEquals, orderedSetEquals, subsetOf, excludesAll.
     */
    deviceComplianceScriptRulOperator?: DeviceComplianceScriptRulOperator;
    // Operand specified in the rule.
    operand?: NullableOption<string>;
    /**
     * Operator specified in the rule. Possible values are: none, and, or, isEquals, notEquals, greaterThan, lessThan,
     * between, notBetween, greaterEquals, lessEquals, dayTimeBetween, beginsWith, notBeginsWith, endsWith, notEndsWith,
     * contains, notContains, allOf, oneOf, noneOf, setEquals, orderedSetEquals, subsetOf, excludesAll.
     */
    operator?: Operator;
    // Setting name specified in the rule.
    settingName?: NullableOption<string>;
}
export interface DeviceComplianceScriptRuleError extends DeviceComplianceScriptError {
    // Setting name for the rule with error.
    settingName?: NullableOption<string>;
}
export interface DeviceComplianceScriptValidationResult {
    // Errors in json for the script for rules.
    ruleErrors?: NullableOption<DeviceComplianceScriptRuleError[]>;
    // Parsed rules from json.
    rules?: NullableOption<DeviceComplianceScriptRule[]>;
    // Errors in json for the script.
    scriptErrors?: NullableOption<DeviceComplianceScriptError[]>;
}
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>;
    // SettingInstanceId
    settingInstanceId?: 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 DeviceConfigurationTargetedUserAndDevice {
    // The id of the device in the checkin.
    deviceId?: NullableOption<string>;
    // The name of the device in the checkin.
    deviceName?: NullableOption<string>;
    // Last checkin time for this user/device pair.
    lastCheckinDateTime?: string;
    // The display name of the user in the checkin
    userDisplayName?: NullableOption<string>;
    // The id of the user in the checkin.
    userId?: NullableOption<string>;
    // The UPN of the user in the checkin.
    userPrincipalName?: NullableOption<string>;
}
export interface DeviceManagementUserRightsLocalUserOrGroup {
    // Admin’s description of this local user or group.
    description?: NullableOption<string>;
    // The name of this local user or group.
    name?: string;
    // The security identifier of this local user or group (e.g. S-1-5-32-544).
    securityIdentifier?: NullableOption<string>;
}
export interface DeviceManagementUserRightsSetting {
    /**
     * Representing a collection of local users or groups which will be set on device if the state of this setting is Allowed.
     * This collection can contain a maximum of 500 elements.
     */
    localUsersOrGroups?: NullableOption<DeviceManagementUserRightsLocalUserOrGroup[]>;
    // Representing the current state of this user rights setting. Possible values are: notConfigured, blocked, allowed.
    state?: StateManagementSetting;
}
// tslint:disable-next-line: no-empty-interface
export interface EdgeHomeButtonConfiguration {}
// tslint:disable-next-line: no-empty-interface
export interface EdgeHomeButtonHidden extends EdgeHomeButtonConfiguration {}
// tslint:disable-next-line: no-empty-interface
export interface EdgeHomeButtonLoadsStartPage extends EdgeHomeButtonConfiguration {}
export interface EdgeHomeButtonOpensCustomURL extends EdgeHomeButtonConfiguration {
    // The specific URL to load.
    homeButtonCustomURL?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface EdgeHomeButtonOpensNewTab extends EdgeHomeButtonConfiguration {}
// 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;
}
export interface EncryptionReportPolicyDetails {
    // Policy Id for Encryption Report
    policyId?: NullableOption<string>;
    // Policy Name for Encryption Report
    policyName?: NullableOption<string>;
}
export interface ExtendedKeyUsage {
    // Extended Key Usage Name
    name?: NullableOption<string>;
    // Extended Key Usage Object Identifier
    objectIdentifier?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IosSingleSignOnExtension extends SingleSignOnExtension {}
// tslint:disable-next-line: interface-name
export interface IosAzureAdSingleSignOnExtension extends IosSingleSignOnExtension {
    // An optional list of additional bundle IDs allowed to use the AAD extension for single sign-on.
    bundleIdAccessControlList?: NullableOption<string[]>;
    /**
     * Gets or sets a list of typed key-value pairs used to configure Credential-type profiles. This collection can contain a
     * maximum of 500 elements.
     */
    configurations?: NullableOption<KeyTypedValuePair[]>;
    // Enables or disables shared device mode.
    enableSharedDeviceMode?: boolean;
}
// tslint:disable-next-line: interface-name
export interface IosBookmark {
    // The folder into which the bookmark should be added in Safari
    bookmarkFolder?: NullableOption<string>;
    // The display name of the bookmark
    displayName?: string;
    // URL allowed to access
    url?: string;
}
// tslint:disable-next-line: interface-name
export interface IosCredentialSingleSignOnExtension extends IosSingleSignOnExtension {
    /**
     * Gets or sets a list of typed key-value pairs used to configure Credential-type profiles. This collection can contain a
     * maximum of 500 elements.
     */
    configurations?: NullableOption<KeyTypedValuePair[]>;
    // Gets or sets a list of hosts or domain names for which the app extension performs SSO.
    domains?: NullableOption<string[]>;
    // Gets or sets the bundle ID of the app extension that performs SSO for the specified URLs.
    extensionIdentifier?: string;
    // Gets or sets the case-sensitive realm name for this profile.
    realm?: string;
    // Gets or sets the team ID of the app extension that performs SSO for the specified URLs.
    teamIdentifier?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosEduCertificateSettings {
    // File name to display in UI.
    certFileName?: NullableOption<string>;
    // PKCS Certificate Template Name.
    certificateTemplateName?: string;
    // Scale for the Certificate Validity Period. Possible values are: days, months, years.
    certificateValidityPeriodScale?: CertificateValidityPeriodScale;
    // Value for the Certificate Validity Period.
    certificateValidityPeriodValue?: number;
    // PKCS Certification Authority.
    certificationAuthority?: string;
    // PKCS Certification Authority Name.
    certificationAuthorityName?: string;
    // Certificate renewal threshold percentage. Valid values 1 to 99
    renewalThresholdPercentage?: number;
    // Trusted Root Certificate.
    trustedRootCertificate?: 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;
    // When true, the bundle ID will be handled as a URL for a web clip.
    isWebClip?: boolean;
}
// 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 IosKerberosSingleSignOnExtension extends IosSingleSignOnExtension {
    // Gets or sets the Active Directory site.
    activeDirectorySiteCode?: NullableOption<string>;
    // Enables or disables whether the Kerberos extension can automatically determine its site name.
    blockActiveDirectorySiteAutoDiscovery?: boolean;
    // Enables or disables Keychain usage.
    blockAutomaticLogin?: boolean;
    // Gets or sets the Generic Security Services name of the Kerberos cache to use for this profile.
    cacheName?: NullableOption<string>;
    // Gets or sets a list of app Bundle IDs allowed to access the Kerberos Ticket Granting Ticket.
    credentialBundleIdAccessControlList?: NullableOption<string[]>;
    // Gets or sets a list of realms for custom domain-realm mapping. Realms are case sensitive.
    domainRealms?: NullableOption<string[]>;
    // Gets or sets a list of hosts or domain names for which the app extension performs SSO.
    domains?: NullableOption<string[]>;
    /**
     * When true, this profile's realm will be selected as the default. Necessary if multiple Kerberos-type profiles are
     * configured.
     */
    isDefaultRealm?: boolean;
    /**
     * When set to True, the Kerberos extension allows managed apps, and any apps entered with the app bundle ID to access the
     * credential. When set to False, the Kerberos extension allows all apps to access the credential. Available for devices
     * running iOS and iPadOS versions 14 and later.
     */
    managedAppsInBundleIdACLIncluded?: boolean;
    // Enables or disables password changes.
    passwordBlockModification?: boolean;
    // Gets or sets the URL that the user will be sent to when they initiate a password change.
    passwordChangeUrl?: NullableOption<string>;
    // Enables or disables password syncing. This won't affect users logged in with a mobile account on macOS.
    passwordEnableLocalSync?: boolean;
    // Overrides the default password expiration in days. For most domains, this value is calculated automatically.
    passwordExpirationDays?: NullableOption<number>;
    // Gets or sets the number of days until the user is notified that their password will expire (default is 15).
    passwordExpirationNotificationDays?: NullableOption<number>;
    // Gets or sets the minimum number of days until a user can change their password again.
    passwordMinimumAgeDays?: NullableOption<number>;
    // Gets or sets the minimum length of a password.
    passwordMinimumLength?: NullableOption<number>;
    // Gets or sets the number of previous passwords to block.
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Enables or disables whether passwords must meet Active Directory's complexity requirements.
    passwordRequireActiveDirectoryComplexity?: boolean;
    // Gets or sets a description of the password complexity requirements.
    passwordRequirementsDescription?: NullableOption<string>;
    // Gets or sets the case-sensitive realm name for this profile.
    realm?: string;
    // Gets or sets whether to require authentication via Touch ID, Face ID, or a passcode to access the keychain entry.
    requireUserPresence?: boolean;
    /**
     * Text displayed to the user at the Kerberos sign in window. Available for devices running iOS and iPadOS versions 14 and
     * later.
     */
    signInHelpText?: NullableOption<string>;
    // Gets or sets the principle user name to use for this profile. The realm name does not need to be included.
    userPrincipalName?: NullableOption<string>;
}
// 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>;
    /**
     * Overrides the notification preview policy set by the user on an iOS device. Possible values are: notConfigured,
     * alwaysShow, hideWhenLocked, neverShow.
     */
    previewVisibility?: IosNotificationPreviewVisibility;
    // 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>;
}
// tslint:disable-next-line: interface-name
export interface IosRedirectSingleSignOnExtension extends IosSingleSignOnExtension {
    /**
     * Gets or sets a list of typed key-value pairs used to configure Credential-type profiles. This collection can contain a
     * maximum of 500 elements.
     */
    configurations?: NullableOption<KeyTypedValuePair[]>;
    // Gets or sets the bundle ID of the app extension that performs SSO for the specified URLs.
    extensionIdentifier?: string;
    // Gets or sets the team ID of the app extension that performs SSO for the specified URLs.
    teamIdentifier?: NullableOption<string>;
    /**
     * One or more URL prefixes of identity providers on whose behalf the app extension performs single sign-on. URLs must
     * begin with http:// or https://. All URL prefixes must be unique for all profiles.
     */
    urlPrefixes?: NullableOption<string[]>;
}
// tslint:disable-next-line: interface-name
export interface IosSingleSignOnSettings {
    /**
     * List of app identifiers that are allowed to use this login. If this field is omitted, the login applies to all
     * applications on the device. This collection can contain a maximum of 500 elements.
     */
    allowedAppsList?: NullableOption<AppListItem[]>;
    /**
     * List of HTTP URLs that must be matched in order to use this login. With iOS 9.0 or later, a wildcard characters may be
     * used.
     */
    allowedUrls?: NullableOption<string[]>;
    // The display name of login settings shown on the receiving device.
    displayName?: NullableOption<string>;
    // A Kerberos principal name. If not provided, the user is prompted for one during profile installation.
    kerberosPrincipalName?: NullableOption<string>;
    // A Kerberos realm name. Case sensitive.
    kerberosRealm?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IosVpnSecurityAssociationParameters {
    // Lifetime (minutes)
    lifetimeInMinutes?: NullableOption<number>;
    // Diffie-Hellman Group
    securityDiffieHellmanGroup?: NullableOption<number>;
    /**
     * Encryption algorithm. Possible values are: aes256, des, tripleDes, aes128, aes128Gcm, aes256Gcm, aes192, aes192Gcm,
     * chaCha20Poly1305.
     */
    securityEncryptionAlgorithm?: NullableOption<VpnEncryptionAlgorithmType>;
    // Integrity algorithm. Possible values are: sha2256, sha196, sha1160, sha2384, sha2_512, md5.
    securityIntegrityAlgorithm?: NullableOption<VpnIntegrityAlgorithmType>;
}
// tslint:disable-next-line: interface-name no-empty-interface
export interface IosWebContentFilterBase {}
// tslint:disable-next-line: interface-name
export interface IosWebContentFilterAutoFilter extends IosWebContentFilterBase {
    // Additional URLs allowed for access
    allowedUrls?: NullableOption<string[]>;
    // Additional URLs blocked for access
    blockedUrls?: NullableOption<string[]>;
}
// tslint:disable-next-line: interface-name
export interface IosWebContentFilterSpecificWebsitesAccess extends IosWebContentFilterBase {
    /**
     * URL bookmarks which will be installed into built-in browser and user is only allowed to access websites through
     * bookmarks. This collection can contain a maximum of 500 elements.
     */
    specificWebsitesOnly?: NullableOption<IosBookmark[]>;
    /**
     * URL bookmarks which will be installed into built-in browser and user is only allowed to access websites through
     * bookmarks. This collection can contain a maximum of 500 elements.
     */
    websiteList?: NullableOption<IosBookmark[]>;
}
// 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 KerberosSingleSignOnExtension extends SingleSignOnExtension {
    // Gets or sets the Active Directory site.
    activeDirectorySiteCode?: NullableOption<string>;
    // Enables or disables whether the Kerberos extension can automatically determine its site name.
    blockActiveDirectorySiteAutoDiscovery?: boolean;
    // Enables or disables Keychain usage.
    blockAutomaticLogin?: boolean;
    // Gets or sets the Generic Security Services name of the Kerberos cache to use for this profile.
    cacheName?: NullableOption<string>;
    // Gets or sets a list of app Bundle IDs allowed to access the Kerberos Ticket Granting Ticket.
    credentialBundleIdAccessControlList?: NullableOption<string[]>;
    // Gets or sets a list of realms for custom domain-realm mapping. Realms are case sensitive.
    domainRealms?: NullableOption<string[]>;
    // Gets or sets a list of hosts or domain names for which the app extension performs SSO.
    domains?: NullableOption<string[]>;
    /**
     * When true, this profile's realm will be selected as the default. Necessary if multiple Kerberos-type profiles are
     * configured.
     */
    isDefaultRealm?: boolean;
    // Enables or disables password changes.
    passwordBlockModification?: boolean;
    // Gets or sets the URL that the user will be sent to when they initiate a password change.
    passwordChangeUrl?: NullableOption<string>;
    // Enables or disables password syncing. This won't affect users logged in with a mobile account on macOS.
    passwordEnableLocalSync?: boolean;
    // Overrides the default password expiration in days. For most domains, this value is calculated automatically.
    passwordExpirationDays?: NullableOption<number>;
    // Gets or sets the number of days until the user is notified that their password will expire (default is 15).
    passwordExpirationNotificationDays?: NullableOption<number>;
    // Gets or sets the minimum number of days until a user can change their password again.
    passwordMinimumAgeDays?: NullableOption<number>;
    // Gets or sets the minimum length of a password.
    passwordMinimumLength?: NullableOption<number>;
    // Gets or sets the number of previous passwords to block.
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Enables or disables whether passwords must meet Active Directory's complexity requirements.
    passwordRequireActiveDirectoryComplexity?: boolean;
    // Gets or sets a description of the password complexity requirements.
    passwordRequirementsDescription?: NullableOption<string>;
    // Gets or sets the case-sensitive realm name for this profile.
    realm?: string;
    // Gets or sets whether to require authentication via Touch ID, Face ID, or a passcode to access the keychain entry.
    requireUserPresence?: boolean;
    // Gets or sets the principle user name to use for this profile. The realm name does not need to be included.
    userPrincipalName?: NullableOption<string>;
}
export interface KeyBooleanValuePair extends KeyTypedValuePair {
    // The Boolean value of the key-value pair.
    value?: boolean;
}
export interface KeyIntegerValuePair extends KeyTypedValuePair {
    // The integer value of the key-value pair.
    value?: number;
}
export interface KeyRealValuePair extends KeyTypedValuePair {
    // The real (floating-point) value of the key-value pair.
    value?: number;
}
export interface KeyStringValuePair extends KeyTypedValuePair {
    // The string value of the key-value pair.
    value?: string;
}
export interface MacOSAppleEventReceiver {
    // Allow or block this app from receiving Apple events.
    allowed?: boolean;
    // Code requirement for the app or binary that receives the Apple Event.
    codeRequirement?: string;
    // Bundle ID of the app or file path of the process or executable that receives the Apple Event.
    identifier?: string;
    /**
     * Use bundle ID for an app or path for a process or executable that receives the Apple Event. Possible values are:
     * bundleID, path.
     */
    identifierType?: MacOSProcessIdentifierType;
}
export interface MacOSAssociatedDomainsItem {
    // The application identifier of the app to associate domains with.
    applicationIdentifier?: string;
    // Determines whether data should be downloaded directly or via a CDN.
    directDownloadsEnabled?: boolean;
    // The list of domains to associate.
    domains?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface MacOSSingleSignOnExtension extends SingleSignOnExtension {}
export interface MacOSAzureAdSingleSignOnExtension extends MacOSSingleSignOnExtension {
    // An optional list of additional bundle IDs allowed to use the AAD extension for single sign-on.
    bundleIdAccessControlList?: NullableOption<string[]>;
    /**
     * Gets or sets a list of typed key-value pairs used to configure Credential-type profiles. This collection can contain a
     * maximum of 500 elements.
     */
    configurations?: NullableOption<KeyTypedValuePair[]>;
    // Enables or disables shared device mode.
    enableSharedDeviceMode?: boolean;
}
export interface MacOSCredentialSingleSignOnExtension extends MacOSSingleSignOnExtension {
    /**
     * Gets or sets a list of typed key-value pairs used to configure Credential-type profiles. This collection can contain a
     * maximum of 500 elements.
     */
    configurations?: NullableOption<KeyTypedValuePair[]>;
    // Gets or sets a list of hosts or domain names for which the app extension performs SSO.
    domains?: NullableOption<string[]>;
    // Gets or sets the bundle ID of the app extension that performs SSO for the specified URLs.
    extensionIdentifier?: string;
    // Gets or sets the case-sensitive realm name for this profile.
    realm?: string;
    // Gets or sets the team ID of the app extension that performs SSO for the specified URLs.
    teamIdentifier?: string;
}
export interface MacOSFirewallApplication {
    // Whether or not incoming connections are allowed.
    allowsIncomingConnections?: boolean;
    // BundleId of the application.
    bundleId?: string;
}
export interface MacOSKerberosSingleSignOnExtension extends MacOSSingleSignOnExtension {
    // Gets or sets the Active Directory site.
    activeDirectorySiteCode?: NullableOption<string>;
    // Enables or disables whether the Kerberos extension can automatically determine its site name.
    blockActiveDirectorySiteAutoDiscovery?: boolean;
    // Enables or disables Keychain usage.
    blockAutomaticLogin?: boolean;
    // Gets or sets the Generic Security Services name of the Kerberos cache to use for this profile.
    cacheName?: NullableOption<string>;
    // Gets or sets a list of app Bundle IDs allowed to access the Kerberos Ticket Granting Ticket.
    credentialBundleIdAccessControlList?: NullableOption<string[]>;
    /**
     * When set to True, the credential is requested on the next matching Kerberos challenge or network state change. When the
     * credential is expired or missing, a new credential is created. Available for devices running macOS versions 12 and
     * later.
     */
    credentialsCacheMonitored?: boolean;
    // Gets or sets a list of realms for custom domain-realm mapping. Realms are case sensitive.
    domainRealms?: NullableOption<string[]>;
    // Gets or sets a list of hosts or domain names for which the app extension performs SSO.
    domains?: NullableOption<string[]>;
    /**
     * When true, this profile's realm will be selected as the default. Necessary if multiple Kerberos-type profiles are
     * configured.
     */
    isDefaultRealm?: boolean;
    /**
     * When set to True, the Kerberos extension allows any apps entered with the app bundle ID, managed apps, and standard
     * Kerberos utilities, such as TicketViewer and klist, to access and use the credential. Available for devices running
     * macOS versions 12 and later.
     */
    kerberosAppsInBundleIdACLIncluded?: boolean;
    /**
     * When set to True, the Kerberos extension allows managed apps, and any apps entered with the app bundle ID to access the
     * credential. When set to False, the Kerberos extension allows all apps to access the credential. Available for devices
     * running iOS and iPadOS versions 14 and later.
     */
    managedAppsInBundleIdACLIncluded?: boolean;
    // Select how other processes use the Kerberos Extension credential.
    modeCredentialUsed?: NullableOption<string>;
    // Enables or disables password changes.
    passwordBlockModification?: boolean;
    // Gets or sets the URL that the user will be sent to when they initiate a password change.
    passwordChangeUrl?: NullableOption<string>;
    // Enables or disables password syncing. This won't affect users logged in with a mobile account on macOS.
    passwordEnableLocalSync?: boolean;
    // Overrides the default password expiration in days. For most domains, this value is calculated automatically.
    passwordExpirationDays?: NullableOption<number>;
    // Gets or sets the number of days until the user is notified that their password will expire (default is 15).
    passwordExpirationNotificationDays?: NullableOption<number>;
    // Gets or sets the minimum number of days until a user can change their password again.
    passwordMinimumAgeDays?: NullableOption<number>;
    // Gets or sets the minimum length of a password.
    passwordMinimumLength?: NullableOption<number>;
    // Gets or sets the number of previous passwords to block.
    passwordPreviousPasswordBlockCount?: NullableOption<number>;
    // Enables or disables whether passwords must meet Active Directory's complexity requirements.
    passwordRequireActiveDirectoryComplexity?: boolean;
    // Gets or sets a description of the password complexity requirements.
    passwordRequirementsDescription?: NullableOption<string>;
    /**
     * Add creates an ordered list of preferred Key Distribution Centers (KDCs) to use for Kerberos traffic. This list is used
     * when the servers are not discoverable using DNS. When the servers are discoverable, the list is used for both
     * connectivity checks, and used first for Kerberos traffic. If the servers don’t respond, then the device uses DNS
     * discovery. Delete removes an existing list, and devices use DNS discovery. Available for devices running macOS versions
     * 12 and later.
     */
    preferredKDCs?: NullableOption<string[]>;
    // Gets or sets the case-sensitive realm name for this profile.
    realm?: string;
    // Gets or sets whether to require authentication via Touch ID, Face ID, or a passcode to access the keychain entry.
    requireUserPresence?: boolean;
    /**
     * Text displayed to the user at the Kerberos sign in window. Available for devices running iOS and iPadOS versions 14 and
     * later.
     */
    signInHelpText?: NullableOption<string>;
    /**
     * When set to True, LDAP connections are required to use Transport Layer Security (TLS). Available for devices running
     * macOS versions 11 and later.
     */
    tlsForLDAPRequired?: boolean;
    /**
     * This label replaces the user name shown in the Kerberos extension. You can enter a name to match the name of your
     * company or organization. Available for devices running macOS versions 11 and later.
     */
    usernameLabelCustom?: NullableOption<string>;
    // Gets or sets the principle user name to use for this profile. The realm name does not need to be included.
    userPrincipalName?: NullableOption<string>;
    /**
     * When set to True, the user isn’t prompted to set up the Kerberos extension until the extension is enabled by the admin,
     * or a Kerberos challenge is received. Available for devices running macOS versions 11 and later.
     */
    userSetupDelayed?: boolean;
}
export interface MacOSKernelExtension {
    // Bundle ID of the kernel extension.
    bundleId?: string;
    // The team identifier that was used to sign the kernel extension.
    teamIdentifier?: NullableOption<string>;
}
export interface MacOSLaunchItem {
    // Whether or not to hide the item from the Users and Groups List.
    hide?: boolean;
    // Path to the launch item.
    path?: string;
}
export interface MacOSPrivacyAccessControlItem {
    /**
     * Allow the app or process to control the Mac via the Accessibility subsystem. Possible values are: notConfigured,
     * enabled, disabled.
     */
    accessibility?: Enablement;
    /**
     * Allow or block access to contact information managed by Contacts. Possible values are: notConfigured, enabled,
     * disabled.
     */
    addressBook?: Enablement;
    /**
     * Allow or deny the app or process to send a restricted Apple event to another app or process. You will need to know the
     * identifier, identifier type, and code requirement of the receiving app or process. This collection can contain a
     * maximum of 500 elements.
     */
    appleEventsAllowedReceivers?: NullableOption<MacOSAppleEventReceiver[]>;
    // Block access to camera app.
    blockCamera?: boolean;
    /**
     * Block the app or process from listening to events from input devices such as mouse, keyboard, and trackpad.Requires
     * macOS 10.15 or later.
     */
    blockListenEvent?: boolean;
    // Block access to microphone.
    blockMicrophone?: boolean;
    // Block app from capturing contents of system display. Requires macOS 10.15 or later.
    blockScreenCapture?: boolean;
    // Allow or block access to event information managed by Calendar. Possible values are: notConfigured, enabled, disabled.
    calendar?: Enablement;
    /**
     * Enter the code requirement, which can be obtained with the command 'codesign –display -r –' in the Terminal app.
     * Include everything after '=&amp;gt;'.
     */
    codeRequirement?: string;
    // The display name of the app, process, or executable.
    displayName?: string;
    /**
     * Allow the app or process to access files managed by another app’s file provider extension. Requires macOS 10.15 or
     * later. . Possible values are: notConfigured, enabled, disabled.
     */
    fileProviderPresence?: Enablement;
    // The bundle ID or path of the app, process, or executable.
    identifier?: string;
    /**
     * A bundle ID is used to identify an app. A path is used to identify a process or executable. Possible values are:
     * bundleID, path.
     */
    identifierType?: MacOSProcessIdentifierType;
    // Allow or block access to music and the media library. Possible values are: notConfigured, enabled, disabled.
    mediaLibrary?: Enablement;
    // Allow or block access to images managed by Photos. Possible values are: notConfigured, enabled, disabled.
    photos?: Enablement;
    /**
     * Control access to CoreGraphics APIs, which are used to send CGEvents to the system event stream. Possible values are:
     * notConfigured, enabled, disabled.
     */
    postEvent?: Enablement;
    // Allow or block access to information managed by Reminders. Possible values are: notConfigured, enabled, disabled.
    reminders?: Enablement;
    // Allow or block access to system speech recognition facility. Possible values are: notConfigured, enabled, disabled.
    speechRecognition?: Enablement;
    // Statically validates the code requirement. Use this setting if the process invalidates its dynamic code signature.
    staticCodeValidation?: boolean;
    /**
     * Control access to all protected files on a device. Files might be in locations such as emails, messages, apps, and
     * administrative settings. Apply this setting with caution. Possible values are: notConfigured, enabled, disabled.
     */
    systemPolicyAllFiles?: Enablement;
    // Allow or block access to Desktop folder. Possible values are: notConfigured, enabled, disabled.
    systemPolicyDesktopFolder?: Enablement;
    // Allow or block access to Documents folder. Possible values are: notConfigured, enabled, disabled.
    systemPolicyDocumentsFolder?: Enablement;
    // Allow or block access to Downloads folder. Possible values are: notConfigured, enabled, disabled.
    systemPolicyDownloadsFolder?: Enablement;
    /**
     * Allow or block access to network volumes. Requires macOS 10.15 or later. Possible values are: notConfigured, enabled,
     * disabled.
     */
    systemPolicyNetworkVolumes?: Enablement;
    /**
     * Control access to removable volumes on the device, such as an external hard drive. Requires macOS 10.15 or later.
     * Possible values are: notConfigured, enabled, disabled.
     */
    systemPolicyRemovableVolumes?: Enablement;
    /**
     * Allow app or process to access files used in system administration. Possible values are: notConfigured, enabled,
     * disabled.
     */
    systemPolicySystemAdminFiles?: Enablement;
}
export interface MacOSRedirectSingleSignOnExtension extends MacOSSingleSignOnExtension {
    /**
     * Gets or sets a list of typed key-value pairs used to configure Credential-type profiles. This collection can contain a
     * maximum of 500 elements.
     */
    configurations?: NullableOption<KeyTypedValuePair[]>;
    // Gets or sets the bundle ID of the app extension that performs SSO for the specified URLs.
    extensionIdentifier?: string;
    // Gets or sets the team ID of the app extension that performs SSO for the specified URLs.
    teamIdentifier?: string;
    /**
     * One or more URL prefixes of identity providers on whose behalf the app extension performs single sign-on. URLs must
     * begin with http:// or https://. All URL prefixes must be unique for all profiles.
     */
    urlPrefixes?: NullableOption<string[]>;
}
export interface MacOSSystemExtension {
    // Gets or sets the bundle identifier of the system extension.
    bundleId?: string;
    // Gets or sets the team identifier that was used to sign the system extension.
    teamIdentifier?: NullableOption<string>;
}
export interface MacOSSystemExtensionTypeMapping {
    /**
     * Gets or sets the allowed macOS system extension types. Possible values are: driverExtensionsAllowed,
     * networkExtensionsAllowed, endpointSecurityExtensionsAllowed.
     */
    allowedTypes?: MacOSSystemExtensionType;
    // Gets or sets the team identifier used to sign the system extension.
    teamIdentifier?: string;
}
export interface ManagedDeviceMobileAppConfigurationSettingState {
    // 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>;
    // SettingInstanceId
    settingInstanceId?: 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 ManagedDeviceReportedApp {
    // The application or bundle identifier of the application
    appId?: NullableOption<string>;
}
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 NumberRange {
    // Lower number.
    lowerNumber?: number;
    // Upper number.
    upperNumber?: number;
}
export interface OmaSetting {
    // Description.
    description?: NullableOption<string>;
    // Display Name.
    displayName?: string;
    // Indicates whether the value field is encrypted. This property is read-only.
    isEncrypted?: boolean;
    // OMA.
    omaUri?: string;
    // ReferenceId for looking up secret for decryption. This property is read-only.
    secretReferenceValueId?: NullableOption<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 {
    /**
     * By setting to true, the CSP (configuration service provider) specified in the OMA-URI will perform a get, instead of
     * set
     */
    isReadOnly?: boolean;
    // 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 OperatingSystemVersionRange {
    // The description of this range (e.g. Valid 1702 builds)
    description?: string;
    // The highest inclusive version that this range contains.
    highestVersion?: string;
    // The lowest inclusive version that this range contains.
    lowestVersion?: string;
}
export interface ProxiedDomain {
    // The IP address or FQDN
    ipAddressOrFQDN?: string;
    // Proxy IP or FQDN
    proxy?: NullableOption<string>;
}
export interface RedirectSingleSignOnExtension extends SingleSignOnExtension {
    /**
     * Gets or sets a list of typed key-value pairs used to configure Credential-type profiles. This collection can contain a
     * maximum of 500 elements.
     */
    configurations?: NullableOption<KeyTypedValuePair[]>;
    // Gets or sets the bundle ID of the app extension that performs SSO for the specified URLs.
    extensionIdentifier?: string;
    // Gets or sets the team ID of the app extension that performs SSO for the specified URLs.
    teamIdentifier?: NullableOption<string>;
    /**
     * One or more URL prefixes of identity providers on whose behalf the app extension performs single sign-on. URLs must
     * begin with http:// or https://. All URL prefixes must be unique for all profiles.
     */
    urlPrefixes?: NullableOption<string[]>;
}
export interface Report {
    // Report content; details vary by report type.
    content?: NullableOption<any>;
}
export interface RetireScheduledManagedDevice {
    /**
     * Managed Device ComplianceStatus. Possible values are: unknown, notApplicable, compliant, remediated, nonCompliant,
     * error, conflict, notAssigned.
     */
    complianceState?: ComplianceStatus;
    // Device Compliance PolicyId
    deviceCompliancePolicyId?: NullableOption<string>;
    // Device Compliance Policy Name
    deviceCompliancePolicyName?: NullableOption<string>;
    /**
     * Managed Device Device Type. Possible values are: desktop, windowsRT, winMO6, nokia, windowsPhone, mac, winCE,
     * winEmbedded, iPhone, iPad, iPod, android, iSocConsumer, unix, macMDM, holoLens, surfaceHub, androidForWork,
     * androidEnterprise, windows10x, androidnGMS, chromeOS, linux, blackberry, palm, unknown, cloudPC.
     */
    deviceType?: DeviceType;
    // Key of the entity.
    id?: NullableOption<string>;
    // Managed DeviceId
    managedDeviceId?: NullableOption<string>;
    // Managed Device Name
    managedDeviceName?: NullableOption<string>;
    /**
     * Managed Device ManagementAgentType. Possible values are: eas, mdm, easMdm, intuneClient, easIntuneClient,
     * configurationManagerClient, configurationManagerClientMdm, configurationManagerClientMdmEas, unknown, jamf,
     * googleCloudDevicePolicyController, microsoft365ManagedMdm, msSense, intuneAosp.
     */
    managementAgent?: ManagementAgentType;
    // Managed Device ManagedDeviceOwnerType. Possible values are: unknown, company, personal.
    ownerType?: ManagedDeviceOwnerType;
    // Managed Device Retire After DateTime
    retireAfterDateTime?: string;
    // List of Scope Tags for this Entity instance.
    roleScopeTagIds?: NullableOption<string[]>;
}
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 UnsupportedDeviceConfigurationDetail {
    // A message explaining why an entity is unsupported.
    message?: NullableOption<string>;
    // If message is related to a specific property in the original entity, then the name of that property.
    propertyName?: NullableOption<string>;
}
export interface VpnDnsRule {
    // Automatically connect to the VPN when the device connects to this domain: Default False.
    autoTrigger?: NullableOption<boolean>;
    // Name.
    name?: string;
    // Keep this rule active even when the VPN is not connected: Default False
    persistent?: NullableOption<boolean>;
    // Proxy Server Uri.
    proxyServerUri?: NullableOption<string>;
    // Servers.
    servers?: NullableOption<string[]>;
}
export interface VpnOnDemandRule {
    // Action. Possible values are: connect, evaluateConnection, ignore, disconnect.
    action?: VpnOnDemandRuleConnectionAction;
    // DNS Search Domains.
    dnsSearchDomains?: NullableOption<string[]>;
    // DNS Search Server Address.
    dnsServerAddressMatch?: NullableOption<string[]>;
    // Domain Action (Only applicable when Action is evaluate connection). Possible values are: connectIfNeeded, neverConnect.
    domainAction?: VpnOnDemandRuleConnectionDomainAction;
    // Domains (Only applicable when Action is evaluate connection).
    domains?: NullableOption<string[]>;
    // Network interface to trigger VPN. Possible values are: notConfigured, ethernet, wiFi, cellular.
    interfaceTypeMatch?: VpnOnDemandRuleInterfaceTypeMatch;
    // Probe Required Url (Only applicable when Action is evaluate connection and DomainAction is connect if needed).
    probeRequiredUrl?: NullableOption<string>;
    /**
     * A URL to probe. If this URL is successfully fetched (returning a 200 HTTP status code) without redirection, this rule
     * matches.
     */
    probeUrl?: NullableOption<string>;
    // Network Service Set Identifiers (SSIDs).
    ssids?: NullableOption<string[]>;
}
export interface VpnProxyServer {
    // Address.
    address?: NullableOption<string>;
    // Proxy's automatic configuration script url.
    automaticConfigurationScriptUrl?: NullableOption<string>;
    // Port. Valid values 0 to 65535
    port?: NullableOption<number>;
}
export interface VpnRoute {
    // Destination prefix (IPv4/v6 address).
    destinationPrefix?: string;
    // Prefix size. (1-32). Valid values 1 to 32
    prefixSize?: number;
}
export interface VpnServer {
    // Address (IP address, FQDN or URL)
    address?: string;
    // Description.
    description?: NullableOption<string>;
    // Default server.
    isDefaultServer?: boolean;
}
export interface VpnTrafficRule {
    // App identifier, if this traffic rule is triggered by an app.
    appId?: NullableOption<string>;
    // App type, if this traffic rule is triggered by an app. Possible values are: none, desktop, universal.
    appType?: VpnTrafficRuleAppType;
    // Claims associated with this traffic rule.
    claims?: NullableOption<string>;
    // Local address range. This collection can contain a maximum of 500 elements.
    localAddressRanges?: NullableOption<IPv4Range[]>;
    /**
     * Local port range can be set only when protocol is either TCP or UDP (6 or 17). This collection can contain a maximum of
     * 500 elements.
     */
    localPortRanges?: NullableOption<NumberRange[]>;
    // Name.
    name?: string;
    // Protocols (0-255). Valid values 0 to 255
    protocols?: NullableOption<number>;
    // Remote address range. This collection can contain a maximum of 500 elements.
    remoteAddressRanges?: NullableOption<IPv4Range[]>;
    /**
     * Remote port range can be set only when protocol is either TCP or UDP (6 or 17). This collection can contain a maximum
     * of 500 elements.
     */
    remotePortRanges?: NullableOption<NumberRange[]>;
    /**
     * When app triggered, indicates whether to enable split tunneling along this route. Possible values are: none,
     * splitTunnel, forceTunnel.
     */
    routingPolicyType?: VpnTrafficRuleRoutingPolicyType;
    /**
     * Specify whether the rule applies to inbound traffic or outbound traffic. Possible values are: outbound, inbound,
     * unknownFutureValue.
     */
    vpnTrafficDirection?: VpnTrafficDirection;
}
export interface Windows10AppsForceUpdateSchedule {
    // Recurrence schedule. Possible values are: none, daily, weekly, monthly.
    recurrence?: Windows10AppsUpdateRecurrence;
    // If true, runs the task immediately if StartDateTime is in the past, else, runs at the next recurrence.
    runImmediatelyIfAfterStartDateTime?: boolean;
    // The start time for the force restart.
    startDateTime?: string;
}
export interface Windows10AssociatedApps {
    // Application type. Possible values are: desktop, universal.
    appType?: Windows10AppType;
    // Identifier.
    identifier?: string;
}
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 Windows10VpnProxyServer extends VpnProxyServer {
    // Bypass proxy server for local address.
    bypassProxyServerForLocalAddress?: boolean;
}
export interface Windows81VpnProxyServer extends VpnProxyServer {
    // Automatically detect proxy settings.
    automaticallyDetectProxySettings?: boolean;
    // Bypass proxy server for local address.
    bypassProxyServerForLocalAddress?: 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 prevent merging 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.
     */
    authorizedApplicationRulesFromGroupPolicyNotMerged?: 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 firewall to prevent merging 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.
     */
    connectionSecurityRulesFromGroupPolicyNotMerged?: 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 prevent merging 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.
     */
    globalPortRulesFromGroupPolicyNotMerged?: boolean;
    /**
     * Configures the firewall to block all incoming connections by default. When InboundConnectionsRequired and
     * InboundConnectionsBlocked are both true, InboundConnectionsBlocked takes priority.
     */
    inboundConnectionsBlocked?: boolean;
    /**
     * Configures the firewall to allow all incoming connections by default. When InboundConnectionsRequired and
     * InboundConnectionsBlocked are both true, InboundConnectionsBlocked takes priority.
     */
    inboundConnectionsRequired?: 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;
    /**
     * Allows the firewall to display notifications when an application is blocked from listening on a port. When
     * InboundNotificationsRequired and InboundNotificationsBlocked are both true, InboundNotificationsBlocked takes priority.
     */
    inboundNotificationsRequired?: 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 allow incoming traffic pursuant to other policy settings. When IncomingTrafficRequired and
     * IncomingTrafficBlocked are both true, IncomingTrafficBlocked takes priority.
     */
    incomingTrafficRequired?: 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 allow 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.
     */
    outboundConnectionsRequired?: 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 prevent merging 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.
     */
    policyRulesFromGroupPolicyNotMerged?: 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;
    /**
     * Configures the firewall to block 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.
     */
    securedPacketExemptionBlocked?: boolean;
    /**
     * Prevent the server from operating in stealth mode. When StealthModeRequired and StealthModeBlocked are both true,
     * StealthModeBlocked takes priority.
     */
    stealthModeBlocked?: boolean;
    /**
     * Allow the server to operate in stealth mode. When StealthModeRequired and StealthModeBlocked are both true,
     * StealthModeBlocked takes priority.
     */
    stealthModeRequired?: boolean;
    /**
     * Configures the firewall to block unicast responses to multicast broadcast traffic. When
     * UnicastResponsesToMulticastBroadcastsRequired and UnicastResponsesToMulticastBroadcastsBlocked are both true,
     * UnicastResponsesToMulticastBroadcastsBlocked takes priority.
     */
    unicastResponsesToMulticastBroadcastsBlocked?: boolean;
    /**
     * Configures the firewall to allow unicast responses to multicast broadcast traffic. When
     * UnicastResponsesToMulticastBroadcastsRequired and UnicastResponsesToMulticastBroadcastsBlocked are both true,
     * UnicastResponsesToMulticastBroadcastsBlocked takes priority.
     */
    unicastResponsesToMulticastBroadcastsRequired?: boolean;
}
export interface WindowsFirewallRule {
    /**
     * The action the rule enforces. If not specified, the default is Allowed. Possible values are: notConfigured, blocked,
     * allowed.
     */
    action?: StateManagementSetting;
    // The description of the rule.
    description?: NullableOption<string>;
    // The display name of the rule. Does not need to be unique.
    displayName?: string;
    /**
     * Indicates whether edge traversal is enabled or disabled for this rule. The EdgeTraversal setting indicates that
     * specific inbound traffic is allowed to tunnel through NATs and other edge devices using the Teredo tunneling
     * technology. In order for this setting to work correctly, the application or service with the inbound firewall rule
     * needs to support IPv6. The primary application of this setting allows listeners on the host to be globally addressable
     * through a Teredo IPv6 address. New rules have the EdgeTraversal property disabled by default. Possible values are:
     * notConfigured, blocked, allowed.
     */
    edgeTraversal?: StateManagementSetting;
    // The full file path of an app that's affected by the firewall rule.
    filePath?: NullableOption<string>;
    // The interface types of the rule. Possible values are: notConfigured, remoteAccess, wireless, lan.
    interfaceTypes?: WindowsFirewallRuleInterfaceTypes;
    /**
     * List of local addresses covered by the rule. Default is any address. Valid tokens include:'' indicates any local
     * address. If present, this must be the only token included.A subnet can be specified using either the subnet mask or
     * network prefix notation. If neither a subnet mask nor a network prefix is specified, the subnet mask defaults to
     * 255.255.255.255.A valid IPv6 address.An IPv4 address range in the format of 'start address - end address' with no
     * spaces included.An IPv6 address range in the format of 'start address - end address' with no spaces included.
     */
    localAddressRanges?: NullableOption<string[]>;
    // List of local port ranges. For example, '100-120', '200', '300-320'. If not specified, the default is All.
    localPortRanges?: NullableOption<string[]>;
    /**
     * Specifies the list of authorized local users for the app container. This is a string in Security Descriptor Definition
     * Language (SDDL) format.
     */
    localUserAuthorizations?: NullableOption<string>;
    // The package family name of a Microsoft Store application that's affected by the firewall rule.
    packageFamilyName?: NullableOption<string>;
    /**
     * Specifies the profiles to which the rule belongs. If not specified, the default is All. Possible values are:
     * notConfigured, domain, private, public.
     */
    profileTypes?: WindowsFirewallRuleNetworkProfileTypes;
    /**
     * 0-255 number representing the IP protocol (TCP = 6, UDP = 17). If not specified, the default is All. Valid values 0 to
     * 255
     */
    protocol?: NullableOption<number>;
    /**
     * List of tokens specifying the remote addresses covered by the rule. Tokens are case insensitive. Default is any
     * address. Valid tokens include:'' indicates any remote address. If present, this must be the only token
     * included.'Defaultgateway''DHCP''DNS''WINS''Intranet' (supported on Windows versions 1809+)'RmtIntranet' (supported on
     * Windows versions 1809+)'Internet' (supported on Windows versions 1809+)'Ply2Renders' (supported on Windows versions
     * 1809+)'LocalSubnet' indicates any local address on the local subnet.A subnet can be specified using either the subnet
     * mask or network prefix notation. If neither a subnet mask nor a network prefix is specified, the subnet mask defaults
     * to 255.255.255.255.A valid IPv6 address.An IPv4 address range in the format of 'start address - end address' with no
     * spaces included.An IPv6 address range in the format of 'start address - end address' with no spaces included.
     */
    remoteAddressRanges?: NullableOption<string[]>;
    // List of remote port ranges. For example, '100-120', '200', '300-320'. If not specified, the default is All.
    remotePortRanges?: NullableOption<string[]>;
    // The name used in cases when a service, not an application, is sending or receiving traffic.
    serviceName?: NullableOption<string>;
    /**
     * The traffic direction that the rule is enabled for. If not specified, the default is Out. Possible values are:
     * notConfigured, out, in.
     */
    trafficDirection?: WindowsFirewallRuleTrafficDirectionType;
}
// tslint:disable-next-line: no-empty-interface
export interface WindowsKioskUser {}
export interface WindowsKioskActiveDirectoryGroup extends WindowsKioskUser {
    // The name of the AD group that will be locked to this kiosk configuration
    groupName?: string;
}
export interface WindowsKioskAppBase {
    // The app type. Possible values are: unknown, store, desktop, aumId.
    appType?: WindowsKioskAppType;
    // Allow the app to be auto-launched in multi-app kiosk mode
    autoLaunch?: boolean;
    // Represents the friendly name of an app
    name?: NullableOption<string>;
    // The app tile size for the start layout. Possible values are: hidden, small, medium, wide, large.
    startLayoutTileSize?: WindowsAppStartLayoutTileSize;
}
// tslint:disable-next-line: no-empty-interface
export interface WindowsKioskAppConfiguration {}
// tslint:disable-next-line: no-empty-interface
export interface WindowsKioskAutologon extends WindowsKioskUser {}
export interface WindowsKioskAzureADGroup extends WindowsKioskUser {
    // The display name of the AzureAD group that will be locked to this kiosk configuration
    displayName?: NullableOption<string>;
    // The ID of the AzureAD group that will be locked to this kiosk configuration
    groupId?: string;
}
export interface WindowsKioskAzureADUser extends WindowsKioskUser {
    // The ID of the AzureAD user that will be locked to this kiosk configuration
    userId?: NullableOption<string>;
    // The user accounts that will be locked to this kiosk configuration
    userPrincipalName?: string;
}
export interface WindowsKioskDesktopApp extends WindowsKioskAppBase {
    // Define the DesktopApplicationID of the app
    desktopApplicationId?: NullableOption<string>;
    // Define the DesktopApplicationLinkPath of the app
    desktopApplicationLinkPath?: NullableOption<string>;
    // Define the path of a desktop app
    path?: string;
}
export interface WindowsKioskForceUpdateSchedule {
    // Day of month. Valid values 1 to 31
    dayofMonth?: number;
    // Day of week. Possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday.
    dayofWeek?: DayOfWeek;
    // Recurrence schedule. Possible values are: none, daily, weekly, monthly.
    recurrence?: Windows10AppsUpdateRecurrence;
    // If true, runs the task immediately if StartDateTime is in the past, else, runs at the next recurrence.
    runImmediatelyIfAfterStartDateTime?: boolean;
    // The start time for the force restart.
    startDateTime?: string;
}
export interface WindowsKioskLocalGroup extends WindowsKioskUser {
    // The name of the local group that will be locked to this kiosk configuration
    groupName?: string;
}
export interface WindowsKioskLocalUser extends WindowsKioskUser {
    // The local user that will be locked to this kiosk configuration
    userName?: string;
}
export interface WindowsKioskMultipleApps extends WindowsKioskAppConfiguration {
    // This setting allows access to Downloads folder in file explorer.
    allowAccessToDownloadsFolder?: boolean;
    /**
     * These are the only Windows Store Apps that will be available to launch from the Start menu. This collection can contain
     * a maximum of 128 elements.
     */
    apps?: WindowsKioskAppBase[];
    // This setting indicates that desktop apps are allowed. Default to true.
    disallowDesktopApps?: boolean;
    // This setting allows the admin to specify whether the Task Bar is shown or not.
    showTaskBar?: boolean;
    /**
     * Allows admins to override the default Start 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 Binary format.
     */
    startMenuLayoutXml?: NullableOption<string>;
}
export interface WindowsKioskProfile {
    // The App configuration that will be used for this kiosk configuration.
    appConfiguration?: WindowsKioskAppConfiguration;
    // Key of the entity.
    profileId?: string;
    /**
     * This is a friendly name used to identify a group of applications, the layout of these apps on the start menu and the
     * users to whom this kiosk configuration is assigned.
     */
    profileName?: string;
    /**
     * The user accounts that will be locked to this kiosk configuration. This collection can contain a maximum of 100
     * elements.
     */
    userAccountsConfiguration?: WindowsKioskUser[];
}
export interface WindowsKioskSingleUWPApp extends WindowsKioskAppConfiguration {
    // This is the only Application User Model ID (AUMID) that will be available to launch use while in Kiosk Mode
    uwpApp?: WindowsKioskUWPApp;
}
export interface WindowsKioskUWPApp extends WindowsKioskAppBase {
    // This references an Intune App that will be target to the same assignments as Kiosk configuration
    appId?: NullableOption<string>;
    // This is the only Application User Model ID (AUMID) that will be available to launch use while in Kiosk Mode
    appUserModelId?: string;
    // This references an contained App from an Intune App
    containedAppId?: NullableOption<string>;
}
export interface WindowsKioskSingleWin32App extends WindowsKioskAppConfiguration {
    // This is the win32 app that will be available to launch use while in Kiosk Mode
    win32App?: WindowsKioskWin32App;
}
export interface WindowsKioskWin32App extends WindowsKioskAppBase {
    // This is the classicapppath to be used by v4 Win32 app while in Kiosk Mode
    classicAppPath?: string;
    // Edge kiosk (url) for Edge kiosk mode
    edgeKiosk?: NullableOption<string>;
    // Edge kiosk idle timeout in minutes for Edge kiosk mode. Valid values 0 to 1440
    edgeKioskIdleTimeoutMinutes?: NullableOption<number>;
    // Edge kiosk type for Edge kiosk mode. Possible values are: publicBrowsing, fullScreen.
    edgeKioskType?: WindowsEdgeKioskType;
    // Edge first run flag for Edge kiosk mode
    edgeNoFirstRun?: boolean;
}
// tslint:disable-next-line: no-empty-interface
export interface WindowsKioskVisitor extends WindowsKioskUser {}
export interface WindowsNetworkIsolationPolicy {
    /**
     * 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. This collection can contain a maximum
     * of 500 elements.
     */
    enterpriseCloudResources?: NullableOption<ProxiedDomain[]>;
    /**
     * 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
     * EnterpriseCloudResources policy to force traffic to the matched cloud resources through these proxies.
     */
    enterpriseInternalProxyServers?: NullableOption<string[]>;
    /**
     * 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. This collection can contain a maximum of 500 elements.
     */
    enterpriseIPRanges?: NullableOption<IpRange[]>;
    /**
     * 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<string[]>;
    // This is a list of proxy servers. Any server not on this list is considered non-enterprise.
    enterpriseProxyServers?: NullableOption<string[]>;
    /**
     * 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;
    // List of domain names that can used for work or personal resource.
    neutralDomainResources?: NullableOption<string[]>;
}
// 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, noScheduledScan.
     */
    scheduledInstallDay?: WeeklySchedule;
    // Scheduled Install Time during day
    scheduledInstallTime?: string;
}
export interface DeviceManagementConfigurationSettingApplicability {
    // description of the setting
    description?: NullableOption<string>;
    // Device Mode that setting can be applied on. Possible values are: none, kiosk.
    deviceMode?: DeviceManagementConfigurationDeviceMode;
    /**
     * Platform setting can be applied on. Posible values are: none, android, androidEnterprise, iOs, macOs, windows10X,
     * windows10, aosp, and linux. Possible values are: none, android, iOS, macOS, windows10X, windows10, linux,
     * unknownFutureValue.
     */
    platform?: DeviceManagementConfigurationPlatforms;
    /**
     * Which technology channels this setting can be deployed through. Posible values are: none, mdm, configManager,
     * intuneManagementExtension, thirdParty, documentGateway, appleRemoteManagement, microsoftSense, exchangeOnline, edgeMam,
     * linuxMdm, extensibility, enrollment, endpointPrivilegeManagement. Possible values are: none, mdm, windows10XManagement,
     * configManager, appleRemoteManagement, microsoftSense, exchangeOnline, mobileApplicationManagement, linuxMdm,
     * enrollment, endpointPrivilegeManagement, unknownFutureValue.
     */
    technologies?: DeviceManagementConfigurationTechnologies;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConfigurationApplicationSettingApplicability extends DeviceManagementConfigurationSettingApplicability {}
export interface DeviceManagementConfigurationSettingInstance {
    // Setting Definition Id
    settingDefinitionId?: string;
    // Setting Instance Template Reference
    settingInstanceTemplateReference?: NullableOption<DeviceManagementConfigurationSettingInstanceTemplateReference>;
}
export interface DeviceManagementConfigurationChoiceSettingCollectionInstance extends DeviceManagementConfigurationSettingInstance {
    // Choice setting collection value
    choiceSettingCollectionValue?: DeviceManagementConfigurationChoiceSettingValue[];
}
export interface DeviceManagementConfigurationSettingValue {
    // Setting value template reference
    settingValueTemplateReference?: NullableOption<DeviceManagementConfigurationSettingValueTemplateReference>;
}
export interface DeviceManagementConfigurationChoiceSettingValue extends DeviceManagementConfigurationSettingValue {
    // Child settings.
    children?: NullableOption<DeviceManagementConfigurationSettingInstance[]>;
    // Choice setting value: an OptionDefinition ItemId.
    value?: NullableOption<string>;
}
export interface DeviceManagementConfigurationSettingInstanceTemplate {
    // Indicates if a policy must specify this setting.
    isRequired?: boolean;
    // Setting Definition Id
    settingDefinitionId?: string;
    // Setting Instance Template Id
    settingInstanceTemplateId?: string;
}
export interface DeviceManagementConfigurationChoiceSettingCollectionInstanceTemplate extends DeviceManagementConfigurationSettingInstanceTemplate {
    // Linked policy may append values which are not present in the template.
    allowUnmanagedValues?: boolean;
    // Choice Setting Collection Value Template
    choiceSettingCollectionValueTemplate?: DeviceManagementConfigurationChoiceSettingValueTemplate[];
}
export interface DeviceManagementConfigurationChoiceSettingValueTemplate {
    // Choice Setting Value Default Template.
    defaultValue?: NullableOption<DeviceManagementConfigurationChoiceSettingValueDefaultTemplate>;
    // Recommended definition override.
    recommendedValueDefinition?: NullableOption<DeviceManagementConfigurationChoiceSettingValueDefinitionTemplate>;
    // Required definition override.
    requiredValueDefinition?: NullableOption<DeviceManagementConfigurationChoiceSettingValueDefinitionTemplate>;
    // Setting Value Template Id
    settingValueTemplateId?: string;
}
export interface DeviceManagementConfigurationChoiceSettingInstance extends DeviceManagementConfigurationSettingInstance {
    // Choice setting value
    choiceSettingValue?: DeviceManagementConfigurationChoiceSettingValue;
}
export interface DeviceManagementConfigurationChoiceSettingInstanceTemplate extends DeviceManagementConfigurationSettingInstanceTemplate {
    // Choice Setting Value Template
    choiceSettingValueTemplate?: DeviceManagementConfigurationChoiceSettingValueTemplate;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConfigurationChoiceSettingValueDefaultTemplate {}
export interface DeviceManagementConfigurationChoiceSettingValueConstantDefaultTemplate extends DeviceManagementConfigurationChoiceSettingValueDefaultTemplate {
    // Option Children
    children?: NullableOption<DeviceManagementConfigurationSettingInstanceTemplate[]>;
    // Default Constant Value
    settingDefinitionOptionId?: NullableOption<string>;
}
export interface DeviceManagementConfigurationChoiceSettingValueDefinitionTemplate {
    // Choice Setting Allowed Options
    allowedOptions?: DeviceManagementConfigurationOptionDefinitionTemplate[];
}
export interface DeviceManagementConfigurationOptionDefinitionTemplate {
    // Option Children
    children?: NullableOption<DeviceManagementConfigurationSettingInstanceTemplate[]>;
    // Option ItemId
    itemId?: NullableOption<string>;
}
export interface DeviceManagementConfigurationDependentOn {
    // Identifier of parent setting/ parent setting option dependent on
    dependentOn?: NullableOption<string>;
    // Identifier of parent setting/ parent setting id dependent on
    parentSettingId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConfigurationExchangeOnlineSettingApplicability extends DeviceManagementConfigurationSettingApplicability {}
export interface DeviceManagementConfigurationGroupSettingCollectionInstance extends DeviceManagementConfigurationSettingInstance {
    // A collection of GroupSetting values
    groupSettingCollectionValue?: DeviceManagementConfigurationGroupSettingValue[];
}
export interface DeviceManagementConfigurationGroupSettingValue extends DeviceManagementConfigurationSettingValue {
    // Collection of child setting instances contained within this GroupSetting
    children?: NullableOption<DeviceManagementConfigurationSettingInstance[]>;
}
export interface DeviceManagementConfigurationGroupSettingCollectionInstanceTemplate extends DeviceManagementConfigurationSettingInstanceTemplate {
    // Linked policy may append values which are not present in the template.
    allowUnmanagedValues?: boolean;
    // Group Setting Collection Value Template
    groupSettingCollectionValueTemplate?: DeviceManagementConfigurationGroupSettingValueTemplate[];
}
export interface DeviceManagementConfigurationGroupSettingValueTemplate {
    // Group setting value children
    children?: DeviceManagementConfigurationSettingInstanceTemplate[];
    // Setting Value Template Id
    settingValueTemplateId?: string;
}
export interface DeviceManagementConfigurationGroupSettingInstance extends DeviceManagementConfigurationSettingInstance {
    // GroupSetting value
    groupSettingValue?: DeviceManagementConfigurationGroupSettingValue;
}
export interface DeviceManagementConfigurationGroupSettingInstanceTemplate extends DeviceManagementConfigurationSettingInstanceTemplate {
    // Group Setting Value Template
    groupSettingValueTemplate?: DeviceManagementConfigurationGroupSettingValueTemplate;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConfigurationSimpleSettingValue extends DeviceManagementConfigurationSettingValue {}
export interface DeviceManagementConfigurationIntegerSettingValue extends DeviceManagementConfigurationSimpleSettingValue {
    // Value of the integer setting.
    value?: number;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConfigurationIntegerSettingValueDefaultTemplate {}
export interface DeviceManagementConfigurationIntegerSettingValueConstantDefaultTemplate extends DeviceManagementConfigurationIntegerSettingValueDefaultTemplate {
    // Default Constant Value. Valid values -2147483648 to 2147483647
    constantValue?: number;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConfigurationSettingValueDefinition {}
export interface DeviceManagementConfigurationIntegerSettingValueDefinition extends DeviceManagementConfigurationSettingValueDefinition {
    // Maximum allowed value of the integer
    maximumValue?: NullableOption<number>;
    // Minimum allowed value of the integer
    minimumValue?: NullableOption<number>;
}
export interface DeviceManagementConfigurationIntegerSettingValueDefinitionTemplate {
    // Integer Setting Maximum Value. Valid values -2147483648 to 2147483647
    maxValue?: number;
    // Integer Setting Minimum Value. Valid values -2147483648 to 2147483647
    minValue?: number;
}
export interface DeviceManagementConfigurationSimpleSettingValueTemplate {
    // Setting Value Template Id
    settingValueTemplateId?: string;
}
export interface DeviceManagementConfigurationIntegerSettingValueTemplate extends DeviceManagementConfigurationSimpleSettingValueTemplate {
    // Integer Setting Value Default Template.
    defaultValue?: NullableOption<DeviceManagementConfigurationIntegerSettingValueDefaultTemplate>;
    // Recommended value definition.
    recommendedValueDefinition?: NullableOption<DeviceManagementConfigurationIntegerSettingValueDefinitionTemplate>;
    // Required value definition.
    requiredValueDefinition?: NullableOption<DeviceManagementConfigurationIntegerSettingValueDefinitionTemplate>;
}
export interface DeviceManagementConfigurationOptionDefinition {
    // List of Settings that depends on this option
    dependedOnBy?: NullableOption<DeviceManagementConfigurationSettingDependedOnBy[]>;
    // List of dependent settings for this option
    dependentOn?: NullableOption<DeviceManagementConfigurationDependentOn[]>;
    // Description of the option
    description?: NullableOption<string>;
    // Friendly name of the option
    displayName?: NullableOption<string>;
    // Help text of the option
    helpText?: NullableOption<string>;
    // Identifier of option
    itemId?: NullableOption<string>;
    // Name of the option
    name?: NullableOption<string>;
    // Value of the option
    optionValue?: NullableOption<DeviceManagementConfigurationSettingValue>;
}
export interface DeviceManagementConfigurationSettingDependedOnBy {
    // Identifier of child setting that is dependent on the current setting
    dependedOnBy?: NullableOption<string>;
    // Value that determines if the child setting is required based on the parent setting's selection
    required?: NullableOption<boolean>;
}
export interface DeviceManagementConfigurationPolicyTemplateReference {
    // Template Display Name of the referenced template. This property is read-only.
    templateDisplayName?: NullableOption<string>;
    // Template Display Version of the referenced Template. This property is read-only.
    templateDisplayVersion?: NullableOption<string>;
    /**
     * Template Family of the referenced Template. This property is read-only. Possible values are: none,
     * endpointSecurityAntivirus, endpointSecurityDiskEncryption, endpointSecurityFirewall,
     * endpointSecurityEndpointDetectionAndResponse, endpointSecurityAttackSurfaceReduction,
     * endpointSecurityAccountProtection, endpointSecurityApplicationControl, endpointSecurityEndpointPrivilegeManagement,
     * enrollmentConfiguration, appQuietTime, baseline, unknownFutureValue, deviceConfigurationScripts,
     * deviceConfigurationPolicies.
     */
    templateFamily?: DeviceManagementConfigurationTemplateFamily;
    // Template id
    templateId?: NullableOption<string>;
}
export interface DeviceManagementConfigurationStringSettingValue extends DeviceManagementConfigurationSimpleSettingValue {
    // Value of the string setting.
    value?: NullableOption<string>;
}
export interface DeviceManagementConfigurationReferenceSettingValue extends DeviceManagementConfigurationStringSettingValue {
    // A note that admin can use to put some contextual information
    note?: NullableOption<string>;
}
export interface DeviceManagementConfigurationReferredSettingInformation {
    // Setting definition id that is being referred to a setting. Applicable for reusable setting
    settingDefinitionId?: NullableOption<string>;
}
export interface DeviceManagementConfigurationSecretSettingValue extends DeviceManagementConfigurationSimpleSettingValue {
    // Value of the secret setting.
    value?: NullableOption<string>;
    /**
     * Gets or sets a value indicating the encryption state of the Value property. Possible values are: invalid, notEncrypted,
     * encryptedValueToken.
     */
    valueState?: DeviceManagementConfigurationSecretSettingValueState;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConfigurationSettingGroupCollectionInstance extends DeviceManagementConfigurationSettingInstance {}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConfigurationSettingGroupInstance extends DeviceManagementConfigurationSettingInstance {}
export interface DeviceManagementConfigurationSettingInstanceTemplateReference {
    // Setting instance template id
    settingInstanceTemplateId?: string;
}
export interface DeviceManagementConfigurationSettingOccurrence {
    // Maximum times setting can be set on device.
    maxDeviceOccurrence?: NullableOption<number>;
    // Minimum times setting can be set on device. A MinDeviceOccurrence of 0 means setting is optional
    minDeviceOccurrence?: NullableOption<number>;
}
export interface DeviceManagementConfigurationSettingValueTemplateReference {
    // Setting value template id
    settingValueTemplateId?: string;
    // Indicates whether to update policy setting value to match template setting default value
    useTemplateDefault?: boolean;
}
export interface DeviceManagementConfigurationSimpleSettingCollectionInstance extends DeviceManagementConfigurationSettingInstance {
    // Simple setting collection instance value
    simpleSettingCollectionValue?: DeviceManagementConfigurationSimpleSettingValue[];
}
export interface DeviceManagementConfigurationSimpleSettingCollectionInstanceTemplate extends DeviceManagementConfigurationSettingInstanceTemplate {
    // Linked policy may append values which are not present in the template.
    allowUnmanagedValues?: boolean;
    // Simple Setting Collection Value Template
    simpleSettingCollectionValueTemplate?: DeviceManagementConfigurationSimpleSettingValueTemplate[];
}
export interface DeviceManagementConfigurationSimpleSettingInstance extends DeviceManagementConfigurationSettingInstance {
    // Simple setting instance value
    simpleSettingValue?: DeviceManagementConfigurationSimpleSettingValue;
}
export interface DeviceManagementConfigurationSimpleSettingInstanceTemplate extends DeviceManagementConfigurationSettingInstanceTemplate {
    // Simple Setting Value Template
    simpleSettingValueTemplate?: DeviceManagementConfigurationSimpleSettingValueTemplate;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConfigurationStringSettingValueDefaultTemplate {}
export interface DeviceManagementConfigurationStringSettingValueConstantDefaultTemplate extends DeviceManagementConfigurationStringSettingValueDefaultTemplate {
    // Default Constant Value
    constantValue?: string;
}
export interface DeviceManagementConfigurationStringSettingValueDefinition extends DeviceManagementConfigurationSettingValueDefinition {
    // Supported file types for this setting.
    fileTypes?: NullableOption<string[]>;
    /**
     * Pre-defined format of the string. Possible values are: none, email, guid, ip, base64, url, version, xml, date, time,
     * binary, regEx, json, dateTime, surfaceHub, bashScript, unknownFutureValue.
     */
    format?: NullableOption<DeviceManagementConfigurationStringFormat>;
    // Regular expression or any xml or json schema that the input string should match
    inputValidationSchema?: NullableOption<string>;
    /**
     * Specifies whether the setting needs to be treated as a secret. Settings marked as yes will be encrypted in transit and
     * at rest and will be displayed as asterisks when represented in the UX.
     */
    isSecret?: NullableOption<boolean>;
    // Maximum length of string. Valid values 0 to 87516
    maximumLength?: NullableOption<number>;
    // Minimum length of string. Valid values 0 to 87516
    minimumLength?: NullableOption<number>;
}
export interface DeviceManagementConfigurationStringSettingValueTemplate extends DeviceManagementConfigurationSimpleSettingValueTemplate {
    // String Setting Value Default Template.
    defaultValue?: NullableOption<DeviceManagementConfigurationStringSettingValueDefaultTemplate>;
}
export interface DeviceManagementConfigurationWindowsSettingApplicability extends DeviceManagementConfigurationSettingApplicability {
    // Version of CSP setting is a part of
    configurationServiceProviderVersion?: NullableOption<string>;
    // Maximum supported version of Windows
    maximumSupportedVersion?: NullableOption<string>;
    // Minimum supported version of Windows
    minimumSupportedVersion?: NullableOption<string>;
    // Required AzureAD trust type. Possible values are: none, azureAdJoined, addWorkAccount, mdmOnly.
    requiredAzureAdTrustType?: DeviceManagementConfigurationAzureAdTrustType;
    // AzureAD setting requirement
    requiresAzureAd?: boolean;
    // List of Windows SKUs that the setting is applicable for
    windowsSkus?: DeviceManagementConfigurationWindowsSkus[];
}
export interface DeviceManagementPriorityMetaData {
    // Priority of the policy. Valid values 1 to 500
    priority?: number;
}
export interface DeviceManagementSettingInsightsDefinition {
    // Setting definition id that is being referred to a setting.
    settingDefinitionId?: NullableOption<string>;
    // Data Insights Target Value
    settingInsight?: NullableOption<DeviceManagementConfigurationSettingValue>;
}
export interface CompanyPortalBlockedAction {
    // Device Action. Possible values are: unknown, remove, reset.
    action?: CompanyPortalAction;
    // Device ownership type. Possible values are: unknown, company, personal.
    ownerType?: OwnerType;
    /**
     * Device OS/Platform. Possible values are: android, androidForWork, iOS, macOS, windowsPhone81, windows81AndLater,
     * windows10AndLater, androidWorkProfile, unknown.
     */
    platform?: DevicePlatformType;
}
export interface ComplianceManagementPartnerAssignment {
    // Group assignment target.
    target?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
}
export interface DeviceAndAppManagementData {
    // Not yet documented
    content?: NullableOption<any>;
}
export interface DeviceEnrollmentPlatformRestriction {
    // Collection of blocked Manufacturers.
    blockedManufacturers?: NullableOption<string[]>;
    // Collection of blocked Skus.
    blockedSkus?: NullableOption<string[]>;
    // 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 DeviceManagementExchangeAccessRule {
    // Access Level for Exchange granted by this rule. Possible values are: none, allow, block, quarantine.
    accessLevel?: DeviceManagementExchangeAccessLevel;
    // Device Class which will be impacted by this rule.
    deviceClass?: NullableOption<DeviceManagementExchangeDeviceClass>;
}
export interface DeviceManagementExchangeDeviceClass {
    // Name of the device class which will be impacted by this rule.
    name?: NullableOption<string>;
    // Type of device which is impacted by this rule e.g. Model, Family. Possible values are: family, model.
    type?: DeviceManagementExchangeAccessRuleType;
}
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 VppTokenActionResult {
    // 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 VppTokenLicenseSummary {
    // The Apple Id associated with the given Apple Volume Purchase Program Token.
    appleId?: NullableOption<string>;
    // The number of VPP licenses available.
    availableLicenseCount?: number;
    // The organization associated with the Apple Volume Purchase Program Token.
    organizationName?: NullableOption<string>;
    // The number of VPP licenses in use.
    usedLicenseCount?: number;
    // Identifier of the VPP token.
    vppTokenId?: NullableOption<string>;
}
export interface VppTokenRevokeLicensesActionResult extends VppTokenActionResult {
    /**
     * The reason for the revoke licenses action failure. Possible values are: none, appleFailure, internalError,
     * expiredVppToken, expiredApplePushNotificationCertificate.
     */
    actionFailureReason?: VppTokenActionFailureReason;
    // A count of the number of licenses that failed to revoke.
    failedLicensesCount?: number;
    // A count of the number of licenses that were attempted to revoke.
    totalLicensesCount?: number;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementConstraint {}
export interface DeviceManagementEnumConstraint extends DeviceManagementConstraint {
    // List of valid values for this string
    values?: DeviceManagementEnumValue[];
}
export interface DeviceManagementEnumValue {
    // Display name for this enum value
    displayName?: NullableOption<string>;
    // The raw enum value text
    value?: NullableOption<string>;
}
export interface DeviceManagementIntentCustomizedSetting {
    // JSON representation of the customized value, if different from default
    customizedJson?: NullableOption<string>;
    // JSON representation of the default value from the template
    defaultJson?: NullableOption<string>;
    // The ID of the setting definition for this setting
    definitionId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementIntentSettingSecretConstraint extends DeviceManagementConstraint {}
export interface DeviceManagementSettingAbstractImplementationConstraint extends DeviceManagementConstraint {
    // List of value which means not configured for the setting
    allowedAbstractImplementationDefinitionIds?: NullableOption<string[]>;
}
export interface DeviceManagementSettingAppConstraint extends DeviceManagementConstraint {
    // Acceptable app types to allow for this setting
    supportedTypes?: NullableOption<string[]>;
}
export interface DeviceManagementSettingBooleanConstraint extends DeviceManagementConstraint {
    // The boolean value to compare against
    value?: boolean;
}
export interface DeviceManagementSettingCollectionConstraint extends DeviceManagementConstraint {
    // The maximum number of elements in the collection
    maximumLength?: NullableOption<number>;
    // The minimum number of elements in the collection
    minimumLength?: NullableOption<number>;
}
export interface DeviceManagementSettingComparison {
    // Setting comparison result. Possible values are: unknown, equal, notEqual, added, removed.
    comparisonResult?: DeviceManagementComparisonResult;
    // JSON representation of current intent (or) template setting's value
    currentValueJson?: NullableOption<string>;
    // The ID of the setting definition for this instance
    definitionId?: NullableOption<string>;
    // The setting's display name
    displayName?: NullableOption<string>;
    // The setting ID
    id?: NullableOption<string>;
    // JSON representation of new template setting's value
    newValueJson?: NullableOption<string>;
}
export interface DeviceManagementSettingDependency {
    // Collection of constraints for the dependency setting value
    constraints?: NullableOption<DeviceManagementConstraint[]>;
    // The setting definition ID of the setting depended on
    definitionId?: string;
}
export interface DeviceManagementSettingEnrollmentTypeConstraint extends DeviceManagementConstraint {
    // List of enrollment types
    enrollmentTypes?: NullableOption<string[]>;
}
export interface DeviceManagementSettingFileConstraint extends DeviceManagementConstraint {
    // Acceptable file extensions to upload for this setting
    supportedExtensions?: NullableOption<string[]>;
}
export interface DeviceManagementSettingIntegerConstraint extends DeviceManagementConstraint {
    // The maximum permitted value
    maximumValue?: NullableOption<number>;
    // The minimum permitted value
    minimumValue?: NullableOption<number>;
}
export interface DeviceManagementSettingProfileConstraint extends DeviceManagementConstraint {
    // The source of the entity
    source?: NullableOption<string>;
    // A collection of types this entity carries
    types?: NullableOption<string[]>;
}
export interface DeviceManagementSettingRegexConstraint extends DeviceManagementConstraint {
    // The RegEx pattern to match against
    regex?: string;
}
export interface DeviceManagementSettingRequiredConstraint extends DeviceManagementConstraint {
    // List of value which means not configured for the setting
    notConfiguredValue?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementSettingSddlConstraint extends DeviceManagementConstraint {}
export interface DeviceManagementSettingStringLengthConstraint extends DeviceManagementConstraint {
    // The maximum permitted string length
    maximumLength?: NullableOption<number>;
    // The minimum permitted string length
    minimumLength?: NullableOption<number>;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceManagementSettingXmlConstraint extends DeviceManagementConstraint {}
export interface SecurityBaselineContributingPolicy {
    // Name of the policy
    displayName?: NullableOption<string>;
    // Unique identifier of the policy
    sourceId?: NullableOption<string>;
    // Authoring source of the policy. Possible values are: deviceConfiguration, deviceIntent.
    sourceType?: SecurityBaselinePolicySourceType;
}
export interface ActivateDeviceEsimActionResult extends DeviceActionResult {
    // Carrier Url to activate the device eSIM
    carrierUrl?: NullableOption<string>;
}
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 BulkManagedDeviceActionResult {
    // Failed devices
    failedDeviceIds?: NullableOption<string[]>;
    // Not found devices
    notFoundDeviceIds?: NullableOption<string[]>;
    // Not supported devices
    notSupportedDeviceIds?: NullableOption<string[]>;
    // Successful devices
    successfulDeviceIds?: NullableOption<string[]>;
}
export interface ComanagedDevicesSummary {
    // Number of devices with CompliancePolicy swung-over. This property is read-only.
    compliancePolicyCount?: number;
    // Number of devices with ConfigurationSettings swung-over. This property is read-only.
    configurationSettingsCount?: number;
    // Number of devices with EndpointProtection swung-over. This property is read-only.
    endpointProtectionCount?: number;
    // Number of devices with Inventory swung-over. This property is read-only.
    inventoryCount?: number;
    // Number of devices with ModernApps swung-over. This property is read-only.
    modernAppsCount?: number;
    // Number of devices with OfficeApps swung-over. This property is read-only.
    officeAppsCount?: number;
    // Number of devices with ResourceAccess swung-over. This property is read-only.
    resourceAccessCount?: number;
    // Number of Co-Managed Devices. This property is read-only.
    totalComanagedCount?: number;
    // Number of devices with WindowsUpdateForBusiness swung-over. This property is read-only.
    windowsUpdateForBusinessCount?: number;
}
export interface ComanagementEligibleDevicesSummary {
    // Count of devices already Co-Managed
    comanagedCount?: number;
    // Count of devices eligible for Co-Management but not yet joined to Azure Active Directory
    eligibleButNotAzureAdJoinedCount?: number;
    // Count of devices fully eligible for Co-Management
    eligibleCount?: number;
    // Count of devices ineligible for Co-Management
    ineligibleCount?: number;
    // Count of devices that will be eligible for Co-Management after an OS update
    needsOsUpdateCount?: number;
    // Count of devices scheduled for Co-Management enrollment. Valid values 0 to 9999999
    scheduledForEnrollmentCount?: number;
}
export interface ConfigurationManagerAction {
    /**
     * The action type to trigger on Configuration Manager client. Possible values are: refreshMachinePolicy,
     * refreshUserPolicy, wakeUpClient, appEvaluation, quickScan, fullScan, windowsDefenderUpdateSignatures.
     */
    action?: ConfigurationManagerActionType;
}
export interface ConfigurationManagerActionResult extends DeviceActionResult {
    /**
     * State of the action being delivered to on-prem server. Possible values are: unknown, pendingDelivery,
     * deliveredToConnectorService, failedToDeliverToConnectorService, deliveredToOnPremisesServer.
     */
    actionDeliveryStatus?: ConfigurationManagerActionDeliveryStatus;
    // Error code of Configuration Manager action from client
    errorCode?: number;
}
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 DeviceHealthScriptParameter {
    // Whether Apply DefaultValue When Not Assigned
    applyDefaultValueWhenNotAssigned?: boolean;
    // The description of the param
    description?: NullableOption<string>;
    // Whether the param is required
    isRequired?: boolean;
    // The name of the param
    name?: NullableOption<string>;
}
export interface DeviceHealthScriptBooleanParameter extends DeviceHealthScriptParameter {
    // The default value of boolean param
    defaultValue?: boolean;
}
export interface DeviceHealthScriptRunSchedule {
    /**
     * The x value of every x hours for hourly schedule, every x days for Daily Schedule, every x weeks for weekly schedule,
     * every x months for Monthly Schedule. Valid values 1 to 23
     */
    interval?: number;
}
export interface DeviceHealthScriptTimeSchedule extends DeviceHealthScriptRunSchedule {
    // At what time the script is scheduled to run. This collection can contain a maximum of 20 elements.
    time?: NullableOption<string>;
    // Indicate if the time is Utc or client local time.
    useUtc?: boolean;
}
// tslint:disable-next-line: no-empty-interface
export interface DeviceHealthScriptDailySchedule extends DeviceHealthScriptTimeSchedule {}
// tslint:disable-next-line: no-empty-interface
export interface DeviceHealthScriptHourlySchedule extends DeviceHealthScriptRunSchedule {}
export interface DeviceHealthScriptIntegerParameter extends DeviceHealthScriptParameter {
    // The default value of Integer param. Valid values -2147483648 to 2147483647
    defaultValue?: number;
}
export interface DeviceHealthScriptRemediationHistory {
    // The number of devices remediated by the device health script on the given date.
    historyData?: NullableOption<DeviceHealthScriptRemediationHistoryData[]>;
    // The date on which the results history is calculated for the healthscript.
    lastModifiedDateTime?: NullableOption<string>;
}
export interface DeviceHealthScriptRemediationHistoryData {
    // The date on which devices were remediated by the device health script.
    date?: string;
    // The number of devices for which the detection script found an issue.
    detectFailedDeviceCount?: number;
    // The number of devices that were found to have no issue by the device health script.
    noIssueDeviceCount?: number;
    // The number of devices remediated by the device health script.
    remediatedDeviceCount?: number;
}
export interface DeviceHealthScriptRemediationSummary {
    // The number of devices remediated by device health scripts.
    remediatedDeviceCount?: NullableOption<number>;
    // The number of device health scripts deployed.
    scriptCount?: NullableOption<number>;
}
export interface DeviceHealthScriptRunOnceSchedule extends DeviceHealthScriptTimeSchedule {
    // The date the script is scheduled to run. This collection can contain a maximum of 20 elements.
    date?: NullableOption<string>;
}
export interface DeviceHealthScriptStringParameter extends DeviceHealthScriptParameter {
    // The default value of string param
    defaultValue?: NullableOption<string>;
}
export interface DeviceLogCollectionRequest {
    // The unique identifier
    id?: NullableOption<string>;
    /**
     * Indicates The template type that is sent with the collection request. defaule is Predefined. Possible values are:
     * predefined, unknownFutureValue.
     */
    templateType?: DeviceLogCollectionTemplateType;
}
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 AOSP user-associated Android devices. Valid values 0 to 2147483647
    aospUserAssociatedCount?: number;
    // Number of AOSP userless Android devices. Valid values 0 to 2147483647
    aospUserlessCount?: number;
    // Number of Chrome OS devices. Valid values 0 to 2147483647
    chromeOSCount?: number;
    // Number of ConfigMgr managed devices.
    configMgrDeviceCount?: number;
    // Number of iOS device count.
    iosCount?: number;
    // Number of Linux OS devices. Valid values 0 to 2147483647
    linuxCount?: 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;
}
export interface DeviceScopeActionResult {
    // The triggered action name. Possible values are: .
    deviceScopeAction?: DeviceScopeAction;
    // The unique identifier of the device scope the action was triggered on.
    deviceScopeId?: NullableOption<string>;
    // The message indicates the reason the device scope action failed to trigger.
    failedMessage?: NullableOption<string>;
    /**
     * Indicates the status of the attempt device scope action. When succeeded, the action was succeessfully triggered, When
     * failed, the action was failed to trigger. Possible values are: failed, succeeded, unknownFutureValue.
     */
    status?: DeviceScopeActionStatus;
}
export interface SharedAppleDeviceUser {
    // Data quota
    dataQuota?: NullableOption<number>;
    // Data to sync
    dataToSync?: boolean;
    // Data quota
    dataUsed?: number;
    // User name
    userPrincipalName?: NullableOption<string>;
}
// 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 ManagedDeviceModelsAndManufacturers {
    // List of Manufactures for managed devices in the account
    deviceManufacturers?: NullableOption<string[]>;
    // List of Models for managed devices in the account
    deviceModels?: NullableOption<string[]>;
}
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 PowerliftDownloadRequest {
    // The list of files to download
    files?: NullableOption<string[]>;
    // The unique id for the request
    powerliftId?: string;
}
export interface PowerliftIncidentMetadata {
    // The name of the application the diagnostic is from. Example: com.microsoft.CompanyPortal
    application?: NullableOption<string>;
    // The version of the application. Example: 5.2203.1
    clientVersion?: NullableOption<string>;
    // The time the app diagnostic was created. Example: 2022-04-19T17:24:45.313Z
    createdAtDateTime?: NullableOption<string>;
    // The unique app diagnostic identifier as a user friendly 8 character hexadecimal string. Example: 8520467A
    easyId?: NullableOption<string>;
    // A list of files that are associated with the diagnostic.
    fileNames?: NullableOption<string[]>;
    // The locale information of the application. Example: en-US
    locale?: NullableOption<string>;
    // The device's OS the diagnostic is from. Example: iOS
    platform?: NullableOption<string>;
    // The unique identifier of the app diagnostic. Example: 8520467a-49a9-44a4-8447-8dfb8bec6726
    powerliftId?: string;
}
export interface RemoteLockActionResult extends DeviceActionResult {
    // Pin to unlock the client
    unlockPin?: NullableOption<string>;
}
export interface ResetPasscodeActionResult extends DeviceActionResult {
    // RotateBitLockerKeys action error code. Valid values 0 to 2147483647
    errorCode?: number;
    // Newly generated passcode for the device
    passcode?: NullableOption<string>;
}
export interface RevokeAppleVppLicensesActionResult extends DeviceActionResult {
    // Total number of Apple Vpp licenses that failed to revoke
    failedLicensesCount?: number;
    // Total number of Apple Vpp licenses associated
    totalLicensesCount?: number;
}
export interface RotateBitLockerKeysDeviceActionResult extends DeviceActionResult {
    // RotateBitLockerKeys action error code
    errorCode?: number;
}
export interface TenantAttachRBACState {
    /**
     * Indicates whether the tenant is enabled for Tenant Attach with role management. TRUE if enabled, FALSE if the Tenant
     * Attach with rolemanagement is disabled.
     */
    enabled?: boolean;
}
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 UserExperienceAnalyticsAnomalyCorrelationGroupFeature {
    /**
     * The type of device feature. Possible values are: manufacturer, model, osVersion, application or driver. Possible values
     * are: manufacturer, model, osVersion, application, driver, unknownFutureValue.
     */
    deviceFeatureType?: UserExperienceAnalyticsAnomalyDeviceFeatureType;
    // Specific metric values that describe the features of the given device feature type.
    values?: 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 UserExperienceAnalyticsDeviceBatteryDetail {
    // Uniquely identifies the batteries in a single device.
    batteryId?: NullableOption<string>;
    /**
     * Number of times the battery has been discharged an amount that equals 100% of its capacity, but not necessarily by
     * discharging it from 100% to 0%. Valid values 0 to 2147483647
     */
    fullBatteryDrainCount?: number;
    /**
     * Ratio of current capacity and design capacity of the battery. Unit in percentage and values range from 0-100. Valid
     * values 0 to 2147483647
     */
    maxCapacityPercentage?: number;
}
export interface UserExperienceAnalyticsDeviceScopeSummary {
    /**
     * A collection of the user experience analytics device scope Unique Identifiers that are enabled and finished
     * recalculating the report metric.
     */
    completedDeviceScopeIds?: NullableOption<string[]>;
    /**
     * A collection of user experience analytics device scope Unique Identitfiers that are enabled but there is insufficient
     * data to calculate results.
     */
    insufficientDataDeviceScopeIds?: NullableOption<string[]>;
    // The total number of user experience analytics device scopes. Valid values -2147483648 to 2147483647
    totalDeviceScopes?: number;
    // The total number of user experience analytics device scopes that are enabled. Valid values -2147483648 to 2147483647
    totalDeviceScopesEnabled?: 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;
}
export interface MobileAppTroubleshootingHistoryItem {
    // Time when the history item occurred.
    occurrenceDateTime?: string;
    // Object containing detailed information about the error and its remediation.
    troubleshootingErrorDetails?: NullableOption<DeviceManagementTroubleshootingErrorDetails>;
}
export interface Windows10XCustomSubjectAlternativeName {
    // Custom SAN Name
    name?: NullableOption<string>;
    /**
     * Custom SAN Type. Possible values are: none, emailAddress, userPrincipalName, customAzureADAttribute, domainNameService,
     * universalResourceIdentifier.
     */
    sanType?: SubjectAlternativeNameType;
}
export interface AppleOwnerTypeEnrollmentType {
    /**
     * The enrollment type. Possible values are: unknown, device, user, accountDrivenUserEnrollment, webDeviceEnrollment,
     * unknownFutureValue.
     */
    enrollmentType?: AppleUserInitiatedEnrollmentType;
    // The owner type. Possible values are: unknown, company, personal.
    ownerType?: ManagedDeviceOwnerType;
}
// 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>;
}
export interface ManagementCertificateWithThumbprint {
    // The Base 64 encoded management certificate
    certificate?: NullableOption<string>;
    // The thumbprint of the management certificate
    thumbprint?: NullableOption<string>;
}
export interface SuggestedEnrollmentLimit {
    // The suggested enrollment limit within a day
    suggestedDailyLimit?: number;
}
export interface ApplicationDetail {
    // The path of the file in the request for elevation, for example, %programfiles%\git\cmd
    fileDescription?: NullableOption<string>;
    /**
     * The SHA256 hash of the file in the request for elevation, for example,
     * '18ee24150dcb1d96752a4d6dd0f20dfd8ba8c38527e40aa8509b7adecf78f9c6'
     */
    fileHash?: NullableOption<string>;
    // The name of the file in the request for elevation, for example, git.exe
    fileName?: NullableOption<string>;
    // The path of the file in the request for elevation, for example, %programfiles%\git\cmd
    filePath?: NullableOption<string>;
    // The internal name of the application for which elevation request has been made. For example, 'git'
    productInternalName?: NullableOption<string>;
    // The product name of the application for which elevation request has been made. For example, 'Git'
    productName?: NullableOption<string>;
    // The product version of the application for which elevation request has been made. For example, '2.40.1.0'
    productVersion?: NullableOption<string>;
    /**
     * The certificate issuer name of the certificate used to sign the application, for example, 'Sectigo Public Code Signing
     * CA R36'
     */
    publisherName?: NullableOption<string>;
}
export interface AndroidFotaDeploymentAssignment {
    /**
     * The Azure Active Directory (Azure AD) we are deploying firmware updates to (e.g.:
     * d93c8f48-bd42-4514-ba40-bc6b84780930). NOTE: Use this property moving forward because the existing property, target, is
     * deprecated.
     */
    assignmentTarget?: NullableOption<DeviceAndAppManagementAssignmentTarget>;
    // The display name of the Azure AD security group used for the assignment.
    displayName?: string;
    // A unique identifier assigned to each Android FOTA Assignment entity
    id?: NullableOption<string>;
    // The AAD Group we are deploying firmware updates to
    target?: NullableOption<AndroidFotaDeploymentAssignmentTarget>;
}
export interface AndroidFotaDeploymentAssignmentTarget extends DeviceAndAppManagementAssignmentTarget {
    // AAD Group Id.
    groupId?: string;
}
export interface ZebraFotaDeploymentSettings {
    // Minimum battery level (%) required for both download and installation. Default: -1 (System defaults). Maximum is 100.
    batteryRuleMinimumBatteryLevelPercentage?: NullableOption<number>;
    /**
     * Flag indicating if charger is required. When set to false, the client can install updates whether the device is in or
     * out of the charger. Applied only for installation. Defaults to false.
     */
    batteryRuleRequireCharger?: NullableOption<boolean>;
    // Deploy update for devices with this model only.
    deviceModel?: string;
    /**
     * Download network type as described in 'zebraFotaNetworkType'. Default: any. Possible values are: any, wifi, cellular,
     * wifiAndCellular, unknownFutureValue.
     */
    downloadRuleNetworkType?: ZebraFotaNetworkType;
    /**
     * Date and time in the device time zone when the download will start (e.g., 2018-07-25T10:20:32). The default value is
     * UTC now and the maximum is 10 days from deployment creation.
     */
    downloadRuleStartDateTime?: NullableOption<string>;
    /**
     * A description provided by Zebra for the the firmware artifact to update the device to (e.g.: LifeGuard Update 120
     * (released 29-June-2022).
     */
    firmwareTargetArtifactDescription?: NullableOption<string>;
    // Deployment's Board Support Package (BSP. E.g.: '01.18.02.00'). Required only for custom update type.
    firmwareTargetBoardSupportPackageVersion?: NullableOption<string>;
    // Target OS Version (e.g.: '8.1.0'). Required only for custom update type.
    firmwareTargetOsVersion?: NullableOption<string>;
    // Target patch name (e.g.: 'U06'). Required only for custom update type.
    firmwareTargetPatch?: NullableOption<string>;
    /**
     * Date and time in device time zone when the install will start. Default - download startDate if configured, otherwise
     * defaults to NOW. Ignored when deployment update type was set to auto.
     */
    installRuleStartDateTime?: NullableOption<string>;
    /**
     * Time of day after which the install cannot start. Possible range is 00:30:00 to 23:59:59. Should be greater than
     * 'installRuleWindowStartTime' by 30 mins. The time is expressed in a 24-hour format, as hh:mm, and is in the device time
     * zone. Default - 23:59:59. Respected for all values of update type, including AUTO.
     */
    installRuleWindowEndTime?: NullableOption<string>;
    /**
     * Time of day (00:00:00 - 23:30:00) when installation should begin. The time is expressed in a 24-hour format, as hh:mm,
     * and is in the device time zone. Default - 00:00:00. Respected for all values of update type, including AUTO.
     */
    installRuleWindowStartTime?: NullableOption<string>;
    /**
     * Maximum 28 days. Default is 28 days. Sequence of dates are: 1) Download start date. 2) Install start date. 3) Schedule
     * end date. If any of the values are not provided, the date provided in the preceding step of the sequence is used. If no
     * values are provided, the string value of the current UTC is used.
     */
    scheduleDurationInDays?: NullableOption<number>;
    /**
     * Deployment installation schedule mode. Default is installNow. All scheduled deployments date and time are in the
     * device’s timezone. For Install Now, the date and time are in UTC (same date and time anywhere in the world). Possible
     * values are: installNow, scheduled, unknownFutureValue.
     */
    scheduleMode?: ZebraFotaScheduleMode;
    /**
     * This attribute indicates the deployment time offset (e.g.180 represents an offset of +03:00, and -270 represents an
     * offset of -04:30). The time offset is the time timezone where the devices are located. The deployment start and end
     * data uses this timezone
     */
    timeZoneOffsetInMinutes?: NullableOption<number>;
    /**
     * The deployment's update type. Possible values are custom, latest, and auto. When custom mode is set, the request must
     * provide artifact values. When latest type is set, the latest released update becomes the target OS. If latest is
     * specified, the firmware target values are not required. Note: latest may update the device to a new Android version.
     * When the value is set to auto, the device always looks for the latest package available and tries to update whenever a
     * new package is available. This continues until the admin cancels the auto update. While other modes return an ID
     * starting with FOTA-x, auto mode returns an ID starting with AUTO-x. Possible values are: custom, latest, auto,
     * unknownFutureValue.
     */
    updateType?: ZebraFotaUpdateType;
}
export interface ZebraFotaDeploymentStatus {
    /**
     * A boolean that indicates if a cancellation was requested on the deployment. NOTE: A cancellation request does not
     * guarantee that the deployment was canceled.
     */
    cancelRequested?: boolean;
    /**
     * The date and time when this deployment was completed or canceled. The actual date time is determined by the value of
     * state. If the state is canceled, this property holds the cancellation date/time. If the the state is completed, this
     * property holds the completion date/time. If the deployment is not completed before the deployment end date, then
     * completed date/time and end date/time are the same. This is always in the deployment timezone. Note: An installation
     * that is in progress can continue past the deployment end date.
     */
    completeOrCanceledDateTime?: NullableOption<string>;
    /**
     * An error code indicating the failure reason, when the deployment state is createFailed. Possible values: See
     * zebraFotaErrorCode enum. Possible values are: success, noDevicesFoundInSelectedAadGroups,
     * noIntuneDevicesFoundInSelectedAadGroups, noZebraFotaEnrolledDevicesFoundForCurrentTenant,
     * noZebraFotaEnrolledDevicesFoundInSelectedAadGroups, noZebraFotaDevicesFoundForSelectedDeviceModel,
     * zebraFotaCreateDeploymentRequestFailure, unknownFutureValue.
     */
    errorCode?: ZebraFotaErrorCode;
    // Date and time when the deployment status was updated from Zebra
    lastUpdatedDateTime?: NullableOption<string>;
    /**
     * See zebraFotaDeploymentState enum for possible values. Possible values are: pendingCreation, createFailed, created,
     * inProgress, completed, pendingCancel, canceled, unknownFutureValue.
     */
    state?: ZebraFotaDeploymentState;
    // An integer that indicates the total number of devices where installation was successful.
    totalAwaitingInstall?: number;
    // An integer that indicates the total number of devices where installation was canceled.
    totalCanceled?: number;
    /**
     * An integer that indicates the total number of devices that have a job in the CREATED state. Typically indicates jobs
     * that did not reach the devices.
     */
    totalCreated?: number;
    // An integer that indicates the total number of devices in the deployment.
    totalDevices?: number;
    // An integer that indicates the total number of devices where installation was successful.
    totalDownloading?: number;
    // An integer that indicates the total number of devices that have failed to download the new OS file.
    totalFailedDownload?: number;
    // An integer that indicates the total number of devices that have failed to install the new OS file.
    totalFailedInstall?: number;
    // An integer that indicates the total number of devices that received the json and are scheduled.
    totalScheduled?: number;
    // An integer that indicates the total number of devices where installation was successful.
    totalSucceededInstall?: number;
    /**
     * An integer that indicates the total number of devices where no deployment status or end state has not received, even
     * after the scheduled end date was reached.
     */
    totalUnknown?: number;
}
export interface GroupPolicyPresentationDropdownListItem {
    // Localized display name for the drop-down list item.
    displayName?: NullableOption<string>;
    // Associated value for the drop-down list item
    value?: NullableOption<string>;
}
export interface GroupPolicyUploadedLanguageFile {
    // The contents of the uploaded ADML file.
    content?: NullableOption<string>;
    // The file name of the uploaded ADML file.
    fileName?: NullableOption<string>;
    // Key of the entity.
    id?: NullableOption<string>;
    // The language code of the uploaded ADML file.
    languageCode?: NullableOption<string>;
    // The date and time the entity was last modified.
    lastModifiedDateTime?: 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;
}
export interface MacAppIdentifier extends MobileAppIdentifier {
    // The identifier for an app, as specified in the app store.
    bundleId?: 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 WindowsAppIdentifier extends MobileAppIdentifier {
    // The identifier for an app, as specified in the app store.
    windowsAppId?: 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 KeyLongValuePair {
    // Name for this key long value pair
    name?: string;
    // Value for this key long value pair
    value?: number;
}
export interface MetricTimeSeriesDataPoint {
    // Time of the metric time series data point
    dateTime?: string;
    // Value of the metric time series data point
    value?: number;
}
export interface ConfigManagerPolicySummary {
    // The number of devices evaluated to be compliant by the policy.
    compliantDeviceCount?: number;
    // The number of devices that have have been remediated by the policy.
    enforcedDeviceCount?: number;
    // The number of devices that failed to be evaluated by the policy.
    failedDeviceCount?: number;
    // The number of devices evaluated to be noncompliant by the policy.
    nonCompliantDeviceCount?: number;
    // The number of devices that have acknowledged the policy but are pending evaluation.
    pendingDeviceCount?: number;
    // The number of devices targeted by the policy.
    targetedDeviceCount?: number;
}
export interface UnmanagedDevice {
    // Device name.
    deviceName?: NullableOption<string>;
    // Domain.
    domain?: NullableOption<string>;
    // IP address.
    ipAddress?: NullableOption<string>;
    // Last logged on user.
    lastLoggedOnUser?: NullableOption<string>;
    // Last seen date and time.
    lastSeenDateTime?: string;
    // Location.
    location?: NullableOption<string>;
    // MAC address.
    macAddress?: NullableOption<string>;
    // Manufacturer.
    manufacturer?: NullableOption<string>;
    // Model.
    model?: NullableOption<string>;
    // Operating system.
    os?: NullableOption<string>;
    // Operating system version.
    osVersion?: NullableOption<string>;
}
export interface DeviceAndAppManagementAssignedRoleDetails {
    // Role Assignment IDs for the specifc Role Assignments assigned to a user. This property is read-only.
    roleAssignmentIds?: NullableOption<string[]>;
    // Role Definition IDs for the specifc Role Definitions assigned to a user. This property is read-only.
    roleDefinitionIds?: NullableOption<string[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface OperationApprovalPolicySet {}
export interface ResourceAction {
    // Allowed Actions
    allowedResourceActions?: NullableOption<string[]>;
    // Not Allowed Actions.
    notAllowedResourceActions?: NullableOption<string[]>;
}
export interface RolePermission {
    // Allowed Actions - Deprecated
    actions?: NullableOption<string[]>;
    // Resource Actions each containing a set of allowed and not allowed permissions.
    resourceActions?: NullableOption<ResourceAction[]>;
}
export interface CreateRemoteHelpSessionResponse {
    // The unique identifier for a session
    sessionKey?: string;
}
export interface ExtendRemoteHelpSessionResponse {
    // Helper ACS User Token
    acsHelperUserToken?: string;
    // Azure Pubsub Group Id
    pubSubHelperAccessUri?: string;
    // Azure Pubsub Session Expiration Date Time.
    sessionExpirationDateTime?: string;
    // The unique identifier for a session
    sessionKey?: string;
}
export interface RequestRemoteHelpSessionAccessResponse {
    // AES encryption Initialization Vector for encrypting client messages sent to PubSub
    pubSubEncryption?: string;
    // The unique identifier for encrypting client messages sent to PubSub
    pubSubEncryptionKey?: string;
    // The unique identifier for a session
    sessionKey?: string;
}
export interface RetrieveRemoteHelpSessionResponse {
    // ACS Group Id
    acsGroupId?: string;
    // Helper ACS User Id
    acsHelperUserId?: string;
    // Helper ACS User Token
    acsHelperUserToken?: string;
    // Sharer ACS User Id
    acsSharerUserId?: string;
    // Android Device Name
    deviceName?: string;
    // Azure Pubsub Group Id
    pubSubGroupId?: string;
    // Azure Pubsub Group Id
    pubSubHelperAccessUri?: string;
    // Azure Pubsub Session Expiration Date Time.
    sessionExpirationDateTime?: string;
    // The unique identifier for a session
    sessionKey?: string;
}
export interface EmbeddedSIMActivationCode {
    // The input must match the following regular expression: '^[0-9]{19}[0-9]?$'.
    integratedCircuitCardIdentifier?: string;
    // The input must match the following regular expression: '^[a-zA-Z0-9\-]*$'.
    matchingIdentifier?: string;
    // The input must match the following regular expression: '^([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)+[a-zA-Z]{2,}$'.
    smdpPlusServerAddress?: string;
}
export interface DeviceManagementTroubleshootingErrorDetails {
    // Not yet documented
    context?: NullableOption<string>;
    // Not yet documented
    failure?: NullableOption<string>;
    // The detailed description of what went wrong.
    failureDetails?: NullableOption<string>;
    // The detailed description of how to remediate this issue.
    remediation?: NullableOption<string>;
    // Links to helpful documentation about this failure.
    resources?: NullableOption<DeviceManagementTroubleshootingErrorResource[]>;
}
export interface DeviceManagementTroubleshootingErrorResource {
    // The link to the web resource. Can contain any of the following formatters: {{UPN}}, {{DeviceGUID}}, {{UserGUID}}
    link?: NullableOption<string>;
    // Not yet documented
    text?: NullableOption<string>;
}
export interface ManagedDeviceSummarizedAppState {
    // DeviceId of device represented by this object
    deviceId?: NullableOption<string>;
    // runState for the object. Possible values are: unknown, success, fail, scriptError, pending, notApplicable.
    summarizedAppState?: RunState;
}
export interface MobileAppIntentAndStateDetail {
    // MobieApp identifier.
    applicationId?: NullableOption<string>;
    // The admin provided or imported title of the app.
    displayName?: NullableOption<string>;
    // Human readable version of the application
    displayVersion?: NullableOption<string>;
    /**
     * The install state of the app. Possible values are: installed, failed, notInstalled, uninstallFailed, pendingInstall,
     * unknown, notApplicable.
     */
    installState?: ResultantAppState;
    /**
     * Mobile App Intent. Possible values are: available, notAvailable, requiredInstall, requiredUninstall,
     * requiredAndAvailableInstall, availableInstallWithoutEnrollment, exclude.
     */
    mobileAppIntent?: MobileAppIntent;
    // The supported platforms for the app.
    supportedDeviceTypes?: NullableOption<MobileAppSupportedDeviceType[]>;
}
export interface MobileAppSupportedDeviceType {
    // Maximum OS version
    maximumOperatingSystemVersion?: NullableOption<string>;
    // Minimum OS version
    minimumOperatingSystemVersion?: NullableOption<string>;
    /**
     * Device type. Possible values are: desktop, windowsRT, winMO6, nokia, windowsPhone, mac, winCE, winEmbedded, iPhone,
     * iPad, iPod, android, iSocConsumer, unix, macMDM, holoLens, surfaceHub, androidForWork, androidEnterprise, windows10x,
     * androidnGMS, chromeOS, linux, blackberry, palm, unknown, cloudPC.
     */
    type?: DeviceType;
}
export interface MobileAppTroubleshootingAppPolicyCreationHistory extends MobileAppTroubleshootingHistoryItem {
    // Error code for the failure, empty if no failure.
    errorCode?: NullableOption<string>;
    // Status of the item. Possible values are: unknown, success, fail, scriptError, pending, notApplicable.
    runState?: RunState;
}
export interface MobileAppTroubleshootingAppStateHistory extends MobileAppTroubleshootingHistoryItem {
    /**
     * Action type for Intune Application. Possible values are: unknown, installCommandSent, installed, uninstalled,
     * userRequestedInstall.
     */
    actionType?: MobileAppActionType;
    // Error code for the failure, empty if no failure.
    errorCode?: NullableOption<string>;
    // Status of the item. Possible values are: unknown, success, fail, scriptError, pending, notApplicable.
    runState?: RunState;
}
export interface MobileAppTroubleshootingAppTargetHistory extends MobileAppTroubleshootingHistoryItem {
    // Error code for the failure, empty if no failure.
    errorCode?: NullableOption<string>;
    // Status of the item. Possible values are: unknown, success, fail, scriptError, pending, notApplicable.
    runState?: RunState;
    // AAD security group id to which it was targeted.
    securityGroupId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface MobileAppTroubleshootingAppUpdateHistory extends MobileAppTroubleshootingHistoryItem {}
// tslint:disable-next-line: no-empty-interface
export interface MobileAppTroubleshootingDeviceCheckinHistory extends MobileAppTroubleshootingHistoryItem {}
export interface BulkDriverActionResult {
    // List of driver Ids where the action is failed.
    failedDriverIds?: NullableOption<string[]>;
    // List of driver Ids that are not found.
    notFoundDriverIds?: NullableOption<string[]>;
    // List of driver Ids where the action is successful.
    successfulDriverIds?: NullableOption<string[]>;
}
export interface ExpeditedWindowsQualityUpdateSettings {
    // The number of days after installation that forced reboot will happen.
    daysUntilForcedReboot?: number;
    // The release date to identify a quality update.
    qualityUpdateRelease?: string;
}
// tslint:disable-next-line: interface-name
export interface IosAvailableUpdateVersion {
    // The expiration date of the update.
    expirationDateTime?: string;
    // The posting date of the update.
    postingDateTime?: string;
    // The version of the update.
    productVersion?: string;
    // List of supported devices for the update.
    supportedDevices?: NullableOption<string[]>;
}
export interface WindowsDriverUpdateProfileInventorySyncStatus {
    // The state of the latest sync. Possible values are: pending, success, failure.
    driverInventorySyncState?: WindowsDriverUpdateProfileInventorySyncState;
    // The last successful sync date and time in UTC.
    lastSuccessfulSyncDateTime?: string;
}
export interface WindowsUpdateRolloutSettings {
    /**
     * The feature update's ending of release date and time to be set, update, and displayed for a feature Update profile for
     * example: 2020-06-09T10:00:00Z.
     */
    offerEndDateTimeInUTC?: NullableOption<string>;
    /**
     * The number of day(s) between each set of offers to be set, updated, and displayed for a feature update profile, for
     * example: if OfferStartDateTimeInUTC is 2020-06-09T10:00:00Z, and OfferIntervalInDays is 1, then the next two sets of
     * offers will be made consecutively on 2020-06-10T10:00:00Z (next day at the same specified time) and
     * 2020-06-11T10:00:00Z (next next day at the same specified time) with 1 day in between each set of offers.
     */
    offerIntervalInDays?: NullableOption<number>;
    /**
     * The feature update's starting date and time to be set, update, and displayed for a feature Update profile for example:
     * 2020-06-09T10:00:00Z.
     */
    offerStartDateTimeInUTC?: NullableOption<string>;
}
export interface CertificateConnectorHealthMetricValue {
    // Timestamp for this metric data-point.
    dateTime?: string;
    // Count of failed requests/operations.
    failureCount?: number;
    // Count of successful requests/operations.
    successCount?: number;
}
export interface TimeSeriesParameter {
    // End time of the series being requested. Optional; if not specified, current time is used.
    endDateTime?: NullableOption<string>;
    // The name of the metric for which a time series is requested.
    metricName?: NullableOption<string>;
    // Start time of the series being requested.
    startDateTime?: string;
}
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>;
}
// tslint:disable-next-line: no-empty-interface
export interface EntitlementsDataCollectionInfo {}
export interface EntitlementsDataCollection extends EntitlementsDataCollectionInfo {
    // Last transformation time of entitlements.
    lastCollectionDateTime?: string;
    /**
     * Defines whether permissions can be modified in the authorization system. The possible values are: enabled,
     * notConfigured, noRecentDataCollected, unknownFutureValue.
     */
    permissionsModificationCapability?: PermissionsModificationCapability;
    // The entitlements status. The possible values are: online, offline, unknownFutureValue.
    status?: DataCollectionStatus;
}
// tslint:disable-next-line: no-empty-interface
export interface NoEntitlementsDataCollection extends EntitlementsDataCollectionInfo {}
export interface AwsAssociatedIdentities {
    all?: NullableOption<AwsIdentity[]>;
    roles?: NullableOption<AwsRole[]>;
    users?: NullableOption<AwsUser[]>;
}
export interface AzureAssociatedIdentities {
    all?: NullableOption<AzureIdentity[]>;
    managedIdentities?: NullableOption<AzureManagedIdentity[]>;
    servicePrincipals?: NullableOption<AzureServicePrincipal[]>;
    users?: NullableOption<AzureUser[]>;
}
export interface GcpAssociatedIdentities {
    all?: NullableOption<GcpIdentity[]>;
    serviceAccounts?: NullableOption<GcpServiceAccount[]>;
    users?: NullableOption<GcpUser[]>;
}
export interface AuthorizationSystemIdentitySource {
    // Type of identity provider. Read-only.
    identityProviderType?: NullableOption<string>;
}
export interface AadSource extends AuthorizationSystemIdentitySource {
    // Domain name
    domain?: NullableOption<string>;
}
export interface AwsSource extends AuthorizationSystemIdentitySource {
    // AWS account ID.
    accountId?: NullableOption<string>;
}
export interface AzureSource extends AuthorizationSystemIdentitySource {
    // Azure subscription ID.
    subscriptionId?: NullableOption<string>;
}
export interface GcpScope {
    // Type of GCP resource.
    resourceType?: string;
    service?: AuthorizationSystemTypeService;
}
export interface GsuiteSource extends AuthorizationSystemIdentitySource {
    // Domain name
    domain?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface UnknownSource extends AuthorizationSystemIdentitySource {}
// tslint:disable-next-line: no-empty-interface
export interface AccountsWithAccess {}
export interface ActionSummary {
    // This is the number of authorization system actions that have been assigned to the identity.
    assigned?: number;
    // This is the number of authorization system actions that the identity has exercised in the last 90 days.
    available?: number;
    // This is the maximum number of actions that are available in the authorization system.
    exercised?: number;
}
// tslint:disable-next-line: no-empty-interface
export interface AllAccountsWithAccess extends AccountsWithAccess {}
// tslint:disable-next-line: interface-name no-empty-interface
export interface InboundPorts {}
// tslint:disable-next-line: no-empty-interface
export interface AllInboundPorts extends InboundPorts {}
export interface AuthorizationSystemInfo {
    // The type of authorization system.The possible values are: azure, gcp, aws, unknownFutureValue.
    authorizationSystemType?: NullableOption<AuthorizationSystemType>;
    // Display name for the authorization system.
    displayName?: NullableOption<string>;
    // Unique identifier for the authorization system.
    id?: NullableOption<string>;
}
export interface AwsAccessKeyDetails {
    createdDateTime?: NullableOption<string>;
    lastUsedDateTime?: NullableOption<string>;
}
export interface EnumeratedAccountsWithAccess extends AccountsWithAccess {
    accounts?: NullableOption<AuthorizationSystem[]>;
}
export interface EnumeratedInboundPorts extends InboundPorts {
    // Collection of ports that allow inbound traffic.
    ports?: NullableOption<string[]>;
}
// tslint:disable-next-line: interface-name
export interface IdentityDetails {
    // A date specifiying when the Identity was created, could be null
    createdDateTime?: NullableOption<string>;
    // A date specifiying when the Identity was active last time, could be null
    lastActiveDateTime?: NullableOption<string>;
}
export interface PermissionsAnalyticsAggregatedIamKeySummary {
    findingsCountOverLimit?: number;
    // The total number of identities in an authorization system that Permissions Management checked for a specific finding.
    totalCount?: number;
}
export interface PermissionsAnalyticsAggregatedIdentitySummary {
    // The total number of identities of a specific kind that has a specific finding type.
    findingsCount?: number;
    // The total number of identities in an authorization system that Permissions Management checked for a specific finding.
    totalCount?: number;
}
export interface PermissionsAnalyticsAggregatedResourceSummary {
    findingsCount?: number;
    totalCount?: number;
}
export interface PermissionsCreepIndex {
    /**
     * This value represents how much risk an identity poses. This risk range is classified in three buckets: 0-33: low,
     * 34-66: medium, 67-100: high..
     */
    score?: number;
}
export interface RiskProfile {
    // This is the count of human identities that have been assigned to this riskScoreBracket,
    humanCount?: number;
    // This is the count of nonhuman identities that have been assigned to this riskScoreBracket
    nonHumanCount?: number;
}
// tslint:disable-next-line: no-empty-interface
export interface PermissionsDefinitionAction {}
// tslint:disable-next-line: no-empty-interface
export interface AwsPermissionsDefinitionAction extends PermissionsDefinitionAction {}
export interface AwsActionsPermissionsDefinitionAction extends AwsPermissionsDefinitionAction {
    // Defines AWS statements.
    assignToRoleId?: NullableOption<string>;
    statements?: NullableOption<AwsStatement[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface AwsCondition {}
// tslint:disable-next-line: no-empty-interface
export interface PermissionsDefinitionIdentitySource {}
export interface AwsIdentitySource extends PermissionsDefinitionIdentitySource {
    // Authorization system information of the source of the user.
    authorizationSystemInfo?: PermissionsDefinitionAuthorizationSystem;
}
export interface PermissionsDefinitionAuthorizationSystem {
    // ID of the authorization system retrieved from the customer cloud environment.
    authorizationSystemId?: string;
    // The type of authorization system.
    authorizationSystemType?: string;
}
export interface PermissionsDefinition {
    // Information relating to the authorization system and permissions assigned.
    authorizationSystemInfo?: PermissionsDefinitionAuthorizationSystem;
    identityInfo?: PermissionsDefinitionAuthorizationSystemIdentity;
}
export interface AwsPermissionsDefinition extends PermissionsDefinition {
    // The actions the identity will have as part of the permission.
    actionInfo?: AwsPermissionsDefinitionAction;
}
export interface AwsPolicyPermissionsDefinitionAction extends AwsPermissionsDefinitionAction {
    // ID for the role.
    assignToRoleId?: NullableOption<string>;
    policies?: NullableOption<PermissionsDefinitionAwsPolicy[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface AzurePermissionsDefinitionAction extends PermissionsDefinitionAction {}
export interface AzureActionPermissionsDefinitionAction extends AzurePermissionsDefinitionAction {
    // List of actions relating to the Azure permission.
    actions?: string[];
}
export interface AzureRolePermissionsDefinitionAction extends AzurePermissionsDefinitionAction {
    roles?: NullableOption<PermissionsDefinitionAzureRole[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface EdIdentitySource extends PermissionsDefinitionIdentitySource {}
// tslint:disable-next-line: no-empty-interface
export interface GcpPermissionsDefinitionAction extends PermissionsDefinitionAction {}
export interface GcpActionPermissionsDefinitionAction extends GcpPermissionsDefinitionAction {
    // List of actions.
    actions?: string[];
}
export interface GcpRolePermissionsDefinitionAction extends GcpPermissionsDefinitionAction {
    roles?: NullableOption<PermissionsDefinitionGcpRole[]>;
}
// tslint:disable-next-line: no-empty-interface
export interface LocalIdentitySource extends PermissionsDefinitionIdentitySource {}
// tslint:disable-next-line: no-empty-interface
export interface SamlIdentitySource extends PermissionsDefinitionIdentitySource {}
export interface SingleResourceAzurePermissionsDefinition extends PermissionsDefinition {
    // Information relating to actions defined in the permissions.
    actionInfo?: AzurePermissionsDefinitionAction;
    // Identifier for the resource.
    resourceId?: string;
}
export interface SingleResourceGcpPermissionsDefinition extends PermissionsDefinition {
    // Information relating to actions defined in the permissions.
    actionInfo?: GcpPermissionsDefinitionAction;
    // Identifier for the resource.
    resourceId?: string;
}
export interface TicketInfo {
    // ID for the request approver.
    ticketApproverIdentityId?: NullableOption<string>;
    // The ticket number.
    ticketNumber?: NullableOption<string>;
    // ID for the request submitter.
    ticketSubmitterIdentityId?: NullableOption<string>;
    // The description of the ticket system.
    ticketSystem?: NullableOption<string>;
}
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 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 with respect to original 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 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.
     * This property is optional.
     */
    enableResultTemplate?: NullableOption<boolean>;
}
export interface SearchAggregation {
    // Defines the actual buckets of the computed aggregation.
    buckets?: NullableOption<SearchBucket[]>;
    // Defines on which field the aggregation was computed on.
    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, user will get the search results for corrected query
     * when there are no results for the original query with typos and get the spelling modification information in
     * queryAlterationResponse property of the response. Optional.
     */
    enableModification?: NullableOption<boolean>;
    /**
     * Indicates whether spelling suggestions are enabled. If enabled, the user will get 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 collapses 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 for rendering the search result. This ID must map to a display layout in the resultTemplates
     * dictionary, included in the searchresponse as well.
     */
    resultTemplateId?: NullableOption<string>;
    // A summary of the result, if a summary is available.
    summary?: NullableOption<string>;
    _id?: NullableOption<string>;
    _score?: NullableOption<number>;
    _summary?: NullableOption<string>;
    resource?: NullableOption<Entity>;
    _source?: NullableOption<Entity>;
}
export interface SearchHitsContainer {
    // Contains the collection of aggregations computed based on the provided aggregationOption specified in the request.
    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 is not the number of results on the page, but the total number of results
     * satisfying the query.
     */
    total?: NullableOption<number>;
}
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. Respects the following format : /external/connections/connectionid where
     * connectionid is the ConnectionId defined in the Connectors Administration. Note: contentSource is only applicable when
     * entityType=externalItem. Optional.
     */
    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: list, site, listItem, message, event,
     * drive, driveItem, person, externalItem, acronym, bookmark, chatMessage. For details about combinations of two or more
     * entity types that are supported in the same search request, see known limitations. 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 content that Microsoft Graph connectors bring in. The fields property
     * can be using the semantic labels applied to properties. For example, if a property is label 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;
    /**
     * Provides query alteration options formatted as a JSON blob that contains two optional flags related to spelling
     * correction. Optional.
     */
    queryAlterationOptions?: NullableOption<SearchAlterationOptions>;
    /**
     * Required for searches that use application permissions. Represents the geographic location for the search. For details,
     * see Get the region value.
     */
    region?: NullableOption<string>;
    // Provides the search result templates options for rendering connectors search results.
    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[]>;
    stored_fields?: NullableOption<string[]>;
    // Indicates whether to trim away the duplicate SharePoint files from search results. Default value is false. Optional.
    trimDuplicates?: NullableOption<boolean>;
}
export interface SharePointOneDriveOptions {
    // The type of search content. The possible values are: privateContent, sharedContent. 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 details of query alteration response for spelling correction.
    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[]>;
}
export interface DateTimeTimeZoneType {
    dateTime?: string;
}
export interface PostalAddressType {
    city?: NullableOption<string>;
    countryLetterCode?: NullableOption<string>;
    postalCode?: NullableOption<string>;
    state?: NullableOption<string>;
    street?: NullableOption<string>;
}
export interface PayloadTypes {
    /**
     * The notification content of a raw user notification that will be delivered to and consumed by the app client on all
     * supported platforms (Windows, iOS, Android or WebPush) receiving this notification. At least one of Payload.RawContent
     * or Payload.VisualContent needs to be valid for a POST Notification request.
     */
    rawContent?: NullableOption<string>;
    /**
     * The visual content of a visual user notification, which will be consumed by the notification platform on each supported
     * platform (Windows, iOS and Android only) and rendered for the user. At least one of Payload.RawContent or
     * Payload.VisualContent needs to be valid for a POST Notification request.
     */
    visualContent?: NullableOption<VisualProperties>;
}
export interface VisualProperties {
    // The body of a visual user notification. Body is optional.
    body?: NullableOption<string>;
    // The title of a visual user notification. This field is required for visual notification payloads.
    title?: NullableOption<string>;
}
export interface TargetPolicyEndpoints {
    /**
     * Use to filter the notification distribution to a specific platform or platforms. Valid values are Windows, iOS, Android
     * and WebPush. By default, all push endpoint types (Windows, iOS, Android and WebPush) are enabled.
     */
    platformTypes?: 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 at which 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 PlannerBucketCreation {
    /**
     * Specifies what kind of creation source the bucket is created with. The possible values are: external, publication and
     * unknownFutureValue.
     */
    creationSourceKind?: NullableOption<PlannerCreationSourceKind>;
}
export interface PlannerBucketPropertyRule extends PlannerPropertyRule {
    order?: NullableOption<string[]>;
    title?: NullableOption<string[]>;
}
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 PlannerChecklistRequirement {
    // A collection of required plannerChecklistItems identifiers to complete the plannerTask.
    requiredChecklistItemIds?: NullableOption<string[]>;
}
export interface PlannerExternalBucketSource extends PlannerBucketCreation {
    /**
     * Nullable. An identifier for the scenario associated with this external source. This should be in reverse DNS format.
     * For example, Contoso company owned application for customer support would have a value like
     * 'com.constoso.customerSupport'.
     */
    contextScenarioId?: NullableOption<string>;
    // Nullable. The ID of the external entity's containing entity or context.
    externalContextId?: NullableOption<string>;
    // Nullable. The ID of the entity that an external service associates with a bucket.
    externalObjectId?: NullableOption<string>;
}
export interface PlannerPlanCreation {
    /**
     * Specifies what kind of creation source the plan is created with. The possible values are: external, publication and
     * unknownFutureValue.
     */
    creationSourceKind?: NullableOption<PlannerCreationSourceKind>;
}
export interface PlannerExternalPlanSource extends PlannerPlanCreation {
    /**
     * Nullable. An identifier for the scenario associated with this external source. This should be in reverse DNS format.
     * For example, Contoso company owned application for customer support would have a value like
     * 'com.constoso.customerSupport'.
     */
    contextScenarioId?: NullableOption<string>;
    // Nullable. The ID of the external entity's containing entity or context.
    externalContextId?: NullableOption<string>;
    // Nullable. The ID of the entity that an external service associates with a plan.
    externalObjectId?: NullableOption<string>;
}
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 {}
export interface PlannerTaskCreation {
    /**
     * Specifies what kind of creation source the task is created with. The possible values are: external, publication and
     * unknownFutureValue.
     */
    creationSourceKind?: NullableOption<PlannerCreationSourceKind>;
    /**
     * Information about the publication process that created this task. This field is deprecated and clients should move to
     * using the new inheritance model.
     */
    teamsPublicationInfo?: NullableOption<PlannerTeamsPublicationInfo>;
}
export interface PlannerExternalTaskSource extends PlannerTaskCreation {
    /**
     * Nullable. An identifier for the scenario associated with this external source. This should be in reverse DNS format.
     * For example, Contoso company owned application for customer support would have a value like
     * 'com.constoso.customerSupport'.
     */
    contextScenarioId?: NullableOption<string>;
    /**
     * Specifies how an application should display the link to the associated plannerExternalTaskSource. The possible values
     * are: none, default.
     */
    displayLinkType?: NullableOption<PlannerExternalTaskSourceDisplayType>;
    /**
     * The segments of the name of the external experience. Segments represent a hierarchical structure that allows other apps
     * to display the relationship.
     */
    displayNameSegments?: NullableOption<string[]>;
    // Nullable. The id of the external entity's containing entity or context.
    externalContextId?: NullableOption<string>;
    // Nullable. The id of the entity that an external service associates with a task.
    externalObjectId?: NullableOption<string>;
    // Nullable. The external Item Version for the object specified by the externalObjectId.
    externalObjectVersion?: NullableOption<string>;
    // Nullable. URL of the user experience represented by the associated plannerExternalTaskSource.
    webUrl?: NullableOption<string>;
}
export interface PlannerFavoritePlanReference {
    // Hint used to order items of this type in a list view. The format is defined in Using order hints in Planner.
    orderHint?: NullableOption<string>;
    // Title of the plan at the time the user marked it as a favorite.
    planTitle?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerFavoritePlanReferenceCollection {}
// 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, project, driveItem, and user. You must use the Prefer: include-unknown-enum-members
     * request header to get the following value in this evolvable enum: roster, project, driveItem, and user. Optional.
     */
    type?: NullableOption<PlannerContainerType>;
    // The full canonical URL of the container. Optional.
    url?: NullableOption<string>;
}
export interface PlannerPlanContext {
    /**
     * Nullable. An app-defined type of association between the plannerPlan and the app. The app can use this information to
     * track different kinds of relationships to the same plannerPlan.
     */
    associationType?: NullableOption<string>;
    /**
     * Read-only. The date and time when the plannerPlanContext 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>;
    /**
     * The segments of the name of the external experience. Segments represent a hierarchical structure that allows other apps
     * to display the relationship.
     */
    displayNameSegments?: NullableOption<string[]>;
    /**
     * Read-only. Indicates whether the plan is created from the specified context. Auto-generated based on whether the
     * context is specified as part of plan creation.
     */
    isCreationContext?: NullableOption<boolean>;
    // Read-only. ID of the app that created the plannerPlanContext.
    ownerAppId?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerPlanContextCollection {}
export interface PlannerPlanContextDetails {
    /**
     * Nullable. Specifies the text to use in a user experience to display a link the the associated plannerPlanContext. If
     * null, applications should display the link with a custom text based on the displayLinkType property.
     */
    customLinkText?: NullableOption<string>;
    /**
     * Specifies how an application should display the link to the associated plannerPlanContext. Applications may choose to
     * provide customized text, description, icons, or other experiences based on the type of the link. Possible values are:
     * teamsTab, sharePointPage, meetingNotes, loopPage, project, other, unknownFutureValue.
     */
    displayLinkType?: NullableOption<PlannerPlanContextType>;
    // Indicates the state of the associated plannerPlanContext.
    state?: NullableOption<PlannerContextState>;
    // URL of the user experience represented by the associated plannerPlanContext.
    url?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerPlanContextDetailsCollection {}
export interface PlannerPlanPropertyRule extends PlannerPropertyRule {
    buckets?: NullableOption<string[]>;
    categoryDescriptions?: NullableOption<PlannerFieldRules>;
    tasks?: NullableOption<string[]>;
    title?: NullableOption<PlannerFieldRules>;
}
export interface PlannerRecentPlanReference {
    /**
     * The date and time the plan was last viewed by 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.
     */
    lastAccessedDateTime?: NullableOption<string>;
    // The title of the plan at the time the user viewed it.
    planTitle?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerRecentPlanReferenceCollection {}
export interface PlannerRecurrenceSchedule {
    /**
     * The next date for this schedule. When a new task is instantiated to continue the recurrence series, this date is used
     * for the dueDateTime of the new plannerTask. Auto-generated by the service. 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.
     */
    nextOccurrenceDateTime?: NullableOption<string>;
    // The pattern for recurrence. Required.
    pattern?: NullableOption<RecurrencePattern>;
    /**
     * The start date for the recurrence pattern. 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.
     */
    patternStartDateTime?: NullableOption<string>;
}
export interface PlannerSharedWithContainer extends PlannerPlanContainer {
    /**
     * The maximum access level the shared container can provide to the plan. The possible values are: readAccess,
     * readWriteAccess, fullAccess, unknownFutureValue.
     */
    accessLevel?: PlannerPlanAccessLevel;
}
export interface PlannerTaskCompletionRequirementDetails {
    // Information about the requirements for completing the checklist.
    checklistRequirement?: NullableOption<PlannerChecklistRequirement>;
}
export interface PlannerTeamsPublicationInfo extends PlannerTaskCreation {
    // The date and time when this task was last modified by the publication process. Read-only.
    lastModifiedDateTime?: NullableOption<string>;
    // The identifier of the publication. Read-only.
    publicationId?: NullableOption<string>;
    // The identifier of the plannerPlan this task was originally placed in. Read-only.
    publishedToPlanId?: NullableOption<string>;
    // The identifier of the team that initiated the publication process. Read-only.
    publishingTeamId?: NullableOption<string>;
    /**
     * The display name of the team that initiated the publication process. This display name is for reference only, and might
     * not represent the most up-to-date name of the team. Read-only.
     */
    publishingTeamName?: NullableOption<string>;
}
export interface PlannerTaskRecurrence {
    /**
     * The taskId of the next task in this series. This value is assigned at the time the next task in the series is created,
     * and is null prior to that time.
     */
    nextInSeriesTaskId?: NullableOption<string>;
    /**
     * The 1-based index of this task within the recurrence series. The first task in a series has the value 1, the next task
     * in the series has the value 2, and so on.
     */
    occurrenceId?: number;
    /**
     * The taskId of the previous task in this series. null for the first task in a series since it has no predecessor. All
     * subsequent tasks in the series have a value that corresponds to their predecessors.
     */
    previousInSeriesTaskId?: NullableOption<string>;
    /**
     * The date and time when this recurrence series begin. For the first task in a series (occurrenceId = 1) this value is
     * copied from schedule.patternStartDateTime. For subsequent tasks in the series (occurrenceId &amp;gt;= 2) this value is
     * copied from the previous task and never changes; it preserves the start date of the recurring series. 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.
     */
    recurrenceStartDateTime?: string;
    /**
     * The schedule for recurrence. Clients define and edit recurrence by specifying the schedule. If nextInSeriesTaskId isn't
     * assigned, clients may terminate the series by assigning null to this property.
     */
    schedule?: NullableOption<PlannerRecurrenceSchedule>;
    // The recurrence series this task belongs to. A GUID-based value that serves as the unique identifier for a series.
    seriesId?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface PlannerUserIds {}
export interface BusinessScenarioTaskTargetBase {
    // Represents the kind of the target. The possible values are: group, unknownFutureValue.
    taskTargetKind?: PlannerTaskTargetKind;
}
export interface BusinessScenarioGroupTarget extends BusinessScenarioTaskTargetBase {
    // The unique identifier for the group.
    groupId?: NullableOption<string>;
}
export interface BusinessScenarioProperties {
    /**
     * The identifier for the bucketDefinition configured in the plannerPlanConfiguration for the scenario. The task will be
     * placed in the corresponding plannerBucket in the target plan. Required.
     */
    externalBucketId?: NullableOption<string>;
    /**
     * The identifier for the context of the task. Context is an application controlled value, and tasks can be queried by
     * their externalContextId. Optional.
     */
    externalContextId?: NullableOption<string>;
    /**
     * Application-specific identifier for the task. Every task for the same scenario must have a unique identifier specified
     * for this property. Required.
     */
    externalObjectId?: NullableOption<string>;
    // Application-specific version of the task. Optional.
    externalObjectVersion?: NullableOption<string>;
    // The URL to the application-specific experience for this task. Optional.
    webUrl?: NullableOption<string>;
}
// 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 Type property
     * values section, 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 {
    // The message describing the condition that triggered the error or warning.
    message?: NullableOption<string>;
    // The link to the documentation for this issue.
    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. 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. 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 {id} 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 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 AppsAndServicesSettings {
    // Controls whether users can start trial subscriptions for apps and services in your organization.
    isAppAndServicesTrialEnabled?: NullableOption<boolean>;
    // Controls whether users can access the Microsoft Store.
    isOfficeStoreEnabled?: NullableOption<boolean>;
}
export interface CustomerVoiceSettings {
    /**
     * Controls whether phishing protection is run on forms created by users, blocking the creation of forms if common
     * phishing questions are detected.
     */
    isInOrgFormsPhishingScanEnabled?: NullableOption<boolean>;
    // Controls whether the names of users who fill out forms are recorded.
    isRecordIdentityByDefaultEnabled?: NullableOption<boolean>;
    // Controls whether only users inside your organization can submit a response.
    isRestrictedSurveyAccessEnabled?: NullableOption<boolean>;
}
export interface FormsSettings {
    // Controls whether users can add images from Bing to forms.
    isBingImageSearchEnabled?: NullableOption<boolean>;
    // Controls whether users can send a link to a form to an external user.
    isExternalSendFormEnabled?: NullableOption<boolean>;
    // Controls whether users can collaborate on a form layout and structure with an external user.
    isExternalShareCollaborationEnabled?: NullableOption<boolean>;
    // Controls whether users can share form results with external users.
    isExternalShareResultEnabled?: NullableOption<boolean>;
    // Controls whether users can share form templates with external users.
    isExternalShareTemplateEnabled?: NullableOption<boolean>;
    /**
     * Controls whether phishing protection is run on forms created by users, blocking the creation of forms if common
     * phishing questions are detected.
     */
    isInOrgFormsPhishingScanEnabled?: NullableOption<boolean>;
    // Controls whether the names of users who fill out forms are recorded.
    isRecordIdentityByDefaultEnabled?: NullableOption<boolean>;
}
export interface TodoSettings {
    // Controls whether users can join lists from users external to your organization.
    isExternalJoinEnabled?: NullableOption<boolean>;
    // Controls whether users can share lists with external users.
    isExternalShareEnabled?: NullableOption<boolean>;
    // Controls whether push notifications are enabled for your users.
    isPushNotificationEnabled?: NullableOption<boolean>;
}
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 CompanyDetail {
    // Address of the company.
    address?: NullableOption<PhysicalAddress>;
    // Department Name within a company.
    department?: NullableOption<string>;
    // Company name.
    displayName?: string;
    // Office Location of the person referred to.
    officeLocation?: NullableOption<string>;
    // Pronunciation guide for the company name.
    pronunciation?: NullableOption<string>;
    // Link to the company home page.
    webUrl?: NullableOption<string>;
}
export interface EducationalActivityDetail {
    // Shortened name of the degree or program (example: PhD, MBA)
    abbreviation?: NullableOption<string>;
    // Extracurricular activities undertaken alongside the program.
    activities?: NullableOption<string[]>;
    // Any awards or honors associated with the program.
    awards?: NullableOption<string[]>;
    // Short description of the program provided by the user.
    description?: NullableOption<string>;
    // Long-form name of the program that the user has provided.
    displayName?: string;
    // Majors and minors associated with the program. (if applicable)
    fieldsOfStudy?: NullableOption<string[]>;
    // The final grade, class, GPA or score.
    grade?: NullableOption<string>;
    // Additional notes the user has provided.
    notes?: NullableOption<string>;
    // Link to the degree or program page.
    webUrl?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface InferenceData {
    // Confidence score reflecting the accuracy of the data inferred about the user.
    confidenceScore?: NullableOption<number>;
    // Records if the user has confirmed this inference as being True or False.
    userHasVerifiedAccuracy?: NullableOption<boolean>;
}
// tslint:disable-next-line: interface-name
export interface InstitutionData {
    // Short description of the institution the user studied at.
    description?: NullableOption<string>;
    // Name of the institution the user studied at.
    displayName?: string;
    // Address or location of the institute.
    location?: NullableOption<PhysicalAddress>;
    // Link to the institution or department homepage.
    webUrl?: NullableOption<string>;
}
export interface PersonDataSources {
    type?: NullableOption<string[]>;
}
export interface PersonNamePronounciation {
    displayName?: NullableOption<string>;
    first?: NullableOption<string>;
    last?: NullableOption<string>;
    maiden?: NullableOption<string>;
    middle?: NullableOption<string>;
}
export interface PositionDetail {
    // Detail about the company or employer.
    company?: NullableOption<CompanyDetail>;
    // Description of the position in question.
    description?: NullableOption<string>;
    // When the position ended.
    endMonthYear?: NullableOption<string>;
    // The title held when in that position.
    jobTitle?: NullableOption<string>;
    // The place where the employee is within the organizational hierarchy.
    layer?: NullableOption<number>;
    // The employee’s experience or management level.
    level?: NullableOption<string>;
    // The role the position entailed.
    role?: NullableOption<string>;
    // The start month and year of the position.
    startMonthYear?: NullableOption<string>;
    // summary of the position.
    summary?: NullableOption<string>;
}
export interface RegionalFormatOverrides {
    // The calendar to use, e.g., Gregorian Calendar.Returned by default.
    calendar?: NullableOption<string>;
    // The first day of the week to use, e.g., Sunday.Returned by default.
    firstDayOfWeek?: NullableOption<string>;
    // The long date time format to be used for displaying dates.Returned by default.
    longDateFormat?: NullableOption<string>;
    // The long time format to be used for displaying time.Returned by default.
    longTimeFormat?: NullableOption<string>;
    // The short date time format to be used for displaying dates.Returned by default.
    shortDateFormat?: NullableOption<string>;
    // The short time format to be used for displaying time.Returned by default.
    shortTimeFormat?: NullableOption<string>;
    // The timezone to be used for displaying time.Returned by default.
    timeZone?: NullableOption<string>;
}
export interface RelatedPerson {
    // Name of the person.
    displayName?: NullableOption<string>;
    /**
     * Possible values are: manager, colleague, directReport, dotLineReport, assistant, dotLineManager, alternateContact,
     * friend, spouse, sibling, child, parent, sponsor, emergencyContact, other, unknownFutureValue.
     */
    relationship?: NullableOption<PersonRelationship>;
    // The user's directory object ID (Microsoft Entra ID or CID).
    userId?: NullableOption<string>;
    // Email address or reference to person within the organization.
    userPrincipalName?: NullableOption<string>;
}
export interface ServiceInformation {
    // The name of the cloud service (for example, Twitter, Instagram).
    name?: string;
    // Contains the URL for the service being referenced.
    webUrl?: string;
}
export interface TranslationLanguageOverride {
    // The language to apply the override.Returned by default. Not nullable.
    languageTag?: string;
    // The translation override behavior for the language, if any.Returned by default. Not nullable.
    translationBehavior?: NullableOption<TranslationBehavior>;
}
export interface TranslationPreferences {
    // Translation override behavior for languages, if any.Returned by default.
    languageOverrides?: TranslationLanguageOverride[];
    // The user's preferred translation behavior.Returned by default. Not nullable.
    translationBehavior?: NullableOption<TranslationBehavior>;
    /**
     * The list of languages the user does not need translated. This is computed from the authoringLanguages collection in
     * regionalAndLanguageSettings, and the languageOverrides collection in translationPreferences. The list specifies neutral
     * culture values that include the language code without any country or region association. For example, it would specify
     * 'fr' for the neutral French culture, but not 'fr-FR' for the French culture in France. Returned by default. Read only.
     */
    untranslatedLanguages?: NullableOption<string[]>;
}
export interface GovernancePermission {
    // The access level. Valid values: None, UserRead, AdminRead, and AdminReadWrite.
    accessLevel?: NullableOption<string>;
    // Indicate if the requestor has any active role assignment for the access level.
    isActive?: NullableOption<boolean>;
    // Indicate if the requestor has any eligible role assignment for the access level.
    isEligible?: NullableOption<boolean>;
}
export interface GovernanceRoleAssignmentRequestStatus {
    // The status of the role assignment request. The value can be InProgress or Closed.
    status?: NullableOption<string>;
    // The details of the status of the role assignment request. It represents the evaluation results of different rules.
    statusDetails?: NullableOption<KeyValue[]>;
    /**
     * The sub status of the role assignment request. The values can be Accepted, PendingEvaluation, Granted, Denied,
     * PendingProvisioning, Provisioned, PendingRevocation, Revoked, Canceled, Failed, PendingApprovalProvisioning,
     * PendingApproval, FailedAsResourceIsLocked, PendingAdminDecision, AdminApproved, AdminDenied, TimedOut, and
     * ProvisioningStarted.
     */
    subStatus?: NullableOption<string>;
}
export interface GovernanceRuleSetting {
    // The id of the rule. For example, ExpirationRule and MfaRule.
    ruleIdentifier?: NullableOption<string>;
    /**
     * The settings of the rule. The value is a JSON string with a list of pairs in the format of
     * ParameterName:ParameterValue. For example, {'permanentAssignment':false,'maximumGrantPeriodInMinutes':129600}
     */
    setting?: NullableOption<string>;
}
export interface GovernanceSchedule {
    // The duration of a role assignment. It is in format of a TimeSpan.
    duration?: NullableOption<string>;
    /**
     * The end time of the role assignment. 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. Note: if the value is null, it
     * indicates a permanent assignment.
     */
    endDateTime?: NullableOption<string>;
    /**
     * The start time of the role assignment. 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 role assignment schedule type. Only Once is supported for now.
    type?: 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<string[]>;
    targetObjects?: NullableOption<DirectoryObject[]>;
}
export interface RoleSuccessStatistics {
    permanentFail?: NullableOption<number>;
    permanentSuccess?: NullableOption<number>;
    removeFail?: NullableOption<number>;
    removeSuccess?: NullableOption<number>;
    roleId?: NullableOption<string>;
    roleName?: NullableOption<string>;
    temporaryFail?: NullableOption<number>;
    temporarySuccess?: NullableOption<number>;
    unknownFail?: NullableOption<number>;
}
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 number of black and white pages that were printed. Read-only.
    blackAndWhitePageCount?: number;
    // The number of color pages that were printed. Read-only.
    colorPageCount?: number;
    // 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 number of duplex (double-sided) pages that were printed. Read-only.
    duplexPageCount?: number;
    // The archived print job's GUID. Read-only.
    id?: string;
    // The total number of pages that were printed. Read-only.
    pageCount?: number;
    // 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;
    // The number of simplex (single-sided) pages that were printed. Read-only.
    simplexPageCount?: number;
}
export interface DeviceHealth {
    // The last time the device was connected.
    lastConnectionTime?: string;
}
// tslint:disable-next-line: interface-name
export interface IntegerRange {
    // The inclusive upper bound of the integer range.
    end?: NullableOption<number>;
    maximum?: NullableOption<number>;
    minimum?: 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 multiple 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 isn't 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[]>;
    feedDirections?: NullableOption<PrinterFeedDirection[]>;
    // 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 (that is, 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[]>;
    supportedColorConfigurations?: PrintColorConfiguration[];
    supportedCopiesPerJob?: NullableOption<IntegerRange>;
    supportedDocumentMimeTypes?: NullableOption<string[]>;
    supportedDuplexConfigurations?: PrintDuplexConfiguration[];
    supportedFinishings?: PrintFinishing[];
    supportedMediaColors?: NullableOption<string[]>;
    supportedMediaSizes?: NullableOption<string[]>;
    supportedMediaTypes?: PrintMediaType[];
    supportedOrientations?: PrintOrientation[];
    supportedOutputBins?: NullableOption<string[]>;
    supportedPagesPerSheet?: NullableOption<IntegerRange>;
    supportedPresentationDirections?: PrintPresentationDirection[];
    supportedPrintQualities?: PrintQuality[];
    // 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>;
    documentMimeType?: NullableOption<string>;
    // The default resolution in DPI to use when printing the job.
    dpi?: NullableOption<number>;
    duplexConfiguration?: NullableOption<PrintDuplexConfiguration>;
    /**
     * 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>;
    // The default input bin that serves as the paper source.
    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>;
    pdfFitToPage?: NullableOption<boolean>;
    presentationDirection?: NullableOption<PrintPresentationDirection>;
    printColorConfiguration?: NullableOption<PrintColorConfiguration>;
    printQuality?: NullableOption<PrintQuality>;
    // 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 PrinterDocumentConfiguration {
    collate?: NullableOption<boolean>;
    colorMode?: NullableOption<PrintColorMode>;
    copies?: NullableOption<number>;
    dpi?: NullableOption<number>;
    duplexMode?: NullableOption<PrintDuplexMode>;
    feedDirection?: NullableOption<PrinterFeedDirection>;
    feedOrientation?: NullableOption<PrinterFeedOrientation>;
    finishings?: NullableOption<PrintFinishing[]>;
    fitPdfToPage?: NullableOption<boolean>;
    inputBin?: NullableOption<string>;
    margin?: NullableOption<PrintMargin>;
    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 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>;
    floorNumber?: NullableOption<number>;
    // 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>;
    roomNumber?: NullableOption<number>;
    // 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[];
    processingState?: PrinterProcessingState;
    processingStateDescription?: NullableOption<string>;
    processingStateReasons?: PrinterProcessingStateReason[];
    // 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 when 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 sizeto use when printing. 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 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 orientation setting the printer should use when printing the job. Valid values are described in the following
     * table.
     */
    orientation?: NullableOption<PrintOrientation>;
    // The output bin to place completed prints into. See the printer's capabilities for a list of supported output bins.
    outputBin?: NullableOption<string>;
    // The page ranges to print. Read-only.
    pageRanges?: NullableOption<IntegerRange[]>;
    // The number of document pages to print on each sheet.
    pagesPerSheet?: NullableOption<number>;
    // The print quality to use when printing the job. Valid values are described in the table below. Read-only.
    quality?: NullableOption<PrintQuality>;
    /**
     * Specifies how the printer should scale the document data to fit the requested media. Valid values are described in the
     * following table.
     */
    scaling?: NullableOption<PrintScaling>;
}
export interface PrintJobStatus {
    acquiredByPrinter?: NullableOption<boolean>;
    // 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;
    processingState?: NullableOption<PrintJobProcessingState>;
    processingStateDescription?: NullableOption<string>;
    // 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;
}
// tslint:disable-next-line: no-empty-interface
export interface PayloadRequest {}
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>;
    // Number of days the user is OOF during a simulation journey/course of a campaign.
    outOfOfficeDays?: NullableOption<number>;
    // 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>;
    // Indicates latest user activity.
    latestSimulationActivity?: NullableOption<string>;
    // 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[]>;
    // The 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 AccountAlias {
    id?: string;
    idType?: NullableOption<string>;
}
export interface AlertDetection {
    detectionType?: NullableOption<string>;
    method?: NullableOption<string>;
    name?: NullableOption<string>;
}
export interface AlertHistoryState {
    /**
     * The Application ID of the calling application that submitted an update (PATCH) to the alert. The appId should be
     * extracted from the auth token and not entered manually by the calling application.
     */
    appId?: NullableOption<string>;
    // UPN of user the alert was assigned to (note: alert.assignedTo only stores the last value/UPN).
    assignedTo?: NullableOption<string>;
    // Comment entered by signed-in user.
    comments?: NullableOption<string[]>;
    /**
     * Analyst feedback on the alert in this update. Possible values are: unknown, truePositive, falsePositive,
     * benignPositive.
     */
    feedback?: NullableOption<AlertFeedback>;
    // Alert status value (if updated). Possible values are: unknown, newAlert, inProgress, resolved, dismissed.
    status?: NullableOption<AlertStatus>;
    /**
     * Date and time of the alert update. 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
     */
    updatedDateTime?: NullableOption<string>;
    // UPN of the signed-in user that updated the alert (taken from the bearer token - if in user/delegated auth mode).
    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 {
    averageScore?: NullableOption<number>;
    basis?: NullableOption<string>;
}
export interface CertificationControl {
    name?: NullableOption<string>;
    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 {
    controlCategory?: NullableOption<string>;
    controlName?: NullableOption<string>;
    description?: NullableOption<string>;
    score?: NullableOption<number>;
}
export interface DomainRegistrant {
    countryOrRegionCode?: NullableOption<string>;
    organization?: NullableOption<string>;
    url?: NullableOption<string>;
    vendor?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface EntitySetNames {}
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>;
}
// tslint:disable-next-line: interface-name
export interface IpCategory {
    description?: NullableOption<string>;
    name?: NullableOption<string>;
    vendor?: NullableOption<string>;
}
// tslint:disable-next-line: interface-name
export interface IpReferenceData {
    asn?: NullableOption<number>;
    city?: NullableOption<string>;
    countryOrRegionCode?: NullableOption<string>;
    organization?: NullableOption<string>;
    state?: NullableOption<string>;
    vendor?: NullableOption<string>;
}
export interface LogonUser {
    // Domain of user account used to logon.
    accountDomain?: NullableOption<string>;
    // Account name of user account used to logon.
    accountName?: NullableOption<string>;
    // User Account type, per Windows definition. Possible values are: unknown, standard, power, administrator.
    accountType?: NullableOption<UserAccountSecurityType>;
    /**
     * DateTime at which the earliest logon by this user account occurred (provider-determined period). 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?: NullableOption<string>;
    /**
     * DateTime at which the latest logon by this user account 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.
     */
    lastSeenDateTime?: NullableOption<string>;
    // User logon ID.
    logonId?: NullableOption<string>;
    /**
     * Collection of the logon types observed for the logged on user from when first to last seen. Possible values are:
     * unknown, interactive, remoteInteractive, network, batch, service.
     */
    logonTypes?: NullableOption<LogonType[]>;
}
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, SMTP, etc.).
    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 NetworkInterface {
    // Description of the NIC (for example, Ethernet adapter, Wireless LAN adapter Local Area Connection, and so on).
    description?: NullableOption<string>;
    // Last IPv4 address associated with this NIC.
    ipV4Address?: NullableOption<string>;
    // Last Public (also known as global) IPv6 address associated with this NIC.
    ipV6Address?: NullableOption<string>;
    // Last local (link-local or site-local) IPv6 address associated with this NIC.
    localIpV6Address?: NullableOption<string>;
    // MAC address of the NIC on this host.
    macAddress?: 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 ReputationCategory {
    description?: NullableOption<string>;
    name?: NullableOption<string>;
    vendor?: NullableOption<string>;
}
export interface SecureScoreControlStateUpdate {
    assignedTo?: NullableOption<string>;
    comment?: NullableOption<string>;
    state?: NullableOption<string>;
    updatedBy?: NullableOption<string>;
    updatedDateTime?: NullableOption<string>;
}
export interface SecurityActionState {
    /**
     * The Application ID of the calling application that submitted an update (PATCH) to the action. The appId should be
     * extracted from the auth token and not entered manually by the calling application.
     */
    appId?: NullableOption<string>;
    // Status of the securityAction in this update. Possible values are: NotStarted, Running, Completed, Failed.
    status?: NullableOption<OperationStatus>;
    /**
     * Timestamp when the actionState 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
     */
    updatedDateTime?: NullableOption<string>;
    /**
     * The user principal name of the signed-in user that submitted an update (PATCH) to the action. The user should be
     * extracted from the auth token and not entered manually by the calling application.
     */
    user?: 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 UserAccount {
    displayName?: NullableOption<string>;
    lastSeenDateTime?: NullableOption<string>;
    riskScore?: NullableOption<string>;
    service?: NullableOption<string>;
    signinName?: NullableOption<string>;
    status?: NullableOption<AccountStatus>;
}
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 {}
export interface MediaConfig {
    removeFromDefaultAudioGroup?: NullableOption<boolean>;
}
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 for 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 ChatRestrictions {
    allowTextOnly?: NullableOption<boolean>;
}
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 the participant uses. Possible values are: default, voicemail, skypeForBusiness,
     * skypeForBusinessVoipPhone and 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>;
}
export interface CustomQuestionAnswer {
    // Display name of the custom registration question. Read-only.
    displayName?: NullableOption<string>;
    // ID the custom registration question. Read-only.
    questionId?: NullableOption<string>;
    // Answer to the custom registration question.
    value?: 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 {
    /**
     * The type of endpoint. Possible values are: default, voicemail, skypeForBusiness, skypeForBusinessVoipPhone and
     * unknownFutureValue.
     */
    endpointType?: NullableOption<EndpointType>;
    // 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>;
}
export interface MeetingInfo {
    allowConversationWithoutHost?: NullableOption<boolean>;
}
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, the prompt uri is cached against this resourceId as key.
    resourceId?: NullableOption<string>;
    /**
     * Path to the prompt to be played. Currently only Wave file (.wav) format, single-channel, 16-bit samples with a 16,000
     * (16 KHz) sampling rate is only supported.
     */
    uri?: string;
}
// tslint:disable-next-line: no-empty-interface
export interface Prompt {}
export interface MediaPrompt extends Prompt {
    loop?: NullableOption<number>;
    // 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;
    // Indicates whether the server has muted the media.
    serverMuted?: boolean;
    // The source ID.
    sourceId?: string;
}
export interface MeetingCapability {
    // Indicates whether anonymous users dialout is allowed in a meeting.
    allowAnonymousUsersToDialOut?: boolean;
    // Indicates whether anonymous users are allowed to start a meeting.
    allowAnonymousUsersToStartMeeting?: boolean;
    // Possible values are: everyoneInCompany, everyone.
    autoAdmittedUsers?: AutoAdmittedUsersType;
}
export interface MeetingParticipantInfo {
    // Identity information of the participant. Only the user property is used for onlineMeeting participants.
    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 MeetingSpeaker {
    // Bio of the speaker.
    bio?: NullableOption<string>;
    // Display name of the speaker.
    displayName?: NullableOption<string>;
}
export interface OnlineMeetingRestricted {
    /**
     * Specifies the reason why shared content from this participant is disabled. Possible values are: watermarkProtection,
     * unknownFutureValue.
     */
    contentSharingDisabled?: NullableOption<OnlineMeetingContentSharingDisabledReason>;
    /**
     * Specifies the reason why 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 OutOfOfficeSettings {
    /**
     * True if either:It is currently in the out of office time window configured on the Outlook or Teams client.There is
     * currently an event on the user's calendar that's marked as Show as Out of OfficeOtherwise, false.
     */
    isOutOfOffice?: NullableOption<boolean>;
    /**
     * The out of office message that the user configured on Outlook client (Automatic Replies (Out of Office)) or the Teams
     * client (Schedule out of office).
     */
    message?: NullableOption<string>;
}
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, voicemail, skypeForBusiness,
     * skypeForBusinessVoipPhone and unknownFutureValue. Read-only.
     */
    endpointType?: NullableOption<EndpointType>;
    // The identitySet associated with this participant. Read-only.
    identity?: IdentitySet;
    // The language culture string. Read-only.
    languageId?: NullableOption<string>;
    nonAnonymizedIdentity?: NullableOption<IdentitySet>;
    // The participant ID of the participant. Read-only.
    participantId?: NullableOption<string>;
    // The client platform ID of the participant. Read-only.
    platformId?: NullableOption<string>;
    /**
     * The home region of the participant, and can be a country, a continent, or a larger geographic region. The region
     * doesn't change based on the participant's current physical location, unlike countryCode. 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 participant who initiated the recording.
    initiatedBy?: NullableOption<ParticipantInfo>;
    // The identities of 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 {
    // The removal reason for the participant resource.
    reason?: NullableOption<string>;
}
export interface ServiceHostedMediaConfig extends MediaConfig {
    // The list of media to prefetch.
    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 VirtualEventPresenterDetails {
    // Bio of the presenter.
    bio?: NullableOption<ItemBody>;
    // The presenter's company name.
    company?: NullableOption<string>;
    // The presenter's job title.
    jobTitle?: NullableOption<string>;
    // The presenter's LinkedIn profile URL.
    linkedInProfileWebUrl?: NullableOption<string>;
    // The presenter's personal website URL.
    personalSiteWebUrl?: NullableOption<string>;
    // The presenter's Twitter profile URL.
    twitterProfileWebUrl?: NullableOption<string>;
}
export interface VirtualEventPresenterInfo extends MeetingParticipantInfo {
    presenterDetails?: NullableOption<VirtualEventPresenterDetails>;
}
export interface VirtualEventRegistrationQuestionAnswer {
    // Boolean answer of the virtualEventRegistrationQuestion. Only appears when answerInputType is boolean.
    booleanValue?: NullableOption<boolean>;
    // Display name of the registration question.
    displayName?: NullableOption<string>;
    // Collection of text answer of the virtualEventRegistrationQuestion. Only appears when answerInputType is multiChoice.
    multiChoiceValues?: NullableOption<string[]>;
    // id of the virtualEventRegistrationQuestion.
    questionId?: NullableOption<string>;
    /**
     * Text answer of the virtualEventRegistrationQuestion. Appears when answerInputType is text, multilineText or
     * singleChoice.
     */
    value?: NullableOption<string>;
}
export interface PasswordResetResponse {
    newPassword?: NullableOption<string>;
}
export interface SignInPreferences {
    // Indicates whether the credential preferences of the system are enabled.
    isSystemPreferredAuthenticationMethodEnabled?: NullableOption<boolean>;
    /**
     * The default second-factor method used by the user when signing in. If a user is enabled for system-preferred
     * authentication, then this value is ignored except for a few scenarios where a user is authenticating via NPS extension
     * or ADFS adapter. Possible values are push, oath, voiceMobile, voiceAlternateMobile, voiceOffice, sms, and
     * unknownFutureValue
     */
    userPreferredMethodForSecondaryAuthentication?: NullableOption<UserDefaultAuthenticationMethodType>;
}
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 specified 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 JWT tokens 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 Acl {
    accessType?: AccessType;
    identitySource?: NullableOption<IdentitySourceType>;
    type?: AclType;
    value?: string;
}
export interface Configuration {
    authorizedAppIds?: NullableOption<string[]>;
    authorizedApps?: NullableOption<string[]>;
}
export interface ExternalItemContent {
    type?: ExternalItemContentType;
    value?: NullableOption<string>;
}
// tslint:disable-next-line: no-empty-interface
export interface Properties {}
export interface Property {
    aliases?: NullableOption<string[]>;
    isQueryable?: NullableOption<boolean>;
    isRefinable?: NullableOption<boolean>;
    isRetrievable?: NullableOption<boolean>;
    isSearchable?: NullableOption<boolean>;
    labels?: NullableOption<Label[]>;
    name?: string;
    type?: PropertyType;
}
export interface ActionResultPart {
    // The error that occurred, if any, during the course of the bulk operation.
    error?: NullableOption<PublicError>;
}
export interface AadUserConversationMemberResult extends ActionResultPart {
    // The user object ID of the Microsoft Entra user that was being added as part of the bulk operation.
    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 ChannelModerationSettings {
    // Indicates whether bots are allowed to post messages.
    allowNewMessageFromBots?: NullableOption<boolean>;
    // Indicates whether connectors are allowed to post messages.
    allowNewMessageFromConnectors?: NullableOption<boolean>;
    /**
     * Indicates who is allowed to reply to the teams channel. Possible values are: everyone, authorAndModerators,
     * unknownFutureValue.
     */
    replyRestriction?: NullableOption<ReplyRestriction>;
    /**
     * Indicates who is allowed to post messages to teams channel. Possible values are: everyone, everyoneExceptGuests,
     * moderators, unknownFutureValue.
     */
    userNewMessageRestriction?: NullableOption<UserNewMessageRestriction>;
}
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>;
    // If present, represents a tag @mentioned in a team message.
    tag?: NullableOption<TeamworkTagIdentity>;
}
export interface TeamworkConversationIdentity extends Identity {
    // Type of conversation. Possible values are: team, channel, and chat.
    conversationIdentityType?: NullableOption<TeamworkConversationIdentityType>;
}
// tslint:disable-next-line: no-empty-interface
export interface TeamworkTagIdentity extends Identity {}
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 it was hidden by dlpAction.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, emailUser and azureCommunicationServicesUser.
     */
    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 denoting 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 TeamworkAccountConfiguration {
    // The account used to sync the calendar.
    onPremisesCalendarSyncConfiguration?: NullableOption<TeamworkOnPremisesCalendarSyncConfiguration>;
    /**
     * The supported client for Teams Rooms devices. The possible values are: unknown, skypeDefaultAndTeams,
     * teamsDefaultAndSkype, skypeOnly, teamsOnly, unknownFutureValue.
     */
    supportedClient?: NullableOption<TeamworkSupportedClient>;
}
export interface TeamworkOnPremisesCalendarSyncConfiguration {
    /**
     * The fully qualified domain name (FQDN) of the Skype for Business Server. Use the Exchange domain if the Skype for
     * Business SIP domain is different from the Exchange domain of the user.
     */
    domain?: NullableOption<string>;
    // The domain and username of the console device, for example, Seattle/RanierConf.
    domainUserName?: NullableOption<string>;
    /**
     * The Simple Mail Transfer Protocol (SMTP) address of the user account. This is only required if a different user
     * principal name (UPN) is used to sign in to Exchange other than Microsoft Teams and Skype for Business. This is a common
     * scenario in a hybrid environment where an on-premises Exchange server is used.
     */
    smtpAddress?: NullableOption<string>;
}
export interface TeamworkActivePeripherals {
    communicationSpeaker?: NullableOption<TeamworkPeripheral>;
    contentCamera?: NullableOption<TeamworkPeripheral>;
    microphone?: NullableOption<TeamworkPeripheral>;
    roomCamera?: NullableOption<TeamworkPeripheral>;
    speaker?: NullableOption<TeamworkPeripheral>;
}
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, and
     * outgoingWebhook.
     */
    applicationIdentityType?: NullableOption<TeamworkApplicationIdentityType>;
}
export interface TeamworkCameraConfiguration {
    // The configuration for the content camera.
    contentCameraConfiguration?: NullableOption<TeamworkContentCameraConfiguration>;
    cameras?: NullableOption<TeamworkPeripheral[]>;
    defaultContentCamera?: NullableOption<TeamworkPeripheral>;
}
export interface TeamworkContentCameraConfiguration {
    // True if the content camera is inverted.
    isContentCameraInverted?: NullableOption<boolean>;
    // True if the content camera is optional.
    isContentCameraOptional?: NullableOption<boolean>;
    // True if the content enhancement is enabled.
    isContentEnhancementEnabled?: NullableOption<boolean>;
}
export interface TeamworkConfiguredPeripheral {
    /**
     * True if the current peripheral is optional. If set to false, this property is also used as part of the calculation of
     * the health state for the device.
     */
    isOptional?: NullableOption<boolean>;
    peripheral?: NullableOption<TeamworkPeripheral>;
}
export interface TeamworkConnection {
    /**
     * Indicates whether a component/peripheral is connected/disconnected or its state is unknown. The possible values are:
     * unknown, connected, disconnected, unknownFutureValue.
     */
    connectionStatus?: NullableOption<TeamworkConnectionStatus>;
    /**
     * Time at which the state was last changed. For example, indicates connected since when the state is connected and
     * disconnected since when the state is disconnected.
     */
    lastModifiedDateTime?: NullableOption<string>;
}
export interface TeamworkDateTimeConfiguration {
    // The date format for the device.
    dateFormat?: NullableOption<string>;
    // The time of the day when the device is turned off.
    officeHoursEndTime?: NullableOption<string>;
    // The time of the day when the device is turned on.
    officeHoursStartTime?: NullableOption<string>;
    // The time format for the device.
    timeFormat?: NullableOption<string>;
    // The time zone to which the office hours apply.
    timeZone?: NullableOption<string>;
}
export interface TeamworkDeviceSoftwareVersions {
    // The software version for the admin agent running on the device.
    adminAgentSoftwareVersion?: NullableOption<string>;
    // The software version for the firmware running on the device.
    firmwareSoftwareVersion?: NullableOption<string>;
    // The software version for the operating system on the device.
    operatingSystemSoftwareVersion?: NullableOption<string>;
    // The software version for the partner agent running on the device.
    partnerAgentSoftwareVersion?: NullableOption<string>;
    // The software version for the Teams client running on the device.
    teamsClientSoftwareVersion?: NullableOption<string>;
}
export interface TeamworkDisplayConfiguration {
    // The list of configured displays. Applicable only for Microsoft Teams Rooms devices.
    configuredDisplays?: NullableOption<TeamworkConfiguredPeripheral[]>;
    // Total number of connected displays, including the inbuilt display. Applicable only for Teams Rooms devices.
    displayCount?: NullableOption<number>;
    // Configuration for the inbuilt display. Not applicable for Teams Rooms devices.
    inBuiltDisplayScreenConfiguration?: NullableOption<TeamworkDisplayScreenConfiguration>;
    // True if content duplication is allowed. Applicable only for Teams Rooms devices.
    isContentDuplicationAllowed?: NullableOption<boolean>;
    /**
     * True if dual display mode is enabled. If isDualDisplayModeEnabled is true, then the content will be displayed on both
     * front of room screens instead of just the one screen, when it is shared via the HDMI ingest module on the Microsoft
     * Teams Rooms device. Applicable only for Teams Rooms devices.
     */
    isDualDisplayModeEnabled?: NullableOption<boolean>;
}
export interface TeamworkDisplayScreenConfiguration {
    // The brightness level on the device (0-100). Not applicable for Microsoft Teams Rooms devices.
    backlightBrightness?: NullableOption<number>;
    // Timeout for backlight (30-3600 secs). Not applicable for Teams Rooms devices.
    backlightTimeout?: NullableOption<string>;
    // True if high contrast mode is enabled. Not applicable for Teams Rooms devices.
    isHighContrastEnabled?: NullableOption<boolean>;
    // True if screensaver is enabled. Not applicable for Teams Rooms devices.
    isScreensaverEnabled?: NullableOption<boolean>;
    // Screensaver timeout from 30 to 3600 secs. Not applicable for Teams Rooms devices.
    screensaverTimeout?: NullableOption<string>;
}
export interface TeamworkFeaturesConfiguration {
    // Email address to send logs and feedback.
    emailToSendLogsAndFeedback?: NullableOption<string>;
    // True if auto screen shared is enabled.
    isAutoScreenShareEnabled?: NullableOption<boolean>;
    // True if Bluetooth beaconing is enabled.
    isBluetoothBeaconingEnabled?: NullableOption<boolean>;
    // True if hiding meeting names is enabled.
    isHideMeetingNamesEnabled?: NullableOption<boolean>;
    // True if sending logs and feedback is enabled.
    isSendLogsAndFeedbackEnabled?: NullableOption<boolean>;
}
export interface TeamworkHardwareConfiguration {
    // The CPU model on the device.
    processorModel?: NullableOption<string>;
    compute?: NullableOption<TeamworkPeripheral>;
    hdmiIngest?: NullableOption<TeamworkPeripheral>;
}
export interface TeamworkHardwareDetail {
    // MAC address.
    macAddresses?: NullableOption<string[]>;
    // Device manufacturer.
    manufacturer?: NullableOption<string>;
    // Devie model.
    model?: NullableOption<string>;
    // Device serial number.
    serialNumber?: NullableOption<string>;
    // The unique identifier for the device.
    uniqueId?: NullableOption<string>;
}
export interface TeamworkHardwareHealth {
    // The system health details for a teamworkDevice.
    computeHealth?: NullableOption<TeamworkPeripheralHealth>;
    // The health details about the HDMI ingest of a device.
    hdmiIngestHealth?: NullableOption<TeamworkPeripheralHealth>;
}
export interface TeamworkPeripheralHealth {
    // The connected state and time since the peripheral device was connected.
    connection?: NullableOption<TeamworkConnection>;
    // True if the peripheral is optional. Used for health computation.
    isOptional?: NullableOption<boolean>;
    peripheral?: NullableOption<TeamworkPeripheral>;
}
export interface TeamworkLoginStatus {
    // Information about the Exchange connection.
    exchangeConnection?: NullableOption<TeamworkConnection>;
    // Information about the Skype for Business connection.
    skypeConnection?: NullableOption<TeamworkConnection>;
    // Information about the Teams connection.
    teamsConnection?: NullableOption<TeamworkConnection>;
}
export interface TeamworkMicrophoneConfiguration {
    /**
     * True if the configured microphone is optional. False if the microphone is not optional and the health state of the
     * device should be computed.
     */
    isMicrophoneOptional?: NullableOption<boolean>;
    defaultMicrophone?: NullableOption<TeamworkPeripheral>;
    microphones?: NullableOption<TeamworkPeripheral[]>;
}
export interface TeamworkNetworkConfiguration {
    // The default gateway is the path used to pass information when the destination is unknown to the device.
    defaultGateway?: NullableOption<string>;
    // The network domain of the device, for example, contoso.com.
    domainName?: NullableOption<string>;
    // The device name on a network.
    hostName?: NullableOption<string>;
    // The IP address is a numerical label that uniquely identifies every device connected to the internet.
    ipAddress?: NullableOption<string>;
    // True if DHCP is enabled.
    isDhcpEnabled?: NullableOption<boolean>;
    // True if the PC port is enabled.
    isPCPortEnabled?: NullableOption<boolean>;
    // A primary DNS is the first point of contact for a device that translates the hostname into an IP address.
    primaryDns?: NullableOption<string>;
    // A secondary DNS is used when the primary DNS is not available.
    secondaryDns?: NullableOption<string>;
    // A subnet mask is a number that distinguishes the network address and the host address within an IP address.
    subnetMask?: NullableOption<string>;
}
export interface TeamworkOnlineMeetingInfo {
    // The identifier of the calendar event associated with the meeting.
    calendarEventId?: NullableOption<string>;
    // The URL which can be clicked on to join or uniquely identify the meeting.
    joinWebUrl?: NullableOption<string>;
    // The organizer of the meeting.
    organizer?: NullableOption<TeamworkUserIdentity>;
}
export interface TeamworkPeripheralsHealth {
    // The health details about the communication speaker.
    communicationSpeakerHealth?: NullableOption<TeamworkPeripheralHealth>;
    // The health details about the content camera.
    contentCameraHealth?: NullableOption<TeamworkPeripheralHealth>;
    // The health details about displays.
    displayHealthCollection?: NullableOption<TeamworkPeripheralHealth[]>;
    // The health details about the microphone.
    microphoneHealth?: NullableOption<TeamworkPeripheralHealth>;
    // The health details about the room camera.
    roomCameraHealth?: NullableOption<TeamworkPeripheralHealth>;
    // The health details about the speaker.
    speakerHealth?: NullableOption<TeamworkPeripheralHealth>;
}
export interface TeamworkSoftwareUpdateHealth {
    // The software update available for the admin agent.
    adminAgentSoftwareUpdateStatus?: NullableOption<TeamworkSoftwareUpdateStatus>;
    // The software update available for the company portal.
    companyPortalSoftwareUpdateStatus?: NullableOption<TeamworkSoftwareUpdateStatus>;
    // The software update available for the firmware.
    firmwareSoftwareUpdateStatus?: NullableOption<TeamworkSoftwareUpdateStatus>;
    // The software update available for the operating system.
    operatingSystemSoftwareUpdateStatus?: NullableOption<TeamworkSoftwareUpdateStatus>;
    // The software update available for the partner agent.
    partnerAgentSoftwareUpdateStatus?: NullableOption<TeamworkSoftwareUpdateStatus>;
    // The software update available for the Teams client.
    teamsClientSoftwareUpdateStatus?: NullableOption<TeamworkSoftwareUpdateStatus>;
}
export interface TeamworkSoftwareUpdateStatus {
    // The available software version to update.
    availableVersion?: NullableOption<string>;
    // The current software version.
    currentVersion?: NullableOption<string>;
    // The update status of the software. The possible values are: unknown, latest, updateAvailable, unknownFutureValue.
    softwareFreshness?: NullableOption<TeamworkSoftwareFreshness>;
}
export interface TeamworkSpeakerConfiguration {
    /**
     * True if the communication speaker is optional. Used to compute the health state if the communication speaker is not
     * optional.
     */
    isCommunicationSpeakerOptional?: NullableOption<boolean>;
    // True if the configured speaker is optional. Used to compute the health state if the speaker is not optional.
    isSpeakerOptional?: NullableOption<boolean>;
    defaultCommunicationSpeaker?: NullableOption<TeamworkPeripheral>;
    defaultSpeaker?: NullableOption<TeamworkPeripheral>;
    speakers?: NullableOption<TeamworkPeripheral[]>;
}
export interface TeamworkSystemConfiguration {
    // The date and time configurations for a device.
    dateTimeConfiguration?: NullableOption<TeamworkDateTimeConfiguration>;
    // The default password for the device. Write-Only.
    defaultPassword?: NullableOption<string>;
    // The device lock timeout in seconds.
    deviceLockTimeout?: NullableOption<string>;
    // True if the device lock is enabled.
    isDeviceLockEnabled?: NullableOption<boolean>;
    // True if logging is enabled.
    isLoggingEnabled?: NullableOption<boolean>;
    // True if power saving is enabled.
    isPowerSavingEnabled?: NullableOption<boolean>;
    // True if screen capture is enabled.
    isScreenCaptureEnabled?: NullableOption<boolean>;
    // True if silent mode is enabled.
    isSilentModeEnabled?: NullableOption<boolean>;
    // The language option for the device.
    language?: NullableOption<string>;
    // The pin that unlocks the device. Write-Only.
    lockPin?: NullableOption<string>;
    // The logging level for the device.
    loggingLevel?: NullableOption<string>;
    // The network configuration for the device.
    networkConfiguration?: NullableOption<TeamworkNetworkConfiguration>;
}
export interface TeamworkTeamsClientConfiguration {
    // The configuration of the Microsoft Teams client user account for a device.
    accountConfiguration?: NullableOption<TeamworkAccountConfiguration>;
    // The configuration of Microsoft Teams client features for a device.
    featuresConfiguration?: NullableOption<TeamworkFeaturesConfiguration>;
}
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 TimeCardBreak {
    // ID of the timeCardBreak.
    breakId?: NullableOption<string>;
    // The start event of the timeCardBreak.
    end?: NullableOption<TimeCardEvent>;
    // Notes about the timeCardBreak.
    notes?: NullableOption<ItemBody>;
    // The start event of the timeCardBreak.
    start?: TimeCardEvent;
}
export interface TimeCardEvent {
    // Indicates whether the entry was recorded at the approved location.
    atApprovedLocation?: NullableOption<boolean>;
    // The time the entry is recorded.
    dateTime?: string;
    // Notes about the timeCardEvent.
    notes?: NullableOption<ItemBody>;
}
export interface TimeCardEntry {
    // The list of breaks associated with the timeCard.
    breaks?: NullableOption<TimeCardBreak[]>;
    // The clock-in event of the timeCard.
    clockInEvent?: NullableOption<TimeCardEvent>;
    // The clock-out event of the timeCard.
    clockOutEvent?: NullableOption<TimeCardEvent>;
}
export interface TimeClockSettings {
    // The approved location of the timeClock.
    approvedLocation?: NullableOption<GeoCoordinates>;
}
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 ThreatAssessmentRequestsCount {
    count?: NullableOption<number>;
    createdDateTime?: NullableOption<string>;
    pivotValue?: 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 interface AgentReference {
    path?: NullableOption<string>;
}

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 PstnUserBlockMode = "blocked" | "unblocked" | "unknownFutureValue";
    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 microsoftgraphbeta.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[];
        organizer?: NullableOption<microsoftgraphbeta.IdentitySet>;
        participants?: NullableOption<microsoftgraphbeta.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 include additional
         * data compared to the lower version.
         */
        version?: number;
        // Identity of the organizer of the call. This relationship is expanded by default in callRecord methods.
        organizer_v2?: NullableOption<Organizer>;
        // List of distinct participants in the call.
        participants_v2?: NullableOption<Participant[]>;
        /**
         * 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 ParticipantBase extends microsoftgraphbeta.Entity {
        // The identity of the call participant.
        identity?: NullableOption<UserIdentity>;
    }
// tslint:disable-next-line: no-empty-interface
    interface Organizer extends ParticipantBase {}
// tslint:disable-next-line: no-empty-interface
    interface Participant extends ParticipantBase {}
    interface Session extends microsoftgraphbeta.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 microsoftgraphbeta.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 may include more data).
        calleeNumber?: NullableOption<string>;
        // In addition to the SIP codes, Microsoft has own subcodes that indicate the specific issue.
        callEndSubReason?: NullableOption<number>;
        // Number of the user or bot who made the call (E.164 format, but may include more data).
        callerNumber?: NullableOption<string>;
        // Call type and direction.
        callType?: NullableOption<string>;
        // Identifier (GUID) for the call that you can use when calling Microsoft Support.
        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 (RFC 3261).
        finalSipCode?: NullableOption<number>;
        // Description of the SIP code and Microsoft subcode.
        finalSipCodePhrase?: NullableOption<string>;
        // Unique call identifier (GUID).
        id?: NullableOption<string>;
        // The date and time when the initial invite was sent.
        inviteDateTime?: NullableOption<string>;
        // Indicates if the trunk was enabled for media bypass or not.
        mediaBypassEnabled?: NullableOption<boolean>;
        // The data center used for media path in non-bypass call.
        mediaPathLocation?: NullableOption<string>;
        // Country code of the caller for an incoming call, or callee for an outgoing call. For details, see ISO 3166-1 alpha-2.
        otherPartyCountryCode?: NullableOption<string>;
        // The data center used for signaling for both bypass and non-bypass calls.
        signalingLocation?: NullableOption<string>;
        // Call start time.For failed and unanswered calls, this can be equal to 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>;
        // Country code of the user. For details, see ISO 3166-1 alpha-2.
        userCountryCode?: NullableOption<string>;
        // Display name of the user.
        userDisplayName?: NullableOption<string>;
        /**
         * The unique identifier (GUID) of the user in Microsoft Entra ID. This and other user info is null/empty for bot call
         * types.
         */
        userId?: NullableOption<string>;
        /**
         * The user principal name (sign-in name) in Microsoft Entra ID, is usually the same as the user's SIP address, and can be
         * same as the user's e-mail 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 of the received freeze duration related to 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>;
        // Root mean square of the received freeze duration related to the video stream.
        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 round-trip time.
        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 {
        // Identity associated with the endpoint.
        associatedIdentity?: NullableOption<UserIdentity>;
        // 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?: NullableOption<microsoftgraphbeta.IdentitySet>;
        // Name of the device used by the media endpoint.
        name?: NullableOption<string>;
    }
    interface UserIdentity extends microsoftgraphbeta.Identity {
        userPrincipalName?: 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 PstnBlockedUsersLogRow {
        /**
         * The date and time when the user was blocked/unblocked from making PSTN calls. 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.
         */
        blockDateTime?: NullableOption<string>;
        // The reason why the user is blocked/unblocked from making calls.
        blockReason?: NullableOption<string>;
        // Unique identifier (GUID) for the blocking/unblocking action.
        remediationId?: NullableOption<string>;
        /**
         * Indicates whether the user is blocked or unblocked from making PSTN calls in Microsoft Teams. The possible values are:
         * blocked, unblocked, unknownFutureValue.
         */
        userBlockMode?: NullableOption<PstnUserBlockMode>;
        // Display name of the user.
        userDisplayName?: NullableOption<string>;
        // The unique identifier (GUID) of the user in Microsoft Entra ID.
        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 same as the user's e-mail address.
         */
        userPrincipalName?: NullableOption<string>;
        // User's blocked number. For details, see E.164.
        userTelephoneNumber?: NullableOption<string>;
    }
    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 may provide their own call duration data. In this case, the property value is operator.
         * Otherwise, the value is microsoft.
         */
        callDurationSource?: NullableOption<PstnCallDurationSource>;
        // Number of the user or bot who received the call (E.164).
        calleeNumber?: NullableOption<string>;
        // Number of the user or bot who made the call (E.164).
        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>;
        // Local IPv4 of the client that is retrieved from the operating system of the client.
        clientLocalIpV4Address?: NullableOption<string>;
        // Local IPv6 of the client that is retrieved from the operating system of the client.
        clientLocalIpV6Address?: NullableOption<string>;
        // Public IPv4 of the client that can be used to determine the location of the client.
        clientPublicIpV4Address?: NullableOption<string>;
        // Public IPv6 of the client that can be used to determine the location of the client.
        clientPublicIpV6Address?: NullableOption<string>;
        // 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 (ISO 4217).
        currency?: NullableOption<string>;
        /**
         * Indicates 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 that provided PSTN services for this call. This may be Microsoft, or it may be a
         * third-party operator via the Operator Connect Program.
         */
        operator?: NullableOption<string>;
        // Country code of the caller for an incoming call, or callee for an outgoing call. For details, see ISO 3166-1 alpha-2.
        otherPartyCountryCode?: 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>;
        /**
         * The unique identifier (GUID) of the user in Microsoft Entra ID. 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 same as the user's e-mail address.
         */
        userPrincipalName?: NullableOption<string>;
    }
    interface PstnOnlineMeetingDialoutReport {
        // Currency used to calculate the cost of the call. For details, see ISO 4217.
        currency?: NullableOption<string>;
        /**
         * Indicates 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>;
        // Total costs of all the calls within the selected time range, including call charges and connection fees.
        totalCallCharge?: NullableOption<number>;
        // Total number of dial-out calls within the selected time range.
        totalCalls?: NullableOption<number>;
        // Total duration of all the calls within the selected time range, in seconds.
        totalCallSeconds?: NullableOption<number>;
        // Country code of the user. For details, see ISO 3166-1 alpha-2.
        usageLocation?: NullableOption<string>;
        // Display name of the user.
        userDisplayName?: NullableOption<string>;
        // The unique identifier (GUID) of the user in Microsoft Entra ID.
        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 same as the user's e-mail 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;
    }
    interface SmsLogRow {
        // Amount of money or cost of the SMS that is charged.
        callCharge?: NullableOption<number>;
        // Currency used to calculate the cost of the call. For details, see ISO 4217.
        currency?: NullableOption<string>;
        /**
         * Indicates whether the SMS 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 of a phone number that received the SMS.
        destinationName?: NullableOption<string>;
        // Partially obfuscated phone number that received the SMS. For details, see E.164.
        destinationNumber?: NullableOption<string>;
        // Unique identifier (GUID) for the SMS.
        id?: NullableOption<string>;
        // The license used for the SMS.
        licenseCapability?: NullableOption<string>;
        /**
         * For an outbound SMS, the country code of the receiver; otherwise (inbound SMS) the country code of the sender. For
         * details, see ISO 3166-1 alpha-2.
         */
        otherPartyCountryCode?: NullableOption<string>;
        // The date and time when the SMS was sent.
        sentDateTime?: NullableOption<string>;
        // SMS identifier. Not guaranteed to be unique.
        smsId?: NullableOption<string>;
        // Type of SMS such as outbound or inbound.
        smsType?: NullableOption<string>;
        // Number of SMS units sent/received.
        smsUnits?: NullableOption<number>;
        // Partially obfuscated phone number that sent the SMS. For details, see E.164.
        sourceNumber?: 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.
        userCountryCode?: NullableOption<string>;
        // Display name of the user.
        userDisplayName?: NullableOption<string>;
        // The unique identifier (GUID) of the user in Microsoft Entra ID.
        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 same as the user's e-mail address.
         */
        userPrincipalName?: NullableOption<string>;
    }
}
export namespace DeviceManagementNamespace {
    type AggregationType =
        | "count"
        | "percentage"
        | "affectedCloudPcCount"
        | "affectedCloudPcPercentage"
        | "unknownFutureValue";
    type AlertRuleTemplate =
        | "cloudPcProvisionScenario"
        | "cloudPcImageUploadScenario"
        | "cloudPcOnPremiseNetworkConnectionCheckScenario"
        | "unknownFutureValue"
        | "cloudPcInGracePeriodScenario"
        | "cloudPcFrontlineInsufficientLicensesScenario";
    type AlertStatusType = "active" | "resolved" | "unknownFutureValue";
    type NotificationChannelType = "portal" | "email" | "phoneCall" | "sms" | "unknownFutureValue";
    type OperatorType = "greaterOrEqual" | "equal" | "greater" | "less" | "lessOrEqual" | "notEqual" | "unknownFutureValue";
    type RuleSeverityType = "unknown" | "informational" | "warning" | "critical" | "unknownFutureValue";
    interface Monitoring extends microsoftgraphbeta.Entity {
        // The collection of records of alert events.
        alertRecords?: NullableOption<AlertRecord[]>;
        // The collection of alert rules.
        alertRules?: NullableOption<AlertRule[]>;
    }
    interface AlertRecord extends microsoftgraphbeta.Entity {
        /**
         * The impact of the alert event. Consists of a list of key-value pair and a number followed by the aggregation type. For
         * example, 6 affectedCloudPcCount means that 6 Cloud PCs are affected. 12 affectedCloudPcPercentage means 12% of Cloud
         * PCs are affected. The list of key-value pair indicates the details of the alert impact.
         */
        alertImpact?: NullableOption<AlertImpact>;
        // The corresponding ID of the alert rule.
        alertRuleId?: NullableOption<string>;
        /**
         * The rule template of the alert event. The possible values are: cloudPcProvisionScenario, cloudPcImageUploadScenario,
         * cloudPcOnPremiseNetworkConnectionCheckScenario, unknownFutureValue, cloudPcInGracePeriodScenario. Note that you must
         * use the Prefer: include-unknown-enum-members request header to get the following values from this evolvable enum:
         * cloudPcInGracePeriodScenario.
         */
        alertRuleTemplate?: NullableOption<AlertRuleTemplate>;
        /**
         * The date and time when the alert event was detected. The Timestamp type represents date and time information using ISO
         * 8601 format. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        detectedDateTime?: NullableOption<string>;
        // The display name of the alert record.
        displayName?: NullableOption<string>;
        /**
         * The date and time when the alert record was last updated. The Timestamp type represents date and time information using
         * ISO 8601 format. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        lastUpdatedDateTime?: NullableOption<string>;
        /**
         * The date and time when the alert event was resolved. The Timestamp type represents date and time information using ISO
         * 8601 format. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
         */
        resolvedDateTime?: NullableOption<string>;
        /**
         * The severity of the alert event. The possible values are: unknown, informational, warning, critical,
         * unknownFutureValue.
         */
        severity?: NullableOption<RuleSeverityType>;
        // The status of the alert record. The possible values are: active, resolved, unknownFutureValue.
        status?: NullableOption<AlertStatusType>;
    }
    interface AlertRule extends microsoftgraphbeta.Entity {
        /**
         * The rule template of the alert event. The possible values are: cloudPcProvisionScenario, cloudPcImageUploadScenario,
         * cloudPcOnPremiseNetworkConnectionCheckScenario, cloudPcInGracePeriodScenario,
         * cloudPcFrontlineInsufficientLicensesScenario, cloudPcInaccessibleScenario. Note that you must use the Prefer:
         * include-unknown-enum-members request header to get the following values from this evolvable enum:
         * cloudPcInGracePeriodScenario.
         */
        alertRuleTemplate?: NullableOption<AlertRuleTemplate>;
        // The rule description.
        description?: NullableOption<string>;
        // The display name of the rule.
        displayName?: NullableOption<string>;
        /**
         * The status of the rule that indicates whether the rule is enabled or disabled. If true, the rule is enabled; otherwise,
         * the rule is disabled.
         */
        enabled?: NullableOption<boolean>;
        /**
         * Indicates whether the rule is a system rule. If true, the rule is a system rule; otherwise, the rule is a
         * custom-defined rule and can be edited. System rules are built in and only a few properties can be edited.
         */
        isSystemRule?: NullableOption<boolean>;
        // The notification channels of the rule selected by the user.
        notificationChannels?: NullableOption<NotificationChannel[]>;
        // The severity of the rule. The possible values are: unknown, informational, warning, critical, unknownFutureValue.
        severity?: NullableOption<RuleSeverityType>;
        /**
         * The conditions that determine when to send alerts. For example, you can configure a condition to send an alert when
         * provisioning fails for six or more Cloud PCs. This property is deprecated. Use conditions instead.
         */
        threshold?: NullableOption<RuleThreshold>;
    }
    interface AlertImpact {
        /**
         * The aggregation type of the impact. The possible values are: count, percentage, affectedCloudPcCount,
         * affectedCloudPcPercentage, unknownFutureValue.
         */
        aggregationType?: NullableOption<AggregationType>;
        /**
         * The detail information of the impact. For example, if the Frontline Cloud PCs near concurrency limit alert is
         * triggered, the details contain the impacted Frontline license SKU name, such as Windows 365 Frontline 2 vCPU/8GB/128GB,
         * and the corresponding impacted value.
         */
        alertImpactDetails?: NullableOption<microsoftgraphbeta.KeyValuePair[]>;
        /**
         * The number value of the impact. For the aggregation types of count and affectedCloudPcCount, the value indicates the
         * number of affected instances. For example, 6 affectedCloudPcCount means that six Cloud PCs are affected. For the
         * aggregation types of percentage and affectedCloudPcPercentage, the value indicates the percent of affected instances.
         * For example, 12 affectedCloudPcPercentage means that 12% of Cloud PCs are affected.
         */
        value?: NullableOption<number>;
    }
    interface NotificationChannel {
        // The type of the notification channel. The possible values are: portal, email, phoneCall, sms, unknownFutureValue.
        notificationChannelType?: NullableOption<NotificationChannelType>;
        /**
         * Information about the notification receivers, such as locale and contact information. For example, en-us for locale and
         * serena.davis@contoso.com for contact information.
         */
        notificationReceivers?: NullableOption<NotificationReceiver[]>;
    }
    interface NotificationReceiver {
        /**
         * The contact information about the notification receivers, such as an email address. Currently, only email and portal
         * notifications are supported. For portal notifications, contactInformation can be left blank. For email notifications,
         * contactInformation consists of an email address such as serena.davis@contoso.com.
         */
        contactInformation?: NullableOption<string>;
        /**
         * Defines the language and format in which the notification will be sent. Supported locale values are: en-us, cs-cz,
         * de-de, es-es, fr-fr, hu-hu, it-it, ja-jp, ko-kr, nl-nl, pl-pl, pt-br, pt-pt, ru-ru, sv-se, tr-tr, zh-cn, zh-tw.
         */
        locale?: NullableOption<string>;
    }
    interface PortalNotification {
        // The associated alert impact.
        alertImpact?: NullableOption<AlertImpact>;
        // The associated alert record ID.
        alertRecordId?: NullableOption<string>;
        // The associated alert rule ID.
        alertRuleId?: NullableOption<string>;
        // The associated alert rule name.
        alertRuleName?: NullableOption<string>;
        /**
         * The associated alert rule template. The possible values are: cloudPcProvisionScenario, cloudPcImageUploadScenario,
         * cloudPcOnPremiseNetworkConnectionCheckScenario, unknownFutureValue, cloudPcInGracePeriodScenario. Note that you must
         * use the Prefer: include-unknown-enum-members request header to get the following values from this evolvable enum:
         * cloudPcInGracePeriodScenario.
         */
        alertRuleTemplate?: NullableOption<AlertRuleTemplate>;
        // The unique identifier for the portal notification.
        id?: NullableOption<string>;
        // true if the portal notification has already been sent to the user; false otherwise.
        isPortalNotificationSent?: NullableOption<boolean>;
        /**
         * The associated alert rule severity. The possible values are: unknown, informational, warning, critical,
         * unknownFutureValue.
         */
        severity?: NullableOption<RuleSeverityType>;
    }
    interface RuleThreshold {
        /**
         * Indicates the built-in aggregation methods. The possible values are: count, percentage, affectedCloudPcCount,
         * affectedCloudPcPercentage, unknownFutureValue.
         */
        aggregation?: NullableOption<AggregationType>;
        /**
         * Indicates the built-in operator. The possible values are: greaterOrEqual, equal, greater, less, lessOrEqual, notEqual,
         * unknownFutureValue.
         */
        operator?: NullableOption<OperatorType>;
        // The target threshold value.
        target?: NullableOption<number>;
    }
}
export namespace Ediscovery {
    type AdditionalDataOptions = "allVersions" | "linkedFiles" | "unknownFutureValue";
    type CaseAction =
        | "contentExport"
        | "applyTags"
        | "convertToPdf"
        | "index"
        | "estimateStatistics"
        | "addToReviewSet"
        | "holdUpdate"
        | "unknownFutureValue"
        | "purgeData";
    type CaseOperationStatus = "notStarted" | "submissionFailed" | "running" | "succeeded" | "partiallySucceeded" | "failed";
    type CaseStatus = "unknown" | "active" | "pendingDelete" | "closing" | "closed" | "closedWithError";
    type ChildSelectability = "One" | "Many";
    type CustodianStatus = "active" | "released";
    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" | "fileInfo" | "tags" | "unknownFutureValue";
    type LegalHoldStatus = "Pending" | "Error" | "Success" | "UnknownFutureValue";
    type SourceType = "mailbox" | "site";
    interface Ediscoveryroot extends microsoftgraphbeta.Entity {
        cases?: NullableOption<Case[]>;
    }
    interface CaseOperation extends microsoftgraphbeta.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<microsoftgraphbeta.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<microsoftgraphbeta.ResultInfo>;
        /**
         * The status of the case operation. Possible values are: notStarted, submissionFailed, running, succeeded,
         * partiallySucceeded, failed.
         */
        status?: NullableOption<CaseOperationStatus>;
    }
    interface AddToReviewSetOperation extends CaseOperation {
        // The review set to which items matching the source collection query are added to.
        reviewSet?: NullableOption<ReviewSet>;
        // The sourceCollection that items are being added from.
        sourceCollection?: NullableOption<SourceCollection>;
    }
    interface ReviewSet extends microsoftgraphbeta.Entity {
        // The user who created the review set. Read-only.
        createdBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        /**
         * The datetime when the review set 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 review set name. The name is unique with a maximum limit of 64 characters.
        displayName?: NullableOption<string>;
        queries?: NullableOption<ReviewSetQuery[]>;
    }
    interface SourceCollection extends microsoftgraphbeta.Entity {
        /**
         * The query string in KQL (Keyword Query Language) query. For details, see Keyword queries and search conditions for
         * Content Search and eDiscovery. You can refine searches by using fields paired with values; for example,
         * subject:'Quarterly Financials' AND Date&amp;gt;=06/01/2016 AND Date&amp;lt;=07/01/2016.
         */
        contentQuery?: NullableOption<string>;
        // The user who created the sourceCollection.
        createdBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        // The date and time the sourceCollection was created.
        createdDateTime?: NullableOption<string>;
        /**
         * When specified, the collection spans across a service for an entire workload. Possible values are: none,
         * allTenantMailboxes, allTenantSites, allCaseCustodians, allCaseNoncustodialDataSources.
         */
        dataSourceScopes?: NullableOption<DataSourceScopes>;
        // The description of the sourceCollection.
        description?: NullableOption<string>;
        // The display name of the sourceCollection.
        displayName?: NullableOption<string>;
        // The last user who modified the sourceCollection.
        lastModifiedBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        // The last date and time the sourceCollection was modified.
        lastModifiedDateTime?: NullableOption<string>;
        // Adds an additional source to the sourceCollection.
        additionalSources?: NullableOption<DataSource[]>;
        // Adds the results of the sourceCollection to the specified reviewSet.
        addToReviewSetOperation?: NullableOption<AddToReviewSetOperation>;
        // Custodian sources that are included in the sourceCollection.
        custodianSources?: NullableOption<DataSource[]>;
        // The last estimate operation associated with the sourceCollection.
        lastEstimateStatisticsOperation?: NullableOption<EstimateStatisticsOperation>;
        // noncustodialDataSource sources that are included in the sourceCollection
        noncustodialSources?: NullableOption<NoncustodialDataSource[]>;
    }
    interface Case extends microsoftgraphbeta.Entity {
        // The user who closed the case.
        closedBy?: NullableOption<microsoftgraphbeta.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 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>;
        // The case description.
        description?: NullableOption<string>;
        // The case name.
        displayName?: NullableOption<string>;
        // The external case number for customer reference.
        externalId?: NullableOption<string>;
        // The last user who modified the entity.
        lastModifiedBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        /**
         * The latest date and time when the case was 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 case status. Possible values are unknown, active, pendingDelete, closing, closed, and closedWithError. For details,
         * see the following table.
         */
        status?: NullableOption<CaseStatus>;
        // Returns a list of case custodian objects for this case. Nullable.
        custodians?: NullableOption<Custodian[]>;
        // Returns a list of case legalHold objects for this case. Nullable.
        legalHolds?: NullableOption<LegalHold[]>;
        // Returns a list of case noncustodialDataSource objects for this case. Nullable.
        noncustodialDataSources?: NullableOption<NoncustodialDataSource[]>;
        // Returns a list of case operation objects for this case. Nullable.
        operations?: NullableOption<CaseOperation[]>;
        // Returns a list of reviewSet objects in the case. Read-only. Nullable.
        reviewSets?: NullableOption<ReviewSet[]>;
        settings?: NullableOption<CaseSettings>;
        // Returns a list of sourceCollection objects associated with this case.
        sourceCollections?: NullableOption<SourceCollection[]>;
        // Returns a list of tag objects associated to this case.
        tags?: NullableOption<Tag[]>;
    }
    interface DataSourceContainer extends microsoftgraphbeta.Entity {
        // Created date and time of the dataSourceContainer entity.
        createdDateTime?: NullableOption<string>;
        // Display name of the dataSourceContainer entity.
        displayName?: NullableOption<string>;
        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>;
        lastIndexOperation?: NullableOption<CaseIndexOperation>;
    }
    interface Custodian extends DataSourceContainer {
        // Date and time the custodian acknowledged a hold notification.
        acknowledgedDateTime?: NullableOption<string>;
        // Identifies whether a custodian's sources were placed on hold during creation.
        applyHoldToSources?: NullableOption<boolean>;
        // Email address of the custodian.
        email?: string;
        // 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 LegalHold extends microsoftgraphbeta.Entity {
        /**
         * KQL query that specifies content to be held in the specified locations. To learn more, see Keyword queries and search
         * conditions for Content Search and eDiscovery. To hold all content in the specified locations, leave contentQuery blank.
         */
        contentQuery?: NullableOption<string>;
        // The user who created the legal hold.
        createdBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        // The date and time the legal hold was created.
        createdDateTime?: NullableOption<string>;
        // The legal hold description.
        description?: NullableOption<string>;
        // The display name of the legal hold.
        displayName?: NullableOption<string>;
        // Lists any errors that happened while placing the hold.
        errors?: NullableOption<string[]>;
        // Indicates whether the hold is enabled and actively holding content.
        isEnabled?: NullableOption<boolean>;
        // the user who last modified the legal hold.
        lastModifiedBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        // The date and time the legal hold was last modified.
        lastModifiedDateTime?: NullableOption<string>;
        // The status of the legal hold. Possible values are: Pending, Error, Success, UnknownFutureValue.
        status?: NullableOption<LegalHoldStatus>;
        // Data source entity for SharePoint sites associated with the legal hold.
        siteSources?: NullableOption<SiteSource[]>;
        unifiedGroupSources?: NullableOption<UnifiedGroupSource[]>;
        // Data source entity for a the legal hold. This is the container for a mailbox and OneDrive for Business site.
        userSources?: NullableOption<UserSource[]>;
    }
    interface NoncustodialDataSource extends DataSourceContainer {
        // Indicates if hold is applied to noncustodial data source (such as mailbox or site).
        applyHoldToSource?: NullableOption<boolean>;
        // User source or SharePoint site data source as noncustodial data source.
        dataSource?: NullableOption<DataSource>;
    }
    interface CaseSettings extends microsoftgraphbeta.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 article Modeling (Themes) settings for the case.
        topicModeling?: NullableOption<TopicModelingSettings>;
    }
    interface Tag extends microsoftgraphbeta.Entity {
        /**
         * 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>;
        // The user who created the tag.
        createdBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        // The description for the tag.
        description?: NullableOption<string>;
        // Display name of the tag.
        displayName?: NullableOption<string>;
        // The date and time the tag was last modified.
        lastModifiedDateTime?: NullableOption<string>;
        // Returns the tags that are a child of a tag.
        childTags?: NullableOption<Tag[]>;
        // Returns the parent tag of the specified tag.
        parent?: NullableOption<Tag>;
    }
    interface CaseExportOperation extends CaseOperation {
        /**
         * The name of the Azure storage location where the export will be stored. This only applies to exports stored in your own
         * Azure storage location.
         */
        azureBlobContainer?: NullableOption<string>;
        // The SAS token for the Azure storage location. This only applies to exports stored in your own Azure storage location.
        azureBlobToken?: NullableOption<string>;
        // The description provided for the export.
        description?: NullableOption<string>;
        /**
         * The options provided for the export. For more information, see reviewSet: export. Possible values are: originalFiles,
         * text, pdfReplacement, fileInfo, tags.
         */
        exportOptions?: NullableOption<ExportOptions>;
        /**
         * The options provided specify the structure of the export. For more information, see reviewSet: export. Possible values
         * are: none, directory, pst.
         */
        exportStructure?: NullableOption<ExportFileStructure>;
        outputFolderId?: NullableOption<string>;
        // The name provided for the export.
        outputName?: NullableOption<string>;
        // The review set the content is being exported from.
        reviewSet?: NullableOption<ReviewSet>;
    }
// tslint:disable-next-line: no-empty-interface
    interface CaseHoldOperation extends CaseOperation {}
// tslint:disable-next-line: no-empty-interface
    interface CaseIndexOperation extends CaseOperation {}
    interface DataSource extends microsoftgraphbeta.Entity {
        // The user who created the dataSource.
        createdBy?: NullableOption<microsoftgraphbeta.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>;
        holdStatus?: NullableOption<DataSourceHoldStatus>;
    }
    interface SiteSource extends DataSource {
        // The SharePoint site associated with the siteSource.
        site?: microsoftgraphbeta.Site;
    }
    interface UnifiedGroupSource extends DataSource {
        // Specifies which sources are included in this group. Possible values are: mailbox, site.
        includedSources?: NullableOption<SourceType>;
        // The group associated with the unifiedGroupSource.
        group?: microsoftgraphbeta.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 EstimateStatisticsOperation extends CaseOperation {
        // The estimated count of items for the sourceCollection that matched the content query.
        indexedItemCount?: NullableOption<number>;
        // The estimated size of items for the sourceCollection 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 collection, commonly known as a search.
        sourceCollection?: NullableOption<SourceCollection>;
    }
// tslint:disable-next-line: no-empty-interface
    interface PurgeDataOperation extends CaseOperation {}
    interface ReviewSetQuery extends microsoftgraphbeta.Entity {
        // The user who created the query.
        createdBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        /**
         * The time and date when the query 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>;
        // The name of the query.
        displayName?: NullableOption<string>;
        // The user who last modified the query.
        lastModifiedBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        /**
         * The date and time the query 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 query string in KQL (Keyword Query Language) query. For details, see Document metadata fields in Advanced
         * eDiscovery. This field maps directly to the keywords condition. You can refine searches by using fields listed in the
         * searchable field name paired with values; for example, subject:'Quarterly Financials' AND Date&amp;gt;=06/01/2016 AND
         * Date&amp;lt;=07/01/2016.
         */
        query?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface TagOperation extends CaseOperation {}
    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 may increase success of OCR, but may 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>;
    }
    interface TopicModelingSettings {
        // To learn more, see Adjust maximum number of themes dynamically.
        dynamicallyAdjustTopicCount?: NullableOption<boolean>;
        // To learn more, see Include numbers in themes.
        ignoreNumbers?: NullableOption<boolean>;
        // Indicates whether themes are enabled for the case.
        isEnabled?: NullableOption<boolean>;
        // To learn more, see Maximum number of themes.
        topicCount?: NullableOption<number>;
    }
}
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 ContentExperienceType = "search" | "compliance" | "unknownFutureValue";
    type ExternalActivityType = "viewed" | "modified" | "created" | "commented" | "unknownFutureValue";
    type ExternalItemContentType = "text" | "html" | "unknownFutureValue";
    type IdentitySourceType = "azureActiveDirectory" | "external" | "unknownFutureValue";
    type IdentityType = "user" | "group" | "externalGroup" | "unknownFutureValue";
    type ImportanceScore = "low" | "medium" | "high" | "veryHigh" | "unknownFutureValue";
    type Label =
        | "title"
        | "url"
        | "createdBy"
        | "lastModifiedBy"
        | "authors"
        | "createdDateTime"
        | "lastModifiedDateTime"
        | "fileName"
        | "fileExtension"
        | "unknownFutureValue"
        | "containerName"
        | "containerUrl"
        | "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 External {
        industryData?: NullableOption<IndustryData.IndustryDataRoot>;
        /**
         * Represents an onboarded AWS account, Azure subscription, or GCP project that Microsoft Entra Permissions Management
         * will collect and analyze permissions and actions on.
         */
        authorizationSystems?: NullableOption<microsoftgraphbeta.AuthorizationSystem[]>;
        connections?: NullableOption<ExternalConnection[]>;
    }
    interface ExternalConnection extends microsoftgraphbeta.Entity {
        // Collects configurable settings related to activities involving connector content.
        activitySettings?: NullableOption<ActivitySettings>;
        complianceSettings?: NullableOption<ComplianceSettings>;
        /**
         * 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 list of content experiences the connection will participate in. Possible values are search.
        enabledContentExperiences?: NullableOption<ContentExperienceType>;
        /**
         * The number of items ingested into a connection. This value is refreshed every 15 minutes. If the connection state is
         * draft, then ingestedItemsCount will be null.
         */
        ingestedItemsCount?: NullableOption<number>;
        /**
         * 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, and limitExceeded. Required.
        state?: NullableOption<ConnectionState>;
        groups?: NullableOption<ExternalGroup[]>;
        items?: NullableOption<ExternalItem[]>;
        operations?: NullableOption<ConnectionOperation[]>;
        quota?: NullableOption<ConnectionQuota>;
        schema?: NullableOption<Schema>;
    }
    interface ConnectionOperation extends microsoftgraphbeta.Entity {
        // If status is failed, provides more information about the error that caused the failure.
        error?: NullableOption<microsoftgraphbeta.PublicError>;
        // Indicates the status of the asynchronous operation. Possible values are: unspecified, inprogress, completed, failed.
        status?: NullableOption<ConnectionOperationStatus>;
    }
    interface ConnectionQuota extends microsoftgraphbeta.Entity {
        /**
         * The minimum of two values, one representing the items remaining in the connection and the other remaining items at
         * tenant-level. The following equation represents the formula used to calculate the minimum number: min ({max capacity in
         * the connection} – {number of items in the connection}, {tenant quota} – {number of items indexed in all connections}).
         * If the connection is not monetized, such as in a preview connector or preview content experience, then this property is
         * simply the number of remaining items in the connection.
         */
        itemsRemaining?: NullableOption<number>;
    }
    interface ExternalActivity extends microsoftgraphbeta.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 microsoftgraphbeta.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<microsoftgraphbeta.PublicError>;
    }
    interface ExternalGroup extends microsoftgraphbeta.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 other externalGroups
         * as members.
         */
        members?: NullableOption<Identity[]>;
    }
    interface ExternalItem extends microsoftgraphbeta.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 microsoftgraphbeta.Entity {
        // Must be set to microsoft.graph.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.
        accessType?: AccessType;
        // The source of identity. Possible values are azureActiveDirectory or external.
        identitySource?: NullableOption<IdentitySourceType>;
        /**
         * The type of identity. Possible values are: user, group, everyone, everyoneExceptGuests if the identitySource is
         * azureActiveDirectory and just group if the identitySource is external.
         */
        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 ComplianceSettings {
        eDiscoveryResultTemplates?: NullableOption<DisplayTemplate[]>;
    }
    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 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 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?: microsoftgraphbeta.BinaryOperator;
    }
    interface ExternalItemContent {
        /**
         * The type of content in the value property. Possible values are text and html. These are the content types that the
         * indexer supports, and not the file extension types allowed. Required.
         */
        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 friendly names for the property. Maximum 32 characters. Only alphanumeric characters allowed. For
         * example, each string might not contain control characters, whitespace, or any of the following: :, ;, ,, (, ), [, ], {,
         * }, %, $, +, !, *, =, &amp;, ?, @, #, /, ~, ', ', &amp;lt;, &amp;gt;, `, ^. Optional.
         */
        aliases?: NullableOption<string[]>;
        /**
         * Specifies if the property will be matched exactly for queries. Exact matching can only be set to true for
         * non-searchable properties of type string or stringCollection. Optional.
         */
        isExactMatchRequired?: NullableOption<boolean>;
        /**
         * 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.
         * Non-searchable 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, containerName, containerUrl, iconUrl. You must use
         * the Prefer: include-unknown-enum-members request header to get the following values in this evolvable enum:
         * containerName, containerUrl, iconUrl.
         */
        labels?: NullableOption<Label[]>;
        /**
         * The name of the property. Maximum 32 characters. Only alphanumeric characters allowed. For example, the property name
         * may not contain control characters, whitespace, or any of the following: :, ;, ,, (, ), [, ], {, }, %, $, +, !, *, =,
         * &amp;, ?, @, #, /, ~, ', ', &amp;lt;, &amp;gt;, `, ^. Required.
         */
        name?: string;
        /**
         * Specifies the property ranking hint. Developers can specify which properties are most important, allowing Microsoft
         * Search to determine the search relevance of the content.
         */
        rankingHint?: NullableOption<RankingHint>;
        /**
         * The data type of the property. Possible values are: string, int64, double, dateTime, boolean, stringCollection,
         * int64Collection, doubleCollection, dateTimeCollection, unknownFutureValue. Required.
         */
        type?: PropertyType;
    }
    interface RankingHint {
        /**
         * Specifies the schema property importance. Possible values are: low, medium, high, veryHigh, unknownFutureValue.
         * Required.
         */
        importanceScore?: ImportanceScore;
    }
    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>;
        /**
         * Determines 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<microsoftgraphbeta.User>;
        // The user who last modified the workflow.
        lastModifiedBy?: NullableOption<microsoftgraphbeta.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 microsoftgraphbeta.Entity {
        // The customTaskExtension instance.
        customTaskExtensions?: NullableOption<CustomTaskExtension[]>;
        // Deleted workflows in your lifecycle workflows instance.
        deletedItems?: NullableOption<microsoftgraphbeta.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 microsoftgraphbeta.Entity {
        /**
         * Arguments included within the task. For guidance to configure this property, see Configure the arguments for built-in
         * Lifecycle Workflow tasks. Required.
         */
        arguments?: microsoftgraphbeta.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 microsoftgraphbeta.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?: microsoftgraphbeta.User;
        // The related workflow task
        task?: Task;
    }
    interface CustomTaskExtension extends microsoftgraphbeta.CustomCalloutExtension {
        // The callback configuration for a custom task extension.
        callbackConfiguration?: NullableOption<microsoftgraphbeta.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<microsoftgraphbeta.User>;
        /**
         * The unique identifier of the Microsoft Entra user that modified the custom task extension last.Supports $filter(eq, ne)
         * and $expand.
         */
        lastModifiedBy?: NullableOption<microsoftgraphbeta.User>;
    }
    interface LifecycleManagementSettings extends microsoftgraphbeta.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?: microsoftgraphbeta.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 microsoftgraphbeta.Entity {
        /**
         * The category of the HR function that the tasks created using this definition can be used with. The possible values are:
         * joiner, 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 microsoftgraphbeta.Entity {
        // The category of the workflow template. The possible values are: joiner, leaver.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 microsoftgraphbeta.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 microsoftgraphbeta.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?: microsoftgraphbeta.User;
        // The associated individual task execution.
        taskProcessingResults?: NullableOption<TaskProcessingResult[]>;
    }
    interface TaskReport extends microsoftgraphbeta.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 microsoftgraphbeta.CustomExtensionCallbackConfiguration {
        authorizedApps?: NullableOption<microsoftgraphbeta.Application[]>;
    }
    interface CustomTaskExtensionCallbackData extends microsoftgraphbeta.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 microsoftgraphbeta.CustomExtensionData {
        subject?: NullableOption<microsoftgraphbeta.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 microsoftgraphbeta.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<microsoftgraphbeta.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 IndustryData {
    type InboundDomain = "educationRostering" | "unknownFutureValue";
    type IndustryDataActivityStatus =
        | "inProgress"
        | "skipped"
        | "failed"
        | "completed"
        | "completedWithErrors"
        | "completedWithWarnings"
        | "unknownFutureValue";
    type IndustryDataRunStatus =
        | "running"
        | "failed"
        | "completed"
        | "completedWithErrors"
        | "completedWithWarnings"
        | "unknownFutureValue";
    type ReadinessStatus = "notReady" | "ready" | "failed" | "disabled" | "expired" | "unknownFutureValue";
// tslint:disable-next-line: interface-name
    interface IndustryDataRoot extends microsoftgraphbeta.Entity {
        // Set of connectors for importing data from source systems.
        dataConnectors?: NullableOption<IndustryDataConnector[]>;
        // Set of data import flow activities to bring data into the canonical store via a connector.
        inboundFlows?: NullableOption<InboundFlow[]>;
        // Set of ephemeral operations that the system runs currently. Read-only.
        operations?: NullableOption<microsoftgraphbeta.LongRunningOperation[]>;
        // Set of user modifiable system picker types.
        referenceDefinitions?: NullableOption<ReferenceDefinition[]>;
        // Set of groups of individual roles that makes role-based admin simpler.
        roleGroups?: NullableOption<RoleGroup[]>;
        /**
         * Set of ephemeral runs which present the point-in-time that diagnostic state of activities performed by the system.
         * Read-only.
         */
        runs?: NullableOption<IndustryDataRun[]>;
        // Set of source definitions that represents real-world external systems.
        sourceSystems?: NullableOption<SourceSystemDefinition[]>;
        // Set of years represented in the system.
        years?: NullableOption<YearTimePeriodDefinition[]>;
    }
    interface ReferenceDefinition extends microsoftgraphbeta.Entity {
        // The code value for the definition that must be unique within the referenceType.
        code?: string;
        /**
         * The date and time when the definition 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;
        // Indicates whether the definition has been disabled.
        isDisabled?: boolean;
        /**
         * The date and time when the definition was most recently changed. 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?: string;
        // The categorical type for a collection of enumerated values.
        referenceType?: string;
        // The ordering index to present the definitions within a type consistently in user interfaces.
        sortIndex?: number;
        // The standards body or organization source which defined the code.
        source?: string;
    }
    interface RoleGroup extends microsoftgraphbeta.Entity {
        // The name of the role group.
        displayName?: string;
        // The set of roles included in the role group.
        roles?: RoleReferenceValue[];
    }
// tslint:disable-next-line: interface-name
    interface IndustryDataConnector extends microsoftgraphbeta.Entity {
        // The name of the data connector. Maximum supported length is 100 characters.
        displayName?: string;
        // The sourceSystemDefinition this connector is connected to.
        sourceSystem?: SourceSystemDefinition;
    }
// tslint:disable-next-line: no-empty-interface
    interface FileDataConnector extends IndustryDataConnector {}
// tslint:disable-next-line: no-empty-interface
    interface AzureDataLakeConnector extends FileDataConnector {}
    interface ValidateOperation extends microsoftgraphbeta.LongRunningOperation {
        // Set of errors discovered through validation.
        errors?: microsoftgraphbeta.PublicError[];
        // Set of warnings discovered through validation.
        warnings?: microsoftgraphbeta.PublicError[];
    }
    interface FileValidateOperation extends ValidateOperation {
        // Set of files validated by the validate operation.
        validatedFiles?: string[];
    }
// tslint:disable-next-line: interface-name
    interface IndustryDataActivity extends microsoftgraphbeta.Entity {
        // The name of the activity. Maximum supported length is 100 characters.
        displayName?: string;
        /**
         * The state of the activity from creation through to ready to do work. The possible values are: notReady, ready, failed,
         * disabled, expired, unknownFutureValue.
         */
        readinessStatus?: ReadinessStatus;
    }
// tslint:disable-next-line: interface-name
    interface InboundFlow extends IndustryDataActivity {
        // The broad category of data that this flow imports. The possible values are: educationRostering, unknownFutureValue.
        dataDomain?: InboundDomain;
        /**
         * The start of the time window when the flow is allowed to run. 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.
         */
        effectiveDateTime?: string;
        /**
         * The end of the time window when the flow is allowed to run. 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.
         */
        expirationDateTime?: NullableOption<string>;
        // The data connector in the context of which this flow pulls in data from a source system.
        dataConnector?: IndustryDataConnector;
        // The year that the data brought in via this flow applies to.
        year?: YearTimePeriodDefinition;
    }
// tslint:disable-next-line: interface-name no-empty-interface
    interface InboundFileFlow extends InboundFlow {}
    interface YearTimePeriodDefinition extends microsoftgraphbeta.Entity {
        // The name of the year. Maximum supported length is 100 characters.
        displayName?: string;
        // The last day of the year using ISO 8601 format for date.
        endDate?: string;
        // The first day of the year using ISO 8601 format for date.
        startDate?: string;
        // A pointer to a year entry in the referenceDefinition collection.
        year?: YearReferenceValue;
    }
// tslint:disable-next-line: interface-name
    interface IndustryDataRunActivity extends microsoftgraphbeta.Entity {
        // An error object to diagnose critical failures in an activity.
        blockingError?: NullableOption<microsoftgraphbeta.PublicError>;
        // The name of the running flow.
        displayName?: string;
        /**
         * The current status of the activity. The possible values are: inProgress, skipped, failed, completed,
         * completedWithErrors, completedWithWarnings, unknownFutureValue.
         */
        status?: IndustryDataActivityStatus;
        // The flow that was run by this activity.
        activity?: NullableOption<IndustryDataActivity>;
    }
// tslint:disable-next-line: interface-name no-empty-interface
    interface InboundFlowActivity extends IndustryDataRunActivity {}
    interface SourceSystemDefinition extends microsoftgraphbeta.Entity {
        // The name of the source system. Maximum supported length is 100 characters.
        displayName?: string;
        // A collection of user matching settings by roleGroup.
        userMatchingSettings?: NullableOption<UserMatchingSetting[]>;
        // The name of the vendor who supplies the source system. Maximum supported length is 100 characters.
        vendor?: NullableOption<string>;
    }
// tslint:disable-next-line: interface-name
    interface IndustryDataRun extends microsoftgraphbeta.Entity {
        // An error object to diagnose critical failures in the run.
        blockingError?: NullableOption<microsoftgraphbeta.PublicError>;
        // The name of the run for rendering in a user interface.
        displayName?: string;
        /**
         * The date and time when the run finished or null if the run is still in-progress. 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 date and time when the run 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.
         */
        startDateTime?: string;
        /**
         * The current status of the run. The possible values are: running, failed, completed, completedWithErrors,
         * completedWithWarnings, unknownFutureValue.
         */
        status?: IndustryDataRunStatus;
        // The set of activities performed during the run.
        activities?: NullableOption<IndustryDataRunActivity[]>;
    }
// tslint:disable-next-line: no-empty-interface
    interface OutboundFlowActivity extends IndustryDataRunActivity {}
    interface AggregatedInboundStatistics {
        // The aggregate count of errors encountered by activities during this run.
        errors?: NullableOption<number>;
        // The aggregate count of active inbound groups processed during the run.
        groups?: NullableOption<number>;
        // The aggregate count of active people matched to a Microsoft Entra user, by role.
        matchedPeopleByRole?: NullableOption<IndustryDataRunRoleCountMetric[]>;
        // The aggregate count of active inbound memberships processed during the run.
        memberships?: NullableOption<number>;
        // The aggregate count of active inbound organizations processed during the run.
        organizations?: NullableOption<number>;
        // The aggregate count of active inbound people processed during the run.
        people?: NullableOption<number>;
        // The aggregate count of active people not matched to a Microsoft Entra user, by role.
        unmatchedPeopleByRole?: NullableOption<IndustryDataRunRoleCountMetric[]>;
        // The aggregate count of warnings generated by activities during this run.
        warnings?: NullableOption<number>;
    }
// tslint:disable-next-line: interface-name
    interface IndustryDataRunRoleCountMetric {
        // The number of people in this role.
        count?: NullableOption<number>;
        // The role that is being measured.
        role?: string;
    }
    interface FileUploadSession {
        /**
         * The expiration date and time for the container. 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.
         */
        containerExpirationDateTime?: string;
        // The container ID where the files are uploaded.
        containerId?: string;
        /**
         * The expiration date and time for the file upload session. 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.
         */
        sessionExpirationDateTime?: string;
        // The Azure Storage SAS URI to upload source files to.
        sessionUrl?: string;
    }
    interface ReferenceValue {
        // The code of the desired referenceDefinition entry.
        code?: NullableOption<string>;
        value?: ReferenceDefinition;
    }
// tslint:disable-next-line: interface-name no-empty-interface
    interface IdentifierTypeReferenceValue extends ReferenceValue {}
// tslint:disable-next-line: interface-name
    interface IndustryDataActivityStatistics {
        // The identifier for the activity that is being reported on.
        activityId?: string;
        // The display name of the underlying flow.
        displayName?: string;
        /**
         * The latest status of the activity in the run. The possible values are: inProgress, skipped, failed, completed,
         * completedWithErrors, completedWithWarnings, unknownFutureValue.
         */
        status?: IndustryDataActivityStatus;
    }
// tslint:disable-next-line: interface-name
    interface InboundActivityResults extends IndustryDataActivityStatistics {
        // Number of errors encountered while processing the inbound flow.
        errors?: NullableOption<number>;
        // Counts of active and inactive groups processed by the inbound flow.
        groups?: NullableOption<IndustryDataRunEntityCountMetric>;
        // Number of people matched to a Microsoft Entra user, by role.
        matchedPeopleByRole?: NullableOption<IndustryDataRunRoleCountMetric[]>;
        // Counts of active and inactive memberships processed by the inbound flow.
        memberships?: NullableOption<IndustryDataRunEntityCountMetric>;
        // Counts of active and inactive organizations processed by the inbound flow.
        organizations?: NullableOption<IndustryDataRunEntityCountMetric>;
        // Counts of active and inactive people processed by the inbound flow.
        people?: NullableOption<IndustryDataRunEntityCountMetric>;
        // Number of people not matched to a Microsoft Entra user, by role.
        unmatchedPeopleByRole?: NullableOption<IndustryDataRunRoleCountMetric[]>;
        // Number of warnings encountered while processing the inbound flow.
        warnings?: NullableOption<number>;
    }
// tslint:disable-next-line: interface-name
    interface IndustryDataRunEntityCountMetric {
        // The count of entries for the entity marked as Active.
        active?: NullableOption<number>;
        // The count of entries for the entity marked as Inactive.
        inactive?: NullableOption<number>;
        // Total count of the entity.
        total?: NullableOption<number>;
    }
// tslint:disable-next-line: interface-name
    interface IndustryDataRunStatistics {
        // The collection of statistics for each activity included in this run.
        activityStatistics?: NullableOption<IndustryDataActivityStatistics[]>;
        // The aggregate statistics for all inbound flows.
        inboundTotals?: NullableOption<AggregatedInboundStatistics>;
        // The ID of the underlying run for the statistics.
        runId?: string;
        /**
         * The latest status of the run. The possible values are: running, failed, completed, completedWithErrors,
         * completedWithWarnings, unknownFutureValue.
         */
        status?: IndustryDataRunStatus;
    }
// tslint:disable-next-line: no-empty-interface
    interface RoleReferenceValue extends ReferenceValue {}
    interface UserMatchingSetting {
        // The RefUserMatchTarget for matching a user from the source with a Microsoft Entra user object.
        matchTarget?: NullableOption<UserMatchTargetReferenceValue>;
        // The priority order to apply when a user has multiple RefRole codes assigned.
        priorityOrder?: number;
        // The RefIdentifierType that uniquely identifies a user in the source data.
        sourceIdentifier?: IdentifierTypeReferenceValue;
        roleGroup?: RoleGroup;
    }
// tslint:disable-next-line: no-empty-interface
    interface UserMatchTargetReferenceValue extends ReferenceValue {}
// tslint:disable-next-line: no-empty-interface
    interface YearReferenceValue extends ReferenceValue {}
}
export namespace ManagedTenants {
    type AlertSeverity = "unknown" | "informational" | "low" | "medium" | "high" | "unknownFutureValue";
    type AlertStatus = "unknown" | "newAlert" | "inProgress" | "resolved" | "dismissed" | "unknownFutureValue";
    type DelegatedPrivilegeStatus =
        | "none"
        | "delegatedAdminPrivileges"
        | "unknownFutureValue"
        | "granularDelegatedAdminPrivileges"
        | "delegatedAndGranularDelegetedAdminPrivileges";
    type ManagementActionStatus =
        | "toAddress"
        | "completed"
        | "error"
        | "timeOut"
        | "inProgress"
        | "planned"
        | "resolvedBy3rdParty"
        | "resolvedThroughAlternateMitigation"
        | "riskAccepted"
        | "unknownFutureValue";
    type ManagementCategory = "custom" | "devices" | "identity" | "data" | "unknownFutureValue";
    type ManagementParameterValueType =
        | "string"
        | "integer"
        | "boolean"
        | "guid"
        | "stringCollection"
        | "integerCollection"
        | "booleanCollection"
        | "guidCollection"
        | "unknownFutureValue";
    type ManagementProvider = "microsoft" | "community" | "indirectProvider" | "self" | "unknownFutureValue";
    type ManagementTemplateDeploymentStatus =
        | "unknown"
        | "inProgress"
        | "completed"
        | "failed"
        | "ineligible"
        | "unknownFutureValue";
    type NotificationDestination = "none" | "api" | "email" | "sms" | "unknownFutureValue";
    type TenantOnboardingEligibilityReason =
        | "none"
        | "contractType"
        | "delegatedAdminPrivileges"
        | "usersCount"
        | "license"
        | "unknownFutureValue";
    type TenantOnboardingStatus = "ineligible" | "inProcess" | "active" | "inactive" | "unknownFutureValue";
    type WorkloadActionCategory = "automated" | "manual" | "unknownFutureValue";
    type WorkloadActionStatus = "toAddress" | "completed" | "error" | "timeOut" | "inProgress" | "unknownFutureValue";
    type WorkloadOnboardingStatus = "notOnboarded" | "onboarded" | "unknownFutureValue";
    interface ManagedTenant extends microsoftgraphbeta.Entity {
        // Aggregate view of device compliance policies across managed tenants.
        aggregatedPolicyCompliances?: NullableOption<AggregatedPolicyCompliance[]>;
        appPerformances?: NullableOption<AppPerformance[]>;
        // The collection of audit events across managed tenants.
        auditEvents?: NullableOption<AuditEvent[]>;
        // The collection of cloud PC connections across managed tenants.
        cloudPcConnections?: NullableOption<CloudPcConnection[]>;
        // The collection of cloud PC devices across managed tenants.
        cloudPcDevices?: NullableOption<CloudPcDevice[]>;
        // Overview of cloud PC information across managed tenants.
        cloudPcsOverview?: NullableOption<CloudPcOverview[]>;
        // Aggregate view of conditional access policy coverage across managed tenants.
        conditionalAccessPolicyCoverages?: NullableOption<ConditionalAccessPolicyCoverage[]>;
        /**
         * Summary information for user registration for multi-factor authentication and self service password reset across
         * managed tenants.
         */
        credentialUserRegistrationsSummaries?: NullableOption<CredentialUserRegistrationsSummary[]>;
        deviceAppPerformances?: NullableOption<DeviceAppPerformance[]>;
        // Summary information for device compliance policy setting states across managed tenants.
        deviceCompliancePolicySettingStateSummaries?: NullableOption<DeviceCompliancePolicySettingStateSummary[]>;
        deviceHealthStatuses?: NullableOption<DeviceHealthStatus[]>;
        // The collection of compliance for managed devices across managed tenants.
        managedDeviceCompliances?: NullableOption<ManagedDeviceCompliance[]>;
        // Trend insights for device compliance across managed tenants.
        managedDeviceComplianceTrends?: NullableOption<ManagedDeviceComplianceTrend[]>;
        managedTenantAlertLogs?: NullableOption<ManagedTenantAlertLog[]>;
        managedTenantAlertRuleDefinitions?: NullableOption<ManagedTenantAlertRuleDefinition[]>;
        managedTenantAlertRules?: NullableOption<ManagedTenantAlertRule[]>;
        managedTenantAlerts?: NullableOption<ManagedTenantAlert[]>;
        managedTenantApiNotifications?: NullableOption<ManagedTenantApiNotification[]>;
        managedTenantEmailNotifications?: NullableOption<ManagedTenantEmailNotification[]>;
        managedTenantTicketingEndpoints?: NullableOption<ManagedTenantTicketingEndpoint[]>;
        // The collection of baseline management actions across managed tenants.
        managementActions?: NullableOption<ManagementAction[]>;
        // The tenant level status of management actions across managed tenants.
        managementActionTenantDeploymentStatuses?: NullableOption<ManagementActionTenantDeploymentStatus[]>;
        // The collection of baseline management intents across managed tenants.
        managementIntents?: NullableOption<ManagementIntent[]>;
        managementTemplateCollections?: NullableOption<ManagementTemplateCollection[]>;
        managementTemplateCollectionTenantSummaries?: NullableOption<ManagementTemplateCollectionTenantSummary[]>;
        // The collection of baseline management templates across managed tenants.
        managementTemplates?: NullableOption<ManagementTemplate[]>;
        managementTemplateSteps?: NullableOption<ManagementTemplateStep[]>;
        managementTemplateStepTenantSummaries?: NullableOption<ManagementTemplateStepTenantSummary[]>;
        managementTemplateStepVersions?: NullableOption<ManagementTemplateStepVersion[]>;
        // The collection of role assignments to a signed-in user for a managed tenant.
        myRoles?: NullableOption<MyRole[]>;
        // The collection of a logical grouping of managed tenants used by the multi-tenant management platform.
        tenantGroups?: NullableOption<TenantGroup[]>;
        // The collection of tenants associated with the managing entity.
        tenants?: NullableOption<Tenant[]>;
        // The collection of tenant level customized information across managed tenants.
        tenantsCustomizedInformation?: NullableOption<TenantCustomizedInformation[]>;
        // The collection tenant level detailed information across managed tenants.
        tenantsDetailedInformation?: NullableOption<TenantDetailedInformation[]>;
        // The collection of tenant tags across managed tenants.
        tenantTags?: NullableOption<TenantTag[]>;
        // The state of malware for Windows devices, registered with Microsoft Endpoint Manager, across managed tenants.
        windowsDeviceMalwareStates?: NullableOption<WindowsDeviceMalwareState[]>;
        // The protection state for Windows devices, registered with Microsoft Endpoint Manager, across managed tenants.
        windowsProtectionStates?: NullableOption<WindowsProtectionState[]>;
    }
    interface AggregatedPolicyCompliance extends microsoftgraphbeta.Entity {
        // Identifier for the device compliance policy. Optional. Read-only.
        compliancePolicyId?: NullableOption<string>;
        // Name of the device compliance policy. Optional. Read-only.
        compliancePolicyName?: NullableOption<string>;
        /**
         * Platform for the device compliance policy. Possible values are: android, androidForWork, iOS, macOS, windowsPhone81,
         * windows81AndLater, windows10AndLater, androidWorkProfile, androidAOSP, all. Optional. Read-only.
         */
        compliancePolicyPlatform?: NullableOption<string>;
        // The type of compliance policy. Optional. Read-only.
        compliancePolicyType?: NullableOption<string>;
        // Date and time the entity was last updated in the multi-tenant management platform. Optional. Read-only.
        lastRefreshedDateTime?: NullableOption<string>;
        // The number of devices that are in a compliant status. Optional. Read-only.
        numberOfCompliantDevices?: NullableOption<number>;
        // The number of devices that are in an error status. Optional. Read-only.
        numberOfErrorDevices?: NullableOption<number>;
        // The number of device that are in a non-compliant status. Optional. Read-only.
        numberOfNonCompliantDevices?: NullableOption<number>;
        // The date and time the device policy was last modified. Optional. Read-only.
        policyModifiedDateTime?: NullableOption<string>;
        // The display name for the managed tenant. Optional. Read-only.
        tenantDisplayName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Optional. Read-only.
        tenantId?: NullableOption<string>;
    }
    interface AppPerformance extends microsoftgraphbeta.Entity {
        appFriendlyName?: NullableOption<string>;
        appName?: NullableOption<string>;
        appPublisher?: NullableOption<string>;
        lastUpdatedDateTime?: NullableOption<string>;
        meanTimeToFailureInMinutes?: NullableOption<number>;
        tenantDisplayName?: NullableOption<string>;
        tenantId?: NullableOption<string>;
        totalActiveDeviceCount?: NullableOption<number>;
        totalAppCrashCount?: NullableOption<number>;
        totalAppFreezeCount?: NullableOption<number>;
    }
    interface AuditEvent extends microsoftgraphbeta.Entity {
        // A string that uniquely represents the operation that occurred. Required. Read-only.
        activity?: NullableOption<string>;
        // The time when the activity occurred. Required. Read-only.
        activityDateTime?: NullableOption<string>;
        // The identifier of the activity request that made the audit event. Required. Read-only.
        activityId?: NullableOption<string>;
        // A category that represents a logical grouping of activities. Required. Read-only.
        category?: NullableOption<string>;
        // The HTTP verb that was used when making the API request. Required. Read-only.
        httpVerb?: NullableOption<string>;
        // The identifier of the app that was used to make the request. Required. Read-only.
        initiatedByAppId?: NullableOption<string>;
        // The UPN of the user who initiated the activity. Required. Read-only.
        initiatedByUpn?: NullableOption<string>;
        // The identifier of the user who initiated the activity. Required. Read-only.
        initiatedByUserId?: NullableOption<string>;
        // The IP address of where the activity was initiated. This may be an IPv4 or IPv6 address. Required. Read-only.
        ipAddress?: NullableOption<string>;
        // The raw HTTP request body. Some sensitive information may be removed.
        requestBody?: NullableOption<string>;
        // The raw HTTP request URL. Required. Read-only.
        requestUrl?: NullableOption<string>;
        /**
         * The collection of Microsoft Entra tenant identifiers for the managed tenants that were affected by a change, and is
         * formatted as a list of comma-separated values. Required. Read-only.
         */
        tenantIds?: NullableOption<string>;
        /**
         * The collection of tenant names that were affected by a change, and is formatted as a list of comma-separated values.
         * Required. Read-only.
         */
        tenantNames?: NullableOption<string>;
    }
    interface CloudPcConnection extends microsoftgraphbeta.Entity {
        // The display name of the cloud PC connection. Required. Read-only.
        displayName?: NullableOption<string>;
        /**
         * The health status of the cloud PC connection. Possible values are: pending, running, passed, failed,
         * unknownFutureValue. Required. Read-only.
         */
        healthCheckStatus?: NullableOption<string>;
        // Date and time the entity was last updated in the multi-tenant management platform. Required. Read-only.
        lastRefreshedDateTime?: NullableOption<string>;
        // The display name for the managed tenant. Required. Read-only.
        tenantDisplayName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Required. Read-only.
        tenantId?: NullableOption<string>;
    }
    interface CloudPcDevice extends microsoftgraphbeta.Entity {
        /**
         * The status of the cloud PC. Possible values are: notProvisioned, provisioning, provisioned, upgrading, inGracePeriod,
         * deprovisioning, failed. Required. Read-only.
         */
        cloudPcStatus?: NullableOption<string>;
        // The specification of the cloud PC device. Required. Read-only.
        deviceSpecification?: NullableOption<string>;
        // The display name of the cloud PC device. Required. Read-only.
        displayName?: NullableOption<string>;
        // Date and time the entity was last updated in the multi-tenant management platform. Required. Read-only.
        lastRefreshedDateTime?: NullableOption<string>;
        // The managed device identifier of the cloud PC device. Optional. Read-only.
        managedDeviceId?: NullableOption<string>;
        // The managed device display name of the cloud PC device. Optional. Read-only.
        managedDeviceName?: NullableOption<string>;
        // The provisioning policy identifier for the cloud PC device. Required. Read-only.
        provisioningPolicyId?: NullableOption<string>;
        // The service plan name of the cloud PC device. Required. Read-only.
        servicePlanName?: NullableOption<string>;
        // The service plan type of the cloud PC device. Required. Read-only.
        servicePlanType?: NullableOption<string>;
        // The display name for the managed tenant. Required. Read-only.
        tenantDisplayName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Required. Read-only.
        tenantId?: NullableOption<string>;
        // The user principal name (UPN) of the user assigned to the cloud PC device. Required. Read-only.
        userPrincipalName?: NullableOption<string>;
    }
    interface CloudPcOverview extends microsoftgraphbeta.Entity {
        // Date and time the entity was last updated in the multi-tenant management platform. Optional. Read-only.
        lastRefreshedDateTime?: NullableOption<string>;
        // The number of cloud PC connections that have a status of failed. Optional. Read-only.
        numberOfCloudPcConnectionStatusFailed?: NullableOption<number>;
        // The number of cloud PC connections that have a status of passed. Optional. Read-only.
        numberOfCloudPcConnectionStatusPassed?: NullableOption<number>;
        // The number of cloud PC connections that have a status of pending. Optional. Read-only.
        numberOfCloudPcConnectionStatusPending?: NullableOption<number>;
        // The number of cloud PC connections that have a status of running. Optional. Read-only.
        numberOfCloudPcConnectionStatusRunning?: NullableOption<number>;
        // The number of cloud PC connections that have a status of unknownFutureValue. Optional. Read-only.
        numberOfCloudPcConnectionStatusUnkownFutureValue?: NullableOption<number>;
        // The number of cloud PCs that have a status of deprovisioning. Optional. Read-only.
        numberOfCloudPcStatusDeprovisioning?: NullableOption<number>;
        // The number of cloud PCs that have a status of failed. Optional. Read-only.
        numberOfCloudPcStatusFailed?: NullableOption<number>;
        // The number of cloud PCs that have a status of inGracePeriod. Optional. Read-only.
        numberOfCloudPcStatusInGracePeriod?: NullableOption<number>;
        // The number of cloud PCs that have a status of notProvisioned. Optional. Read-only.
        numberOfCloudPcStatusNotProvisioned?: NullableOption<number>;
        // The number of cloud PCs that have a status of provisioned. Optional. Read-only.
        numberOfCloudPcStatusProvisioned?: NullableOption<number>;
        // The number of cloud PCs that have a status of provisioning. Optional. Read-only.
        numberOfCloudPcStatusProvisioning?: NullableOption<number>;
        // The number of cloud PCs that have a status of unknown. Optional. Read-only.
        numberOfCloudPcStatusUnknown?: NullableOption<number>;
        // The number of cloud PCs that have a status of upgrading. Optional. Read-only.
        numberOfCloudPcStatusUpgrading?: NullableOption<number>;
        // The display name for the managed tenant. Optional. Read-only.
        tenantDisplayName?: NullableOption<string>;
        tenantId?: string;
        // The total number of cloud PC devices that have the Business SKU. Optional. Read-only.
        totalBusinessLicenses?: NullableOption<number>;
        // The total number of cloud PC connection statuses for the given managed tenant. Optional. Read-only.
        totalCloudPcConnectionStatus?: NullableOption<number>;
        // The total number of cloud PC statues for the given managed tenant. Optional. Read-only.
        totalCloudPcStatus?: NullableOption<number>;
        // The total number of cloud PC devices that have the Enterprise SKU. Optional. Read-only.
        totalEnterpriseLicenses?: NullableOption<number>;
    }
    interface ConditionalAccessPolicyCoverage extends microsoftgraphbeta.Entity {
        /**
         * The state for the conditional access policy. Possible values are: enabled, disabled, enabledForReportingButNotEnforced.
         * Required. Read-only.
         */
        conditionalAccessPolicyState?: NullableOption<string>;
        // The date and time the conditional access policy was last modified. Required. Read-only.
        latestPolicyModifiedDateTime?: NullableOption<string>;
        // A flag indicating whether the conditional access policy requires device compliance. Required. Read-only.
        requiresDeviceCompliance?: NullableOption<boolean>;
        // The display name for the managed tenant. Required. Read-only.
        tenantDisplayName?: NullableOption<string>;
    }
    interface CredentialUserRegistrationsSummary extends microsoftgraphbeta.Entity {
        // Date and time the entity was last updated in the multi-tenant management platform. Optional. Read-only.
        lastRefreshedDateTime?: NullableOption<string>;
        /**
         * The number of users that are capable of performing multi-factor authentication or self service password reset.
         * Optional. Read-only.
         */
        mfaAndSsprCapableUserCount?: NullableOption<number>;
        // The state of a conditional access policy that enforces multi-factor authentication. Optional. Read-only.
        mfaConditionalAccessPolicyState?: NullableOption<string>;
        /**
         * The number of users in the multi-factor authentication exclusion security group (Microsoft 365 Lighthouse - MFA
         * exclusions). Optional. Read-only.
         */
        mfaExcludedUserCount?: NullableOption<number>;
        // The number of users registered for multi-factor authentication. Optional. Read-only.
        mfaRegisteredUserCount?: NullableOption<number>;
        // A flag indicating whether Identity Security Defaults is enabled. Optional. Read-only.
        securityDefaultsEnabled?: NullableOption<boolean>;
        // The number of users enabled for self service password reset. Optional. Read-only.
        ssprEnabledUserCount?: NullableOption<number>;
        // The number of users registered for self service password reset. Optional. Read-only.
        ssprRegisteredUserCount?: NullableOption<number>;
        // The display name for the managed tenant. Required. Read-only.
        tenantDisplayName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Required. Read-only.
        tenantId?: NullableOption<string>;
        // The license type associated with the tenant; for example, AADFree, AADPremium1, AADPremium2.
        tenantLicenseType?: NullableOption<string>;
        // The total number of users in the given managed tenant. Optional. Read-only.
        totalUserCount?: NullableOption<number>;
    }
    interface DeviceAppPerformance extends microsoftgraphbeta.Entity {
        appFriendlyName?: NullableOption<string>;
        appName?: NullableOption<string>;
        appPublisher?: NullableOption<string>;
        appVersion?: NullableOption<string>;
        deviceId?: NullableOption<string>;
        deviceManufacturer?: NullableOption<string>;
        deviceModel?: NullableOption<string>;
        deviceName?: NullableOption<string>;
        healthStatus?: NullableOption<string>;
        isLatestUsedVersion?: NullableOption<number>;
        isMostUsedVersion?: NullableOption<number>;
        lastUpdatedDateTime?: NullableOption<string>;
        tenantDisplayName?: NullableOption<string>;
        tenantId?: NullableOption<string>;
        totalAppCrashCount?: NullableOption<number>;
        totalAppFreezeCount?: NullableOption<number>;
    }
    interface DeviceCompliancePolicySettingStateSummary extends microsoftgraphbeta.Entity {
        // The number of devices in a conflict state. Optional. Read-only.
        conflictDeviceCount?: NullableOption<number>;
        // The number of devices in an error state. Optional. Read-only.
        errorDeviceCount?: NullableOption<number>;
        // The number of devices in a failed state. Optional. Read-only.
        failedDeviceCount?: NullableOption<number>;
        // The identifer for the Microsoft Intune account. Required. Read-only.
        intuneAccountId?: NullableOption<string>;
        // The identifier for the Intune setting. Optional. Read-only.
        intuneSettingId?: NullableOption<string>;
        // Date and time the entity was last updated in the multi-tenant management platform. Optional. Read-only.
        lastRefreshedDateTime?: NullableOption<string>;
        // The number of devices in a not applicable state. Optional. Read-only.
        notApplicableDeviceCount?: NullableOption<number>;
        // The number of devices in a pending state. Optional. Read-only.
        pendingDeviceCount?: NullableOption<number>;
        // The type for the device compliance policy. Optional. Read-only.
        policyType?: NullableOption<string>;
        // The name for the setting within the device compliance policy. Optional. Read-only.
        settingName?: NullableOption<string>;
        // The number of devices in a succeeded state. Optional. Read-only.
        succeededDeviceCount?: NullableOption<number>;
        // The display name for the managed tenant. Required. Read-only.
        tenantDisplayName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Required. Read-only.
        tenantId?: NullableOption<string>;
    }
    interface DeviceHealthStatus extends microsoftgraphbeta.Entity {
        blueScreenCount?: NullableOption<number>;
        bootTotalDurationInSeconds?: NullableOption<number>;
        deviceId?: NullableOption<string>;
        deviceMake?: NullableOption<string>;
        deviceModel?: NullableOption<string>;
        deviceName?: NullableOption<string>;
        healthStatus?: NullableOption<string>;
        lastUpdatedDateTime?: NullableOption<string>;
        osVersion?: NullableOption<string>;
        primaryDiskType?: NullableOption<string>;
        restartCount?: NullableOption<number>;
        startupPerformanceScore?: NullableOption<number>;
        tenantDisplayName?: NullableOption<string>;
        tenantId?: NullableOption<string>;
        topProcesses?: NullableOption<string>;
    }
    interface ManagedDeviceCompliance extends microsoftgraphbeta.Entity {
        /**
         * Compliance state of the device. This property is read-only. Possible values are: unknown, compliant, noncompliant,
         * conflict, error, inGracePeriod, configManager. Optional. Read-only.
         */
        complianceStatus?: NullableOption<string>;
        /**
         * Platform of the device. This property is read-only. Possible values are: desktop, windowsRT, winMO6, nokia,
         * windowsPhone, mac, winCE, winEmbedded, iPhone, iPad, iPod, android, iSocConsumer, unix, macMDM, holoLens, surfaceHub,
         * androidForWork, androidEnterprise, windows10x, androidnGMS, chromeOS, linux, blackberry, palm, unknown, cloudPC.
         * Optional. Read-only.
         */
        deviceType?: NullableOption<string>;
        // The date and time when the grace period will expire. Optional. Read-only.
        inGracePeriodUntilDateTime?: NullableOption<string>;
        // Date and time the entity was last updated in the multi-tenant management platform. Optional. Read-only.
        lastRefreshedDateTime?: NullableOption<string>;
        /**
         * The date and time that the device last completed a successful sync with Microsoft Endpoint Manager. Optional.
         * Read-only.
         */
        lastSyncDateTime?: NullableOption<string>;
        // The identifier for the managed device in Microsoft Endpoint Manager. Optional. Read-only.
        managedDeviceId?: NullableOption<string>;
        // The display name for the managed device. Optional. Read-only.
        managedDeviceName?: NullableOption<string>;
        // The manufacture for the device. Optional. Read-only.
        manufacturer?: NullableOption<string>;
        // The model for the device. Optional. Read-only.
        model?: NullableOption<string>;
        // The description of the operating system for the managed device. Optional. Read-only.
        osDescription?: NullableOption<string>;
        // The version of the operating system for the managed device. Optional. Read-only.
        osVersion?: NullableOption<string>;
        // The type of owner for the managed device. Optional. Read-only.
        ownerType?: NullableOption<string>;
        // The display name for the managed tenant. Optional. Read-only.
        tenantDisplayName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Optional. Read-only.
        tenantId?: NullableOption<string>;
    }
    interface ManagedDeviceComplianceTrend extends microsoftgraphbeta.Entity {
        // The number of devices with a compliant status. Required. Read-only.
        compliantDeviceCount?: NullableOption<number>;
        // The number of devices manged by Configuration Manager. Required. Read-only.
        configManagerDeviceCount?: NullableOption<number>;
        // The date and time compliance snapshot was performed. Required. Read-only.
        countDateTime?: NullableOption<string>;
        // The number of devices with an error status. Required. Read-only.
        errorDeviceCount?: NullableOption<number>;
        // The number of devices that are in a grace period status. Required. Read-only.
        inGracePeriodDeviceCount?: NullableOption<number>;
        // The number of devices that are in a non-compliant status. Required. Read-only.
        noncompliantDeviceCount?: NullableOption<number>;
        // The display name for the managed tenant. Optional. Read-only.
        tenantDisplayName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Optional. Read-only.
        tenantId?: NullableOption<string>;
        // The number of devices in an unknown status. Required. Read-only.
        unknownDeviceCount?: NullableOption<number>;
    }
    interface ManagedTenantAlertLog extends microsoftgraphbeta.Entity {
        content?: NullableOption<AlertLogContent>;
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        alert?: NullableOption<ManagedTenantAlert>;
    }
    interface ManagedTenantAlertRuleDefinition extends microsoftgraphbeta.Entity {
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        definitionTemplate?: NullableOption<AlertRuleDefinitionTemplate>;
        displayName?: NullableOption<string>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        alertRules?: NullableOption<ManagedTenantAlertRule[]>;
    }
    interface ManagedTenantAlertRule extends microsoftgraphbeta.Entity {
        alertDisplayName?: NullableOption<string>;
        alertTTL?: NullableOption<number>;
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        lastRunDateTime?: NullableOption<string>;
        notificationFinalDestinations?: NullableOption<NotificationDestination>;
        severity?: NullableOption<AlertSeverity>;
        targets?: NullableOption<NotificationTarget[]>;
        tenantIds?: NullableOption<TenantInfo[]>;
        alerts?: NullableOption<ManagedTenantAlert[]>;
        ruleDefinition?: NullableOption<ManagedTenantAlertRuleDefinition>;
    }
    interface ManagedTenantAlert extends microsoftgraphbeta.Entity {
        alertData?: NullableOption<AlertData>;
        alertDataReferenceStrings?: NullableOption<AlertDataReferenceString[]>;
        alertRuleDisplayName?: NullableOption<string>;
        assignedToUserId?: NullableOption<string>;
        correlationCount?: NullableOption<number>;
        correlationId?: NullableOption<string>;
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        message?: NullableOption<string>;
        severity?: NullableOption<AlertSeverity>;
        status?: NullableOption<AlertStatus>;
        tenantId?: NullableOption<string>;
        title?: NullableOption<string>;
        alertLogs?: NullableOption<ManagedTenantAlertLog[]>;
        alertRule?: NullableOption<ManagedTenantAlertRule>;
        apiNotifications?: NullableOption<ManagedTenantApiNotification[]>;
        emailNotifications?: NullableOption<ManagedTenantEmailNotification[]>;
    }
    interface ManagedTenantApiNotification extends microsoftgraphbeta.Entity {
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        isAcknowledged?: NullableOption<boolean>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        message?: NullableOption<string>;
        title?: NullableOption<string>;
        userId?: NullableOption<string>;
        alert?: NullableOption<ManagedTenantAlert>;
    }
    interface ManagedTenantEmailNotification extends microsoftgraphbeta.Entity {
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        emailAddresses?: NullableOption<Email[]>;
        emailBody?: NullableOption<string>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        subject?: NullableOption<string>;
        alert?: NullableOption<ManagedTenantAlert>;
    }
    interface ManagedTenantTicketingEndpoint extends microsoftgraphbeta.Entity {
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        displayName?: NullableOption<string>;
        emailAddress?: NullableOption<string>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        phoneNumber?: NullableOption<string>;
    }
    interface ManagementAction extends microsoftgraphbeta.Entity {
        /**
         * The category for the management action. Possible values are: custom, devices, identity, unknownFutureValue. Optional.
         * Read-only.
         */
        category?: ManagementCategory;
        // The description for the management action. Optional. Read-only.
        description?: NullableOption<string>;
        // The display name for the management action. Optional. Read-only.
        displayName?: NullableOption<string>;
        // The reference for the management template used to generate the management action. Required. Read-only.
        referenceTemplateId?: string;
        referenceTemplateVersion?: number;
        // The collection of workload actions associated with the management action. Required. Read-only.
        workloadActions?: WorkloadAction[];
    }
    interface ManagementActionTenantDeploymentStatus extends microsoftgraphbeta.Entity {
        // The collection of deployment status for each instance of a management action. Optional.
        statuses?: NullableOption<ManagementActionDeploymentStatus[]>;
        // The identifier for the tenant group that is associated with the management action. Required. Read-only.
        tenantGroupId?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Required. Read-only.
        tenantId?: NullableOption<string>;
    }
    interface ManagementIntent extends microsoftgraphbeta.Entity {
        // The display name for the management intent. Optional. Read-only.
        displayName?: NullableOption<string>;
        // A flag indicating whether the management intent is global. Required. Read-only.
        isGlobal?: boolean;
        // The collection of management templates associated with the management intent. Optional. Read-only.
        managementTemplates?: NullableOption<ManagementTemplateDetailedInfo[]>;
    }
    interface ManagementTemplateCollection extends microsoftgraphbeta.Entity {
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        managementTemplates?: NullableOption<ManagementTemplate[]>;
    }
    interface ManagementTemplateCollectionTenantSummary extends microsoftgraphbeta.Entity {
        completeStepsCount?: NullableOption<number>;
        completeUsersCount?: NullableOption<number>;
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        dismissedStepsCount?: NullableOption<number>;
        excludedUsersCount?: NullableOption<number>;
        excludedUsersDistinctCount?: NullableOption<number>;
        incompleteStepsCount?: NullableOption<number>;
        incompleteUsersCount?: NullableOption<number>;
        ineligibleStepsCount?: NullableOption<number>;
        isComplete?: NullableOption<boolean>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        managementTemplateCollectionDisplayName?: NullableOption<string>;
        managementTemplateCollectionId?: NullableOption<string>;
        regressedStepsCount?: NullableOption<number>;
        regressedUsersCount?: NullableOption<number>;
        tenantId?: NullableOption<string>;
        unlicensedUsersCount?: NullableOption<number>;
    }
    interface ManagementTemplate extends microsoftgraphbeta.Entity {
        /**
         * The management category for the management template. Possible values are: custom, devices, identity,
         * unknownFutureValue. Required. Read-only.
         */
        category?: NullableOption<ManagementCategory>;
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        // The description for the management template. Optional. Read-only.
        description?: NullableOption<string>;
        // The display name for the management template. Required. Read-only.
        displayName?: NullableOption<string>;
        informationLinks?: NullableOption<microsoftgraphbeta.ActionUrl[]>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        // The collection of parameters used by the management template. Optional. Read-only.
        parameters?: NullableOption<TemplateParameter[]>;
        priority?: number;
        provider?: ManagementProvider;
        userImpact?: NullableOption<string>;
        version?: NullableOption<number>;
        // The collection of workload actions associated with the management template. Optional. Read-only.
        workloadActions?: NullableOption<WorkloadAction[]>;
        managementTemplateCollections?: NullableOption<ManagementTemplateCollection[]>;
        managementTemplateSteps?: NullableOption<ManagementTemplateStep[]>;
    }
    interface ManagementTemplateStep extends microsoftgraphbeta.Entity {
        category?: NullableOption<ManagementCategory>;
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        portalLink?: NullableOption<microsoftgraphbeta.ActionUrl>;
        priority?: NullableOption<number>;
        acceptedVersion?: NullableOption<ManagementTemplateStepVersion>;
        managementTemplate?: NullableOption<ManagementTemplate>;
        versions?: NullableOption<ManagementTemplateStepVersion[]>;
    }
    interface ManagementTemplateStepTenantSummary extends microsoftgraphbeta.Entity {
        assignedTenantsCount?: NullableOption<number>;
        compliantTenantsCount?: NullableOption<number>;
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        dismissedTenantsCount?: NullableOption<number>;
        ineligibleTenantsCount?: NullableOption<number>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        managementTemplateCollectionDisplayName?: NullableOption<string>;
        managementTemplateCollectionId?: NullableOption<string>;
        managementTemplateDisplayName?: NullableOption<string>;
        managementTemplateId?: NullableOption<string>;
        managementTemplateStepDisplayName?: NullableOption<string>;
        managementTemplateStepId?: NullableOption<string>;
        notCompliantTenantsCount?: NullableOption<number>;
    }
    interface ManagementTemplateStepVersion extends microsoftgraphbeta.Entity {
        contentMarkdown?: NullableOption<string>;
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        name?: NullableOption<string>;
        version?: NullableOption<number>;
        versionInformation?: NullableOption<string>;
        acceptedFor?: NullableOption<ManagementTemplateStep>;
        deployments?: NullableOption<ManagementTemplateStepDeployment[]>;
        templateStep?: NullableOption<ManagementTemplateStep>;
    }
    interface MyRole {
        // A collection of role assignments for the managed tenant.
        assignments?: NullableOption<RoleAssignment[]>;
        // The Microsoft Entra tenant identifier for the managed tenant. Optional. Read-only.
        tenantId?: string;
    }
    interface TenantGroup extends microsoftgraphbeta.Entity {
        // A flag indicating whether all managed tenant are included in the tenant group. Required. Read-only.
        allTenantsIncluded?: boolean;
        // The display name for the tenant group. Optional. Read-only.
        displayName?: NullableOption<string>;
        // The collection of management action associated with the tenant group. Optional. Read-only.
        managementActions?: NullableOption<ManagementActionInfo[]>;
        // The collection of management intents associated with the tenant group. Optional. Read-only.
        managementIntents?: NullableOption<ManagementIntentInfo[]>;
        // The collection of managed tenant identifiers include in the tenant group. Optional. Read-only.
        tenantIds?: NullableOption<string[]>;
    }
    interface Tenant extends microsoftgraphbeta.Entity {
        // The relationship details for the tenant with the managing entity.
        contract?: NullableOption<TenantContract>;
        // The date and time the tenant was created in the multi-tenant management platform. Optional. Read-only.
        createdDateTime?: NullableOption<string>;
        // The display name for the tenant. Required. Read-only.
        displayName?: NullableOption<string>;
        // The date and time the tenant was last updated within the multi-tenant management platform. Optional. Read-only.
        lastUpdatedDateTime?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Optional. Read-only.
        tenantId?: NullableOption<string>;
        // The onboarding status information for the tenant. Optional. Read-only.
        tenantStatusInformation?: NullableOption<TenantStatusInformation>;
    }
    interface TenantCustomizedInformation extends microsoftgraphbeta.Entity {
        // The collection of contacts for the managed tenant. Optional.
        contacts?: NullableOption<TenantContactInformation[]>;
        // The display name for the managed tenant. Required. Read-only.
        displayName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Optional. Read-only.
        tenantId?: string;
        // The website for the managed tenant. Required.
        website?: NullableOption<string>;
    }
    interface TenantDetailedInformation extends microsoftgraphbeta.Entity {
        // The city where the managed tenant is located. Optional. Read-only.
        city?: NullableOption<string>;
        // The code for the country where the managed tenant is located. Optional. Read-only.
        countryCode?: NullableOption<string>;
        // The name for the country where the managed tenant is located. Optional. Read-only.
        countryName?: NullableOption<string>;
        // The default domain name for the managed tenant. Optional. Read-only.
        defaultDomainName?: NullableOption<string>;
        // The display name for the managed tenant.
        displayName?: NullableOption<string>;
        // The business industry associated with the managed tenant. Optional. Read-only.
        industryName?: NullableOption<string>;
        // The region where the managed tenant is located. Optional. Read-only.
        region?: NullableOption<string>;
        // The business segment associated with the managed tenant. Optional. Read-only.
        segmentName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant.
        tenantId?: NullableOption<string>;
        // The vertical associated with the managed tenant. Optional. Read-only.
        verticalName?: NullableOption<string>;
    }
    interface TenantTag extends microsoftgraphbeta.Entity {
        // The identifier for the account that created the tenant tag. Required. Read-only.
        createdByUserId?: NullableOption<string>;
        // The date and time when the tenant tag was created. Required. Read-only.
        createdDateTime?: NullableOption<string>;
        // The date and time when the tenant tag was deleted. Required. Read-only.
        deletedDateTime?: NullableOption<string>;
        // The description for the tenant tag. Optional. Read-only.
        description?: NullableOption<string>;
        // The display name for the tenant tag. Required. Read-only.
        displayName?: NullableOption<string>;
        // The identifier for the account that lasted on the tenant tag. Optional. Read-only.
        lastActionByUserId?: NullableOption<string>;
        // The date and time the last action was performed against the tenant tag. Optional. Read-only.
        lastActionDateTime?: NullableOption<string>;
        // The collection of managed tenants associated with the tenant tag. Optional.
        tenants?: NullableOption<TenantInfo[]>;
    }
    interface WindowsDeviceMalwareState extends microsoftgraphbeta.Entity {
        // The additional information URL for the discovered malware. Optional. Read-only.
        additionalInformationUrl?: NullableOption<string>;
        // The number of times the piece of malware has been detected. Optional. Read-only.
        detectionCount?: NullableOption<number>;
        // A flag indicating whether the device has been deleted. Optional. Read-only.
        deviceDeleted?: NullableOption<boolean>;
        // The date and time the piece of malware was initially detected. Optional. Read-only.
        initialDetectionDateTime?: NullableOption<string>;
        // Date and time the entity was last updated in the multi-tenant management platform. Optional. Read-only.
        lastRefreshedDateTime?: NullableOption<string>;
        // The date and time the malware state was last changed. Optional. Read-only.
        lastStateChangeDateTime?: NullableOption<string>;
        // The category for the detected malware. Optional. Read-only.
        malwareCategory?: NullableOption<string>;
        // The display name for the detected malware. Optional. Read-only.
        malwareDisplayName?: NullableOption<string>;
        // The execution state for the detected malware. Optional. Read-only.
        malwareExecutionState?: NullableOption<string>;
        // The unique identifier for the detected malware. Optional. Read-only.
        malwareId?: NullableOption<string>;
        // The severity for the detected malware. Optional. Read-only.
        malwareSeverity?: NullableOption<string>;
        // The threat state for the detected malware. Optional. Read-only.
        malwareThreatState?: NullableOption<string>;
        // The identifier for the managed device where the malware was detected. Optional. Read-only.
        managedDeviceId?: NullableOption<string>;
        // The display name for the managed device where the malware was detected. Optional. Read-only.
        managedDeviceName?: NullableOption<string>;
        // The display name for the managed tenant. Optional. Read-only.
        tenantDisplayName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Optional. Read-only.
        tenantId?: NullableOption<string>;
    }
    interface WindowsProtectionState extends microsoftgraphbeta.Entity {
        // The anti-malware version for the managed device. Optional. Read-only.
        antiMalwareVersion?: NullableOption<string>;
        // A flag indicating whether attention is required for the managed device. Optional. Read-only.
        attentionRequired?: NullableOption<boolean>;
        // A flag indicating whether the managed device has been deleted. Optional. Read-only.
        deviceDeleted?: NullableOption<boolean>;
        // The date and time the device property has been refreshed. Optional. Read-only.
        devicePropertyRefreshDateTime?: NullableOption<string>;
        // The anti-virus engine version for the managed device. Optional. Read-only.
        engineVersion?: NullableOption<string>;
        // A flag indicating whether quick scan is overdue for the managed device. Optional. Read-only.
        fullScanOverdue?: NullableOption<boolean>;
        // A flag indicating whether full scan is overdue for the managed device. Optional. Read-only.
        fullScanRequired?: NullableOption<boolean>;
        // The date and time a full scan was completed. Optional. Read-only.
        lastFullScanDateTime?: NullableOption<string>;
        // The version anti-malware version used to perform the last full scan. Optional. Read-only.
        lastFullScanSignatureVersion?: NullableOption<string>;
        // The date and time a quick scan was completed. Optional. Read-only.
        lastQuickScanDateTime?: NullableOption<string>;
        // The version anti-malware version used to perform the last full scan. Optional. Read-only.
        lastQuickScanSignatureVersion?: NullableOption<string>;
        // Date and time the entity was last updated in the multi-tenant management platform. Optional. Read-only.
        lastRefreshedDateTime?: NullableOption<string>;
        // The date and time the protection state was last reported for the managed device. Optional. Read-only.
        lastReportedDateTime?: NullableOption<string>;
        // A flag indicating whether malware protection is enabled for the managed device. Optional. Read-only.
        malwareProtectionEnabled?: NullableOption<boolean>;
        // The health state for the managed device. Optional. Read-only.
        managedDeviceHealthState?: NullableOption<string>;
        // The unique identifier for the managed device. Optional. Read-only.
        managedDeviceId?: NullableOption<string>;
        // The display name for the managed device. Optional. Read-only.
        managedDeviceName?: NullableOption<string>;
        // A flag indicating whether the network inspection system is enabled. Optional. Read-only.
        networkInspectionSystemEnabled?: NullableOption<boolean>;
        // A flag indicating weather a quick scan is overdue. Optional. Read-only.
        quickScanOverdue?: NullableOption<boolean>;
        // A flag indicating whether real time protection is enabled. Optional. Read-only.
        realTimeProtectionEnabled?: NullableOption<boolean>;
        // A flag indicating whether a reboot is required. Optional. Read-only.
        rebootRequired?: NullableOption<boolean>;
        // A flag indicating whether an signature update is overdue. Optional. Read-only.
        signatureUpdateOverdue?: NullableOption<boolean>;
        // The signature version for the managed device. Optional. Read-only.
        signatureVersion?: NullableOption<string>;
        // The display name for the managed tenant. Optional. Read-only.
        tenantDisplayName?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant. Optional. Read-only.
        tenantId?: NullableOption<string>;
    }
    interface ManagementTemplateStepDeployment extends microsoftgraphbeta.Entity {
        createdByUserId?: NullableOption<string>;
        createdDateTime?: NullableOption<string>;
        error?: NullableOption<GraphAPIErrorDetails>;
        lastActionByUserId?: NullableOption<string>;
        lastActionDateTime?: NullableOption<string>;
        status?: ManagementTemplateDeploymentStatus;
        tenantId?: string;
        templateStepVersion?: ManagementTemplateStepVersion;
    }
    interface AddLogRequest {
        logInformation?: NullableOption<string>;
    }
    interface AlertData {
        displayName?: NullableOption<string>;
    }
    interface AlertDataReferenceString {
        displayName?: NullableOption<string>;
    }
    interface AlertLogContent {
        displayName?: NullableOption<string>;
    }
    interface AlertRuleDefinitionTemplate {
        defaultSeverity?: NullableOption<AlertSeverity>;
    }
    interface DelegatedRoleAssignedUser {
        displayName?: NullableOption<string>;
        userEntityId?: NullableOption<string>;
        userPrincipalName?: NullableOption<string>;
    }
    interface Email {
        emailAddress?: NullableOption<string>;
    }
    interface GraphAPIErrorDetails {
        code?: NullableOption<string>;
        message?: NullableOption<string>;
    }
    interface ManagedTenantOperationError {
        // The error message for the exception.
        error?: NullableOption<string>;
        // The Microsoft Entra tenant identifier for the managed tenant.
        tenantId?: string;
    }
    interface ManagedTenantExecutionError extends ManagedTenantOperationError {
        // Additional error information for the exception. Optional. Read-only.
        errorDetails?: NullableOption<string>;
        // The node identifier where the exception occurred. Required. Read-only.
        nodeId?: number;
        // The token for the exception. Optional. Read-only.
        rawToken?: NullableOption<string>;
        // The statement index for the exception. Required. Read-only.
        statementIndex?: number;
    }
// tslint:disable-next-line: no-empty-interface
    interface ManagedTenantGenericError extends ManagedTenantOperationError {}
    interface ManagementActionDeploymentStatus {
        // The identifier for the management action. Required. Read-only.
        managementActionId?: string;
        // The management template identifier that was used to generate the management action. Required. Read-only.
        managementTemplateId?: string;
        managementTemplateVersion?: number;
        /**
         * The status of the management action. Possible values are: toAddress, completed, error, timeOut, inProgress, planned,
         * resolvedBy3rdParty, resolvedThroughAlternateMitigation, riskAccepted, unknownFutureValue. Required.
         */
        status?: ManagementActionStatus;
        // The collection of workload action deployment statues for the given management action. Optional.
        workloadActionDeploymentStatuses?: NullableOption<WorkloadActionDeploymentStatus[]>;
    }
    interface WorkloadActionDeploymentStatus {
        // The unique identifier for the workload action. Required. Read-only.
        actionId?: string;
        // The identifier of any policy that was created by applying the workload action. Optional. Read-only.
        deployedPolicyId?: NullableOption<string>;
        // The detailed information for exceptions that occur when deploying the workload action. Optional. Required.
        error?: NullableOption<microsoftgraphbeta.GenericError>;
        excludeGroups?: NullableOption<string[]>;
        includeAllUsers?: boolean;
        includeGroups?: NullableOption<string[]>;
        // The date and time the workload action was last deployed. Optional.
        lastDeploymentDateTime?: NullableOption<string>;
        /**
         * The status of the workload action deployment. Possible values are: toAddress, completed, error, timeOut, inProgress,
         * unknownFutureValue. Required. Read-only.
         */
        status?: WorkloadActionStatus;
    }
    interface ManagementActionInfo {
        // The identifier for the management action. Required. Read-only.
        managementActionId?: string;
        // The identifier for the management template. Required. Read-only.
        managementTemplateId?: string;
        managementTemplateVersion?: number;
    }
    interface ManagementIntentInfo {
        // The display name for the management intent. Optional. Read-only.
        managementIntentDisplayName?: NullableOption<string>;
        // The identifier for the management intent. Required. Read-only.
        managementIntentId?: string;
        // The collection of management template information associated with the management intent. Optional. Read-only.
        managementTemplates?: NullableOption<ManagementTemplateDetailedInfo[]>;
    }
    interface ManagementTemplateDetailedInfo {
        /**
         * The management category for the management template. Possible values are: custom, devices, identity,
         * unknownFutureValue. Required. Read-only.
         */
        category?: ManagementCategory;
        // The display name for the management template. Required. Read-only.
        displayName?: NullableOption<string>;
        // The unique identifier for the management template. Required. Read-only.
        managementTemplateId?: string;
        version?: number;
    }
    interface NotificationTarget {
        displayName?: NullableOption<string>;
    }
    interface Phone {
        phoneNumber?: NullableOption<string>;
    }
    interface RoleAssignment {
        /**
         * The type of the admin relationship(s) associated with the role assignment. Possible values are: none,
         * delegatedAdminPrivileges, unknownFutureValue, granularDelegatedAdminPrivileges,
         * delegatedAndGranularDelegetedAdminPrivileges. Note that you must use the Prefer: include-unknown-enum-members request
         * header to get the following values from this evolvable enum: granularDelegatedAdminPrivileges ,
         * delegatedAndGranularDelegetedAdminPrivileges.
         */
        assignmentType?: NullableOption<DelegatedPrivilegeStatus>;
        // The collection of roles assigned.
        roles?: NullableOption<RoleDefinition[]>;
    }
    interface RoleDefinition {
        // The description for the role.
        description?: NullableOption<string>;
        // The display name for the role assignment.
        displayName?: NullableOption<string>;
        // The unique identifier for the template.
        templateId?: string;
    }
    interface Setting {
        // The display name for the setting. Required. Read-only.
        displayName?: string;
        // The value for the setting serialized as string of JSON. Required. Read-only.
        jsonValue?: string;
        // A flag indicating whether the setting can be override existing configurations when applied. Required. Read-only.
        overwriteAllowed?: boolean;
        settingId?: NullableOption<string>;
        /**
         * The data type for the setting. Possible values are: string, integer, boolean, guid, stringCollection,
         * integerCollection, booleanCollection, guidCollection, unknownFutureValue. Required. Read-only.
         */
        valueType?: ManagementParameterValueType;
    }
    interface TemplateAction {
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        service?: NullableOption<string>;
        settings?: Setting[];
        templateActionId?: string;
        licenses?: NullableOption<microsoftgraphbeta.LicenseDetails>;
    }
    interface TemplateParameter {
        // The description for the template parameter. Optional. Read-only.
        description?: NullableOption<string>;
        // The display name for the template parameter. Required. Read-only.
        displayName?: NullableOption<string>;
        // The allowed values for the template parameter represented by a serialized string of JSON. Optional. Read-only.
        jsonAllowedValues?: NullableOption<string>;
        // The default value for the template parameter represented by a serialized string of JSON. Required. Read-only.
        jsonDefaultValue?: NullableOption<string>;
        /**
         * The data type for the template parameter.. Possible values are: string, integer, boolean, guid, stringCollection,
         * integerCollection, booleanCollection, guidCollection, unknownFutureValue. Required. Read-only.
         */
        valueType?: ManagementParameterValueType;
    }
    interface TenantContactInformation {
        // The email address for the contact. Optional
        email?: NullableOption<string>;
        // The name for the contact. Required.
        name?: NullableOption<string>;
        // The notes associated with the contact. Optional
        notes?: NullableOption<string>;
        // The phone number for the contact. Optional.
        phone?: NullableOption<string>;
        // The title for the contact. Required.
        title?: NullableOption<string>;
    }
    interface TenantContract {
        // The type of relationship that exists between the managing entity and tenant. Optional. Read-only.
        contractType?: NullableOption<number>;
        // The default domain name for the tenant. Required. Read-only.
        defaultDomainName?: NullableOption<string>;
        // The display name for the tenant. Optional. Read-only.
        displayName?: NullableOption<string>;
    }
    interface TenantInfo {
        // The Microsoft Entra tenant identifier for the managed tenant. Optional.
        tenantId?: NullableOption<string>;
    }
    interface TenantStatusInformation {
        /**
         * The status of the delegated admin privilege relationship between the managing entity and the managed tenant. Possible
         * values are: none, delegatedAdminPrivileges, unknownFutureValue, granularDelegatedAdminPrivileges,
         * delegatedAndGranularDelegetedAdminPrivileges. You must use the Prefer: include-unknown-enum-members request header to
         * get the following values from this evolvable enum: granularDelegatedAdminPrivileges ,
         * delegatedAndGranularDelegetedAdminPrivileges. Optional. Read-only.
         */
        delegatedPrivilegeStatus?: NullableOption<DelegatedPrivilegeStatus>;
        // The date and time the delegated admin privileges status was updated. Optional. Read-only.
        lastDelegatedPrivilegeRefreshDateTime?: NullableOption<string>;
        // The identifier for the account that offboarded the managed tenant. Optional. Read-only.
        offboardedByUserId?: NullableOption<string>;
        // The date and time when the managed tenant was offboarded. Optional. Read-only.
        offboardedDateTime?: NullableOption<string>;
        // The identifier for the account that onboarded the managed tenant. Optional. Read-only.
        onboardedByUserId?: NullableOption<string>;
        // The date and time when the managed tenant was onboarded. Optional. Read-only.
        onboardedDateTime?: NullableOption<string>;
        /**
         * The onboarding status for the managed tenant.. Possible values are: ineligible, inProcess, active, inactive,
         * unknownFutureValue. Optional. Read-only.
         */
        onboardingStatus?: NullableOption<TenantOnboardingStatus>;
        /**
         * Organization's onboarding eligibility reason in Microsoft 365 Lighthouse.. Possible values are: none, contractType,
         * delegatedAdminPrivileges,usersCount,license and unknownFutureValue. Optional. Read-only.
         */
        tenantOnboardingEligibilityReason?: NullableOption<TenantOnboardingEligibilityReason>;
        // The collection of workload statues for the managed tenant. Optional. Read-only.
        workloadStatuses?: NullableOption<WorkloadStatus[]>;
    }
    interface WorkloadStatus {
        // The display name for the workload. Required. Read-only.
        displayName?: NullableOption<string>;
        // The date and time the workload was offboarded. Optional. Read-only.
        offboardedDateTime?: NullableOption<string>;
        // The date and time the workload was onboarded. Optional. Read-only.
        onboardedDateTime?: NullableOption<string>;
        /**
         * The onboarding status for the workload. Possible values are: notOnboarded, onboarded, unknownFutureValue. Optional.
         * Read-only.
         */
        onboardingStatus?: WorkloadOnboardingStatus;
    }
    interface WorkloadAction {
        // The unique identifier for the workload action. Required. Read-only.
        actionId?: NullableOption<string>;
        // The category for the workload action. Possible values are: automated, manual, unknownFutureValue. Optional. Read-only.
        category?: NullableOption<WorkloadActionCategory>;
        // The description for the workload action. Optional. Read-only.
        description?: NullableOption<string>;
        // The display name for the workload action. Optional. Read-only.
        displayName?: NullableOption<string>;
        licenses?: NullableOption<string[]>;
        // The service associated with workload action. Optional. Read-only.
        service?: NullableOption<string>;
        // The collection of settings associated with the workload action. Optional. Read-only.
        settings?: NullableOption<Setting[]>;
    }
}
export namespace Networkaccess {
    type AggregationFilter = "transactions" | "users" | "devices" | "unknownFutureValue";
    type DeviceCategory = "client" | "branch" | "unknownFutureValue";
    type FilteringPolicyAction = "block" | "allow" | "unknownFutureValue";
    type NetworkingProtocol =
        | "ip"
        | "icmp"
        | "igmp"
        | "ggp"
        | "ipv4"
        | "tcp"
        | "pup"
        | "udp"
        | "idp"
        | "ipv6"
        | "ipv6RoutingHeader"
        | "ipv6FragmentHeader"
        | "ipSecEncapsulatingSecurityPayload"
        | "ipSecAuthenticationHeader"
        | "icmpV6"
        | "ipv6NoNextHeader"
        | "ipv6DestinationOptions"
        | "nd"
        | "ipx"
        | "raw"
        | "spx"
        | "spxII"
        | "unknownFutureValue";
    type RemoteNetworkStatus =
        | "tunnelDisconnected"
        | "tunnelConnected"
        | "bgpDisconnected"
        | "bgpConnected"
        | "remoteNetworkAlive"
        | "unknownFutureValue";
    type TrafficType = "internet" | "private" | "microsoft365" | "all" | "unknownFutureValue";
    type UsageStatus = "frequentlyUsed" | "rarelyUsed" | "unknownFutureValue";
    type UserType = "member" | "guest" | "unknownFutureValue";
    type BandwidthCapacityInMbps = "mbps250" | "mbps500" | "mbps750" | "mbps1000" | "unknownFutureValue";
    type ConnectivityState = "pending" | "connected" | "inactive" | "error" | "unknownFutureValue";
    type DeviceVendor =
        | "barracudaNetworks"
        | "checkPoint"
        | "ciscoMeraki"
        | "citrix"
        | "fortinet"
        | "hpeAruba"
        | "netFoundry"
        | "nuage"
        | "openSystems"
        | "paloAltoNetworks"
        | "riverbedTechnology"
        | "silverPeak"
        | "vmWareSdWan"
        | "versa"
        | "other"
        | "unknownFutureValue";
    type DhGroup = "dhGroup14" | "dhGroup24" | "dhGroup2048" | "ecp256" | "ecp384" | "unknownFutureValue";
    type ForwardingCategory = "default" | "optimized" | "allow" | "unknownFutureValue";
    type ForwardingRuleAction = "bypass" | "forward" | "unknownFutureValue";
    type IkeEncryption = "aes128" | "aes192" | "aes256" | "gcmAes128" | "gcmAes256" | "unknownFutureValue";
    type IkeIntegrity = "sha256" | "sha384" | "gcmAes128" | "gcmAes256" | "unknownFutureValue";
    type IpSecEncryption = "none" | "gcmAes128" | "gcmAes192" | "gcmAes256" | "unknownFutureValue";
    type IpSecIntegrity = "gcmAes128" | "gcmAes192" | "gcmAes256" | "sha256" | "unknownFutureValue";
    type NetworkDestinationType =
        | "url"
        | "fqdn"
        | "ipAddress"
        | "ipRange"
        | "ipSubnet"
        | "webCategory"
        | "unknownFutureValue";
    type OnboardingStatus =
        | "offboarded"
        | "offboardingInProgress"
        | "onboardingInProgress"
        | "onboarded"
        | "onboardingErrorOccurred"
        | "offboardingErrorOccurred"
        | "unknownFutureValue";
    type PfsGroup =
        | "none"
        | "pfs1"
        | "pfs2"
        | "pfs14"
        | "pfs24"
        | "pfs2048"
        | "pfsmm"
        | "ecp256"
        | "ecp384"
        | "unknownFutureValue";
    type RedundancyTier = "noRedundancy" | "zoneRedundancy" | "unknownFutureValue";
    type Region =
        | "eastUS"
        | "eastUS2"
        | "westUS"
        | "westUS2"
        | "westUS3"
        | "centralUS"
        | "northCentralUS"
        | "southCentralUS"
        | "northEurope"
        | "westEurope"
        | "franceCentral"
        | "germanyWestCentral"
        | "switzerlandNorth"
        | "ukSouth"
        | "canadaEast"
        | "canadaCentral"
        | "southAfricaWest"
        | "southAfricaNorth"
        | "uaeNorth"
        | "australiaEast"
        | "westCentralUS"
        | "centralIndia"
        | "southEastAsia"
        | "swedenCentral"
        | "southIndia"
        | "australiaSouthEast"
        | "koreaCentral"
        | "polandCentral"
        | "brazilSouth"
        | "japanEast"
        | "japanWest"
        | "unknownFutureValue";
    type Status = "enabled" | "disabled" | "unknownFutureValue";
    type TrafficForwardingType = "m365" | "internet" | "private" | "unknownFutureValue";
    interface Logs extends microsoftgraphbeta.Entity {
        // A collection of remote network health events.
        remoteNetworks?: NullableOption<RemoteNetworkHealthEvent[]>;
        // A network access traffic log entry that contains comprehensive information about network traffic events.
        traffic?: NullableOption<NetworkAccessTraffic[]>;
    }
    interface RemoteNetworkHealthEvent extends microsoftgraphbeta.Entity {
        // The number of BGP routes advertised through tunnel.
        bgpRoutesAdvertisedCount?: NullableOption<number>;
        // The time of the original event generation in UTC. Supports $filter (ge, le) and $orderby.
        createdDateTime?: string;
        // The description of the event.
        description?: NullableOption<string>;
        // The IP address of the destination.
        destinationIp?: NullableOption<string>;
        // The number of bytes sent from the destination to the source.
        receivedBytes?: NullableOption<number>;
        // A unique identifier for each remoteNetwork site. Supports $filter (eq).
        remoteNetworkId?: string;
        // The number of bytes sent from the source to the destination for the connection or session.
        sentBytes?: NullableOption<number>;
        // The public IP address.
        sourceIp?: NullableOption<string>;
        /**
         * The status of the remote network. The possible values are: tunnelDisconnected, tunnelConnected, bgpDisconnected,
         * bgpConnected, remoteNetworkAlive, unknownFutureValue.
         */
        status?: RemoteNetworkStatus;
    }
    interface NetworkAccessTraffic {
        action?: NullableOption<FilteringPolicyAction>;
        // Represents the version of the Global Secure Access client agent software. Supports $filter (eq) and $orderby.
        agentVersion?: NullableOption<string>;
        // Represents a unique identifier assigned to a connection. Supports $filter (eq) and $orderby.
        connectionId?: NullableOption<string>;
        // Represents the date and time when a network access traffic log entry was created. Supports $filter (eq) and $orderby.
        createdDateTime?: string;
        /**
         * Represents the Fully Qualified Domain Name (FQDN) of the destination host or server in a network communication.
         * Supports $filter (eq) and $orderby.
         */
        destinationFQDN?: NullableOption<string>;
        /**
         * Represents the IP address of the destination host or server in a network communication. Supports $filter (eq) and
         * $orderby.
         */
        destinationIp?: NullableOption<string>;
        /**
         * Represents the network port number on the destination host or server in a network communication. Supports $filter (eq)
         * and $orderby.
         */
        destinationPort?: NullableOption<number>;
        destinationWebCategory?: NullableOption<WebCategory>;
        /**
         * Represents the category classification of a device within a network infrastructure. The possible values are: client,
         * branch, unknownFutureValue. Supports $filter (eq) and $orderby.
         */
        deviceCategory?: NullableOption<DeviceCategory>;
        /**
         * Represents a unique identifier assigned to a device within a network infrastructure. Supports $filter (eq) and
         * $orderby.
         */
        deviceId?: NullableOption<string>;
        /**
         * Represents the operating system installed on a device within a network infrastructure. Supports $filter (eq) and
         * $orderby.
         */
        deviceOperatingSystem?: NullableOption<string>;
        /**
         * Represents the version or release number of the operating system installed on a device within a network infrastructure.
         * Supports $filter (eq) and $orderby.
         */
        deviceOperatingSystemVersion?: NullableOption<string>;
        filteringProfileId?: NullableOption<string>;
        filteringProfileName?: NullableOption<string>;
        // Represents the headers included in a network request or response. Supports $filter (eq) and $orderby.
        headers?: NullableOption<Headers>;
        initiatingProcessName?: NullableOption<string>;
        /**
         * Represents the networking protocol used for communication.The possible values are: ip, icmp, igmp, ggp, ipv4, tcp, pup,
         * udp, idp, ipv6, ipv6RoutingHeader, ipv6FragmentHeader, ipSecEncapsulatingSecurityPayload, ipSecAuthenticationHeader,
         * icmpV6, ipv6NoNextHeader, ipv6DestinationOptions, nd, raw, ipx, spx, spxII, unknownFutureValue. Supports $filter (eq)
         * and $orderby.
         */
        networkProtocol?: NullableOption<NetworkingProtocol>;
        // Represents a unique identifier assigned to a policy. Supports $filter (eq) and $orderby.
        policyId?: NullableOption<string>;
        policyName?: NullableOption<string>;
        // Represents a unique identifier assigned to a policy rule. Supports $filter (eq) and $orderby.
        policyRuleId?: NullableOption<string>;
        policyRuleName?: NullableOption<string>;
        /**
         * Represents the total number of bytes received in a network communication or data transfer. Supports $filter (eq) and
         * $orderby.
         */
        receivedBytes?: NullableOption<number>;
        resourceTenantId?: NullableOption<string>;
        /**
         * Represents the total number of bytes sent in a network communication or data transfer. Supports $filter (eq) and
         * $orderby.
         */
        sentBytes?: NullableOption<number>;
        /**
         * Represents a unique identifier assigned to a session or connection within a network infrastructure. Supports $filter
         * (eq) and $orderby.
         */
        sessionId?: NullableOption<string>;
        // Represents the source IP address in a network communication. Supports $filter (eq) and $orderby.
        sourceIp?: NullableOption<string>;
        /**
         * Represents the network port number on the source host or device in a network communication. Supports $filter (eq) and
         * $orderby.
         */
        sourcePort?: NullableOption<number>;
        /**
         * Represents a unique identifier assigned to a tenant within a network infrastructure. Supports $filter (eq) and
         * $orderby.
         */
        tenantId?: string;
        /**
         * Represents the type or category of network traffic.The possible values are: internet, private, microsoft365, all,
         * unknownFutureValue. Supports $filter (eq) and $orderby.
         */
        trafficType?: TrafficType;
        /**
         * Represents a unique identifier assigned to a specific transaction or operation. Key. Supports $filter (eq) and
         * $orderby.
         */
        transactionId?: string;
        /**
         * Represents the transport protocol used for communication.The possible values are: ip, icmp, igmp, ggp, ipv4, tcp, pup,
         * udp, idp, ipv6, ipv6RoutingHeader, ipv6FragmentHeader, ipSecEncapsulatingSecurityPayload, ipSecAuthenticationHeader,
         * icmpV6, ipv6NoNextHeader, ipv6DestinationOptions, nd, raw, ipx, spx, spxII, unknownFutureValue. Supports $filter (eq)
         * and $orderby.
         */
        transportProtocol?: NullableOption<NetworkingProtocol>;
        // Represents a unique identifier assigned to a user. Supports $filter (eq) and $orderby.
        userId?: NullableOption<string>;
        // Represents the user principal name (UPN) associated with a user. Supports $filter (eq) and $orderby.
        userPrincipalName?: NullableOption<string>;
    }
    interface NetworkAccessRoot extends microsoftgraphbeta.Entity {
        // Represents network connections that are routed through Global Secure Access.
        logs?: NullableOption<Logs>;
        // Represents the status of the Global Secure Access services for the tenant.
        reports?: NullableOption<Reports>;
        // Connectivity represents all the connectivity components in Global Secure Access.
        connectivity?: NullableOption<Connectivity>;
        /**
         * A filtering policy defines the specific traffic that is allowed or blocked through the Global Secure Access services
         * for a filtering profile.
         */
        filteringPolicies?: NullableOption<FilteringPolicy[]>;
        /**
         * A filtering profile associates network access policies with Microsoft Entra ID Conditional Access policies, so that
         * access policies can be applied to users and groups.
         */
        filteringProfiles?: NullableOption<FilteringProfile[]>;
        /**
         * A forwarding policy defines the specific traffic that is routed through the Global Secure Access Service. It's then
         * added to a forwarding profile.
         */
        forwardingPolicies?: NullableOption<ForwardingPolicy[]>;
        /**
         * A forwarding profile determines which types of traffic are routed through the Global Secure Access services and which
         * ones are skipped. The handling of specific traffic is determined by the forwarding policies that are added to the
         * forwarding profile.
         */
        forwardingProfiles?: NullableOption<ForwardingProfile[]>;
        // Global Secure Access settings.
        settings?: NullableOption<Settings>;
        // Represents the status of the Global Secure Access services for the tenant.
        tenantStatus?: NullableOption<TenantStatus>;
    }
// tslint:disable-next-line: no-empty-interface
    interface Reports extends microsoftgraphbeta.Entity {}
    interface Connectivity extends microsoftgraphbeta.Entity {
        webCategories?: NullableOption<WebCategory[]>;
        // Branches represent locations for connectivity.
        branches?: NullableOption<BranchSite[]>;
    }
    interface Policy extends microsoftgraphbeta.Entity {
        // Description.
        description?: NullableOption<string>;
        // Policy name.
        name?: string;
        // Version.
        version?: string;
        // Represents the definition of the policy ruleset that makes up the core definition of a policy.
        policyRules?: NullableOption<PolicyRule[]>;
    }
    interface FilteringPolicy extends Policy {
        action?: FilteringPolicyAction;
        // The date and time when the filtering Policy was originally created.
        createdDateTime?: string;
        // The date and time when a particular profile was last modified or updated.
        lastModifiedDateTime?: string;
    }
    interface Profile extends microsoftgraphbeta.Entity {
        // Description.
        description?: NullableOption<string>;
        // Profile last modified time.
        lastModifiedDateTime?: string;
        // Profile name.
        name?: string;
        // Profile state. The possible values are: enabled, disabled.
        state?: Status;
        // Profile version.
        version?: string;
        // Traffic forwarding policies associated with this profile.
        policies?: NullableOption<PolicyLink[]>;
    }
    interface FilteringProfile extends Profile {
        // The date and time when the filteringProfile was created.
        createdDateTime?: string;
        // The priority used to order the profile for processing within a list.
        priority?: number;
        /**
         * A set of associated policies defined to regulate access to resources or systems based on specific conditions.
         * Automatically expanded.
         */
        conditionalAccessPolicies?: NullableOption<ConditionalAccessPolicy[]>;
    }
    interface ForwardingPolicy extends Policy {
        // Traffic type for forwarding policy. The possible values are: m365, internet, private.
        trafficForwardingType?: TrafficForwardingType;
    }
    interface ForwardingProfile extends Profile {
        /**
         * Specifies the users, groups, devices, and branch locations whose traffic is associated with the given traffic
         * forwarding profile.
         */
        associations?: NullableOption<Association[]>;
        // Profile priority.
        priority?: number;
        // Profile traffic type. The possible values are: m365, internet, private.
        trafficForwardingType?: TrafficForwardingType;
    }
    interface Settings extends microsoftgraphbeta.Entity {
        /**
         * Defines whether conditional access settings are enabled for traffic profiles. Each tenant has only one conditional
         * access settings object.
         */
        conditionalAccess?: ConditionalAccessSettings;
        /**
         * Defines whether the tenant restrictions cross-tenant access settings are enabled for traffic profiles. Each tenant has
         * only one cross-tenant access settings object.
         */
        crossTenantAccess?: CrossTenantAccessSettings;
        enrichedAuditLogs?: EnrichedAuditLogs;
        forwardingOptions?: ForwardingOptions;
    }
    interface TenantStatus extends microsoftgraphbeta.Entity {
        // Reflects a message to the user if there's an error.
        onboardingErrorMessage?: NullableOption<string>;
        /**
         * Reflects the tenant onboarding status. The possible values are: offboarded, offboardingInProgress,
         * onboardingInProgress, onboarded, onboardingErrorOccurred, offboardingErrorOccurred.
         */
        onboardingStatus?: OnboardingStatus;
    }
    interface BranchConnectivityConfiguration {
        // Unique identifier or a specific reference assigned to a branchSite. Key.
        branchId?: string;
        // Display name assigned to a branchSite.
        branchName?: string;
        // List of connectivity configurations for deviceLink objects.
        links?: NullableOption<ConnectivityConfigurationLink[]>;
    }
    interface ConnectivityConfigurationLink extends microsoftgraphbeta.Entity {
        // Specifies the name of the link.
        displayName?: string;
        // Specifies Microsoft's end of the tunnel configuration for a device link.
        localConfigurations?: LocalConnectivityConfiguration[];
        // Specifies the customer's end of the tunnel configuration for a device link.
        peerConfiguration?: PeerConnectivityConfiguration;
    }
    interface BranchSite extends microsoftgraphbeta.Entity {
        /**
         * Determines the maximum allowed Mbps (megabits per second) bandwidth from a branch site. The possible values
         * are:250,500,750,1000.
         */
        bandwidthCapacity?: NullableOption<number>;
        // Determines the branch site status. The possible values are: pending, connected, inactive, error.
        connectivityState?: NullableOption<ConnectivityState>;
        // The branch site is created in the specified country.
        country?: NullableOption<string>;
        // last modified time.
        lastModifiedDateTime?: string;
        // Name.
        name?: string;
        // The branch site is created in the specified location.
        region?: Region;
        // The branch version.
        version?: string;
        // Specifies the connectivity details of all device links associated with a branch.
        connectivityConfiguration?: NullableOption<BranchConnectivityConfiguration>;
        // Each unique CPE device associated with a branch is specified. Supports $expand.
        deviceLinks?: NullableOption<DeviceLink[]>;
        // Each forwarding profile associated with a branch site is specified. Supports $expand.
        forwardingProfiles?: NullableOption<ForwardingProfile[]>;
    }
    interface DeviceLink extends microsoftgraphbeta.Entity {
        /**
         * Determines the maximum allowed Mbps (megabits per second) bandwidth from a branch site. The possible values
         * are:250,500,750,1000.
         */
        bandwidthCapacityInMbps?: NullableOption<BandwidthCapacityInMbps>;
        // The border gateway protocol specifies the IP address and ASN for directing traffic from a link to the edge.
        bgpConfiguration?: BgpConfiguration;
        /**
         * Specifies the manufacturer of the deviceLink. The possible values are: barracudaNetworks, checkPoint, ciscoMeraki,
         * citrix, fortinet, hpeAruba, netFoundry, nuage, openSystems, paloAltoNetworks, riverbedTechnology, silverPeak,
         * vmWareSdWan, versa, other, unknownFutureValue.
         */
        deviceVendor?: DeviceVendor;
        // Specifies the client IPv4 of the link
        ipAddress?: string;
        // last modified time.
        lastModifiedDateTime?: string;
        // Name.
        name?: string;
        redundancyConfiguration?: NullableOption<RedundancyConfiguration>;
        /**
         * The connectivity settings, including the protocol, IPSec policy, and preshared key, are specified for establishing
         * connectivity.
         */
        tunnelConfiguration?: TunnelConfiguration;
    }
    interface ConditionalAccessPolicy extends microsoftgraphbeta.Entity {
        // Indicates the date and time the conditional access policy was created.
        createdDateTime?: string;
        // Provides a summary of the conditional access policy.
        description?: NullableOption<string>;
        // Represents the human-readable name or title assigned to the conditional access policy.
        displayName?: string;
        // Indicates the date and time when the conditional access policy was last modified.
        modifiedDateTime?: string;
    }
    interface ConditionalAccessSettings extends microsoftgraphbeta.Entity {
        /**
         * When SignalingStatus is enabled, the Conditional Access policy includes zero trust network access information. The
         * possible values are: enabled, disabled.
         */
        signalingStatus?: Status;
    }
    interface CrossTenantAccessSettings extends microsoftgraphbeta.Entity {
        /**
         * Determines if a header with the user tenant ID is inserted into the network traffic. .The possible values are: enabled,
         * disabled.
         */
        networkPacketTaggingStatus?: Status;
    }
    interface EnrichedAuditLogs extends microsoftgraphbeta.Entity {
        // Exchange Online enriched audit logs settings.
        exchange?: NullableOption<EnrichedAuditLogsSettings>;
        // SharePoint Online enriched audit logs settings.
        sharepoint?: NullableOption<EnrichedAuditLogsSettings>;
        // Teams enriched audit logs settings.
        teams?: NullableOption<EnrichedAuditLogsSettings>;
    }
    interface PolicyLink extends microsoftgraphbeta.Entity {
        // Link status. The possible values are: enabled, disabled.
        state?: Status;
        // Version.
        version?: string;
        // Policy.
        policy?: Policy;
    }
    interface FilteringPolicyLink extends PolicyLink {
        // The date and time when the filtering Policy link was created.
        createdDateTime?: string;
        // The date and time when the policy was most recently modified.
        lastModifiedDateTime?: string;
        loggingState?: Status;
        priority?: number;
    }
    interface PolicyRule extends microsoftgraphbeta.Entity {
        // Name.
        name?: string;
    }
    interface FilteringRule extends PolicyRule {
        /**
         * Possible destinations and types of destinations accessed by the user in accordance with the network filtering policy,
         * such as IP addresses and FQDNs/URLs.
         */
        destinations?: NullableOption<RuleDestination[]>;
        /**
         * The rule types that specify the basis for filtering. The possible values are url, fqdn, ipAddress, ipRange, ipSubnet,
         * and webCategory.
         */
        ruleType?: NetworkDestinationType;
    }
    interface ForwardingOptions extends microsoftgraphbeta.Entity {
        // Dns lookup options. The possible values are: enabled, disabled.
        skipDnsLookupState?: Status;
    }
// tslint:disable-next-line: no-empty-interface
    interface ForwardingPolicyLink extends PolicyLink {}
    interface ForwardingRule extends PolicyRule {
        // The action to apply to traffic. The possible values are: bypass, forward, unknownFutureValue.
        action?: ForwardingRuleAction;
        /**
         * Destinations maintain a list of potential destinations and destination types that the user may access within the
         * context of a network filtering policy. This includes IP addresses and fully qualified domain names (FQDNs)/URLs.
         */
        destinations?: NullableOption<RuleDestination[]>;
        /**
         * The network destination type used by a URL filtering policy is defined, which can include types such as IP (Internet
         * Protocol) or FQDN (Fully Qualified Domain Name). The possible values are: url, fqdn, ipAddress, ipRange, ipSubnet.
         */
        ruleType?: NetworkDestinationType;
    }
// tslint:disable-next-line: no-empty-interface
    interface FqdnFilteringRule extends FilteringRule {}
// tslint:disable-next-line: interface-name no-empty-interface
    interface InternetAccessForwardingRule extends ForwardingRule {}
    interface M365ForwardingRule extends ForwardingRule {
        /**
         * Defines the category of Office 365 traffic used by a forwarding rule for Microsoft 365 traffic (for example, optimized
         * traffic). The possible values are: default, optimized, allow.
         */
        category?: ForwardingCategory;
        /**
         * The port(s) used by a forwarding rule for Microsoft 365 traffic are specified to determine the specific network port(s)
         * through which the Microsoft 365 traffic is directed and forwarded.
         */
        ports?: string[];
        /**
         * Defines the networking protocol type used by a forwarding rule for Microsoft 365 traffic. The possible values are: ip,
         * icmp, igmp, ggp, ipv4, tcp, pup, udp, idp, ipv6, ipv6RoutingHeader, ipv6FragmentHeader,
         * ipSecEncapsulatingSecurityPayload, ipSecAuthenticationHeader, icmpV6, ipv6NoNextHeader, ipv6DestinationOptions, nd,
         * raw, ipx, spx, spxII
         */
        protocol?: NetworkingProtocol;
    }
// tslint:disable-next-line: no-empty-interface
    interface PrivateAccessForwardingRule extends ForwardingRule {}
// tslint:disable-next-line: no-empty-interface
    interface WebCategoryFilteringRule extends FilteringRule {}
    interface CrossTenantAccess {
        // The number of devices that accessed the external tenant.
        deviceCount?: number;
        // The timestamp of the most recent access to the external tenant.
        lastAccessDateTime?: string;
        // The tenant ID of the external tenant.
        resourceTenantId?: string;
        // The name of the external tenant.
        resourceTenantName?: NullableOption<string>;
        // The domain of the external tenant.
        resourceTenantPrimaryDomain?: string;
        // The usage status of cross-tenant access. The possible values are frequentlyUsed, rarelyUsed, and unknownFutureValue.
        usageStatus?: UsageStatus;
        // The number of users that accessed the external tenant.
        userCount?: number;
    }
    interface CrossTenantSummary {
        // The total number of authentication sessions between startDateTime and endDateTime.
        authTransactionCount?: number;
        // The number of unique devices that performed cross-tenant access.
        deviceCount?: number;
        /**
         * The number of unique tenants that were accessed between endDateTime and discoveryPivotDateTime, but weren't accessed
         * between discoveryPivotDateTime and startDateTime.
         */
        newTenantCount?: number;
        rarelyUsedTenantCount?: number;
        // The number of unique tenants that were accessed, not including the device's tenant.
        tenantCount?: number;
        // The number of unique users that performed cross-tenant access.
        userCount?: number;
    }
    interface Destination {
        // The number of unique devices that were seen.
        deviceCount?: NullableOption<number>;
        // The fully qualified domain name (FQDN) of the destination.
        fqdn?: string;
        // The internet protocol (IP) used to access the destination.
        ip?: string;
        // The most recent access DateTime.
        lastAccessDateTime?: string;
        /**
         * The set of communication rules and conventions that govern data transmission between devices in a network. The possible
         * values are: ip, icmp, igmp, ggp, ipv4, tcp, pup, udp, idp, ipv6, ipv6RoutingHeader, ipv6FragmentHeader,
         * ipSecEncapsulatingSecurityPayload, ipSecAuthenticationHeader, icmpV6, ipv6NoNextHeader, ipv6DestinationOptions, nd,
         * raw, ipx, spx, and spxII.
         */
        networkingProtocol?: NetworkingProtocol;
        // The numeric identifier that is associated with a specific endpoint in a network.
        port?: number;
        // The traffic classification. The possible values are internet, private, microsoft365, and all.
        trafficType?: TrafficType;
        // The number of transactions.
        transactionCount?: NullableOption<number>;
        // The number of unique Microsoft Entra ID users that were seen.
        userCount?: NullableOption<number>;
    }
    interface DestinationSummary {
        // The number of the destinationSummary objects, aggregated by Global Secure Access service.
        count?: number;
        // The IP address or FQDN of the destination.
        destination?: string;
        // The traffic classification. The allowed values are internet, private, microsoft365, all, and unknownFutureValue.
        trafficType?: NullableOption<TrafficType>;
    }
    interface Device {
        // A unique device ID.
        deviceId?: string;
        // The display name for the device.
        displayName?: string;
        // A value that indicates whether or not the device is compliant.
        isCompliant?: boolean;
        // The most recent access time for the device.
        lastAccessDateTime?: string;
        // The operating system on the device.
        operatingSystem?: string;
        // The traffic classification. The possible values are: internet, private, microsoft365, or all.
        trafficType?: TrafficType;
    }
    interface DeviceUsageSummary {
        // The number of distinct device IDs between the discovery pivot time and the end of the reporting period.
        activeDeviceCount?: number;
        /**
         * The discovery pivot time and the end of the reporting period, but were seen between the start of the reporting period
         * and the discovery pivot time.
         */
        inactiveDeviceCount?: number;
        // The total number of distinct device IDs that were seen during the reporting period.
        totalDeviceCount?: number;
    }
    interface EntitiesSummary {
        // The number of unique devices that were seen.
        deviceCount?: number;
        // The traffic classification. The possible values are: internet, private, microsoft365, all.
        trafficType?: TrafficType;
        // The number of unique Microsoft Entra ID users that were seen.
        userCount?: number;
        // The number of unique target workloads/hosts that were seen.
        workloadCount?: number;
    }
    interface Headers {
        // Represents the origin or source from which the request is being made.
        origin?: NullableOption<string>;
        // Represents the referring URL or the URL of the web page that the current request originates from.
        referrer?: NullableOption<string>;
        /**
         * Represents the information about the client original IP address when the request passes through one or more proxy
         * servers or load balancers.
         */
        xForwardedFor?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface RuleDestination {}
    interface TrafficDistributionPoint {
        internetAccessTrafficCount?: number;
        microsoft365AccessTrafficCount?: number;
        privateAccessTrafficCount?: number;
        timeStampDateTime?: string;
        totalTrafficCount?: number;
    }
    interface TransactionSummary {
        // The number of transactions that were blocked.
        blockedCount?: number;
        // The total number of transactions.
        totalCount?: number;
        // The trraffic classification. The possible values are internet, private, microsoft365, and all.
        trafficType?: TrafficType;
    }
    interface User {
        // User display Name.
        displayName?: string;
        // The date and time of the most recent access.
        lastAccessDateTime?: string;
        // The traffic classification. The possible values are internet, private, microsoft365, and all.
        trafficType?: TrafficType;
        // The ID for the user.
        userId?: string;
        /**
         * A unique identifier that is associated with a user in a system or directory. Typically, this value is an email address
         * that is used for user authentication and identification.
         */
        userPrincipalName?: string;
        // The user type. The possible values are member, guest, and unknownFutureValue.
        userType?: UserType;
    }
    interface WebCategoriesSummary {
        // The number of unique devices that were seen.
        deviceCount?: number;
        // The number of transactions that were seen.
        transactionCount?: number;
        // The number of unique Microsoft Entra ID users that were seen.
        userCount?: number;
        // The website category.
        webCategory?: WebCategory;
    }
    interface WebCategory extends RuleDestination {
        // The display name for the web category.
        displayName?: NullableOption<string>;
        // The group or category to which the web category belongs.
        group?: NullableOption<string>;
        // The unique name that is associated with the web category.
        name?: string;
    }
// tslint:disable-next-line: no-empty-interface
    interface Association {}
    interface AssociatedBranch extends Association {
        // Identifier for the branch.
        branchId?: string;
    }
    interface BgpConfiguration {
        // Specifies the ASN of the BGP.
        asn?: number;
        ipAddress?: NullableOption<string>;
        // Specifies the BGP IP address of peer (Microsoft, in this case).
        localIpAddress?: NullableOption<string>;
        // Specifies the BGP IP address of customer's on-premise VPN router configuration.
        peerIpAddress?: NullableOption<string>;
    }
    interface EnrichedAuditLogsSettings {
        /**
         * Define the current status of the enrichment feature for a particular workload. The possible values are: enabled,
         * disabled, unknownFutureValue.
         */
        status?: Status;
    }
    interface Fqdn extends RuleDestination {
        // Defines the FQDN used in a destination for a rule.
        value?: string;
    }
// tslint:disable-next-line: interface-name
    interface IpAddress extends RuleDestination {
        // Defines the IP address used in a destination for a rule.
        value?: string;
    }
// tslint:disable-next-line: interface-name
    interface IpRange extends RuleDestination {
        // Specifies the starting IP address of the IP range.
        beginAddress?: string;
        // Specifies the ending IP address of the IP range.
        endAddress?: string;
    }
// tslint:disable-next-line: interface-name
    interface IpSubnet extends RuleDestination {
        // Defines the IP address of the subset used in a destination for a rule.
        value?: string;
    }
    interface LocalConnectivityConfiguration {
        // Specifies ASN of one end of IPSec tunnel (local or peer).
        asn?: number;
        // Specifies BGP IPv4 address of one end of IPSec tunnel (local or peer).
        bgpAddress?: string;
        // Specifies public IPv4 address of one end of IPSec tunnel (local or peer).
        endpoint?: string;
        /**
         * Specifies the region in which the Microsoft end of the tunnel exists. Not applicable for peer configuration. The
         * possible values are: eastUS, eastUS2, westUS, westUS2, westUS3, centralUS, northCentralUS, southCentralUS, northEurope,
         * westEurope, franceCentral, germanyWestCentral, switzerlandNorth, ukSouth, canadaEast, canadaCentral, southAfricaWest,
         * southAfricaNorth, uaeNorth,unknownFutureValue.
         */
        region?: Region;
    }
    interface PeerConnectivityConfiguration {
        // Specifies ASN of one end of IPSec tunnel (local or peer).
        asn?: number;
        // Specifies BGP IPv4 address of one end of IPSec tunnel (local or peer).
        bgpAddress?: string;
        // Specifies public IPv4 address of one end of IPSec tunnel (local or peer).
        endpoint?: string;
    }
    interface PolicyRuleDelta {
        // Required. The possible values are: bypass, forward, unknownFutureValue.
        action?: ForwardingRuleAction;
        // The identifier of the policy rule to update.
        ruleId?: string;
    }
    interface RedundancyConfiguration {
        // Specifies the Device link SKU .The possible values are: noRedundancy, zoneRedundancy.
        redundancyTier?: RedundancyTier;
        /**
         * Indicate the specific IP address used for establishing the Border Gateway Protocol (BGP) connection with Microsoft's
         * network.
         */
        zoneLocalIpAddress?: NullableOption<string>;
    }
    interface TunnelConfiguration {
        // A key to establish secure connection between the link and VPN tunnel on the edge.
        preSharedKey?: NullableOption<string>;
    }
    interface TunnelConfigurationIKEv2Custom extends TunnelConfiguration {
        /**
         * Specifies the DH group identifier for IPSec SA negotiation. The possible values are: dhGroup14, dhGroup24, dhGroup2048,
         * ecp256, ecp384.
         */
        dhGroup?: DhGroup;
        // Specifies the IKE encryption protocol. The possible values are: aes128, aes192, aes256, gcmAes128, gcmAes256.
        ikeEncryption?: IkeEncryption;
        /**
         * Specifies the integration properties of the IKE protocol. The possible values are: sha256, sha384, gcmAes128,
         * gcmAes256.
         */
        ikeIntegrity?: IkeIntegrity;
        /**
         * Specifies the encryption protocol used for the IPSec tunnel. The possible values are: none, gcmAes128, gcmAes192,
         * gcmAes256.
         */
        ipSecEncryption?: IpSecEncryption;
        /**
         * Specifies the integrity properties of the IPSec protocol. The possible values are: gcmAes128, gcmAes192, gcmAes256,
         * sha256.
         */
        ipSecIntegrity?: IpSecIntegrity;
        /**
         * Specifies the Phase 2 DH group identifier for IPSec SA negotiation. The possible values are: none, pfs1, pfs2, pfs14,
         * pfs24, pfs2048, pfsmm, ecp256, ecp384.
         */
        pfsGroup?: PfsGroup;
        // a standard specifiying Security Association lifetime with recommended values from an RFC standard.
        saLifeTimeSeconds?: number;
    }
// tslint:disable-next-line: no-empty-interface
    interface TunnelConfigurationIKEv2Default extends TunnelConfiguration {}
    interface Url extends RuleDestination {
        // URL Address
        value?: string;
    }
}
export namespace Search {
    type AnswerState = "published" | "draft" | "excluded" | "unknownFutureValue";
    interface SearchAnswer extends microsoftgraphbeta.Entity {
        // Search answer description shown on search results page.
        description?: NullableOption<string>;
        // Search answer name displayed in search results.
        displayName?: string;
        // Details of the user that created or last modified the search answer. Read-only.
        lastModifiedBy?: NullableOption<IdentitySet>;
        // Timestamp of when the search answer is created or edited. Read-only.
        lastModifiedDateTime?: NullableOption<string>;
        // Search answer URL link. When users click this search answer in search results, they'll go to this URL.
        webUrl?: NullableOption<string>;
    }
    interface Acronym extends SearchAnswer {
        // What the acronym stands for.
        standsFor?: NullableOption<string>;
        // State of the acronym. Possible values are: published, draft, excluded, or unknownFutureValue.
        state?: AnswerState;
    }
    interface Bookmark extends SearchAnswer {
        // Timestamp of when the bookmark will stop to appear as a search result. Set as null for always available.
        availabilityEndDateTime?: NullableOption<string>;
        // Timestamp of when the bookmark will start to appear as a search result. Set as null for always available.
        availabilityStartDateTime?: NullableOption<string>;
        // Categories commonly used to describe this bookmark. For example, IT and HR.
        categories?: NullableOption<string[]>;
        // List of security groups able to view this bookmark.
        groupIds?: NullableOption<string[]>;
        // True if this bookmark was suggested to the admin by a user or was mined and suggested by Microsoft. Read-only.
        isSuggested?: NullableOption<boolean>;
        // Keywords that trigger this bookmark to appear in search results.
        keywords?: NullableOption<AnswerKeyword>;
        /**
         * A list of language names that are geographically specific and that this bookmark can be viewed in. Each language tag
         * value follows the pattern {language}-{region}. As an example, en-us is English as used in the United States. See
         * supported language tags for the list of possible values.
         */
        languageTags?: NullableOption<string[]>;
        /**
         * List of devices and operating systems able to view this bookmark. Possible values are: unknown, android,
         * androidForWork, ios, macOS, windowsPhone81, windowsPhone81AndLater, windows10AndLater, androidWorkProfile, androidASOP.
         */
        platforms?: microsoftgraphbeta.DevicePlatformType[];
        /**
         * List of Power Apps associated with this bookmark. If users add existing Power Apps to a bookmark, they can complete
         * tasks, such as to enter vacation time or to report expenses on the search results page.
         */
        powerAppIds?: NullableOption<string[]>;
        // State of the bookmark. Possible values are: published, draft, excluded, or unknownFutureValue.
        state?: AnswerState;
        /**
         * Variations of a bookmark for different countries or devices. Use when you need to show different content to users based
         * on their device, country/region, or both. The date and group settings will apply to all variations.
         */
        targetedVariations?: NullableOption<AnswerVariant[]>;
    }
    interface Qna extends SearchAnswer {
        // Timestamp of when the qna stops to appear as a search result. Set as null for always available.
        availabilityEndDateTime?: NullableOption<string>;
        // Timestamp of when the qna starts to appear as a search result. Set as null for always available.
        availabilityStartDateTime?: NullableOption<string>;
        // List of security groups able to view this qna.
        groupIds?: NullableOption<string[]>;
        // True if a user or Microsoft suggested this qna to the admin. Read-only.
        isSuggested?: NullableOption<boolean>;
        // Keywords that trigger this qna to appear in search results.
        keywords?: NullableOption<AnswerKeyword>;
        /**
         * A list of language names that are geographically specific and that this QnA can be viewed in. Each language tag value
         * follows the pattern {language}-{region}. As an example, en-us is English as used in the United States. For the list of
         * possible values, see supported language tags.
         */
        languageTags?: NullableOption<string[]>;
        /**
         * List of devices and operating systems able to view this qna. Possible values are: unknown, android, androidForWork,
         * ios, macOS, windowsPhone81, windowsPhone81AndLater, windows10AndLater, androidWorkProfile, androidASOP.
         */
        platforms?: microsoftgraphbeta.DevicePlatformType[];
        // State of the qna. Possible values are: published, draft, excluded, or unknownFutureValue.
        state?: AnswerState;
        /**
         * Variations of a qna for different countries or devices. Use when you need to show different content to users based on
         * their device, country/region, or both. The date and group settings apply to all variations.
         */
        targetedVariations?: NullableOption<AnswerVariant[]>;
    }
    interface AnswerKeyword {
        // A collection of keywords used to trigger the search answer.
        keywords?: NullableOption<string[]>;
        // If true, indicates that the search term contains similar words to the keywords that should trigger the search answer.
        matchSimilarKeywords?: NullableOption<boolean>;
        // Unique keywords that will guarantee the search answer is triggered.
        reservedKeywords?: NullableOption<string[]>;
    }
    interface AnswerVariant {
        // Answer variation description shown on search results page.
        description?: NullableOption<string>;
        // Answer variation name displayed in search results.
        displayName?: NullableOption<string>;
        languageTag?: NullableOption<string>;
        platform?: NullableOption<microsoftgraphbeta.DevicePlatformType>;
        // Answer variation URL link. When users click this answer variation in search results, they will go to this URL.
        webUrl?: NullableOption<string>;
    }
// tslint:disable-next-line: interface-name
    interface Identity {
        displayName?: NullableOption<string>;
        id?: NullableOption<string>;
    }
// tslint:disable-next-line: interface-name
    interface IdentitySet {
        application?: NullableOption<Identity>;
        device?: NullableOption<Identity>;
        user?: NullableOption<Identity>;
    }
}
export namespace SecurityNamespace {
    type AdditionalDataOptions = "allVersions" | "linkedFiles" | "unknownFutureValue";
    type AdditionalOptions =
        | "none"
        | "teamsAndYammerConversations"
        | "cloudAttachments"
        | "allDocumentVersions"
        | "subfolderContents"
        | "listAttachments"
        | "unknownFutureValue";
    type CaseAction =
        | "contentExport"
        | "applyTags"
        | "convertToPdf"
        | "index"
        | "estimateStatistics"
        | "addToReviewSet"
        | "holdUpdate"
        | "unknownFutureValue"
        | "purgeData"
        | "exportReport"
        | "exportResult";
    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 ExportCriteria = "searchHits" | "partiallyIndexed" | "unknownFutureValue";
    type ExportFileStructure = "none" | "directory" | "pst" | "unknownFutureValue";
    type ExportFormat = "pst" | "msg" | "eml" | "unknownFutureValue";
    type ExportLocation = "responsiveLocations" | "nonresponsiveLocations" | "unknownFutureValue";
    type ExportOptions = "originalFiles" | "text" | "pdfReplacement" | "fileInfo" | "tags" | "unknownFutureValue";
    type FileProcessingStatus =
        | "success"
        | "internalError"
        | "unknownError"
        | "processingTimeout"
        | "invalidFileId"
        | "fileSizeIsZero"
        | "fileSizeIsTooLarge"
        | "fileDepthLimitExceeded"
        | "fileBodyIsTooLong"
        | "fileTypeIsUnknown"
        | "fileTypeIsNotSupported"
        | "malformedFile"
        | "protectedFile"
        | "poisonFile"
        | "noReviewSetSummaryGenerated"
        | "extractionException"
        | "ocrProcessingTimeout"
        | "ocrFileSizeExceedsLimit"
        | "unknownFutureValue";
    type PolicyStatus = "pending" | "error" | "success" | "unknownFutureValue";
    type PurgeAreas = "mailboxes" | "teamsMessages" | "unknownFutureValue";
    type PurgeType = "recoverable" | "permanentlyDeleted" | "unknownFutureValue";
    type SourceType = "mailbox" | "site" | "unknownFutureValue";
    type BehaviorDuringRetentionPeriod =
        | "doNotRetain"
        | "retain"
        | "retainAsRecord"
        | "retainAsRegulatoryRecord"
        | "unknownFutureValue";
    type ActionSource = "manual" | "automatic" | "recommended" | "default";
    type AssignmentMethod = "standard" | "privileged" | "auto";
    type ContentAlignment = "left" | "right" | "center";
    type ContentState = "rest" | "motion" | "use";
    type WatermarkLayout = "horizontal" | "diagonal";
    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 DeviceAssetIdentifier =
        | "deviceId"
        | "deviceName"
        | "remoteDeviceName"
        | "targetDeviceName"
        | "destinationDeviceName"
        | "unknownFutureValue";
    type DeviceHealthStatus =
        | "active"
        | "inactive"
        | "impairedCommunication"
        | "noSensorData"
        | "noSensorDataImpairedCommunication"
        | "unknown"
        | "unknownFutureValue";
    type DeviceIdEntityIdentifier = "deviceId" | "unknownFutureValue";
    type DeviceRiskScore = "none" | "informational" | "low" | "medium" | "high" | "unknownFutureValue";
    type DisableUserEntityIdentifier =
        | "accountSid"
        | "initiatingProcessAccountSid"
        | "requestAccountSid"
        | "onPremSid"
        | "unknownFutureValue";
    type EmailEntityIdentifier = "networkMessageId" | "recipientEmailAddress" | "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 FileEntityIdentifier =
        | "sha1"
        | "initiatingProcessSHA1"
        | "sha256"
        | "initiatingProcessSHA256"
        | "unknownFutureValue";
    type FileHashAlgorithm = "unknown" | "md5" | "sha1" | "sha256" | "sha256ac" | "unknownFutureValue";
    type ForceUserPasswordResetEntityIdentifier =
        | "accountSid"
        | "initiatingProcessAccountSid"
        | "requestAccountSid"
        | "onPremSid"
        | "unknownFutureValue";
    type GoogleCloudLocationType = "unknown" | "regional" | "zonal" | "global" | "unknownFutureValue";
    type HuntingRuleErrorCode =
        | "queryExecutionFailed"
        | "queryExecutionThrottling"
        | "queryExceededResultSize"
        | "queryLimitsExceeded"
        | "queryTimeout"
        | "alertCreationFailed"
        | "alertReportNotFound"
        | "partialRowsFailed"
        | "unknownFutureValue";
    type HuntingRuleRunStatus = "running" | "completed" | "failed" | "partiallyFailed" | "unknownFutureValue";
    type IncidentStatus = "active" | "resolved" | "inProgress" | "redirected" | "unknownFutureValue" | "awaitingAction";
    type IsolationType = "full" | "selective" | "unknownFutureValue";
    type KubernetesPlatform = "unknown" | "aks" | "eks" | "gke" | "arc" | "unknownFutureValue";
    type KubernetesServiceType =
        | "unknown"
        | "clusterIP"
        | "externalName"
        | "nodePort"
        | "loadBalancer"
        | "unknownFutureValue";
    type MailboxAssetIdentifier =
        | "accountUpn"
        | "fileOwnerUpn"
        | "initiatingProcessAccountUpn"
        | "lastModifyingAccountUpn"
        | "targetAccountUpn"
        | "senderFromAddress"
        | "senderDisplayName"
        | "recipientEmailAddress"
        | "senderMailFromAddress"
        | "unknownFutureValue";
    type MarkUserAsCompromisedEntityIdentifier =
        | "accountObjectId"
        | "initiatingProcessAccountObjectId"
        | "servicePrincipalId"
        | "recipientObjectId"
        | "unknownFutureValue";
    type OnboardingStatus = "insufficientInfo" | "onboarded" | "canBeOnboarded" | "unsupported" | "unknownFutureValue";
    type ScopeType = "deviceGroup" | "unknownFutureValue";
    type ServiceSource =
        | "unknown"
        | "microsoftDefenderForEndpoint"
        | "microsoftDefenderForIdentity"
        | "microsoftDefenderForCloudApps"
        | "microsoftDefenderForOffice365"
        | "microsoft365Defender"
        | "azureAdIdentityProtection"
        | "microsoftAppGovernance"
        | "dataLossPrevention"
        | "unknownFutureValue"
        | "microsoftDefenderForCloud"
        | "microsoftSentinel";
    type StopAndQuarantineFileEntityIdentifier = "deviceId" | "sha1" | "initiatingProcessSHA1" | "unknownFutureValue";
    type UserAssetIdentifier =
        | "accountObjectId"
        | "accountSid"
        | "accountUpn"
        | "accountName"
        | "accountDomain"
        | "accountId"
        | "requestAccountSid"
        | "requestAccountName"
        | "requestAccountDomain"
        | "recipientObjectId"
        | "processAccountObjectId"
        | "initiatingAccountSid"
        | "initiatingProcessAccountUpn"
        | "initiatingAccountName"
        | "initiatingAccountDomain"
        | "servicePrincipalId"
        | "servicePrincipalName"
        | "targetAccountUpn"
        | "unknownFutureValue";
    type VmCloudProvider = "unknown" | "azure" | "unknownFutureValue";
    type ActionAfterRetentionPeriod = "none" | "delete" | "startDispositionReview" | "relabel" | "unknownFutureValue";
    type DefaultRecordBehavior = "startLocked" | "startUnlocked" | "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 LongRunningOperationStatus = "notStarted" | "running" | "succeeded" | "failed" | "skipped" | "unknownFutureValue";
    type SubmissionCategory = "notJunk" | "spam" | "phishing" | "malware" | "unknownFutureValue";
    type SubmissionClientSource = "microsoft" | "other" | "unknownFutureValue";
    type SubmissionContentType = "email" | "url" | "file" | "app" | "unknownFutureValue";
    type SubmissionResultCategory =
        | "notJunk"
        | "spam"
        | "phishing"
        | "malware"
        | "allowedByPolicy"
        | "blockedByPolicy"
        | "spoof"
        | "unknown"
        | "noResultAvailable"
        | "unknownFutureValue";
    type SubmissionResultDetail =
        | "none"
        | "underInvestigation"
        | "simulatedThreat"
        | "allowedBySecOps"
        | "allowedByThirdPartyFilters"
        | "messageNotFound"
        | "urlFileShouldNotBeBlocked"
        | "urlFileShouldBeBlocked"
        | "urlFileCannotMakeDecision"
        | "domainImpersonation"
        | "userImpersonation"
        | "brandImpersonation"
        | "outboundShouldNotBeBlocked"
        | "outboundShouldBeBlocked"
        | "outboundBulk"
        | "outboundCannotMakeDecision"
        | "outboundNotRescanned"
        | "zeroHourAutoPurgeAllowed"
        | "zeroHourAutoPurgeBlocked"
        | "zeroHourAutoPurgeQuarantineReleased"
        | "onPremisesSkip"
        | "allowedByTenantAllowBlockList"
        | "blockedByTenantAllowBlockList"
        | "allowedUrlByTenantAllowBlockList"
        | "allowedFileByTenantAllowBlockList"
        | "allowedSenderByTenantAllowBlockList"
        | "allowedRecipientByTenantAllowBlockList"
        | "blockedUrlByTenantAllowBlockList"
        | "blockedFileByTenantAllowBlockList"
        | "blockedSenderByTenantAllowBlockList"
        | "blockedRecipientByTenantAllowBlockList"
        | "allowedByConnection"
        | "blockedByConnection"
        | "allowedByExchangeTransportRule"
        | "blockedByExchangeTransportRule"
        | "quarantineReleased"
        | "quarantineReleasedThenBlocked"
        | "junkMailRuleDisabled"
        | "allowedByUserSetting"
        | "blockedByUserSetting"
        | "allowedByTenant"
        | "blockedByTenant"
        | "invalidFalsePositive"
        | "invalidFalseNegative"
        | "spoofBlocked"
        | "goodReclassifiedAsBad"
        | "goodReclassifiedAsBulk"
        | "goodReclassifiedAsGood"
        | "goodReclassifiedAsCannotMakeDecision"
        | "badReclassifiedAsGood"
        | "badReclassifiedAsBulk"
        | "badReclassifiedAsBad"
        | "badReclassifiedAsCannotMakeDecision"
        | "unknownFutureValue";
    type SubmissionSource = "user" | "administrator" | "unknownFutureValue";
    type TenantAllowBlockListAction = "allow" | "block" | "unknownFutureValue";
    type TenantAllowBlockListEntryType = "url" | "fileHash" | "sender" | "recipient" | "unknownFutureValue";
    type UserMailboxSetting =
        | "none"
        | "junkMailDeletion"
        | "isFromAddressInAddressBook"
        | "isFromAddressInAddressSafeList"
        | "isFromAddressInAddressBlockList"
        | "isFromAddressInAddressImplicitSafeList"
        | "isFromAddressInAddressImplicitJunkList"
        | "isFromDomainInDomainSafeList"
        | "isFromDomainInDomainBlockList"
        | "isRecipientInRecipientSafeList"
        | "customRule"
        | "junkMailRule"
        | "senderPraPresent"
        | "fromFirstTimeSender"
        | "exclusive"
        | "priorSeenPass"
        | "senderAuthenticationSucceeded"
        | "isJunkMailRuleEnabled"
        | "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 Security extends microsoftgraphbeta.Entity {
        informationProtection?: NullableOption<InformationProtection>;
    }
    interface CasesRoot extends microsoftgraphbeta.Entity {
        ediscoveryCases?: NullableOption<EdiscoveryCase[]>;
    }
// tslint:disable-next-line: interface-name
    interface InformationProtection extends microsoftgraphbeta.Entity {
        // Read the Microsoft Purview Information Protection policy settings for the user or organization.
        labelPolicySettings?: NullableOption<InformationProtectionPolicySetting>;
        // Read the Microsoft Purview Information Protection labels for the user or organization.
        sensitivityLabels?: NullableOption<SensitivityLabel[]>;
    }
    interface Alert extends microsoftgraphbeta.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;
        systemTags?: NullableOption<string[]>;
        // 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 microsoftgraphbeta.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;
        recommendedActions?: NullableOption<string>;
        recommendedHuntingQueries?: NullableOption<RecommendedHuntingQuery[]>;
        /**
         * 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 LabelsRoot extends microsoftgraphbeta.Entity {
        // Specifies the underlying authority that describes the type of content to be retained and its retention schedule.
        authorities?: NullableOption<AuthorityTemplate[]>;
        // Specifies a group of similar types of content in a particular department.
        categories?: NullableOption<CategoryTemplate[]>;
        /**
         * The specific rule or regulation created by a jurisdiction used to determine whether certain labels and content should
         * be retained or deleted.
         */
        citations?: NullableOption<CitationTemplate[]>;
        // Specifies the department or business unit of an organization to which a label belongs.
        departments?: NullableOption<DepartmentTemplate[]>;
        // Specifies a unique alpha-numeric identifier for an organization’s retention schedule.
        filePlanReferences?: NullableOption<FilePlanReferenceTemplate[]>;
        // Represents how customers can manage their data, whether and for how long to retain or delete it.
        retentionLabels?: NullableOption<RetentionLabel[]>;
    }
    interface TriggersRoot extends microsoftgraphbeta.Entity {
        retentionEvents?: NullableOption<RetentionEvent[]>;
    }
    interface TriggerTypesRoot extends microsoftgraphbeta.Entity {
        retentionEventTypes?: NullableOption<RetentionEventType[]>;
    }
    interface ThreatSubmissionRoot extends microsoftgraphbeta.Entity {
        emailThreats?: NullableOption<EmailThreatSubmission[]>;
        emailThreatSubmissionPolicies?: NullableOption<EmailThreatSubmissionPolicy[]>;
        fileThreats?: NullableOption<FileThreatSubmission[]>;
        urlThreats?: NullableOption<UrlThreatSubmission[]>;
    }
    interface ThreatIntelligence extends microsoftgraphbeta.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 microsoftgraphbeta.Entity {
        createdDateTime?: NullableOption<string>;
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        lastModifiedBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        lastModifiedDateTime?: NullableOption<string>;
        status?: NullableOption<CaseStatus>;
    }
    interface CaseOperation extends microsoftgraphbeta.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<microsoftgraphbeta.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<microsoftgraphbeta.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<microsoftgraphbeta.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 eDiscoveryHoldPolicy objects for this case.
        legalHolds?: NullableOption<EdiscoveryHoldPolicy[]>;
        // 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 microsoftgraphbeta.Entity {
        createdBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        createdDateTime?: NullableOption<string>;
        displayName?: NullableOption<string>;
    }
    interface DataSource extends microsoftgraphbeta.Entity {
        // The user who created the dataSource.
        createdBy?: NullableOption<microsoftgraphbeta.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 microsoftgraphbeta.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 files within the review set.
        files?: NullableOption<EdiscoveryFile[]>;
        // Represents queries within the review set.
        queries?: NullableOption<EdiscoveryReviewSetQuery[]>;
    }
    interface Search extends microsoftgraphbeta.Entity {
        contentQuery?: NullableOption<string>;
        createdBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        createdDateTime?: NullableOption<string>;
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        lastModifiedBy?: NullableOption<microsoftgraphbeta.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 custodian. This is the container for a custodian's mailbox and OneDrive for Business site.
        userSources?: NullableOption<UserSource[]>;
    }
    interface PolicyBase extends microsoftgraphbeta.Entity {
        createdBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        createdDateTime?: NullableOption<string>;
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        lastModifiedBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        lastModifiedDateTime?: NullableOption<string>;
        status?: NullableOption<PolicyStatus>;
    }
    interface EdiscoveryHoldPolicy extends PolicyBase {
        /**
         * KQL query that specifies content to be held in the specified locations. To learn more, see Keyword queries and search
         * conditions for Content Search and eDiscovery. To hold all content in the specified locations, leave contentQuery blank.
         */
        contentQuery?: NullableOption<string>;
        // Lists any errors that happened while placing the hold.
        errors?: NullableOption<string[]>;
        // Indicates whether the hold is enabled and actively holding content.
        isEnabled?: NullableOption<boolean>;
        // Data sources that represent SharePoint sites.
        siteSources?: NullableOption<SiteSource[]>;
        // Data sources that represent Exchange mailboxes.
        userSources?: NullableOption<UserSource[]>;
    }
    interface EdiscoveryNoncustodialDataSource extends DataSourceContainer {
        // User source or SharePoint site data source as non-custodial data source.
        dataSource?: NullableOption<DataSource>;
        // Operation entity that represents the latest indexing for the non-custodial data source.
        lastIndexOperation?: NullableOption<EdiscoveryIndexOperation>;
    }
    interface EdiscoveryCaseSettings extends microsoftgraphbeta.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 microsoftgraphbeta.Entity {
        createdBy?: NullableOption<microsoftgraphbeta.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?: microsoftgraphbeta.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?: microsoftgraphbeta.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 {
        azureBlobContainer?: NullableOption<string>;
        azureBlobToken?: NullableOption<string>;
        // 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, fileInfo, tags. The fileInfo member is deprecated and will stop returning data on April 30, 2023.
         * Going forward, the summary and load file are always included.
         */
        exportOptions?: NullableOption<ExportOptions>;
        /**
         * The options provided that specify the structure of the export. For more information, see reviewSet: export. Possible
         * values are: none, directory, pst.
         */
        exportStructure?: NullableOption<ExportFileStructure>;
        outputFolderId?: NullableOption<string>;
        // 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 {}
    interface File extends microsoftgraphbeta.Entity {
        content?: NullableOption<any>;
        dateTime?: NullableOption<string>;
        extension?: NullableOption<string>;
        extractedTextContent?: NullableOption<any>;
        mediaType?: NullableOption<string>;
        name?: NullableOption<string>;
        otherProperties?: NullableOption<StringValueDictionary>;
        processingStatus?: NullableOption<FileProcessingStatus>;
        senderOrAuthors?: NullableOption<string[]>;
        size?: NullableOption<number>;
        sourceType?: NullableOption<SourceType>;
        subjectTitle?: NullableOption<string>;
    }
    interface EdiscoveryFile extends File {
        // Custodians associated with the file.
        custodian?: NullableOption<EdiscoveryCustodian>;
        // Tags associated with the file.
        tags?: NullableOption<EdiscoveryReviewTag[]>;
    }
// tslint:disable-next-line: no-empty-interface
    interface EdiscoveryHoldOperation extends CaseOperation {}
// tslint:disable-next-line: no-empty-interface
    interface EdiscoveryPurgeDataOperation extends CaseOperation {}
    interface EdiscoverySearchExportOperation extends CaseOperation {
        additionalOptions?: NullableOption<AdditionalOptions>;
        description?: NullableOption<string>;
        displayName?: NullableOption<string>;
        exportCriteria?: NullableOption<ExportCriteria>;
        exportFileMetadata?: NullableOption<ExportFileMetadata[]>;
        exportFormat?: NullableOption<ExportFormat>;
        exportLocation?: NullableOption<ExportLocation>;
        exportSingleItems?: NullableOption<boolean>;
        search?: NullableOption<EdiscoverySearch>;
    }
// tslint:disable-next-line: no-empty-interface
    interface EdiscoveryTagOperation extends CaseOperation {}
// tslint:disable-next-line: interface-name
    interface InformationProtectionPolicySetting extends microsoftgraphbeta.Entity {
        defaultLabelId?: NullableOption<string>;
        // Exposes whether justification input is required on label downgrade.
        isDowngradeJustificationRequired?: boolean;
        // Exposes whether mandatory labeling is enabled.
        isMandatory?: boolean;
        // Exposes the more information URL that can be configured by the administrator.
        moreInfoUrl?: NullableOption<string>;
    }
    interface SensitivityLabel extends microsoftgraphbeta.Entity {
        // The color that the UI should display for the label, if configured.
        color?: NullableOption<string>;
        // Returns the supported content formats for the label.
        contentFormats?: NullableOption<string[]>;
        // The admin-defined description for the label.
        description?: NullableOption<string>;
        // Indicates whether the label has protection actions configured.
        hasProtection?: boolean;
        // Indicates whether the label is active or not. Active labels should be hidden or disabled in the UI.
        isActive?: boolean;
        // Indicates whether the label can be applied to content. False if the label is a parent with child labels.
        isAppliable?: boolean;
        // The plaintext name of the label.
        name?: NullableOption<string>;
        // The sensitivity value of the label, where lower is less sensitive.
        sensitivity?: number;
        // The tooltip that should be displayed for the label in a UI.
        tooltip?: NullableOption<string>;
        // The parent label associated with a child label. Null if the label has no parent.
        parent?: NullableOption<SensitivityLabel>;
    }
    interface ProtectionRule extends microsoftgraphbeta.Entity {
        createdBy?: string;
        createdDateTime?: string;
        displayName?: string;
        isEnabled?: boolean;
        lastModifiedBy?: string;
        lastModifiedDateTime?: string;
    }
    interface DetectionRule extends ProtectionRule {
        detectionAction?: NullableOption<DetectionAction>;
        lastRunDetails?: NullableOption<RunDetails>;
        queryCondition?: NullableOption<QueryCondition>;
        schedule?: NullableOption<RuleSchedule>;
    }
    interface FilePlanDescriptorTemplate extends microsoftgraphbeta.Entity {
        // Represents the user who created the filePlanDescriptorTemplate column.
        createdBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        // Represents the date and time in which the filePlanDescriptorTemplate is created.
        createdDateTime?: NullableOption<string>;
        // Unique string that defines a filePlanDescriptorTemplate name.
        displayName?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface AuthorityTemplate extends FilePlanDescriptorTemplate {}
    interface CategoryTemplate extends FilePlanDescriptorTemplate {
        // Represents all subcategories under a particular category.
        subCategories?: NullableOption<SubCategoryTemplate[]>;
    }
// tslint:disable-next-line: no-empty-interface
    interface SubCategoryTemplate extends FilePlanDescriptorTemplate {}
    interface CitationTemplate extends FilePlanDescriptorTemplate {
        // Represents the jurisdiction or agency that published the citation.
        citationJurisdiction?: NullableOption<string>;
        // Represents the URL to the published citation.
        citationUrl?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface DepartmentTemplate extends FilePlanDescriptorTemplate {}
    interface DispositionReviewStage extends microsoftgraphbeta.Entity {
        // Name representing each stage within a collection.
        name?: NullableOption<string>;
        // A collection of reviewers at each stage.
        reviewersEmailAddresses?: NullableOption<string[]>;
        // The sequence number for each stage of the disposition review.
        stageNumber?: NullableOption<number>;
    }
    interface FilePlanDescriptor extends microsoftgraphbeta.Entity {
        // Represents the file plan descriptor of type authority applied to a particular retention label.
        authority?: NullableOption<Authority>;
        category?: NullableOption<AppliedCategory>;
        // Represents the file plan descriptor of type citation applied to a particular retention label.
        citation?: NullableOption<Citation>;
        // Represents the file plan descriptor of type department applied to a particular retention label.
        department?: NullableOption<Department>;
        // Represents the file plan descriptor of type filePlanReference applied to a particular retention label.
        filePlanReference?: NullableOption<FilePlanReference>;
        // Specifies the underlying authority that describes the type of content to be retained and its retention schedule.
        authorityTemplate?: NullableOption<AuthorityTemplate>;
        // Specifies a group of similar types of content in a particular department.
        categoryTemplate?: NullableOption<CategoryTemplate>;
        /**
         * The specific rule or regulation created by a jurisdiction used to determine whether certain labels and content should
         * be retained or deleted.
         */
        citationTemplate?: NullableOption<CitationTemplate>;
        // Specifies the department or business unit of an organization to which a label belongs.
        departmentTemplate?: NullableOption<DepartmentTemplate>;
        // Specifies a unique alpha-numeric identifier for an organization’s retention schedule.
        filePlanReferenceTemplate?: NullableOption<FilePlanReferenceTemplate>;
    }
// tslint:disable-next-line: no-empty-interface
    interface FilePlanReferenceTemplate extends FilePlanDescriptorTemplate {}
    interface RetentionLabel extends microsoftgraphbeta.Entity {
        /**
         * Specifies the action to take on a document with this label applied during the retention period. The possible values
         * are: none, delete, startDispositionReview, unknownFutureValue.
         */
        actionAfterRetentionPeriod?: NullableOption<ActionAfterRetentionPeriod>;
        /**
         * Specifies how the behavior of a document with this label should be during the retention period. The possible values
         * are: doNotRetain, retain, retainAsRecord, retainAsRegulatoryRecord, unknownFutureValue.
         */
        behaviorDuringRetentionPeriod?: NullableOption<BehaviorDuringRetentionPeriod>;
        // Represents the user who created the retentionLabel.
        createdBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        // Represents the date and time in which the retentionLabel is created.
        createdDateTime?: NullableOption<string>;
        /**
         * Specifies the locked or unlocked state of a record label when it is created.The possible values are: startLocked,
         * startUnlocked, unknownFutureValue.
         */
        defaultRecordBehavior?: NullableOption<DefaultRecordBehavior>;
        // Provides label information for the admin. Optional.
        descriptionForAdmins?: NullableOption<string>;
        // Provides the label information for the user. Optional.
        descriptionForUsers?: NullableOption<string>;
        // Unique string that defines a label name.
        displayName?: NullableOption<string>;
        // Specifies whether the label is currently being used.
        isInUse?: NullableOption<boolean>;
        // Specifies the replacement label to be applied automatically after the retention period of the current label ends.
        labelToBeApplied?: NullableOption<string>;
        // The user who last modified the retentionLabel.
        lastModifiedBy?: NullableOption<microsoftgraphbeta.IdentitySet>;
        // The latest date time when the retentionLabel was modified.
        lastModifiedDateTime?: NullableOption<string>;
        // Specifies the number of days to retain the content.
        retentionDuration?: NullableOption<RetentionDuration>;
        /**
         * Specifies whether the retention duration is calculated from the content creation date, labeled date, or last
         * modification date. The possible values are: dateLabeled, dateCreated, dateModified, dateOfEvent, unknownFutureValue.
         */
        retentionTrigger?: NullableOption<RetentionTrigger>;
        /**
         * Represents out-of-the-box values that provide more options to improve the manageability and organization of the content
         * you need to label.
         */
        descriptors?: NullableOption<FilePlanDescriptor>;
        /**
         * When action at the end of retention is chosen as 'dispositionReview', dispositionReviewStages specifies a sequential
         * set of stages with at least one reviewer in each stage.
         */
        dispositionReviewStages?: NullableOption<DispositionReviewStage[]>;
        // Represents the type associated with a retention event.
        retentionEventType?: NullableOption<RetentionEventType>;
    }
    interface RetentionEvent extends microsoftgraphbeta.Entity {
        // The user who created the retentionEvent.
        createdBy?: NullableOption<microsoftgraphbeta.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<microsoftgraphbeta.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 microsoftgraphbeta.Entity {
        // The user who created the retentionEventType.
        createdBy?: NullableOption<microsoftgraphbeta.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<microsoftgraphbeta.IdentitySet>;
        // The latest date time when the retentionEventType was modified.
        lastModifiedDateTime?: NullableOption<string>;
    }
    interface ThreatSubmission extends microsoftgraphbeta.Entity {
        /**
         * Specifies the admin review property that constitutes of who reviewed the user submission, when and what was it
         * identified as.
         */
        adminReview?: NullableOption<SubmissionAdminReview>;
        /**
         * Specifies the category of the submission. Supports $filter = category eq 'value'. The possible values are: notJunk,
         * spam, phishing, malware and unkownFutureValue.
         */
        category?: SubmissionCategory;
        // Specifies the source of the submission. The possible values are: microsoft, other and unkownFutureValue.
        clientSource?: NullableOption<SubmissionClientSource>;
        // Specifies the type of content being submitted. The possible values are: email, url, file, app and unkownFutureValue.
        contentType?: NullableOption<SubmissionContentType>;
        // Specifies who submitted the email as a threat. Supports $filter = createdBy/email eq 'value'.
        createdBy?: NullableOption<SubmissionUserIdentity>;
        /**
         * Specifies when the threat submission was created. Supports $filter = createdDateTime ge 2022-01-01T00:00:00Z and
         * createdDateTime lt 2022-01-02T00:00:00Z.
         */
        createdDateTime?: NullableOption<string>;
        // Specifies the result of the analysis performed by Microsoft.
        result?: NullableOption<SubmissionResult>;
        /**
         * Specifies the role of the submitter. Supports $filter = source eq 'value'. The possible values are: administrator, user
         * and unkownFutureValue.
         */
        source?: NullableOption<SubmissionSource>;
        /**
         * Indicates whether the threat submission has been analyzed by Microsoft. Supports $filter = status eq 'value'. The
         * possible values are: notStarted, running, succeeded, failed, skipped and unkownFutureValue.
         */
        status?: NullableOption<LongRunningOperationStatus>;
        /**
         * Indicates the tenant id of the submitter. Not required when created using a POST operation. It's extracted from the
         * token of the post API call.
         */
        tenantId?: NullableOption<string>;
    }
    interface EmailThreatSubmission extends ThreatSubmission {
        // If the email is phishing simulation, this field won't be null.
        attackSimulationInfo?: NullableOption<AttackSimulationInfo>;
        // Specifies the internet message ID of the email being submitted. This information is present in the email header.
        internetMessageId?: NullableOption<string>;
        /**
         * The original category of the submission. The possible values are: notJunk, spam, phishing, malware and
         * unkownFutureValue.
         */
        originalCategory?: NullableOption<SubmissionCategory>;
        // Specifies the date and time stamp when the email was received.
        receivedDateTime?: NullableOption<string>;
        // Specifies the email address (in smtp format) of the recipient who received the email.
        recipientEmailAddress?: string;
        // Specifies the email address of the sender.
        sender?: NullableOption<string>;
        // Specifies the IP address of the sender.
        senderIP?: NullableOption<string>;
        // Specifies the subject of the email.
        subject?: NullableOption<string>;
        /**
         * It's used to automatically add allows for the components such as URL, file, sender; which are deemed bad by Microsoft
         * so that similar messages in the future can be allowed.
         */
        tenantAllowOrBlockListAction?: NullableOption<TenantAllowOrBlockListAction>;
    }
    interface EmailContentThreatSubmission extends EmailThreatSubmission {
        // Base64 encoded file content.
        fileContent?: string;
    }
    interface EmailThreatSubmissionPolicy extends microsoftgraphbeta.Entity {
        /**
         * Specifies the email address of the sender from which email notifications will be sent to end users to inform them
         * whether an email is spam, phish or clean. The default value is null. Optional for creation.
         */
        customizedNotificationSenderEmailAddress?: string;
        /**
         * Specifies the destination where the reported messages from end users land whenever they report something as phish, junk
         * or not junk. The default value is null. Optional for creation.
         */
        customizedReportRecipientEmailAddress?: string;
        /**
         * Indicates whether end users can report a message as spam, phish or junk directly without a confirmation(popup). The
         * default value is true. Optional for creation.
         */
        isAlwaysReportEnabledForUsers?: boolean;
        /**
         * Indicates whether end users can confirm using a popup before reporting messages as spam, phish or not junk. The default
         * value is true. Optional for creation.
         */
        isAskMeEnabledForUsers?: boolean;
        /**
         * Indicates whether the email notifications sent to end users to inform them if an email is a phish mail, spam or junk is
         * customized or not. The default value is false. Optional for creation.
         */
        isCustomizedMessageEnabled?: boolean;
        /**
         * If enabled, customized message only shows when email is reported as phishing. The default value is false. Optional for
         * creation.
         */
        isCustomizedMessageEnabledForPhishing?: boolean;
        /**
         * Indicates whether to use the sender email address set using customizedNotificationSenderEmailAddress for sending email
         * notifications to end users. The default value is false. Optional for creation.
         */
        isCustomizedNotificationSenderEnabled?: boolean;
        /**
         * Indicates whether end users can move the message from one folder to another based on the action of spam, phish or not
         * junk without actually reporting it. The default value is true. Optional for creation.
         */
        isNeverReportEnabledForUsers?: boolean;
        /**
         * Indicates whether the branding logo should be used in the email notifications sent to end users. The default value is
         * false. Optional for creation.
         */
        isOrganizationBrandingEnabled?: boolean;
        // Indicates whether end users can submit from the quarantine page. The default value is true. Optional for creation.
        isReportFromQuarantineEnabled?: boolean;
        /**
         * Indicates whether emails reported by end users should be sent to the custom mailbox configured using
         * customizedReportRecipientEmailAddress. The default value is false. Optional for creation.
         */
        isReportToCustomizedEmailAddressEnabled?: boolean;
        // If enabled, the email is sent to Microsoft for analysis. The default value is false. Required for creation.
        isReportToMicrosoftEnabled?: boolean;
        /**
         * Indicates whether an email notification is sent to the end user who reported the email when it has been reviewed by the
         * admin. The default value is false. Optional for creation.
         */
        isReviewEmailNotificationEnabled?: boolean;
    }
    interface EmailUrlThreatSubmission extends EmailThreatSubmission {
        // Specifies the url of the message to be submitted.
        messageUrl?: string;
    }
    interface FileThreatSubmission extends ThreatSubmission {
        // It specifies the file name to be submitted.
        fileName?: string;
    }
    interface FileContentThreatSubmission extends FileThreatSubmission {
        // It specifies the file content in base 64 format.
        fileContent?: string;
    }
    interface FileUrlThreatSubmission extends FileThreatSubmission {
        // It specifies the URL of the file that needs to be submitted.
        fileUrl?: string;
    }
    interface UrlThreatSubmission extends ThreatSubmission {
        // Denotes the webUrl that needs to be submitted.
        webUrl?: string;
    }
// tslint:disable-next-line: no-empty-interface
    interface Artifact extends microsoftgraphbeta.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 this web component was observed by Microsoft Defender Threat Intelligence. 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 most recent date and time when this web component was observed by Microsoft Defender Threat Intelligence. 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;
        // 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 you navigate 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 time. 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 time. 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 cihldHost.
         */
        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 microsoftgraphbeta.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 microsoftgraphbeta.Entity {
        // The source that provides this indicator. The possible values are: microsoft, osint, 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 microsoftgraphbeta.Entity {
        /**
         * The first date and time when Microsoft Defender Threat Intelligence 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 last date and time when Microsoft Defender Threat Intelligence 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 time. 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 time. 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 microsoftgraphbeta.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 microsoftgraphbeta.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 that this hostSslCertificate was observed. 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?: NullableOption<string>;
        /**
         * The most recent date and time that this hostSslCertificate was observed. 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?: 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 microsoftgraphbeta.Entity {
        /**
         * The first date and time when Microsoft Defender Threat Intelligence 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 time. 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 time. 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 microsoftgraphbeta.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 time. 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 time. 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 time. 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 time. 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 time. 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 microsoftgraphbeta.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 microsoftgraphbeta.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 microsoftgraphbeta.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>;
    }
// tslint:disable-next-line: interface-name no-empty-interface
    interface InformationProtectionAction {}
    interface AddContentFooterAction extends InformationProtectionAction {
        // The horizontal alignment of the footer.
        alignment?: ContentAlignment;
        // Color of the font to use for the footer.
        fontColor?: NullableOption<string>;
        // Name of the font to use for the footer.
        fontName?: NullableOption<string>;
        // Font size to use for the footer.
        fontSize?: number;
        // The margin of the header from the bottom of the document.
        margin?: number;
        // The contents of the footer itself.
        text?: NullableOption<string>;
        // The name of the UI element where the footer should be placed.
        uiElementName?: NullableOption<string>;
    }
    interface AddContentHeaderAction extends InformationProtectionAction {
        // The horizontal alignment of the header.
        alignment?: ContentAlignment;
        // Color of the font to use for the header.
        fontColor?: NullableOption<string>;
        // Name of the font to use for the header.
        fontName?: NullableOption<string>;
        // Font size to use for the header.
        fontSize?: number;
        // The margin of the header from the top of the document.
        margin?: number;
        // The contents of the header itself.
        text?: NullableOption<string>;
        // The name of the UI element where the header should be placed.
        uiElementName?: NullableOption<string>;
    }
    interface AddWatermarkAction extends InformationProtectionAction {
        // Color of the font to use for the watermark.
        fontColor?: NullableOption<string>;
        // Name of the font to use for the watermark.
        fontName?: NullableOption<string>;
        // Font size to use for the watermark.
        fontSize?: number;
        // The layout of the watermark. Possible values are: horizontal, diagonal.
        layout?: WatermarkLayout;
        // The contents of the watermark itself.
        text?: NullableOption<string>;
        // The name of the UI element where the watermark should be placed.
        uiElementName?: NullableOption<string>;
    }
    interface ApplyLabelAction extends InformationProtectionAction {
        // The collection of actions that should be implemented by the caller.
        actions?: NullableOption<InformationProtectionAction[]>;
        // Specifies why the label was selected. Possible values are: manual, automatic, recommended, default.
        actionSource?: ActionSource;
        /**
         * If the label was the result of an automatic classification, supply the list of sensitive info type GUIDs that resulted
         * in the returned label.
         */
        responsibleSensitiveTypeIds?: string[];
        sensitivityLabelId?: NullableOption<string>;
    }
    interface BufferDecryptionResult {
        decryptedBuffer?: NullableOption<string>;
    }
    interface BufferEncryptionResult {
        encryptedBuffer?: NullableOption<string>;
        publishingLicense?: NullableOption<string>;
    }
    interface ClassificationResult {
        // The confidence level, 0 to 100, of the result.
        confidenceLevel?: number;
        // The number of instances of the specific information type in the input.
        count?: number;
        // The GUID of the discovered sensitive information type.
        sensitiveTypeId?: string;
    }
    interface ContentInfo {
        // The format of the content to be labeled. Possible values are: file, email.
        contentFormat?: NullableOption<string>;
        // Identifier used for Azure Information Protection Analytics.
        identifier?: NullableOption<string>;
        /**
         * Existing Microsoft Purview Information Protection metadata is passed as key-value pairs, where the key is the
         * MSIPLabelGUID_PropName.
         */
        metadata?: NullableOption<KeyValuePair[]>;
        // The usage state of the content. The possible values are: rest, motion, or use.
        state?: ContentState;
    }
    interface KeyValuePair {
        // Name for this key-value pair.
        name?: string;
        // Value for this key-value pair.
        value?: NullableOption<string>;
    }
    interface ContentLabel {
        // Describes whether the label was applied by an automated (standard) process or a person (privileged).
        assignmentMethod?: AssignmentMethod;
        createdDateTime?: NullableOption<string>;
        sensitivityLabelId?: NullableOption<string>;
    }
    interface CustomAction extends InformationProtectionAction {
        // Name of the custom action.
        name?: NullableOption<string>;
        // Properties, in key-value pair format, of the action.
        properties?: NullableOption<KeyValuePair[]>;
    }
    interface DowngradeJustification {
        // Indicates whether the downgrade is or isn't justified.
        isDowngradeJustified?: boolean;
        // Message that indicates why a downgrade is justified. The message appears in administrative logs.
        justificationMessage?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface JustifyAction extends InformationProtectionAction {}
    interface LabelingOptions {
        // Describes whether the label was applied by an automated (standard) process or a person (privileged).
        assignmentMethod?: AssignmentMethod;
        // The downgrade justification object that indicates if downgrade was justified and, if so, the reason.
        downgradeJustification?: NullableOption<DowngradeJustification>;
        /**
         * Extended properties will be parsed and returned in the standard Microsoft Purview Information Protection labeled
         * metadata format as part of the label information.
         */
        extendedProperties?: NullableOption<KeyValuePair[]>;
        // The GUID of the label that should be applied to the information.
        labelId?: string;
    }
    interface MetadataAction extends InformationProtectionAction {
        // A collection of key-value pairs that should be added to the file.
        metadataToAdd?: NullableOption<KeyValuePair[]>;
        // A collection of strings that indicate which keys to remove from the file metadata.
        metadataToRemove?: NullableOption<string[]>;
    }
// tslint:disable-next-line: no-empty-interface
    interface ProtectAdhocAction extends InformationProtectionAction {}
    interface ProtectByTemplateAction extends InformationProtectionAction {
        // The unique identifier for a protection template in Microsoft Purview Information Protection to apply to the content.
        templateId?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface ProtectDoNotForwardAction extends InformationProtectionAction {}
    interface RecommendLabelAction extends InformationProtectionAction {
        // Actions to take if the label is accepted by the user.
        actions?: NullableOption<InformationProtectionAction[]>;
        // Specifies why the label was selected. Possible values are: manual, automatic, recommended, default.
        actionSource?: ActionSource;
        // The sensitive information type GUIDs that caused the recommendation to be given.
        responsibleSensitiveTypeIds?: string[];
        sensitivityLabelId?: NullableOption<string>;
    }
    interface RemoveContentFooterAction extends InformationProtectionAction {
        // The name of the UI element of the footer to be removed.
        uiElementNames?: NullableOption<string[]>;
    }
    interface RemoveContentHeaderAction extends InformationProtectionAction {
        // The name of the UI element of the header to be removed.
        uiElementNames?: NullableOption<string[]>;
    }
// tslint:disable-next-line: no-empty-interface
    interface RemoveProtectionAction extends InformationProtectionAction {}
    interface RemoveWatermarkAction extends InformationProtectionAction {
        // The name of the UI element of watermark to be removed.
        uiElementNames?: NullableOption<string[]>;
    }
    interface SigningResult {
        signature?: NullableOption<string>;
        signingKeyId?: NullableOption<string>;
    }
    interface VerificationResult {
        signatureValid?: boolean;
    }
    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 AlertTemplate {
        category?: string;
        description?: string;
        impactedAssets?: ImpactedAsset[];
        mitreTechniques?: NullableOption<string[]>;
        recommendedActions?: NullableOption<string>;
        severity?: AlertSeverity;
        title?: string;
    }
// tslint:disable-next-line: interface-name no-empty-interface
    interface ImpactedAsset {}
// tslint:disable-next-line: no-empty-interface
    interface ResponseAction {}
    interface AllowFileResponseAction extends ResponseAction {
        deviceGroupNames?: NullableOption<string[]>;
        identifier?: FileEntityIdentifier;
    }
    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 BlockFileResponseAction extends ResponseAction {
        deviceGroupNames?: NullableOption<string[]>;
        identifier?: FileEntityIdentifier;
    }
    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 CollectInvestigationPackageResponseAction extends ResponseAction {
        identifier?: DeviceIdEntityIdentifier;
    }
    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 that 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 DetectionAction {
        alertTemplate?: AlertTemplate;
        organizationalScope?: NullableOption<OrganizationalScope>;
        responseActions?: NullableOption<ResponseAction[]>;
    }
    interface OrganizationalScope {
        scopeNames?: NullableOption<string[]>;
        scopeType?: ScopeType;
    }
    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 device group.
        rbacGroupId?: NullableOption<number>;
        // The name of the role-based access control 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 {}
    interface DisableUserResponseAction extends ResponseAction {
        identifier?: DisableUserEntityIdentifier;
    }
// 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 ForceUserPasswordResetResponseAction extends ResponseAction {
        identifier?: ForceUserPasswordResetEntityIdentifier;
    }
    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 HardDeleteResponseAction extends ResponseAction {
        identifier?: EmailEntityIdentifier;
    }
    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 ImpactedDeviceAsset extends ImpactedAsset {
        identifier?: DeviceAssetIdentifier;
    }
// tslint:disable-next-line: interface-name
    interface ImpactedMailboxAsset extends ImpactedAsset {
        identifier?: MailboxAssetIdentifier;
    }
// tslint:disable-next-line: interface-name
    interface ImpactedUserAsset extends ImpactedAsset {
        identifier?: UserAssetIdentifier;
    }
// tslint:disable-next-line: interface-name
    interface InitiateInvestigationResponseAction extends ResponseAction {
        identifier?: DeviceIdEntityIdentifier;
    }
// tslint:disable-next-line: interface-name
    interface IpEvidence extends AlertEvidence {
        // The two-letter country code according to ISO 3166 format, for example: US, UK, or CA.).
        countryLetterCode?: NullableOption<string>;
        // The value of the IP Address can be either in V4 address or V6 address format.
        ipAddress?: NullableOption<string>;
    }
// tslint:disable-next-line: interface-name
    interface IsolateDeviceResponseAction extends ResponseAction {
        identifier?: DeviceIdEntityIdentifier;
        isolationType?: IsolationType;
    }
    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.
        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 MarkUserAsCompromisedResponseAction extends ResponseAction {
        identifier?: MarkUserAsCompromisedEntityIdentifier;
    }
    interface MoveToDeletedItemsResponseAction extends ResponseAction {
        identifier?: EmailEntityIdentifier;
    }
    interface MoveToInboxResponseAction extends ResponseAction {
        identifier?: EmailEntityIdentifier;
    }
    interface MoveToJunkResponseAction extends ResponseAction {
        identifier?: EmailEntityIdentifier;
    }
    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 QueryCondition {
        lastModifiedDateTime?: NullableOption<string>;
        queryText?: string;
    }
    interface RecommendedHuntingQuery {
        kqlText?: NullableOption<string>;
    }
    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 RestrictAppExecutionResponseAction extends ResponseAction {
        identifier?: DeviceIdEntityIdentifier;
    }
    interface RuleSchedule {
        nextRunDateTime?: NullableOption<string>;
        period?: string;
    }
    interface RunAntivirusScanResponseAction extends ResponseAction {
        identifier?: DeviceIdEntityIdentifier;
    }
    interface RunDetails {
        errorCode?: NullableOption<HuntingRuleErrorCode>;
        failureReason?: NullableOption<string>;
        lastRunDateTime?: NullableOption<string>;
        status?: NullableOption<HuntingRuleRunStatus>;
    }
    interface SecurityGroupEvidence extends AlertEvidence {
        // The name of the security group.
        displayName?: NullableOption<string>;
        // Unique identifier of the security group.
        securityGroupId?: NullableOption<string>;
    }
    interface SoftDeleteResponseAction extends ResponseAction {
        identifier?: EmailEntityIdentifier;
    }
    interface StopAndQuarantineFileResponseAction extends ResponseAction {
        identifier?: StopAndQuarantineFileEntityIdentifier;
    }
    interface UrlEvidence extends AlertEvidence {
        // The Unique Resource Locator (URL).
        url?: NullableOption<string>;
    }
    interface UserEvidence extends AlertEvidence {
        // The user account details.
        userAccount?: NullableOption<UserAccount>;
    }
    interface FilePlanDescriptorBase {
        // Unique string that defines the name for each file plan descriptor associated with a particular retention label.
        displayName?: NullableOption<string>;
    }
    interface AppliedCategory extends FilePlanDescriptorBase {
        /**
         * Represents the file plan descriptor for a subcategory under a specific category, which has been assigned to a
         * particular retention label.
         */
        subCategory?: NullableOption<SubCategory>;
    }
// tslint:disable-next-line: no-empty-interface
    interface SubCategory extends FilePlanDescriptorBase {}
// tslint:disable-next-line: no-empty-interface
    interface Authority extends FilePlanDescriptorBase {}
    interface Citation extends FilePlanDescriptorBase {
        // Represents the jurisdiction or agency that published the citation.
        citationJurisdiction?: NullableOption<string>;
        // Represents the URL to the published citation.
        citationUrl?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface Department extends FilePlanDescriptorBase {}
    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.
        status?: NullableOption<EventPropagationStatus>;
        // Additional information about the status of the event creation request.
        statusInformation?: NullableOption<string>;
    }
    interface EventQuery {
        query?: string;
        queryType?: NullableOption<QueryType>;
    }
// tslint:disable-next-line: no-empty-interface
    interface FilePlanReference extends FilePlanDescriptorBase {}
// tslint:disable-next-line: no-empty-interface
    interface RetentionDuration {}
// tslint:disable-next-line: no-empty-interface
    interface RetentionDurationForever extends RetentionDuration {}
    interface RetentionDurationInDays extends RetentionDuration {
        // Specifies the time period in days for which an item with the applied retention label will be retained for.
        days?: NullableOption<number>;
    }
    interface RetentionEventStatus {
        // The error if the status isn't successful.
        error?: NullableOption<microsoftgraphbeta.PublicError>;
        // The status of the distribution. The possible values are: pending, error, success, notAvaliable.
        status?: NullableOption<EventStatusType>;
    }
    interface AttackSimulationInfo {
        // The date and time of the attack simulation.
        attackSimDateTime?: NullableOption<string>;
        // The duration (in time) for the attack simulation.
        attackSimDurationTime?: NullableOption<string>;
        // The activity ID for the attack simulation.
        attackSimId?: NullableOption<string>;
        // The unique identifier for the user who got the attack simulation email.
        attackSimUserId?: NullableOption<string>;
    }
    interface SubmissionAdminReview {
        // Specifies who reviewed the email. The identification is an email ID or other identity strings.
        reviewBy?: NullableOption<string>;
        // Specifies the date time when the review occurred.
        reviewDateTime?: NullableOption<string>;
        /**
         * Specifies what the review result was. The possible values are: notJunk, spam, phishing, malware, allowedByPolicy,
         * blockedByPolicy, spoof, unknown, noResultAvailable, and unknownFutureValue.
         */
        reviewResult?: NullableOption<SubmissionResultCategory>;
    }
    interface SubmissionDetectedFile {
        // The file hash.
        fileHash?: NullableOption<string>;
        // The file name.
        fileName?: NullableOption<string>;
    }
    interface SubmissionResult {
        /**
         * The submission result category. The possible values are: notJunk, spam, phishing, malware, allowedByPolicy,
         * blockedByPolicy, spoof, unknown, noResultAvailable and unkownFutureValue.
         */
        category?: NullableOption<SubmissionResultCategory>;
        // Specifies the extra details provided by Microsoft to substantiate their analysis result.
        detail?: NullableOption<SubmissionResultDetail>;
        // Specifies the files detected by Microsoft in the submitted emails.
        detectedFiles?: NullableOption<SubmissionDetectedFile[]>;
        // Specifies the URLs detected by Microsoft in the submitted email.
        detectedUrls?: NullableOption<string[]>;
        // Specifies the setting for user mailbox denoted by a comma-separated string.
        userMailboxSetting?: NullableOption<UserMailboxSetting>;
    }
    interface SubmissionUserIdentity extends microsoftgraphbeta.Identity {
        // The email of user who is making the submission when logged in (delegated token case).
        email?: NullableOption<string>;
    }
    interface TenantAllowBlockListEntryResult {
        /**
         * The tenant allow-block list entry type. The possible values are: url, fileHash, sender, recipient and
         * unkownFutureValue.
         */
        entryType?: NullableOption<TenantAllowBlockListEntryType>;
        // Specifies the date and time when the entry expires.
        expirationDateTime?: NullableOption<string>;
        // Specifies the identity of the entry generated by the tenant allow block list system.
        identity?: NullableOption<string>;
        /**
         * Specifies whether the tenant allow block list entry creation operation was successful. The possible values are:
         * notStarted, running, succeeded, failed, skipped and unkownFutureValue.
         */
        status?: NullableOption<LongRunningOperationStatus>;
        // Specifies the value of the created tenant allow block list entry.
        value?: NullableOption<string>;
    }
    interface TenantAllowOrBlockListAction {
        /**
         * Specifies whether the tenant allow-or-block list is an allow or block. The possible values are: allow, block, and
         * unkownFutureValue.
         */
        action?: NullableOption<TenantAllowBlockListAction>;
        // Specifies when the tenant allow-block-list expires in date time.
        expirationDateTime?: NullableOption<string>;
        // Specifies the note added to the tenant allow-or-block list entry in the format of string.
        note?: NullableOption<string>;
        // Contains the result of the submission that lead to the tenant allow-block-list entry creation.
        results?: NullableOption<TenantAllowBlockListEntryResult[]>;
    }
    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 that this port was observed. 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?: NullableOption<string>;
        /**
         * The most recent date and time that this port was observed. 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?: 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<microsoftgraphbeta.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<microsoftgraphbeta.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 time. 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 time. 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";
    type TermGroupScope = "global" | "system" | "siteCollection";
    interface Store extends microsoftgraphbeta.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.
        sets?: NullableOption<Set[]>;
    }
    interface Group extends microsoftgraphbeta.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 microsoftgraphbeta.Entity {
        // Date and time of set creation. Read-only.
        createdDateTime?: NullableOption<string>;
        // Description giving 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<microsoftgraphbeta.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 microsoftgraphbeta.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 microsoftgraphbeta.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<microsoftgraphbeta.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>;
    }
}
export namespace WindowsUpdates {
    type AzureADDeviceRegistrationErrorReason =
        | "invalidGlobalDeviceId"
        | "invalidAzureADDeviceId"
        | "missingTrustType"
        | "invalidAzureADJoin"
        | "unknownFutureValue";
    type CveSeverityLevel = "critical" | "important" | "moderate" | "unknownFutureValue";
    type DeploymentStateReasonValue =
        | "scheduledByOfferWindow"
        | "offeringByRequest"
        | "pausedByRequest"
        | "pausedByMonitoring"
        | "unknownFutureValue"
        | "faultedByContentOutdated";
    type DeploymentStateValue = "scheduled" | "offering" | "paused" | "faulted" | "archived" | "unknownFutureValue";
    type MonitoringAction = "alertError" | "offerFallback" | "pauseDeployment" | "unknownFutureValue";
    type MonitoringSignal = "rollback" | "ineligible" | "unknownFutureValue";
    type QualityUpdateCadence = "monthly" | "outOfBand" | "unknownFutureValue";
    type QualityUpdateClassification = "all" | "security" | "nonSecurity" | "unknownFutureValue";
    type RequestedDeploymentStateValue = "none" | "paused" | "archived" | "unknownFutureValue";
    type ResourceConnectionState = "connected" | "notAuthorized" | "notFound" | "unknownFutureValue";
    type SafeguardCategory = "likelyIssues" | "unknownFutureValue";
    type UpdateCategory = "feature" | "quality" | "unknownFutureValue" | "driver";
    interface Catalog extends microsoftgraphbeta.Entity {
        // Lists the content that you can approve for deployment. Read-only.
        entries?: NullableOption<CatalogEntry[]>;
    }
    interface DeploymentAudience extends microsoftgraphbeta.Entity {
        // Content eligible to deploy to devices in the audience. Not nullable. Read-only.
        applicableContent?: NullableOption<ApplicableContent[]>;
        // Specifies the assets to exclude from the audience.
        exclusions?: NullableOption<UpdatableAsset[]>;
        // Specifies the assets to include in the audience.
        members?: NullableOption<UpdatableAsset[]>;
    }
    interface Deployment extends microsoftgraphbeta.Entity {
        // Specifies what content to deploy. Cannot be changed. Returned by default.
        content?: NullableOption<DeployableContent>;
        // The date and time the deployment was created. Returned by default. Read-only.
        createdDateTime?: string;
        // The date and time the deployment was last modified. Returned by default. Read-only.
        lastModifiedDateTime?: string;
        // Settings specified on the specific deployment governing how to deploy content. Returned by default.
        settings?: NullableOption<DeploymentSettings>;
        // Execution status of the deployment. Returned by default.
        state?: NullableOption<DeploymentState>;
        // Specifies the audience to which content is deployed.
        audience?: NullableOption<DeploymentAudience>;
    }
    interface ResourceConnection extends microsoftgraphbeta.Entity {
        // The state of the connection. The possible values are: connected, notAuthorized, notFound, unknownFutureValue.
        state?: NullableOption<ResourceConnectionState>;
    }
// tslint:disable-next-line: no-empty-interface
    interface UpdatableAsset extends microsoftgraphbeta.Entity {}
    interface UpdatePolicy extends microsoftgraphbeta.Entity {
        // Rules for governing the automatic creation of compliance changes.
        complianceChangeRules?: NullableOption<ComplianceChangeRule[]>;
        /**
         * The date and time when the update policy 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>;
        // Settings for governing how to deploy content.
        deploymentSettings?: NullableOption<DeploymentSettings>;
        // Specifies the audience to target.
        audience?: NullableOption<DeploymentAudience>;
        /**
         * Compliance changes like content approvals which result in the automatic creation of deployments using the audience and
         * deploymentSettings of the policy.
         */
        complianceChanges?: NullableOption<ComplianceChange[]>;
    }
    interface CatalogEntry extends microsoftgraphbeta.Entity {
        /**
         * The date on which the content is no longer available to deploy using the service. 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.
         */
        deployableUntilDateTime?: NullableOption<string>;
        // The display name of the content. Read-only.
        displayName?: NullableOption<string>;
        /**
         * The release date for the content. 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.
         */
        releaseDateTime?: string;
    }
    interface CveInformation {
        // Identifies the number of the CVE. Read-only.
        number?: string;
        // URL to the full CVE information. Read-only.
        url?: NullableOption<string>;
    }
    interface AzureADDevice extends UpdatableAsset {
        // Specifies areas of the service in which the device is enrolled. Read-only. Returned by default.
        enrollments?: NullableOption<UpdatableAssetEnrollment[]>;
        /**
         * Specifies any errors that prevent the device from being enrolled in update management or receving deployed content.
         * Read-only. Returned by default.
         */
        errors?: NullableOption<UpdatableAssetError[]>;
    }
    interface ComplianceChange extends microsoftgraphbeta.Entity {
        // The date and time when a compliance change was created.
        createdDateTime?: NullableOption<string>;
        /**
         * True indicates that a compliance change is revoked, preventing further application. Revoking a compliance change is a
         * final action.
         */
        isRevoked?: NullableOption<boolean>;
        // The date and time when the compliance change was revoked.
        revokedDateTime?: NullableOption<string>;
        // The policy this compliance change is a member of.
        updatePolicy?: NullableOption<UpdatePolicy>;
    }
    interface ContentApproval extends ComplianceChange {
        /**
         * Specifies what content to deploy. Deployable content should be provided as one of the following derived types:
         * microsoft.graph.windowsUpdates.catalogContent.
         */
        content?: DeployableContent;
        // Settings for governing how to deploy content.
        deploymentSettings?: NullableOption<DeploymentSettings>;
        // Deployments created as a result of applying the approval.
        deployments?: NullableOption<Deployment[]>;
    }
// tslint:disable-next-line: no-empty-interface
    interface SoftwareUpdateCatalogEntry extends CatalogEntry {}
    interface DriverUpdateCatalogEntry extends SoftwareUpdateCatalogEntry {
        // The description of the content.
        description?: NullableOption<string>;
        // The classification of the driver.
        driverClass?: NullableOption<string>;
        // The manufacturer of the driver.
        manufacturer?: NullableOption<string>;
        // The provider of the driver.
        provider?: NullableOption<string>;
        // The setup information file of the driver.
        setupInformationFile?: NullableOption<string>;
        // The unique version of the content.
        version?: NullableOption<string>;
        /**
         * The date and time when a new version of 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.
         */
        versionDateTime?: NullableOption<string>;
    }
    interface FeatureUpdateCatalogEntry extends SoftwareUpdateCatalogEntry {
        // The build number of the feature update. Read-only.
        buildNumber?: NullableOption<string>;
        // The version of the feature update. Read-only.
        version?: NullableOption<string>;
    }
    interface KnowledgeBaseArticle extends microsoftgraphbeta.Entity {
        // The URL of the knowledge base article. Read-only.
        url?: string;
    }
    interface OperationalInsightsConnection extends ResourceConnection {
        // The name of the Azure resource group that contains the Log Analytics workspace.
        azureResourceGroupName?: NullableOption<string>;
        // The Azure subscription ID that contains the Log Analytics workspace.
        azureSubscriptionId?: NullableOption<string>;
        // The name of the Log Analytics workspace.
        workspaceName?: NullableOption<string>;
    }
    interface ProductRevision extends microsoftgraphbeta.Entity {
        // The display name of the content. Read-only.
        displayName?: string;
        // The version details of the product revision. Read-only.
        osBuild?: BuildVersionDetails;
        // The product of the revision. Possible values are: Windows 10, Windows 11. Read-only.
        product?: string;
        /**
         * The release date for the content. 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.
         */
        releaseDateTime?: string;
        // The version of the feature update. Read-only.
        version?: string;
        // The knowledge base article associated with the product revision.
        knowledgeBaseArticle?: NullableOption<KnowledgeBaseArticle>;
    }
    interface QualityUpdateCatalogEntry extends SoftwareUpdateCatalogEntry {
        // The catalog name of the content. Read-only.
        catalogName?: NullableOption<string>;
        // Severity information of the Common Vulnerabilities and Exposures associated with the content.
        cveSeverityInformation?: NullableOption<QualityUpdateCveSeverityInformation>;
        // Indicates whether the content can be deployed as an expedited quality update. Read-only.
        isExpeditable?: boolean;
        // The publishing cadence of the quality update. Possible values are: monthly, outOfBand, unknownFutureValue. Read-only.
        qualityUpdateCadence?: NullableOption<QualityUpdateCadence>;
        /**
         * The classification on the quality update. Possible values are: all, security, nonSecurity, unknownFutureValue.
         * Read-only.
         */
        qualityUpdateClassification?: QualityUpdateClassification;
        // The short name of the content. Read-only.
        shortName?: NullableOption<string>;
        // The operating system product revisions that are released as part of this quality update.
        productRevisions?: NullableOption<ProductRevision[]>;
    }
    interface UpdatableAssetGroup extends UpdatableAsset {
        // Members of the group. Read-only.
        members?: NullableOption<UpdatableAsset[]>;
    }
    interface ApplicableContent {
        // Collection of devices and recommendations for applicable catalog content.
        matchedDevices?: ApplicableContentDeviceMatch[];
        catalogEntry?: NullableOption<CatalogEntry>;
    }
    interface ApplicableContentDeviceMatch {
        deviceId?: string;
        // Collection of vendors who recommend the content.
        recommendedBy?: string[];
    }
// tslint:disable-next-line: no-empty-interface
    interface UpdatableAssetError {}
    interface AzureADDeviceRegistrationError extends UpdatableAssetError {
        /**
         * The reason why the registration encountered an error. Possible values are: invalidGlobalDeviceId,
         * invalidAzureADDeviceId, missingTrustType, invalidAzureADJoin, unknownFutureValue.
         */
        reason?: AzureADDeviceRegistrationErrorReason;
    }
    interface BuildVersionDetails {
        // The build number of the product release. Read-only.
        buildNumber?: number;
        // The major version of the product release. Read-only.
        majorVersion?: number;
        // The minor version of the product release. Read-only.
        minorVersion?: number;
        // The update build revision number of the product revision. Read-only.
        updateBuildRevision?: number;
    }
// tslint:disable-next-line: no-empty-interface
    interface DeployableContent {}
    interface CatalogContent extends DeployableContent {
        catalogEntry?: CatalogEntry;
    }
    interface ComplianceChangeRule {
        // The date and time when the rule was created.
        createdDateTime?: NullableOption<string>;
        // The date and time when the rule was last evaluated.
        lastEvaluatedDateTime?: NullableOption<string>;
        // The date and time when the rule was last modified.
        lastModifiedDateTime?: NullableOption<string>;
    }
    interface ContentApplicabilitySettings {
        // Offer if the update is recommended by a vendor in the list, otherwise withhold the offer.
        offerWhileRecommendedBy?: NullableOption<string[]>;
        // Settings for governing safeguard-holds on offering content.
        safeguard?: NullableOption<SafeguardSettings>;
    }
    interface SafeguardSettings {
        // List of safeguards to ignore per device.
        disabledSafeguardProfiles?: NullableOption<SafeguardProfile[]>;
    }
    interface ContentApprovalRule extends ComplianceChangeRule {
        // A filter to determine which content matches the rule on an ongoing basis.
        contentFilter?: NullableOption<ContentFilter>;
        // The time before the deployment starts represented in ISO 8601 format for durations.
        durationBeforeDeploymentStart?: NullableOption<string>;
    }
// tslint:disable-next-line: no-empty-interface
    interface ContentFilter {}
    interface GradualRolloutSettings {
        /**
         * The duration between each set of devices being offered the update. The value is represented in ISO 8601 format for
         * duration. Default value is P1D (one day).
         */
        durationBetweenOffers?: NullableOption<string>;
    }
    interface DateDrivenRolloutSettings extends GradualRolloutSettings {
        /**
         * Specifies the date before which all devices currently in the deployment are offered the update. Devices added after
         * this date are offered immediately. When the endDateTime isn't set, all devices in the deployment are offered content at
         * the same time.
         */
        endDateTime?: string;
    }
    interface DeploymentSettings {
        // Settings for governing whether content is applicable to a device.
        contentApplicability?: NullableOption<ContentApplicabilitySettings>;
        // Settings for governing whether updates should be expedited.
        expedite?: NullableOption<ExpediteSettings>;
        // Settings for governing conditions to monitor and automated actions to take.
        monitoring?: NullableOption<MonitoringSettings>;
        // Settings for governing how and when the content is rolled out.
        schedule?: NullableOption<ScheduleSettings>;
        // Settings for governing end user update experience.
        userExperience?: NullableOption<UserExperienceSettings>;
    }
    interface ExpediteSettings {
        // True indicates that the deployment of the content is expedited.
        isExpedited?: NullableOption<boolean>;
        isReadinessTest?: NullableOption<boolean>;
    }
    interface MonitoringSettings {
        /**
         * Specifies the rules through which monitoring signals can trigger actions on the deployment. Rules are combined using
         * 'or.'
         */
        monitoringRules?: NullableOption<MonitoringRule[]>;
    }
    interface ScheduleSettings {
        /**
         * Settings for governing how to rollout content to devices. One of:
         * microsoft.graph.windowsUpdates.dateDrivenRolloutSettings, microsoft.graph.windowsUpdates.durationDrivenRolloutSettings,
         * or microsoft.graph.windowsUpdates.rateDrivenRolloutSettings.
         */
        gradualRollout?: NullableOption<GradualRolloutSettings>;
        /**
         * The date on which devices in the deployment start receiving the update. When not set, the deployment starts as soon as
         * devices are 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.
         */
        startDateTime?: NullableOption<string>;
    }
    interface UserExperienceSettings {
        /**
         * Specifies the number of days after an update is installed, during which the user of the device can control when the
         * device restarts.
         */
        daysUntilForcedReboot?: NullableOption<number>;
    }
    interface DeploymentState {
        /**
         * Specifies the state of the deployment. Supports a subset of the values for deploymentStateValue. Possible values are:
         * scheduled, offering, paused, unknownFutureValue. Read-only.
         */
        effectiveValue?: DeploymentStateValue;
        // Specifies the reasons the deployment has its state value. Read-only.
        reasons?: NullableOption<DeploymentStateReason[]>;
        /**
         * Specifies the requested state of the deployment. Supports a subset of the values for requestedDeploymentStateValue.
         * Possible values are: none, paused, unknownFutureValue.
         */
        requestedValue?: RequestedDeploymentStateValue;
    }
    interface DeploymentStateReason {
        /**
         * Specifies a reason for the deployment state. Possible values are: scheduledByOfferWindow, offeringByRequest,
         * pausedByRequest, pausedByMonitoring. Note that you must use the Prefer: include-unknown-enum-members request header to
         * get the following value(s) in this evolvable enum: faultedByContentOutdated. Read-only.
         */
        value?: DeploymentStateReasonValue;
    }
// tslint:disable-next-line: no-empty-interface
    interface SoftwareUpdateFilter extends ContentFilter {}
// tslint:disable-next-line: no-empty-interface
    interface WindowsUpdateFilter extends SoftwareUpdateFilter {}
// tslint:disable-next-line: no-empty-interface
    interface DriverUpdateFilter extends WindowsUpdateFilter {}
    interface DurationDrivenRolloutSettings extends GradualRolloutSettings {
        /**
         * The target duration of the rollout. Given durationBetweenOffers and durationUntilDeploymentEnd, the system will
         * automatically calculate how many devices are in each offering.
         */
        durationUntilDeploymentEnd?: string;
    }
    interface MonitoringRule {
        /**
         * The action triggered when the threshold for the given signal is reached. Possible values are: alertError,
         * pauseDeployment, offerFallback, unknownFutureValue. The offerFallback member is only supported on feature update
         * deployments of Windows 11 and must be paired with the ineligible signal. The fallback version offered is the version
         * 22H2 of Windows 10.
         */
        action?: NullableOption<MonitoringAction>;
        /**
         * The signal to monitor. Possible values are: rollback, ineligible, unknownFutureValue. The ineligible member is only
         * supported on feature update deployments of Windows 11 and must be paired with the offerFallback action.
         */
        signal?: NullableOption<MonitoringSignal>;
        /**
         * The threshold for a signal at which to trigger the action. An integer from 1 to 100 (inclusive). This value is ignored
         * when the signal is ineligible and the action is offerFallback.
         */
        threshold?: NullableOption<number>;
    }
    interface QualityUpdateCveSeverityInformation {
        // Highest base score that occurs of any CVE addressed by the quality update. Read-only.
        maxBaseScore?: NullableOption<number>;
        maxSeverity?: NullableOption<CveSeverityLevel>;
        exploitedCves?: NullableOption<CveInformation[]>;
    }
    interface RateDrivenRolloutSettings extends GradualRolloutSettings {
        /**
         * Specifies the number of devices that are offered at the same time. When not set, all devices in the deployment are
         * offered content at the same time.
         */
        devicesPerOffer?: number;
    }
    interface SafeguardProfile {
        // Specifies the category of safeguards. The possible values are: likelyIssues, unknownFutureValue.
        category?: NullableOption<SafeguardCategory>;
    }
// tslint:disable-next-line: no-empty-interface
    interface UpdatableAssetEnrollment {}
    interface UpdateManagementEnrollment extends UpdatableAssetEnrollment {
        /**
         * The category of updates that the service manages. Supports a subset of the values for updateCategory. Possible values
         * are: driver, feature, quality, unknownFutureValue.
         */
        updateCategory?: UpdateCategory;
    }
}
