001package com.box.sdkgen.schemas.postoauth2tokenrefreshaccesstoken; 002 003import com.box.sdkgen.internal.NullableFieldTracker; 004import com.box.sdkgen.internal.SerializableObject; 005import com.box.sdkgen.serialization.json.EnumWrapper; 006import com.fasterxml.jackson.annotation.JsonFilter; 007import com.fasterxml.jackson.annotation.JsonProperty; 008import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 009import com.fasterxml.jackson.databind.annotation.JsonSerialize; 010import java.util.Objects; 011 012/** 013 * A request to refresh an Access Token. Use this API to refresh an expired Access Token using a 014 * valid Refresh Token. 015 */ 016@JsonFilter("nullablePropertyFilter") 017public class PostOAuth2TokenRefreshAccessToken extends SerializableObject { 018 019 /** The type of request being made, in this case a refresh request. */ 020 @JsonDeserialize( 021 using = 022 PostOAuth2TokenRefreshAccessTokenGrantTypeField 023 .PostOAuth2TokenRefreshAccessTokenGrantTypeFieldDeserializer.class) 024 @JsonSerialize( 025 using = 026 PostOAuth2TokenRefreshAccessTokenGrantTypeField 027 .PostOAuth2TokenRefreshAccessTokenGrantTypeFieldSerializer.class) 028 @JsonProperty("grant_type") 029 protected EnumWrapper<PostOAuth2TokenRefreshAccessTokenGrantTypeField> grantType; 030 031 /** The client ID of the application requesting to refresh the token. */ 032 @JsonProperty("client_id") 033 protected final String clientId; 034 035 /** The client secret of the application requesting to refresh the token. */ 036 @JsonProperty("client_secret") 037 protected final String clientSecret; 038 039 /** The refresh token to refresh. */ 040 @JsonProperty("refresh_token") 041 protected final String refreshToken; 042 043 public PostOAuth2TokenRefreshAccessToken( 044 @JsonProperty("client_id") String clientId, 045 @JsonProperty("client_secret") String clientSecret, 046 @JsonProperty("refresh_token") String refreshToken) { 047 super(); 048 this.clientId = clientId; 049 this.clientSecret = clientSecret; 050 this.refreshToken = refreshToken; 051 this.grantType = 052 new EnumWrapper<PostOAuth2TokenRefreshAccessTokenGrantTypeField>( 053 PostOAuth2TokenRefreshAccessTokenGrantTypeField.REFRESH_TOKEN); 054 } 055 056 protected PostOAuth2TokenRefreshAccessToken(Builder builder) { 057 super(); 058 this.grantType = builder.grantType; 059 this.clientId = builder.clientId; 060 this.clientSecret = builder.clientSecret; 061 this.refreshToken = builder.refreshToken; 062 markNullableFieldsAsSet(builder.getExplicitlySetNullableFields()); 063 } 064 065 public EnumWrapper<PostOAuth2TokenRefreshAccessTokenGrantTypeField> getGrantType() { 066 return grantType; 067 } 068 069 public String getClientId() { 070 return clientId; 071 } 072 073 public String getClientSecret() { 074 return clientSecret; 075 } 076 077 public String getRefreshToken() { 078 return refreshToken; 079 } 080 081 @Override 082 public boolean equals(Object o) { 083 if (this == o) { 084 return true; 085 } 086 if (o == null || getClass() != o.getClass()) { 087 return false; 088 } 089 PostOAuth2TokenRefreshAccessToken casted = (PostOAuth2TokenRefreshAccessToken) o; 090 return Objects.equals(grantType, casted.grantType) 091 && Objects.equals(clientId, casted.clientId) 092 && Objects.equals(clientSecret, casted.clientSecret) 093 && Objects.equals(refreshToken, casted.refreshToken); 094 } 095 096 @Override 097 public int hashCode() { 098 return Objects.hash(grantType, clientId, clientSecret, refreshToken); 099 } 100 101 @Override 102 public String toString() { 103 return "PostOAuth2TokenRefreshAccessToken{" 104 + "grantType='" 105 + grantType 106 + '\'' 107 + ", " 108 + "clientId='" 109 + clientId 110 + '\'' 111 + ", " 112 + "clientSecret='" 113 + clientSecret 114 + '\'' 115 + ", " 116 + "refreshToken='" 117 + refreshToken 118 + '\'' 119 + "}"; 120 } 121 122 public static class Builder extends NullableFieldTracker { 123 124 protected EnumWrapper<PostOAuth2TokenRefreshAccessTokenGrantTypeField> grantType; 125 126 protected final String clientId; 127 128 protected final String clientSecret; 129 130 protected final String refreshToken; 131 132 public Builder(String clientId, String clientSecret, String refreshToken) { 133 super(); 134 this.clientId = clientId; 135 this.clientSecret = clientSecret; 136 this.refreshToken = refreshToken; 137 } 138 139 public Builder grantType(PostOAuth2TokenRefreshAccessTokenGrantTypeField grantType) { 140 this.grantType = new EnumWrapper<PostOAuth2TokenRefreshAccessTokenGrantTypeField>(grantType); 141 return this; 142 } 143 144 public Builder grantType( 145 EnumWrapper<PostOAuth2TokenRefreshAccessTokenGrantTypeField> grantType) { 146 this.grantType = grantType; 147 return this; 148 } 149 150 public PostOAuth2TokenRefreshAccessToken build() { 151 if (this.grantType == null) { 152 this.grantType = 153 new EnumWrapper<PostOAuth2TokenRefreshAccessTokenGrantTypeField>( 154 PostOAuth2TokenRefreshAccessTokenGrantTypeField.REFRESH_TOKEN); 155 } 156 return new PostOAuth2TokenRefreshAccessToken(this); 157 } 158 } 159}