/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.sagemaker.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* Amazon SageMaker Feature Store stores features in a collection called Feature Group. A Feature Group can be * visualized as a table which has rows, with a unique identifier for each row where each column in the table is a * feature. In principle, a Feature Group is composed of features and values per features. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class FeatureGroup implements Serializable, Cloneable, StructuredPojo { /** *

* The Amazon Resource Name (ARN) of a FeatureGroup. *

*/ private String featureGroupArn; /** *

* The name of the FeatureGroup. *

*/ private String featureGroupName; /** *

* The name of the Feature whose value uniquely identifies a Record defined in the * FeatureGroup FeatureDefinitions. *

*/ private String recordIdentifierFeatureName; /** *

* The name of the feature that stores the EventTime of a Record in a FeatureGroup. *

*

* A EventTime is point in time when a new event occurs that corresponds to the creation or update of a * Record in FeatureGroup. All Records in the FeatureGroup must * have a corresponding EventTime. *

*/ private String eventTimeFeatureName; /** *

* A list of Features. Each Feature must include a FeatureName and a * FeatureType. *

*

* Valid FeatureTypes are Integral, Fractional and String. *

*

* FeatureNames cannot be any of the following: is_deleted, write_time, * api_invocation_time. *

*

* You can create up to 2,500 FeatureDefinitions per FeatureGroup. *

*/ private java.util.List featureDefinitions; /** *

* The time a FeatureGroup was created. *

*/ private java.util.Date creationTime; /** *

* A timestamp indicating the last time you updated the feature group. *

*/ private java.util.Date lastModifiedTime; private OnlineStoreConfig onlineStoreConfig; private OfflineStoreConfig offlineStoreConfig; /** *

* The Amazon Resource Name (ARN) of the IAM execution role used to create the feature group. *

*/ private String roleArn; /** *

* A FeatureGroup status. *

*/ private String featureGroupStatus; private OfflineStoreStatus offlineStoreStatus; /** *

* A value that indicates whether the feature group was updated successfully. *

*/ private LastUpdateStatus lastUpdateStatus; /** *

* The reason that the FeatureGroup failed to be replicated in the OfflineStore. This is * failure may be due to a failure to create a FeatureGroup in or delete a FeatureGroup * from the OfflineStore. *

*/ private String failureReason; /** *

* A free form description of a FeatureGroup. *

*/ private String description; /** *

* Tags used to define a FeatureGroup. *

*/ private java.util.List tags; /** *

* The Amazon Resource Name (ARN) of a FeatureGroup. *

* * @param featureGroupArn * The Amazon Resource Name (ARN) of a FeatureGroup. */ public void setFeatureGroupArn(String featureGroupArn) { this.featureGroupArn = featureGroupArn; } /** *

* The Amazon Resource Name (ARN) of a FeatureGroup. *

* * @return The Amazon Resource Name (ARN) of a FeatureGroup. */ public String getFeatureGroupArn() { return this.featureGroupArn; } /** *

* The Amazon Resource Name (ARN) of a FeatureGroup. *

* * @param featureGroupArn * The Amazon Resource Name (ARN) of a FeatureGroup. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withFeatureGroupArn(String featureGroupArn) { setFeatureGroupArn(featureGroupArn); return this; } /** *

* The name of the FeatureGroup. *

* * @param featureGroupName * The name of the FeatureGroup. */ public void setFeatureGroupName(String featureGroupName) { this.featureGroupName = featureGroupName; } /** *

* The name of the FeatureGroup. *

* * @return The name of the FeatureGroup. */ public String getFeatureGroupName() { return this.featureGroupName; } /** *

* The name of the FeatureGroup. *

* * @param featureGroupName * The name of the FeatureGroup. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withFeatureGroupName(String featureGroupName) { setFeatureGroupName(featureGroupName); return this; } /** *

* The name of the Feature whose value uniquely identifies a Record defined in the * FeatureGroup FeatureDefinitions. *

* * @param recordIdentifierFeatureName * The name of the Feature whose value uniquely identifies a Record defined in the * FeatureGroup FeatureDefinitions. */ public void setRecordIdentifierFeatureName(String recordIdentifierFeatureName) { this.recordIdentifierFeatureName = recordIdentifierFeatureName; } /** *

* The name of the Feature whose value uniquely identifies a Record defined in the * FeatureGroup FeatureDefinitions. *

* * @return The name of the Feature whose value uniquely identifies a Record defined in the * FeatureGroup FeatureDefinitions. */ public String getRecordIdentifierFeatureName() { return this.recordIdentifierFeatureName; } /** *

* The name of the Feature whose value uniquely identifies a Record defined in the * FeatureGroup FeatureDefinitions. *

* * @param recordIdentifierFeatureName * The name of the Feature whose value uniquely identifies a Record defined in the * FeatureGroup FeatureDefinitions. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withRecordIdentifierFeatureName(String recordIdentifierFeatureName) { setRecordIdentifierFeatureName(recordIdentifierFeatureName); return this; } /** *

* The name of the feature that stores the EventTime of a Record in a FeatureGroup. *

*

* A EventTime is point in time when a new event occurs that corresponds to the creation or update of a * Record in FeatureGroup. All Records in the FeatureGroup must * have a corresponding EventTime. *

* * @param eventTimeFeatureName * The name of the feature that stores the EventTime of a Record in a FeatureGroup * .

*

* A EventTime is point in time when a new event occurs that corresponds to the creation or * update of a Record in FeatureGroup. All Records in the * FeatureGroup must have a corresponding EventTime. */ public void setEventTimeFeatureName(String eventTimeFeatureName) { this.eventTimeFeatureName = eventTimeFeatureName; } /** *

* The name of the feature that stores the EventTime of a Record in a FeatureGroup. *

*

* A EventTime is point in time when a new event occurs that corresponds to the creation or update of a * Record in FeatureGroup. All Records in the FeatureGroup must * have a corresponding EventTime. *

* * @return The name of the feature that stores the EventTime of a Record in a FeatureGroup * .

*

* A EventTime is point in time when a new event occurs that corresponds to the creation or * update of a Record in FeatureGroup. All Records in the * FeatureGroup must have a corresponding EventTime. */ public String getEventTimeFeatureName() { return this.eventTimeFeatureName; } /** *

* The name of the feature that stores the EventTime of a Record in a FeatureGroup. *

*

* A EventTime is point in time when a new event occurs that corresponds to the creation or update of a * Record in FeatureGroup. All Records in the FeatureGroup must * have a corresponding EventTime. *

* * @param eventTimeFeatureName * The name of the feature that stores the EventTime of a Record in a FeatureGroup * .

*

* A EventTime is point in time when a new event occurs that corresponds to the creation or * update of a Record in FeatureGroup. All Records in the * FeatureGroup must have a corresponding EventTime. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withEventTimeFeatureName(String eventTimeFeatureName) { setEventTimeFeatureName(eventTimeFeatureName); return this; } /** *

* A list of Features. Each Feature must include a FeatureName and a * FeatureType. *

*

* Valid FeatureTypes are Integral, Fractional and String. *

*

* FeatureNames cannot be any of the following: is_deleted, write_time, * api_invocation_time. *

*

* You can create up to 2,500 FeatureDefinitions per FeatureGroup. *

* * @return A list of Features. Each Feature must include a FeatureName and a * FeatureType.

*

* Valid FeatureTypes are Integral, Fractional and * String. *

*

* FeatureNames cannot be any of the following: is_deleted, * write_time, api_invocation_time. *

*

* You can create up to 2,500 FeatureDefinitions per FeatureGroup. */ public java.util.List getFeatureDefinitions() { return featureDefinitions; } /** *

* A list of Features. Each Feature must include a FeatureName and a * FeatureType. *

*

* Valid FeatureTypes are Integral, Fractional and String. *

*

* FeatureNames cannot be any of the following: is_deleted, write_time, * api_invocation_time. *

*

* You can create up to 2,500 FeatureDefinitions per FeatureGroup. *

* * @param featureDefinitions * A list of Features. Each Feature must include a FeatureName and a * FeatureType.

*

* Valid FeatureTypes are Integral, Fractional and String * . *

*

* FeatureNames cannot be any of the following: is_deleted, write_time, api_invocation_time. *

*

* You can create up to 2,500 FeatureDefinitions per FeatureGroup. */ public void setFeatureDefinitions(java.util.Collection featureDefinitions) { if (featureDefinitions == null) { this.featureDefinitions = null; return; } this.featureDefinitions = new java.util.ArrayList(featureDefinitions); } /** *

* A list of Features. Each Feature must include a FeatureName and a * FeatureType. *

*

* Valid FeatureTypes are Integral, Fractional and String. *

*

* FeatureNames cannot be any of the following: is_deleted, write_time, * api_invocation_time. *

*

* You can create up to 2,500 FeatureDefinitions per FeatureGroup. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setFeatureDefinitions(java.util.Collection)} or {@link #withFeatureDefinitions(java.util.Collection)} if * you want to override the existing values. *

* * @param featureDefinitions * A list of Features. Each Feature must include a FeatureName and a * FeatureType.

*

* Valid FeatureTypes are Integral, Fractional and String * . *

*

* FeatureNames cannot be any of the following: is_deleted, write_time, api_invocation_time. *

*

* You can create up to 2,500 FeatureDefinitions per FeatureGroup. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withFeatureDefinitions(FeatureDefinition... featureDefinitions) { if (this.featureDefinitions == null) { setFeatureDefinitions(new java.util.ArrayList(featureDefinitions.length)); } for (FeatureDefinition ele : featureDefinitions) { this.featureDefinitions.add(ele); } return this; } /** *

* A list of Features. Each Feature must include a FeatureName and a * FeatureType. *

*

* Valid FeatureTypes are Integral, Fractional and String. *

*

* FeatureNames cannot be any of the following: is_deleted, write_time, * api_invocation_time. *

*

* You can create up to 2,500 FeatureDefinitions per FeatureGroup. *

* * @param featureDefinitions * A list of Features. Each Feature must include a FeatureName and a * FeatureType.

*

* Valid FeatureTypes are Integral, Fractional and String * . *

*

* FeatureNames cannot be any of the following: is_deleted, write_time, api_invocation_time. *

*

* You can create up to 2,500 FeatureDefinitions per FeatureGroup. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withFeatureDefinitions(java.util.Collection featureDefinitions) { setFeatureDefinitions(featureDefinitions); return this; } /** *

* The time a FeatureGroup was created. *

* * @param creationTime * The time a FeatureGroup was created. */ public void setCreationTime(java.util.Date creationTime) { this.creationTime = creationTime; } /** *

* The time a FeatureGroup was created. *

* * @return The time a FeatureGroup was created. */ public java.util.Date getCreationTime() { return this.creationTime; } /** *

* The time a FeatureGroup was created. *

* * @param creationTime * The time a FeatureGroup was created. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withCreationTime(java.util.Date creationTime) { setCreationTime(creationTime); return this; } /** *

* A timestamp indicating the last time you updated the feature group. *

* * @param lastModifiedTime * A timestamp indicating the last time you updated the feature group. */ public void setLastModifiedTime(java.util.Date lastModifiedTime) { this.lastModifiedTime = lastModifiedTime; } /** *

* A timestamp indicating the last time you updated the feature group. *

* * @return A timestamp indicating the last time you updated the feature group. */ public java.util.Date getLastModifiedTime() { return this.lastModifiedTime; } /** *

* A timestamp indicating the last time you updated the feature group. *

* * @param lastModifiedTime * A timestamp indicating the last time you updated the feature group. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withLastModifiedTime(java.util.Date lastModifiedTime) { setLastModifiedTime(lastModifiedTime); return this; } /** * @param onlineStoreConfig */ public void setOnlineStoreConfig(OnlineStoreConfig onlineStoreConfig) { this.onlineStoreConfig = onlineStoreConfig; } /** * @return */ public OnlineStoreConfig getOnlineStoreConfig() { return this.onlineStoreConfig; } /** * @param onlineStoreConfig * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withOnlineStoreConfig(OnlineStoreConfig onlineStoreConfig) { setOnlineStoreConfig(onlineStoreConfig); return this; } /** * @param offlineStoreConfig */ public void setOfflineStoreConfig(OfflineStoreConfig offlineStoreConfig) { this.offlineStoreConfig = offlineStoreConfig; } /** * @return */ public OfflineStoreConfig getOfflineStoreConfig() { return this.offlineStoreConfig; } /** * @param offlineStoreConfig * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withOfflineStoreConfig(OfflineStoreConfig offlineStoreConfig) { setOfflineStoreConfig(offlineStoreConfig); return this; } /** *

* The Amazon Resource Name (ARN) of the IAM execution role used to create the feature group. *

* * @param roleArn * The Amazon Resource Name (ARN) of the IAM execution role used to create the feature group. */ public void setRoleArn(String roleArn) { this.roleArn = roleArn; } /** *

* The Amazon Resource Name (ARN) of the IAM execution role used to create the feature group. *

* * @return The Amazon Resource Name (ARN) of the IAM execution role used to create the feature group. */ public String getRoleArn() { return this.roleArn; } /** *

* The Amazon Resource Name (ARN) of the IAM execution role used to create the feature group. *

* * @param roleArn * The Amazon Resource Name (ARN) of the IAM execution role used to create the feature group. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withRoleArn(String roleArn) { setRoleArn(roleArn); return this; } /** *

* A FeatureGroup status. *

* * @param featureGroupStatus * A FeatureGroup status. * @see FeatureGroupStatus */ public void setFeatureGroupStatus(String featureGroupStatus) { this.featureGroupStatus = featureGroupStatus; } /** *

* A FeatureGroup status. *

* * @return A FeatureGroup status. * @see FeatureGroupStatus */ public String getFeatureGroupStatus() { return this.featureGroupStatus; } /** *

* A FeatureGroup status. *

* * @param featureGroupStatus * A FeatureGroup status. * @return Returns a reference to this object so that method calls can be chained together. * @see FeatureGroupStatus */ public FeatureGroup withFeatureGroupStatus(String featureGroupStatus) { setFeatureGroupStatus(featureGroupStatus); return this; } /** *

* A FeatureGroup status. *

* * @param featureGroupStatus * A FeatureGroup status. * @return Returns a reference to this object so that method calls can be chained together. * @see FeatureGroupStatus */ public FeatureGroup withFeatureGroupStatus(FeatureGroupStatus featureGroupStatus) { this.featureGroupStatus = featureGroupStatus.toString(); return this; } /** * @param offlineStoreStatus */ public void setOfflineStoreStatus(OfflineStoreStatus offlineStoreStatus) { this.offlineStoreStatus = offlineStoreStatus; } /** * @return */ public OfflineStoreStatus getOfflineStoreStatus() { return this.offlineStoreStatus; } /** * @param offlineStoreStatus * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withOfflineStoreStatus(OfflineStoreStatus offlineStoreStatus) { setOfflineStoreStatus(offlineStoreStatus); return this; } /** *

* A value that indicates whether the feature group was updated successfully. *

* * @param lastUpdateStatus * A value that indicates whether the feature group was updated successfully. */ public void setLastUpdateStatus(LastUpdateStatus lastUpdateStatus) { this.lastUpdateStatus = lastUpdateStatus; } /** *

* A value that indicates whether the feature group was updated successfully. *

* * @return A value that indicates whether the feature group was updated successfully. */ public LastUpdateStatus getLastUpdateStatus() { return this.lastUpdateStatus; } /** *

* A value that indicates whether the feature group was updated successfully. *

* * @param lastUpdateStatus * A value that indicates whether the feature group was updated successfully. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withLastUpdateStatus(LastUpdateStatus lastUpdateStatus) { setLastUpdateStatus(lastUpdateStatus); return this; } /** *

* The reason that the FeatureGroup failed to be replicated in the OfflineStore. This is * failure may be due to a failure to create a FeatureGroup in or delete a FeatureGroup * from the OfflineStore. *

* * @param failureReason * The reason that the FeatureGroup failed to be replicated in the OfflineStore. * This is failure may be due to a failure to create a FeatureGroup in or delete a * FeatureGroup from the OfflineStore. */ public void setFailureReason(String failureReason) { this.failureReason = failureReason; } /** *

* The reason that the FeatureGroup failed to be replicated in the OfflineStore. This is * failure may be due to a failure to create a FeatureGroup in or delete a FeatureGroup * from the OfflineStore. *

* * @return The reason that the FeatureGroup failed to be replicated in the OfflineStore. * This is failure may be due to a failure to create a FeatureGroup in or delete a * FeatureGroup from the OfflineStore. */ public String getFailureReason() { return this.failureReason; } /** *

* The reason that the FeatureGroup failed to be replicated in the OfflineStore. This is * failure may be due to a failure to create a FeatureGroup in or delete a FeatureGroup * from the OfflineStore. *

* * @param failureReason * The reason that the FeatureGroup failed to be replicated in the OfflineStore. * This is failure may be due to a failure to create a FeatureGroup in or delete a * FeatureGroup from the OfflineStore. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withFailureReason(String failureReason) { setFailureReason(failureReason); return this; } /** *

* A free form description of a FeatureGroup. *

* * @param description * A free form description of a FeatureGroup. */ public void setDescription(String description) { this.description = description; } /** *

* A free form description of a FeatureGroup. *

* * @return A free form description of a FeatureGroup. */ public String getDescription() { return this.description; } /** *

* A free form description of a FeatureGroup. *

* * @param description * A free form description of a FeatureGroup. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withDescription(String description) { setDescription(description); return this; } /** *

* Tags used to define a FeatureGroup. *

* * @return Tags used to define a FeatureGroup. */ public java.util.List getTags() { return tags; } /** *

* Tags used to define a FeatureGroup. *

* * @param tags * Tags used to define a FeatureGroup. */ public void setTags(java.util.Collection tags) { if (tags == null) { this.tags = null; return; } this.tags = new java.util.ArrayList(tags); } /** *

* Tags used to define a FeatureGroup. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the * existing values. *

* * @param tags * Tags used to define a FeatureGroup. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withTags(Tag... tags) { if (this.tags == null) { setTags(new java.util.ArrayList(tags.length)); } for (Tag ele : tags) { this.tags.add(ele); } return this; } /** *

* Tags used to define a FeatureGroup. *

* * @param tags * Tags used to define a FeatureGroup. * @return Returns a reference to this object so that method calls can be chained together. */ public FeatureGroup withTags(java.util.Collection tags) { setTags(tags); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getFeatureGroupArn() != null) sb.append("FeatureGroupArn: ").append(getFeatureGroupArn()).append(","); if (getFeatureGroupName() != null) sb.append("FeatureGroupName: ").append(getFeatureGroupName()).append(","); if (getRecordIdentifierFeatureName() != null) sb.append("RecordIdentifierFeatureName: ").append(getRecordIdentifierFeatureName()).append(","); if (getEventTimeFeatureName() != null) sb.append("EventTimeFeatureName: ").append(getEventTimeFeatureName()).append(","); if (getFeatureDefinitions() != null) sb.append("FeatureDefinitions: ").append(getFeatureDefinitions()).append(","); if (getCreationTime() != null) sb.append("CreationTime: ").append(getCreationTime()).append(","); if (getLastModifiedTime() != null) sb.append("LastModifiedTime: ").append(getLastModifiedTime()).append(","); if (getOnlineStoreConfig() != null) sb.append("OnlineStoreConfig: ").append(getOnlineStoreConfig()).append(","); if (getOfflineStoreConfig() != null) sb.append("OfflineStoreConfig: ").append(getOfflineStoreConfig()).append(","); if (getRoleArn() != null) sb.append("RoleArn: ").append(getRoleArn()).append(","); if (getFeatureGroupStatus() != null) sb.append("FeatureGroupStatus: ").append(getFeatureGroupStatus()).append(","); if (getOfflineStoreStatus() != null) sb.append("OfflineStoreStatus: ").append(getOfflineStoreStatus()).append(","); if (getLastUpdateStatus() != null) sb.append("LastUpdateStatus: ").append(getLastUpdateStatus()).append(","); if (getFailureReason() != null) sb.append("FailureReason: ").append(getFailureReason()).append(","); if (getDescription() != null) sb.append("Description: ").append(getDescription()).append(","); if (getTags() != null) sb.append("Tags: ").append(getTags()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof FeatureGroup == false) return false; FeatureGroup other = (FeatureGroup) obj; if (other.getFeatureGroupArn() == null ^ this.getFeatureGroupArn() == null) return false; if (other.getFeatureGroupArn() != null && other.getFeatureGroupArn().equals(this.getFeatureGroupArn()) == false) return false; if (other.getFeatureGroupName() == null ^ this.getFeatureGroupName() == null) return false; if (other.getFeatureGroupName() != null && other.getFeatureGroupName().equals(this.getFeatureGroupName()) == false) return false; if (other.getRecordIdentifierFeatureName() == null ^ this.getRecordIdentifierFeatureName() == null) return false; if (other.getRecordIdentifierFeatureName() != null && other.getRecordIdentifierFeatureName().equals(this.getRecordIdentifierFeatureName()) == false) return false; if (other.getEventTimeFeatureName() == null ^ this.getEventTimeFeatureName() == null) return false; if (other.getEventTimeFeatureName() != null && other.getEventTimeFeatureName().equals(this.getEventTimeFeatureName()) == false) return false; if (other.getFeatureDefinitions() == null ^ this.getFeatureDefinitions() == null) return false; if (other.getFeatureDefinitions() != null && other.getFeatureDefinitions().equals(this.getFeatureDefinitions()) == false) return false; if (other.getCreationTime() == null ^ this.getCreationTime() == null) return false; if (other.getCreationTime() != null && other.getCreationTime().equals(this.getCreationTime()) == false) return false; if (other.getLastModifiedTime() == null ^ this.getLastModifiedTime() == null) return false; if (other.getLastModifiedTime() != null && other.getLastModifiedTime().equals(this.getLastModifiedTime()) == false) return false; if (other.getOnlineStoreConfig() == null ^ this.getOnlineStoreConfig() == null) return false; if (other.getOnlineStoreConfig() != null && other.getOnlineStoreConfig().equals(this.getOnlineStoreConfig()) == false) return false; if (other.getOfflineStoreConfig() == null ^ this.getOfflineStoreConfig() == null) return false; if (other.getOfflineStoreConfig() != null && other.getOfflineStoreConfig().equals(this.getOfflineStoreConfig()) == false) return false; if (other.getRoleArn() == null ^ this.getRoleArn() == null) return false; if (other.getRoleArn() != null && other.getRoleArn().equals(this.getRoleArn()) == false) return false; if (other.getFeatureGroupStatus() == null ^ this.getFeatureGroupStatus() == null) return false; if (other.getFeatureGroupStatus() != null && other.getFeatureGroupStatus().equals(this.getFeatureGroupStatus()) == false) return false; if (other.getOfflineStoreStatus() == null ^ this.getOfflineStoreStatus() == null) return false; if (other.getOfflineStoreStatus() != null && other.getOfflineStoreStatus().equals(this.getOfflineStoreStatus()) == false) return false; if (other.getLastUpdateStatus() == null ^ this.getLastUpdateStatus() == null) return false; if (other.getLastUpdateStatus() != null && other.getLastUpdateStatus().equals(this.getLastUpdateStatus()) == false) return false; if (other.getFailureReason() == null ^ this.getFailureReason() == null) return false; if (other.getFailureReason() != null && other.getFailureReason().equals(this.getFailureReason()) == false) return false; if (other.getDescription() == null ^ this.getDescription() == null) return false; if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getFeatureGroupArn() == null) ? 0 : getFeatureGroupArn().hashCode()); hashCode = prime * hashCode + ((getFeatureGroupName() == null) ? 0 : getFeatureGroupName().hashCode()); hashCode = prime * hashCode + ((getRecordIdentifierFeatureName() == null) ? 0 : getRecordIdentifierFeatureName().hashCode()); hashCode = prime * hashCode + ((getEventTimeFeatureName() == null) ? 0 : getEventTimeFeatureName().hashCode()); hashCode = prime * hashCode + ((getFeatureDefinitions() == null) ? 0 : getFeatureDefinitions().hashCode()); hashCode = prime * hashCode + ((getCreationTime() == null) ? 0 : getCreationTime().hashCode()); hashCode = prime * hashCode + ((getLastModifiedTime() == null) ? 0 : getLastModifiedTime().hashCode()); hashCode = prime * hashCode + ((getOnlineStoreConfig() == null) ? 0 : getOnlineStoreConfig().hashCode()); hashCode = prime * hashCode + ((getOfflineStoreConfig() == null) ? 0 : getOfflineStoreConfig().hashCode()); hashCode = prime * hashCode + ((getRoleArn() == null) ? 0 : getRoleArn().hashCode()); hashCode = prime * hashCode + ((getFeatureGroupStatus() == null) ? 0 : getFeatureGroupStatus().hashCode()); hashCode = prime * hashCode + ((getOfflineStoreStatus() == null) ? 0 : getOfflineStoreStatus().hashCode()); hashCode = prime * hashCode + ((getLastUpdateStatus() == null) ? 0 : getLastUpdateStatus().hashCode()); hashCode = prime * hashCode + ((getFailureReason() == null) ? 0 : getFailureReason().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); return hashCode; } @Override public FeatureGroup clone() { try { return (FeatureGroup) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.sagemaker.model.transform.FeatureGroupMarshaller.getInstance().marshall(this, protocolMarshaller); } }