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

package msgraph

// Win32LobApp Contains properties and inherited properties for Win32 apps.
type Win32LobApp struct {
	// MobileLobApp is the base model of Win32LobApp
	MobileLobApp
	// InstallCommandLine The command line to install this app
	InstallCommandLine *string `json:"installCommandLine,omitempty"`
	// UninstallCommandLine The command line to uninstall this app
	UninstallCommandLine *string `json:"uninstallCommandLine,omitempty"`
	// ApplicableArchitectures The Windows architecture(s) for which this app can run on.
	ApplicableArchitectures *WindowsArchitecture `json:"applicableArchitectures,omitempty"`
	// MinimumSupportedOperatingSystem The value for the minimum applicable operating system.
	MinimumSupportedOperatingSystem *WindowsMinimumOperatingSystem `json:"minimumSupportedOperatingSystem,omitempty"`
	// MinimumFreeDiskSpaceInMB The value for the minimum free disk space which is required to install this app.
	MinimumFreeDiskSpaceInMB *int `json:"minimumFreeDiskSpaceInMB,omitempty"`
	// MinimumMemoryInMB The value for the minimum physical memory which is required to install this app.
	MinimumMemoryInMB *int `json:"minimumMemoryInMB,omitempty"`
	// MinimumNumberOfProcessors The value for the minimum number of processors which is required to install this app.
	MinimumNumberOfProcessors *int `json:"minimumNumberOfProcessors,omitempty"`
	// MinimumCPUSpeedInMHz The value for the minimum CPU speed which is required to install this app.
	MinimumCPUSpeedInMHz *int `json:"minimumCpuSpeedInMHz,omitempty"`
	// DetectionRules The detection rules to detect Win32 Line of Business (LoB) app.
	DetectionRules []Win32LobAppDetection `json:"detectionRules,omitempty"`
	// RequirementRules The requirement rules to detect Win32 Line of Business (LoB) app.
	RequirementRules []Win32LobAppRequirement `json:"requirementRules,omitempty"`
	// InstallExperience The install experience for this app.
	InstallExperience *Win32LobAppInstallExperience `json:"installExperience,omitempty"`
	// ReturnCodes The return codes for post installation behavior.
	ReturnCodes []Win32LobAppReturnCode `json:"returnCodes,omitempty"`
	// MsiInformation The MSI details if this Win32 app is an MSI app.
	MsiInformation *Win32LobAppMsiInformation `json:"msiInformation,omitempty"`
	// SetupFilePath The relative path of the setup file in the encrypted Win32LobApp package.
	SetupFilePath *string `json:"setupFilePath,omitempty"`
}

// Win32LobAppAssignmentSettings undocumented
type Win32LobAppAssignmentSettings struct {
	// MobileAppAssignmentSettings is the base model of Win32LobAppAssignmentSettings
	MobileAppAssignmentSettings
	// Notifications The notification status for this app assignment.
	Notifications *Win32LobAppNotification `json:"notifications,omitempty"`
	// RestartSettings The reboot settings to apply for this app assignment.
	RestartSettings *Win32LobAppRestartSettings `json:"restartSettings,omitempty"`
	// InstallTimeSettings The install time settings to apply for this app assignment.
	InstallTimeSettings *MobileAppInstallTimeSettings `json:"installTimeSettings,omitempty"`
}

// Win32LobAppDetection undocumented
type Win32LobAppDetection struct {
	// Object is the base model of Win32LobAppDetection
	Object
}

// Win32LobAppFileSystemDetection undocumented
type Win32LobAppFileSystemDetection struct {
	// Win32LobAppDetection is the base model of Win32LobAppFileSystemDetection
	Win32LobAppDetection
	// Path The file or folder path to detect Win32 Line of Business (LoB) app
	Path *string `json:"path,omitempty"`
	// FileOrFolderName The file or folder name to detect Win32 Line of Business (LoB) app
	FileOrFolderName *string `json:"fileOrFolderName,omitempty"`
	// Check32BitOn64System A value indicating whether this file or folder is for checking 32-bit app on 64-bit system
	Check32BitOn64System *bool `json:"check32BitOn64System,omitempty"`
	// DetectionType The file system detection type
	DetectionType *Win32LobAppFileSystemDetectionType `json:"detectionType,omitempty"`
	// Operator The operator for file or folder detection
	Operator *Win32LobAppDetectionOperator `json:"operator,omitempty"`
	// DetectionValue The file or folder detection value
	DetectionValue *string `json:"detectionValue,omitempty"`
}

