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

package msgraph

import "time"

// AppCatalogs undocumented
type AppCatalogs struct {
	// Entity is the base model of AppCatalogs
	Entity
	// TeamsApps undocumented
	TeamsApps []TeamsApp `json:"teamsApps,omitempty"`
}

// AppConfigurationSettingItem undocumented
type AppConfigurationSettingItem struct {
	// Object is the base model of AppConfigurationSettingItem
	Object
	// AppConfigKey app configuration key.
	AppConfigKey *string `json:"appConfigKey,omitempty"`
	// AppConfigKeyType app configuration key type.
	AppConfigKeyType *MDMAppConfigKeyType `json:"appConfigKeyType,omitempty"`
	// AppConfigKeyValue app configuration key value.
	AppConfigKeyValue *string `json:"appConfigKeyValue,omitempty"`
}

// AppHostedMediaConfig undocumented
type AppHostedMediaConfig struct {
	// MediaConfig is the base model of AppHostedMediaConfig
	MediaConfig
	// Blob undocumented
	Blob *string `json:"blob,omitempty"`
}

// AppIdentity undocumented
type AppIdentity struct {
	// Object is the base model of AppIdentity
	Object
	// AppID undocumented
	AppID *string `json:"appId,omitempty"`
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// ServicePrincipalID undocumented
	ServicePrincipalID *string `json:"servicePrincipalId,omitempty"`
	// ServicePrincipalName undocumented
	ServicePrincipalName *string `json:"servicePrincipalName,omitempty"`
}

// AppListItem undocumented
type AppListItem struct {
	// Object is the base model of AppListItem
	Object
	// Name The application name
	Name *string `json:"name,omitempty"`
	// Publisher The publisher of the application
	Publisher *string `json:"publisher,omitempty"`
	// AppStoreURL The Store URL of the application
	AppStoreURL *string `json:"appStoreUrl,omitempty"`
	// AppID The application or bundle identifier of the application
	AppID *string `json:"appId,omitempty"`
}

// AppLogCollectionDownloadDetails undocumented
type AppLogCollectionDownloadDetails struct {
	// Object is the base model of AppLogCollectionDownloadDetails
	Object
	// DownloadURL Download SAS Url for completed AppLogUploadRequest
	DownloadURL *string `json:"downloadUrl,omitempty"`
	// DecryptionKey DecryptionKey as string
	DecryptionKey *string `json:"decryptionKey,omitempty"`
	// AppLogDecryptionAlgorithm DecryptionAlgorithm for Content
	AppLogDecryptionAlgorithm *AppLogDecryptionAlgorithm `json:"appLogDecryptionAlgorithm,omitempty"`
}

// AppLogCollectionRequestObject AppLogCollectionRequest Entity.
type AppLogCollectionRequestObject struct {
	// Entity is the base model of AppLogCollectionRequestObject
	Entity
	// Status Log upload status
	Status *AppLogUploadState `json:"status,omitempty"`
	// ErrorMessage Error message if any during the upload process
	ErrorMessage *string `json:"errorMessage,omitempty"`
	// CustomLogFolders List of log folders.
	CustomLogFolders []string `json:"customLogFolders,omitempty"`
	// CompletedDateTime Time at which the upload log request reached a terminal state
	CompletedDateTime *time.Time `json:"completedDateTime,omitempty"`
}

// AppRole undocumented
type AppRole struct {
	// Object is the base model of AppRole
	Object
	// AllowedMemberTypes undocumented
	AllowedMemberTypes []string `json:"allowedMemberTypes,omitempty"`
	// Description undocumented
	Description *string `json:"description,omitempty"`
	// DisplayName undocumented
	DisplayName *string `json:"displayName,omitempty"`
	// ID undocumented
	ID *UUID `json:"id,omitempty"`
	// IsEnabled undocumented
	IsEnabled *bool `json:"isEnabled,omitempty"`
	// Origin undocumented
	Origin *string `json:"origin,omitempty"`
	// Value undocumented
	Value *string `json:"value,omitempty"`
}

// AppRoleAssignment undocumented
type AppRoleAssignment struct {
	// Entity is the base model of AppRoleAssignment
	Entity
	// AppRoleID undocumented
	AppRoleID *UUID `json:"appRoleId,omitempty"`
	// CreationTimestamp undocumented
	CreationTimestamp *time.Time `json:"creationTimestamp,omitempty"`
	// PrincipalDisplayName undocumented
	PrincipalDisplayName *string `json:"principalDisplayName,omitempty"`
	// PrincipalID undocumented
	PrincipalID *UUID `json:"principalId,omitempty"`
	// PrincipalType undocumented
	PrincipalType *string `json:"principalType,omitempty"`
	// ResourceDisplayName undocumented
	ResourceDisplayName *string `json:"resourceDisplayName,omitempty"`
	// ResourceID undocumented
	ResourceID *UUID `json:"resourceId,omitempty"`
}

// AppVulnerabilityManagedDevice An app vulnerability managed device.
type AppVulnerabilityManagedDevice struct {
	// Entity is the base model of AppVulnerabilityManagedDevice
	Entity
	// ManagedDeviceID The Intune managed device ID.
	ManagedDeviceID *string `json:"managedDeviceId,omitempty"`
	// DisplayName The device name.
	DisplayName *string `json:"displayName,omitempty"`
	// LastSyncDateTime The created date.
	LastSyncDateTime *time.Time `json:"lastSyncDateTime,omitempty"`
}

// AppVulnerabilityMobileApp An app vulnerability mobile app.
type AppVulnerabilityMobileApp struct {
	// Entity is the base model of AppVulnerabilityMobileApp
	Entity
	// MobileAppID The Intune mobile app ID.
	MobileAppID *string `json:"mobileAppId,omitempty"`
	// DisplayName The device name.
	DisplayName *string `json:"displayName,omitempty"`
	// CreatedDateTime The created date.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// LastModifiedDateTime The last modified date.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	// MobileAppType The app type.
	MobileAppType *string `json:"mobileAppType,omitempty"`
	// Version The app version.
	Version *string `json:"version,omitempty"`
}

// AppVulnerabilityTask An app vulnerability task.
type AppVulnerabilityTask struct {
	// DeviceAppManagementTask is the base model of AppVulnerabilityTask
	DeviceAppManagementTask
	// AppName The app name.
	AppName *string `json:"appName,omitempty"`
	// AppPublisher The app publisher.
	AppPublisher *string `json:"appPublisher,omitempty"`
	// AppVersion The app version.
	AppVersion *string `json:"appVersion,omitempty"`
	// MitigationType The mitigation type.
	MitigationType *AppVulnerabilityTaskMitigationType `json:"mitigationType,omitempty"`
	// Insights Information about the mitigation.
	Insights *string `json:"insights,omitempty"`
	// ManagedDeviceCount The number of vulnerable devices.
	ManagedDeviceCount *int `json:"managedDeviceCount,omitempty"`
	// MobileAppCount The number of vulnerable mobile apps.
	MobileAppCount *int `json:"mobileAppCount,omitempty"`
	// Remediation The remediation steps.
	Remediation *string `json:"remediation,omitempty"`
	// ManagedDevices undocumented
	ManagedDevices []AppVulnerabilityManagedDevice `json:"managedDevices,omitempty"`
	// MobileApps undocumented
	MobileApps []AppVulnerabilityMobileApp `json:"mobileApps,omitempty"`
}