package com.microstar.tap3.common;

import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({ "sub", "zoneinfo", "email_verified", "iss", "phone_number_verified", "cognito:username",
		"given_name", "aud", "token_use", "auth_time", "phone_number", "exp", "iat", "family_name", "email" })

public class JWTPayload {

	@JsonProperty("sub")
	private String sub;
	@JsonProperty("zoneinfo")
	private String zoneinfo;
	@JsonProperty("email_verified")
	private Boolean emailVerified;
	@JsonProperty("iss")
	private String iss;
	@JsonProperty("phone_number_verified")
	private Boolean phoneNumberVerified;
	@JsonProperty("cognito:username")
	private String cognitoUsername;
	@JsonProperty("given_name")
	private String givenName;
	@JsonProperty("aud")
	private String aud;
	@JsonProperty("token_use")
	private String tokenUse;
	@JsonProperty("auth_time")
	private Integer authTime;
	@JsonProperty("phone_number")
	private String phoneNumber;
	@JsonProperty("exp")
	private Integer exp;
	@JsonProperty("iat")
	private Integer iat;
	@JsonProperty("family_name")
	private String familyName;
	@JsonProperty("email")
	private String email;
	@JsonIgnore
	private Map<String, Object> additionalProperties = new HashMap<String, Object>();

	@JsonProperty("sub")
	public String getSub() {
		return sub;
	}

	@JsonProperty("sub")
	public void setSub(String sub) {
		this.sub = sub;
	}

	@JsonProperty("zoneinfo")
	public String getZoneinfo() {
		return zoneinfo;
	}

	@JsonProperty("zoneinfo")
	public void setZoneinfo(String zoneinfo) {
		this.zoneinfo = zoneinfo;
	}

	@JsonProperty("email_verified")
	public Boolean getEmailVerified() {
		return emailVerified;
	}

	@JsonProperty("email_verified")
	public void setEmailVerified(Boolean emailVerified) {
		this.emailVerified = emailVerified;
	}

	@JsonProperty("iss")
	public String getIss() {
		return iss;
	}

	@JsonProperty("iss")
	public void setIss(String iss) {
		this.iss = iss;
	}

	@JsonProperty("phone_number_verified")
	public Boolean getPhoneNumberVerified() {
		return phoneNumberVerified;
	}

	@JsonProperty("phone_number_verified")
	public void setPhoneNumberVerified(Boolean phoneNumberVerified) {
		this.phoneNumberVerified = phoneNumberVerified;
	}

	@JsonProperty("cognito:username")
	public String getCognitoUsername() {
		return cognitoUsername;
	}

	@JsonProperty("cognito:username")
	public void setCognitoUsername(String cognitoUsername) {
		this.cognitoUsername = cognitoUsername;
	}

	@JsonProperty("given_name")
	public String getGivenName() {
		return givenName;
	}

	@JsonProperty("given_name")
	public void setGivenName(String givenName) {
		this.givenName = givenName;
	}

	@JsonProperty("aud")
	public String getAud() {
		return aud;
	}

	@JsonProperty("aud")
	public void setAud(String aud) {
		this.aud = aud;
	}

	@JsonProperty("token_use")
	public String getTokenUse() {
		return tokenUse;
	}

	@JsonProperty("token_use")
	public void setTokenUse(String tokenUse) {
		this.tokenUse = tokenUse;
	}

	@JsonProperty("auth_time")
	public Integer getAuthTime() {
		return authTime;
	}

	@JsonProperty("auth_time")
	public void setAuthTime(Integer authTime) {
		this.authTime = authTime;
	}

	@JsonProperty("phone_number")
	public String getPhoneNumber() {
		return phoneNumber;
	}

	@JsonProperty("phone_number")
	public void setPhoneNumber(String phoneNumber) {
		this.phoneNumber = phoneNumber;
	}

	@JsonProperty("exp")
	public Integer getExp() {
		return exp;
	}

	@JsonProperty("exp")
	public void setExp(Integer exp) {
		this.exp = exp;
	}

	@JsonProperty("iat")
	public Integer getIat() {
		return iat;
	}

	@JsonProperty("iat")
	public void setIat(Integer iat) {
		this.iat = iat;
	}

	@JsonProperty("family_name")
	public String getFamilyName() {
		return familyName;
	}

	@JsonProperty("family_name")
	public void setFamilyName(String familyName) {
		this.familyName = familyName;
	}

	@JsonProperty("email")
	public String getEmail() {
		return email;
	}

	@JsonProperty("email")
	public void setEmail(String email) {
		this.email = email;
	}

	@JsonAnyGetter
	public Map<String, Object> getAdditionalProperties() {
		return this.additionalProperties;
	}

	@JsonAnySetter
	public void setAdditionalProperty(String name, Object value) {
		this.additionalProperties.put(name, value);
	}

}