// Win32LobAppFileSystemRequirement undocumented
type Win32LobAppFileSystemRequirement struct {
	// Win32LobAppRequirement is the base model of Win32LobAppFileSystemRequirement
	Win32LobAppRequirement
	// Path The file or folder path to detect Win32 Line of Business (LoB) app
	Path *string `json:"path,omitempty"`
	// FileOrFolderName The file or folder name to detect Win32 Line of Business (LoB) app
	FileOrFolderName *string `json:"fileOrFolderName,omitempty"`
	// Check32BitOn64System A value indicating whether this file or folder is for checking 32-bit app on 64-bit system
	Check32BitOn64System *bool `json:"check32BitOn64System,omitempty"`
	// DetectionType The file system detection type
	DetectionType *Win32LobAppFileSystemDetectionType `json:"detectionType,omitempty"`
}

// Win32LobAppInstallExperience undocumented
type Win32LobAppInstallExperience struct {
	// Object is the base model of Win32LobAppInstallExperience
	Object
	// RunAsAccount Indicates the type of execution context the app runs in.
	RunAsAccount *RunAsAccountType `json:"runAsAccount,omitempty"`
	// DeviceRestartBehavior Device restart behavior.
	DeviceRestartBehavior *Win32LobAppRestartBehavior `json:"deviceRestartBehavior,omitempty"`
}

// Win32LobAppMsiInformation undocumented
type Win32LobAppMsiInformation struct {
	// Object is the base model of Win32LobAppMsiInformation
	Object
	// ProductCode The MSI product code.
	ProductCode *string `json:"productCode,omitempty"`
	// ProductVersion The MSI product version.
	ProductVersion *string `json:"productVersion,omitempty"`
	// UpgradeCode The MSI upgrade code.
	UpgradeCode *string `json:"upgradeCode,omitempty"`
	// RequiresReboot Whether the MSI app requires the machine to reboot to complete installation.
	RequiresReboot *bool `json:"requiresReboot,omitempty"`
	// PackageType The MSI package type.
	PackageType *Win32LobAppMsiPackageType `json:"packageType,omitempty"`
	// ProductName The MSI product name.
	ProductName *string `json:"productName,omitempty"`
	// Publisher The MSI publisher.
	Publisher *string `json:"publisher,omitempty"`
}

// Win32LobAppPowerShellScriptDetection undocumented
type Win32LobAppPowerShellScriptDetection struct {
	// Win32LobAppDetection is the base model of Win32LobAppPowerShellScriptDetection
	Win32LobAppDetection
	// EnforceSignatureCheck A value indicating whether signature check is enforced
	EnforceSignatureCheck *bool `json:"enforceSignatureCheck,omitempty"`
	// RunAs32Bit A value indicating whether this script should run as 32-bit
	RunAs32Bit *bool `json:"runAs32Bit,omitempty"`
	// ScriptContent The base64 encoded script content to detect Win32 Line of Business (LoB) app
	ScriptContent *string `json:"scriptContent,omitempty"`
}

// Win32LobAppPowerShellScriptRequirement undocumented
type Win32LobAppPowerShellScriptRequirement struct {
	// Win32LobAppRequirement is the base model of Win32LobAppPowerShellScriptRequirement
	Win32LobAppRequirement
	// DisplayName The unique display name for this rule
	DisplayName *string `json:"displayName,omitempty"`
	// EnforceSignatureCheck A value indicating whether signature check is enforced
	EnforceSignatureCheck *bool `json:"enforceSignatureCheck,omitempty"`
	// RunAs32Bit A value indicating whether this script should run as 32-bit
	RunAs32Bit *bool `json:"runAs32Bit,omitempty"`
	// RunAsAccount Indicates the type of execution context the script runs in.
	RunAsAccount *RunAsAccountType `json:"runAsAccount,omitempty"`
	// ScriptContent The base64 encoded script content to detect Win32 Line of Business (LoB) app
	ScriptContent *string `json:"scriptContent,omitempty"`
	// DetectionType The detection type for script output
	DetectionType *Win32LobAppPowerShellScriptDetectionType `json:"detectionType,omitempty"`
}

