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

package msgraph

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

// DeliveryOptimizationBandwidthAbsolute undocumented
type DeliveryOptimizationBandwidthAbsolute struct {
	// DeliveryOptimizationBandwidth is the base model of DeliveryOptimizationBandwidthAbsolute
	DeliveryOptimizationBandwidth
	// MaximumDownloadBandwidthInKilobytesPerSecond Specifies the maximum download bandwidth in KiloBytes/second that the device can use across all concurrent download activities using Delivery Optimization. Valid values 0 to 4294967295
	MaximumDownloadBandwidthInKilobytesPerSecond *int `json:"maximumDownloadBandwidthInKilobytesPerSecond,omitempty"`
	// MaximumUploadBandwidthInKilobytesPerSecond Specifies the maximum upload bandwidth in KiloBytes/second that a device will use across all concurrent upload activity using Delivery Optimization (0-4000000). Valid values 0 to 4000000
	MaximumUploadBandwidthInKilobytesPerSecond *int `json:"maximumUploadBandwidthInKilobytesPerSecond,omitempty"`
}

// DeliveryOptimizationBandwidthBusinessHoursLimit undocumented
type DeliveryOptimizationBandwidthBusinessHoursLimit struct {
	// Object is the base model of DeliveryOptimizationBandwidthBusinessHoursLimit
	Object
	// BandwidthBeginBusinessHours Specifies the beginning of business hours using a 24-hour clock (0-23). Valid values 0 to 23
	BandwidthBeginBusinessHours *int `json:"bandwidthBeginBusinessHours,omitempty"`
	// BandwidthEndBusinessHours Specifies the end of business hours using a 24-hour clock (0-23). Valid values 0 to 23
	BandwidthEndBusinessHours *int `json:"bandwidthEndBusinessHours,omitempty"`
	// BandwidthPercentageDuringBusinessHours Specifies the percentage of bandwidth to limit during business hours (0-100). Valid values 0 to 100
	BandwidthPercentageDuringBusinessHours *int `json:"bandwidthPercentageDuringBusinessHours,omitempty"`
	// BandwidthPercentageOutsideBusinessHours Specifies the percentage of bandwidth to limit outsidse business hours (0-100). Valid values 0 to 100
	BandwidthPercentageOutsideBusinessHours *int `json:"bandwidthPercentageOutsideBusinessHours,omitempty"`
}

// DeliveryOptimizationBandwidthHoursWithPercentage undocumented
type DeliveryOptimizationBandwidthHoursWithPercentage struct {
	// DeliveryOptimizationBandwidth is the base model of DeliveryOptimizationBandwidthHoursWithPercentage
	DeliveryOptimizationBandwidth
	// BandwidthBackgroundPercentageHours Background download percentage hours.
	BandwidthBackgroundPercentageHours *DeliveryOptimizationBandwidthBusinessHoursLimit `json:"bandwidthBackgroundPercentageHours,omitempty"`
	// BandwidthForegroundPercentageHours Foreground download percentage hours.
	BandwidthForegroundPercentageHours *DeliveryOptimizationBandwidthBusinessHoursLimit `json:"bandwidthForegroundPercentageHours,omitempty"`
}

// DeliveryOptimizationBandwidthPercentage undocumented
type DeliveryOptimizationBandwidthPercentage struct {
	// DeliveryOptimizationBandwidth is the base model of DeliveryOptimizationBandwidthPercentage
	DeliveryOptimizationBandwidth
	// MaximumBackgroundBandwidthPercentage Specifies the maximum background download bandwidth that Delivery Optimization uses across all concurrent download activities as a percentage of available download bandwidth (0-100). Valid values 0 to 100
	MaximumBackgroundBandwidthPercentage *int `json:"maximumBackgroundBandwidthPercentage,omitempty"`
	// MaximumForegroundBandwidthPercentage Specifies the maximum foreground download bandwidth that Delivery Optimization uses across all concurrent download activities as a percentage of available download bandwidth (0-100). Valid values 0 to 100
	MaximumForegroundBandwidthPercentage *int `json:"maximumForegroundBandwidthPercentage,omitempty"`
}

// DeliveryOptimizationGroupIDCustom undocumented
type DeliveryOptimizationGroupIDCustom struct {
	// DeliveryOptimizationGroupIDSource is the base model of DeliveryOptimizationGroupIDCustom
	DeliveryOptimizationGroupIDSource
	// GroupIDCustom Specifies an arbitrary group ID that the device belongs to
	GroupIDCustom *string `json:"groupIdCustom,omitempty"`
}

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

// DeliveryOptimizationGroupIDSourceOptions undocumented
type DeliveryOptimizationGroupIDSourceOptions struct {
	// DeliveryOptimizationGroupIDSource is the base model of DeliveryOptimizationGroupIDSourceOptions
	DeliveryOptimizationGroupIDSource
	// GroupIDSourceOption Set this policy to restrict peer selection to a specific source.
	GroupIDSourceOption *DeliveryOptimizationGroupIDOptionsType `json:"groupIdSourceOption,omitempty"`
}

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

// DeliveryOptimizationMaxCacheSizeAbsolute undocumented
type DeliveryOptimizationMaxCacheSizeAbsolute struct {
	// DeliveryOptimizationMaxCacheSize is the base model of DeliveryOptimizationMaxCacheSizeAbsolute
	DeliveryOptimizationMaxCacheSize
	// MaximumCacheSizeInGigabytes Specifies the maximum size in GB of Delivery Optimization cache. Valid values 0 to 4294967295
	MaximumCacheSizeInGigabytes *int `json:"maximumCacheSizeInGigabytes,omitempty"`
}

// DeliveryOptimizationMaxCacheSizePercentage undocumented
type DeliveryOptimizationMaxCacheSizePercentage struct {
	// DeliveryOptimizationMaxCacheSize is the base model of DeliveryOptimizationMaxCacheSizePercentage
	DeliveryOptimizationMaxCacheSize
	// MaximumCacheSizePercentage Specifies the maximum cache size that Delivery Optimization can utilize, as a percentage of disk size (1-100). Valid values 1 to 100
	MaximumCacheSizePercentage *int `json:"maximumCacheSizePercentage,omitempty"`
}
