// Path: src/main/java/com/amazon/dtasdk/base/InstantAccessOperationValue.java
// public enum InstantAccessOperationValue {
//     PURCHASE("Purchase"),
//     REVOKE("Revoke"),
//     GETUSERID("GetUserId"),
//     SUBSCRIPTIONGET("SubscriptionGet"),
//     SUBSCRIPTIONACTIVATE("SubscriptionActivate"),
//     SUBSCRIPTIONDEACTIVATE("SubscriptionDeactivate"),
//     SUBSCRIPTIONUPDATE("SubscriptionUpdate");
// 
//     private String apiName;
// 
//     /**
//      * @param apiName
//      *            The string representation of the operation according to the API
//      */
//     InstantAccessOperationValue(String apiName) {
//         this.apiName = apiName;
//     }
// 
//     @JsonValue
//     public String toJson() {
//         return apiName;
//     }
// 
//     @JsonCreator
//     public static InstantAccessOperationValue fromJson(String text) {
//         // ignore the case when deserializing
//         return valueOf(text.toUpperCase());
//     }
// }
// 
// Path: src/main/java/com/amazon/dtasdk/base/InstantAccessRequest.java
// @JsonIgnoreProperties(ignoreUnknown = true)
// @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
// public class InstantAccessRequest {
//     protected InstantAccessOperationValue operation;
// 
//     public InstantAccessOperationValue getOperation() {
//         return operation;
//     }
// 
//     public InstantAccessRequest setOperation(InstantAccessOperationValue operation) {
//         this.operation = operation;
//         return this;
//     }
// 
//     @Override
//     public int hashCode() {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + ((operation == null) ? 0 : operation.hashCode());
//         return result;
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (this == obj) {
//             return true;
//         }
//         if (obj == null) {
//             return false;
//         }
//         if (getClass() != obj.getClass()) {
//             return false;
//         }
//         InstantAccessRequest other = (InstantAccessRequest) obj;
//         if (operation == null) {
//             if (other.operation != null) {
//                 return false;
//             }
//         } else if (!operation.equals(other.operation)) {
//             return false;
//         }
//         return true;
//     }
// 
//     @Override
//     public String toString() {
//         return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append("operation", operation).toString();
//     }
// 
// }


import com.amazon.dtasdk.base.InstantAccessOperationValue;
import com.amazon.dtasdk.base.InstantAccessRequest;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        RevokePurchaseRequest other = (RevokePurchaseRequest) obj;
        if (operation == null) {
            if (other.operation != null) {
                return false;
            }
        } else if (!operation.equals(other.operation)) {
            return false;
        }
        if (productId == null) {
            if (other.productId != null) {
                return false;
            }
        } else if (!productId.equals(other.productId)) {
            return false;
        }
        if (purchaseToken == null) {
            if (other.purchaseToken != null) {
                return false;
            }
// Path: src/main/java/com/amazon/dtasdk/base/InstantAccessOperationValue.java
// public enum InstantAccessOperationValue {
//     PURCHASE("Purchase"),
//     REVOKE("Revoke"),
//     GETUSERID("GetUserId"),
//     SUBSCRIPTIONGET("SubscriptionGet"),
//     SUBSCRIPTIONACTIVATE("SubscriptionActivate"),
//     SUBSCRIPTIONDEACTIVATE("SubscriptionDeactivate"),
//     SUBSCRIPTIONUPDATE("SubscriptionUpdate");
// 
//     private String apiName;
// 
//     /**
//      * @param apiName
//      *            The string representation of the operation according to the API
//      */
//     InstantAccessOperationValue(String apiName) {
//         this.apiName = apiName;
//     }
// 
//     @JsonValue
//     public String toJson() {
//         return apiName;
//     }
// 
//     @JsonCreator
//     public static InstantAccessOperationValue fromJson(String text) {
//         // ignore the case when deserializing
//         return valueOf(text.toUpperCase());
//     }
// }
// 
// Path: src/main/java/com/amazon/dtasdk/base/InstantAccessRequest.java
// @JsonIgnoreProperties(ignoreUnknown = true)
// @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
// public class InstantAccessRequest {
//     protected InstantAccessOperationValue operation;
// 
//     public InstantAccessOperationValue getOperation() {
//         return operation;
//     }
// 
//     public InstantAccessRequest setOperation(InstantAccessOperationValue operation) {
//         this.operation = operation;
//         return this;
//     }
// 
//     @Override
//     public int hashCode() {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + ((operation == null) ? 0 : operation.hashCode());
//         return result;
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (this == obj) {
//             return true;
//         }
//         if (obj == null) {
//             return false;
//         }
//         if (getClass() != obj.getClass()) {
//             return false;
//         }
//         InstantAccessRequest other = (InstantAccessRequest) obj;
//         if (operation == null) {
//             if (other.operation != null) {
//                 return false;
//             }
//         } else if (!operation.equals(other.operation)) {
//             return false;
//         }
//         return true;
//     }
// 
//     @Override
//     public String toString() {
//         return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append("operation", operation).toString();
//     }
// 
// }


// Path: src/main/java/com/amazon/dtasdk/v2/serialization/messages/RevokePurchaseRequest.java
import com.amazon.dtasdk.base.InstantAccessOperationValue;
import com.amazon.dtasdk.base.InstantAccessRequest;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        RevokePurchaseRequest other = (RevokePurchaseRequest) obj;
        if (operation == null) {
            if (other.operation != null) {
                return false;
            }
        } else if (!operation.equals(other.operation)) {
            return false;
        }
        if (productId == null) {
            if (other.productId != null) {
                return false;
            }
        } else if (!productId.equals(other.productId)) {
            return false;
        }
        if (purchaseToken == null) {
            if (other.purchaseToken != null) {
                return false;
            }
        } else if (!purchaseToken.equals(other.purchaseToken)) {