@tool
extends TwitchData

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

## 
## #/components/schemas/DropsEntitlement
class_name TwitchDropsEntitlement
	
## An ID that identifies the entitlement.
@export var id: String:
	set(val): 
		id = val
		track_data(&"id", val)

## An ID that identifies the benefit (reward).
@export var benefit_id: String:
	set(val): 
		benefit_id = val
		track_data(&"benefit_id", val)

## The UTC date and time (in RFC3339 format) of when the entitlement was granted.
@export var timestamp: String:
	set(val): 
		timestamp = val
		track_data(&"timestamp", val)

## An ID that identifies the user who was granted the entitlement.
@export var user_id: String:
	set(val): 
		user_id = val
		track_data(&"user_id", val)

## An ID that identifies the game the user was playing when the reward was entitled.
@export var game_id: String:
	set(val): 
		game_id = val
		track_data(&"game_id", val)

## The entitlement’s fulfillment status. Possible values are:   
##   
## * CLAIMED
## * FULFILLED
@export var fulfillment_status: String:
	set(val): 
		fulfillment_status = val
		track_data(&"fulfillment_status", val)

## The UTC date and time (in RFC3339 format) of when the entitlement was last updated.
@export var last_updated: String:
	set(val): 
		last_updated = val
		track_data(&"last_updated", val)
var response: BufferedHTTPClient.ResponseData


## Constructor with all required fields.
static func create(_id: String, _benefit_id: String, _timestamp: String, _user_id: String, _game_id: String, _fulfillment_status: String, _last_updated: String) -> TwitchDropsEntitlement:
	var twitch_drops_entitlement: TwitchDropsEntitlement = TwitchDropsEntitlement.new()
	twitch_drops_entitlement.id = _id
	twitch_drops_entitlement.benefit_id = _benefit_id
	twitch_drops_entitlement.timestamp = _timestamp
	twitch_drops_entitlement.user_id = _user_id
	twitch_drops_entitlement.game_id = _game_id
	twitch_drops_entitlement.fulfillment_status = _fulfillment_status
	twitch_drops_entitlement.last_updated = _last_updated
	return twitch_drops_entitlement


static func from_json(d: Dictionary) -> TwitchDropsEntitlement:
	var result: TwitchDropsEntitlement = TwitchDropsEntitlement.new()
	if d.get("id", null) != null:
		result.id = d["id"]
	if d.get("benefit_id", null) != null:
		result.benefit_id = d["benefit_id"]
	if d.get("timestamp", null) != null:
		result.timestamp = d["timestamp"]
	if d.get("user_id", null) != null:
		result.user_id = d["user_id"]
	if d.get("game_id", null) != null:
		result.game_id = d["game_id"]
	if d.get("fulfillment_status", null) != null:
		result.fulfillment_status = d["fulfillment_status"]
	if d.get("last_updated", null) != null:
		result.last_updated = d["last_updated"]
	return result
