001package com.box.sdkgen.schemas.accesstoken; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.box.sdkgen.schemas.resourcescope.ResourceScope; 006import com.box.sdkgen.serialization.json.EnumWrapper; 007import com.fasterxml.jackson.annotation.JsonFilter; 008import com.fasterxml.jackson.annotation.JsonProperty; 009import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 010import com.fasterxml.jackson.databind.annotation.JsonSerialize; 011import java.util.List; 012import java.util.Objects; 013 014/** A token that can be used to make authenticated API calls. */ 015@JsonFilter("nullablePropertyFilter") 016public class AccessToken extends SerializableObject { 017 018 /** The requested access token. */ 019 @JsonProperty("access_token") 020 protected String accessToken; 021 022 /** The time in seconds by which this token will expire. */ 023 @JsonProperty("expires_in") 024 protected Long expiresIn; 025 026 /** The type of access token returned. */ 027 @JsonDeserialize(using = AccessTokenTokenTypeField.AccessTokenTokenTypeFieldDeserializer.class) 028 @JsonSerialize(using = AccessTokenTokenTypeField.AccessTokenTokenTypeFieldSerializer.class) 029 @JsonProperty("token_type") 030 protected EnumWrapper<AccessTokenTokenTypeField> tokenType; 031 032 /** 033 * The permissions that this access token permits, providing a list of resources (files, folders, 034 * etc) and the scopes permitted for each of those resources. 035 */ 036 @JsonProperty("restricted_to") 037 protected List<ResourceScope> restrictedTo; 038 039 /** 040 * The refresh token for this access token, which can be used to request a new access token when 041 * the current one expires. 042 */ 043 @JsonProperty("refresh_token") 044 protected String refreshToken; 045 046 /** 047 * The type of downscoped access token returned. This is only returned if an access token has been 048 * downscoped. 049 */ 050 @JsonDeserialize( 051 using = AccessTokenIssuedTokenTypeField.AccessTokenIssuedTokenTypeFieldDeserializer.class) 052 @JsonSerialize( 053 using = AccessTokenIssuedTokenTypeField.AccessTokenIssuedTokenTypeFieldSerializer.class) 054 @JsonProperty("issued_token_type") 055 protected EnumWrapper<AccessTokenIssuedTokenTypeField> issuedTokenType; 056 057 public AccessToken() { 058 super(); 059 } 060 061 protected AccessToken(Builder builder) { 062 super(); 063 this.accessToken = builder.accessToken; 064 this.expiresIn = builder.expiresIn; 065 this.tokenType = builder.tokenType; 066 this.restrictedTo = builder.restrictedTo; 067 this.refreshToken = builder.refreshToken; 068 this.issuedTokenType = builder.issuedTokenType; 069 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 070 } 071 072 public String getAccessToken() { 073 return accessToken; 074 } 075 076 public Long getExpiresIn() { 077 return expiresIn; 078 } 079 080 public EnumWrapper<AccessTokenTokenTypeField> getTokenType() { 081 return tokenType; 082 } 083 084 public List<ResourceScope> getRestrictedTo() { 085 return restrictedTo; 086 } 087 088 public String getRefreshToken() { 089 return refreshToken; 090 } 091 092 public EnumWrapper<AccessTokenIssuedTokenTypeField> getIssuedTokenType() { 093 return issuedTokenType; 094 } 095 096 @Override 097 public boolean equals(Object o) { 098 if (this == o) { 099 return true; 100 } 101 if (o == null || getClass() != o.getClass()) { 102 return false; 103 } 104 AccessToken casted = (AccessToken) o; 105 return Objects.equals(accessToken, casted.accessToken) 106 && Objects.equals(expiresIn, casted.expiresIn) 107 && Objects.equals(tokenType, casted.tokenType) 108 && Objects.equals(restrictedTo, casted.restrictedTo) 109 && Objects.equals(refreshToken, casted.refreshToken) 110 && Objects.equals(issuedTokenType, casted.issuedTokenType); 111 } 112 113 @Override 114 public int hashCode() { 115 return Objects.hash( 116 accessToken, expiresIn, tokenType, restrictedTo, refreshToken, issuedTokenType); 117 } 118 119 @Override 120 public String toString() { 121 return "AccessToken{" 122 + "accessToken='" 123 + accessToken 124 + '\'' 125 + ", " 126 + "expiresIn='" 127 + expiresIn 128 + '\'' 129 + ", " 130 + "tokenType='" 131 + tokenType 132 + '\'' 133 + ", " 134 + "restrictedTo='" 135 + restrictedTo 136 + '\'' 137 + ", " 138 + "refreshToken='" 139 + refreshToken 140 + '\'' 141 + ", " 142 + "issuedTokenType='" 143 + issuedTokenType 144 + '\'' 145 + "}"; 146 } 147 148 public static class Builder extends NullableFieldTracker { 149 150 protected String accessToken; 151 152 protected Long expiresIn; 153 154 protected EnumWrapper<AccessTokenTokenTypeField> tokenType; 155 156 protected List<ResourceScope> restrictedTo; 157 158 protected String refreshToken; 159 160 protected EnumWrapper<AccessTokenIssuedTokenTypeField> issuedTokenType; 161 162 public Builder accessToken(String accessToken) { 163 this.accessToken = accessToken; 164 return this; 165 } 166 167 public Builder expiresIn(Long expiresIn) { 168 this.expiresIn = expiresIn; 169 return this; 170 } 171 172 public Builder tokenType(AccessTokenTokenTypeField tokenType) { 173 this.tokenType = new EnumWrapper<AccessTokenTokenTypeField>(tokenType); 174 return this; 175 } 176 177 public Builder tokenType(EnumWrapper<AccessTokenTokenTypeField> tokenType) { 178 this.tokenType = tokenType; 179 return this; 180 } 181 182 public Builder restrictedTo(List<ResourceScope> restrictedTo) { 183 this.restrictedTo = restrictedTo; 184 return this; 185 } 186 187 public Builder refreshToken(String refreshToken) { 188 this.refreshToken = refreshToken; 189 return this; 190 } 191 192 public Builder issuedTokenType(AccessTokenIssuedTokenTypeField issuedTokenType) { 193 this.issuedTokenType = new EnumWrapper<AccessTokenIssuedTokenTypeField>(issuedTokenType); 194 return this; 195 } 196 197 public Builder issuedTokenType(EnumWrapper<AccessTokenIssuedTokenTypeField> issuedTokenType) { 198 this.issuedTokenType = issuedTokenType; 199 return this; 200 } 201 202 public AccessToken build() { 203 return new AccessToken(this); 204 } 205 } 206}