// Code generated by msgraph-generate.go DO NOT EDIT.

package msgraph

import "time"

// WindowsUpdateForBusinessConfiguration Windows Update for business configuration.
type WindowsUpdateForBusinessConfiguration struct {
	// DeviceConfiguration is the base model of WindowsUpdateForBusinessConfiguration
	DeviceConfiguration
	// DeliveryOptimizationMode Delivery Optimization Mode
	DeliveryOptimizationMode *WindowsDeliveryOptimizationMode `json:"deliveryOptimizationMode,omitempty"`
	// PrereleaseFeatures The pre-release features.
	PrereleaseFeatures *PrereleaseFeatures `json:"prereleaseFeatures,omitempty"`
	// AutomaticUpdateMode Automatic update mode.
	AutomaticUpdateMode *AutomaticUpdateMode `json:"automaticUpdateMode,omitempty"`
	// MicrosoftUpdateServiceAllowed Allow Microsoft Update Service
	MicrosoftUpdateServiceAllowed *bool `json:"microsoftUpdateServiceAllowed,omitempty"`
	// DriversExcluded Exclude Windows update Drivers
	DriversExcluded *bool `json:"driversExcluded,omitempty"`
	// InstallationSchedule Installation schedule
	InstallationSchedule *WindowsUpdateInstallScheduleType `json:"installationSchedule,omitempty"`
	// QualityUpdatesDeferralPeriodInDays Defer Quality Updates by these many days
	QualityUpdatesDeferralPeriodInDays *int `json:"qualityUpdatesDeferralPeriodInDays,omitempty"`
	// FeatureUpdatesDeferralPeriodInDays Defer Feature Updates by these many days
	FeatureUpdatesDeferralPeriodInDays *int `json:"featureUpdatesDeferralPeriodInDays,omitempty"`
	// QualityUpdatesPaused Pause Quality Updates
	QualityUpdatesPaused *bool `json:"qualityUpdatesPaused,omitempty"`
	// FeatureUpdatesPaused Pause Feature Updates
	FeatureUpdatesPaused *bool `json:"featureUpdatesPaused,omitempty"`
	// QualityUpdatesPauseExpiryDateTime Quality Updates Pause Expiry datetime
	QualityUpdatesPauseExpiryDateTime *time.Time `json:"qualityUpdatesPauseExpiryDateTime,omitempty"`
	// FeatureUpdatesPauseExpiryDateTime Feature Updates Pause Expiry datetime
	FeatureUpdatesPauseExpiryDateTime *time.Time `json:"featureUpdatesPauseExpiryDateTime,omitempty"`
	// BusinessReadyUpdatesOnly Determines which branch devices will receive their updates from
	BusinessReadyUpdatesOnly *WindowsUpdateType `json:"businessReadyUpdatesOnly,omitempty"`
	// SkipChecksBeforeRestart Set to skip all check before restart: Battery level = 40%, User presence, Display Needed, Presentation mode, Full screen mode, phone call state, game mode etc.
	SkipChecksBeforeRestart *bool `json:"skipChecksBeforeRestart,omitempty"`
	// UpdateWeeks Scheduled the update installation on the weeks of the month
	UpdateWeeks *WindowsUpdateForBusinessUpdateWeeks `json:"updateWeeks,omitempty"`
	// QualityUpdatesPauseStartDate Quality Updates Pause start date. This property is read-only.
	QualityUpdatesPauseStartDate *time.Time `json:"qualityUpdatesPauseStartDate,omitempty"`
	// FeatureUpdatesPauseStartDate Feature Updates Pause start date. This property is read-only.
	FeatureUpdatesPauseStartDate *time.Time `json:"featureUpdatesPauseStartDate,omitempty"`
	// FeatureUpdatesRollbackWindowInDays The number of days after a Feature Update for which a rollback is valid
	FeatureUpdatesRollbackWindowInDays *int `json:"featureUpdatesRollbackWindowInDays,omitempty"`
	// QualityUpdatesWillBeRolledBack Specifies whether to rollback Quality Updates on the next device check in
	QualityUpdatesWillBeRolledBack *bool `json:"qualityUpdatesWillBeRolledBack,omitempty"`
	// FeatureUpdatesWillBeRolledBack Specifies whether to rollback Feature Updates on the next device check in
	FeatureUpdatesWillBeRolledBack *bool `json:"featureUpdatesWillBeRolledBack,omitempty"`
	// QualityUpdatesRollbackStartDateTime Quality Updates Rollback Start datetime
	QualityUpdatesRollbackStartDateTime *time.Time `json:"qualityUpdatesRollbackStartDateTime,omitempty"`
	// FeatureUpdatesRollbackStartDateTime Feature Updates Rollback Start datetime
	FeatureUpdatesRollbackStartDateTime *time.Time `json:"featureUpdatesRollbackStartDateTime,omitempty"`
	// EngagedRestartDeadlineInDays Deadline in days before automatically scheduling and executing a pending restart outside of active hours, with valid range from 2 to 30 days
	EngagedRestartDeadlineInDays *int `json:"engagedRestartDeadlineInDays,omitempty"`
	// EngagedRestartSnoozeScheduleInDays Number of days a user can snooze Engaged Restart reminder notifications with valid range from 1 to 3 days
	EngagedRestartSnoozeScheduleInDays *int `json:"engagedRestartSnoozeScheduleInDays,omitempty"`
	// EngagedRestartTransitionScheduleInDays 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
	EngagedRestartTransitionScheduleInDays *int `json:"engagedRestartTransitionScheduleInDays,omitempty"`
	// DeadlineForFeatureUpdatesInDays Number of days before feature updates are installed automatically with valid range from 2 to 30 days
	DeadlineForFeatureUpdatesInDays *int `json:"deadlineForFeatureUpdatesInDays,omitempty"`
	// DeadlineForQualityUpdatesInDays Number of days before quality updates are installed automatically with valid range from 2 to 30 days
	DeadlineForQualityUpdatesInDays *int `json:"deadlineForQualityUpdatesInDays,omitempty"`
	// DeadlineGracePeriodInDays Number of days after deadline  until restarts occur automatically with valid range from 0 to 7 days
	DeadlineGracePeriodInDays *int `json:"deadlineGracePeriodInDays,omitempty"`
	// PostponeRebootUntilAfterDeadline Specifies if the device should wait until deadline for rebooting outside of active hours
	PostponeRebootUntilAfterDeadline *bool `json:"postponeRebootUntilAfterDeadline,omitempty"`
	// AutoRestartNotificationDismissal Specify the method by which the auto-restart required notification is dismissed
	AutoRestartNotificationDismissal *AutoRestartNotificationDismissalMethod `json:"autoRestartNotificationDismissal,omitempty"`
	// ScheduleRestartWarningInHours Specify the period for auto-restart warning reminder notifications. Supported values: 2, 4, 8, 12 or 24 (hours).
	ScheduleRestartWarningInHours *int `json:"scheduleRestartWarningInHours,omitempty"`
	// ScheduleImminentRestartWarningInMinutes Specify the period for auto-restart imminent warning notifications. Supported values: 15, 30 or 60 (minutes).
	ScheduleImminentRestartWarningInMinutes *int `json:"scheduleImminentRestartWarningInMinutes,omitempty"`
	// UserPauseAccess Specifies whether to enable end user’s access to pause software updates.
	UserPauseAccess *Enablement `json:"userPauseAccess,omitempty"`
	// UserWindowsUpdateScanAccess Specifies whether to disable user’s access to scan Windows Update.
	UserWindowsUpdateScanAccess *Enablement `json:"userWindowsUpdateScanAccess,omitempty"`
	// UpdateNotificationLevel Specifies what Windows Update notifications users see.
	UpdateNotificationLevel *WindowsUpdateNotificationDisplayOption `json:"updateNotificationLevel,omitempty"`
	// DeviceUpdateStates undocumented
	DeviceUpdateStates []WindowsUpdateState `json:"deviceUpdateStates,omitempty"`
}