@tool
extends TwitchData

# CLASS GOT AUTOGENERATED DON'T CHANGE MANUALLY. CHANGES CAN BE OVERWRITTEN EASILY.

class_name TwitchUpdateGuestStarSlotSettings
	


## All optional parameters for TwitchAPI.update_guest_star_slot_settings
## #/components/schemas/UpdateGuestStarSlotSettingsOpt
class Opt extends TwitchData:

	## Flag indicating whether the slot is allowed to share their audio with the rest of the session. If false, the slot will be muted in any views containing the slot.
	@export var is_audio_enabled: bool:
		set(val): 
			is_audio_enabled = val
			track_data(&"is_audio_enabled", val)
	
	## Flag indicating whether the slot is allowed to share their video with the rest of the session. If false, the slot will have no video shared in any views containing the slot.
	@export var is_video_enabled: bool:
		set(val): 
			is_video_enabled = val
			track_data(&"is_video_enabled", val)
	
	## Flag indicating whether the user assigned to this slot is visible/can be heard from any public subscriptions. Generally, this determines whether or not the slot is enabled in any broadcasting software integrations.
	@export var is_live: bool:
		set(val): 
			is_live = val
			track_data(&"is_live", val)
	
	## Value from 0-100 that controls the audio volume for shared views containing the slot.
	@export var volume: int:
		set(val): 
			volume = val
			track_data(&"volume", val)
	
	
	
	## Constructor with all required fields.
	static func create() -> Opt:
		var opt: Opt = Opt.new()
		return opt
	
	
	static func from_json(d: Dictionary) -> Opt:
		var result: Opt = Opt.new()
		if d.get("is_audio_enabled", null) != null:
			result.is_audio_enabled = d["is_audio_enabled"]
		if d.get("is_video_enabled", null) != null:
			result.is_video_enabled = d["is_video_enabled"]
		if d.get("is_live", null) != null:
			result.is_live = d["is_live"]
		if d.get("volume", null) != null:
			result.volume = d["volume"]
		return result
	