// Win32LobAppProductCodeDetection undocumented
type Win32LobAppProductCodeDetection struct {
	// Win32LobAppDetection is the base model of Win32LobAppProductCodeDetection
	Win32LobAppDetection
	// ProductCode The product code of Win32 Line of Business (LoB) app.
	ProductCode *string `json:"productCode,omitempty"`
	// ProductVersionOperator The operator to detect product version.
	ProductVersionOperator *Win32LobAppDetectionOperator `json:"productVersionOperator,omitempty"`
	// ProductVersion The product version of Win32 Line of Business (LoB) app.
	ProductVersion *string `json:"productVersion,omitempty"`
}

// Win32LobAppRegistryDetection undocumented
type Win32LobAppRegistryDetection struct {
	// Win32LobAppDetection is the base model of Win32LobAppRegistryDetection
	Win32LobAppDetection
	// Check32BitOn64System A value indicating whether this registry path is for checking 32-bit app on 64-bit system
	Check32BitOn64System *bool `json:"check32BitOn64System,omitempty"`
	// KeyPath The registry key path to detect Win32 Line of Business (LoB) app
	KeyPath *string `json:"keyPath,omitempty"`
	// ValueName The registry value name
	ValueName *string `json:"valueName,omitempty"`
	// DetectionType The registry data detection type
	DetectionType *Win32LobAppRegistryDetectionType `json:"detectionType,omitempty"`
	// Operator The operator for registry data detection
	Operator *Win32LobAppDetectionOperator `json:"operator,omitempty"`
	// DetectionValue The registry detection value
	DetectionValue *string `json:"detectionValue,omitempty"`
}

// Win32LobAppRegistryRequirement undocumented
type Win32LobAppRegistryRequirement struct {
	// Win32LobAppRequirement is the base model of Win32LobAppRegistryRequirement
	Win32LobAppRequirement
	// Check32BitOn64System A value indicating whether this registry path is for checking 32-bit app on 64-bit system
	Check32BitOn64System *bool `json:"check32BitOn64System,omitempty"`
	// KeyPath The registry key path to detect Win32 Line of Business (LoB) app
	KeyPath *string `json:"keyPath,omitempty"`
	// ValueName The registry value name
	ValueName *string `json:"valueName,omitempty"`
	// DetectionType The registry data detection type
	DetectionType *Win32LobAppRegistryDetectionType `json:"detectionType,omitempty"`
}

// Win32LobAppRequirement undocumented
type Win32LobAppRequirement struct {
	// Object is the base model of Win32LobAppRequirement
	Object
	// Operator The operator for detection
	Operator *Win32LobAppDetectionOperator `json:"operator,omitempty"`
	// DetectionValue The detection value
	DetectionValue *string `json:"detectionValue,omitempty"`
}

// Win32LobAppRestartSettings undocumented
type Win32LobAppRestartSettings struct {
	// Object is the base model of Win32LobAppRestartSettings
	Object
	// GracePeriodInMinutes The number of minutes to wait before restarting the device after an app installation.
	GracePeriodInMinutes *int `json:"gracePeriodInMinutes,omitempty"`
	// CountdownDisplayBeforeRestartInMinutes The number of minutes before the restart time to display the countdown dialog for pending restarts.
	CountdownDisplayBeforeRestartInMinutes *int `json:"countdownDisplayBeforeRestartInMinutes,omitempty"`
	// RestartNotificationSnoozeDurationInMinutes The number of minutes to snooze the restart notification dialog when the snooze button is selected.
	RestartNotificationSnoozeDurationInMinutes *int `json:"restartNotificationSnoozeDurationInMinutes,omitempty"`
}

// Win32LobAppReturnCode undocumented
type Win32LobAppReturnCode struct {
	// Object is the base model of Win32LobAppReturnCode
	Object
	// ReturnCode Return code.
	ReturnCode *int `json:"returnCode,omitempty"`
	// Type The type of return code.
	Type *Win32LobAppReturnCodeType `json:"type,omitempty"`
}
