/* * 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.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateFeatureGroupRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
     * The name of the FeatureGroup. The name must be unique within an Amazon Web Services Region in an
     * Amazon Web Services account. The name:
     * 
* Must start and end with an alphanumeric character. *
** Can only contain alphanumeric character and hyphens. Spaces are not allowed. *
*
     * The name of the Feature whose value uniquely identifies a Record defined in the
     * FeatureStore. Only the latest record per identifier value will be stored in the
     * OnlineStore. RecordIdentifierFeatureName must be one of feature definitions' names.
     * 
     * You use the RecordIdentifierFeatureName to access data in a FeatureStore.
     * 
* This name: *
** Must start and end with an alphanumeric character. *
** Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed. *
*
     * The name of the feature that stores the EventTime of a Record in a
     * FeatureGroup.
     * 
     * An EventTime is a point in time when a new event occurs that corresponds to the creation or update
     * of a Record in a FeatureGroup. All Records in the
     * FeatureGroup must have a corresponding EventTime.
     * 
     * An EventTime can be a String or Fractional.
     * 
     * Fractional: EventTime feature values must be a Unix timestamp in seconds.
     * 
     * String: EventTime feature values must be an ISO-8601 string in the format. The
     * following formats are supported yyyy-MM-dd'T'HH:mm:ssZ and yyyy-MM-dd'T'HH:mm:ss.SSSZ
     * where yyyy, MM, and dd represent the year, month, and day respectively and
     * HH, mm, ss, and if applicable, SSS represent the hour, month,
     * second and milliseconds respsectively. 'T' and Z are constants.
     * 
     * A list of Feature names and types. Name and Type is compulsory per
     * Feature.
     * 
     * Valid feature 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.
     * 
     * You can turn the OnlineStore on or off by specifying True for the
     * EnableOnlineStore flag in OnlineStoreConfig.
     * 
     * You can also include an Amazon Web Services KMS key ID (KMSKeyId) for at-rest encryption of the
     * OnlineStore.
     * 
     * The default value is False.
     * 
     * Use this to configure an OfflineFeatureStore. This parameter allows you to specify:
     * 
     * The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore.
     * 
* A configuration for an Amazon Web Services Glue or Amazon Web Services Hive data catalog. *
*
     * An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore. If KMS encryption key
     * is not specified, by default we encrypt all data at rest using Amazon Web Services KMS key. By defining your bucket-level key for SSE, you
     * can reduce Amazon Web Services KMS requests costs by up to 99 percent.
     * 
* Format for the offline store table. Supported formats are Glue (Default) and Apache Iceberg. *
** To learn more about this parameter, see OfflineStoreConfig. *
*/ private OfflineStoreConfig offlineStoreConfig; /** *
     * The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the OfflineStore
     * if an OfflineStoreConfig is provided.
     * 
     * A free-form description of a FeatureGroup.
     * 
     * Tags used to identify Features in each FeatureGroup.
     * 
     * The name of the FeatureGroup. The name must be unique within an Amazon Web Services Region in an
     * Amazon Web Services account. The name:
     * 
* Must start and end with an alphanumeric character. *
** Can only contain alphanumeric character and hyphens. Spaces are not allowed. *
*FeatureGroup. The name must be unique within an Amazon Web Services Region in
     *        an Amazon Web Services account. The name:
     *        * Must start and end with an alphanumeric character. *
** Can only contain alphanumeric character and hyphens. Spaces are not allowed. *
*
     * The name of the FeatureGroup. The name must be unique within an Amazon Web Services Region in an
     * Amazon Web Services account. The name:
     * 
* Must start and end with an alphanumeric character. *
** Can only contain alphanumeric character and hyphens. Spaces are not allowed. *
*FeatureGroup. The name must be unique within an Amazon Web Services Region
     *         in an Amazon Web Services account. The name:
     *         * Must start and end with an alphanumeric character. *
** Can only contain alphanumeric character and hyphens. Spaces are not allowed. *
*
     * The name of the FeatureGroup. The name must be unique within an Amazon Web Services Region in an
     * Amazon Web Services account. The name:
     * 
* Must start and end with an alphanumeric character. *
** Can only contain alphanumeric character and hyphens. Spaces are not allowed. *
*FeatureGroup. The name must be unique within an Amazon Web Services Region in
     *        an Amazon Web Services account. The name:
     *        * Must start and end with an alphanumeric character. *
** Can only contain alphanumeric character and hyphens. Spaces are not allowed. *
*
     * The name of the Feature whose value uniquely identifies a Record defined in the
     * FeatureStore. Only the latest record per identifier value will be stored in the
     * OnlineStore. RecordIdentifierFeatureName must be one of feature definitions' names.
     * 
     * You use the RecordIdentifierFeatureName to access data in a FeatureStore.
     * 
* This name: *
** Must start and end with an alphanumeric character. *
** Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed. *
*Feature whose value uniquely identifies a Record defined in the
     *        FeatureStore. Only the latest record per identifier value will be stored in the
     *        OnlineStore. RecordIdentifierFeatureName must be one of feature definitions'
     *        names.
     *        
     *        You use the RecordIdentifierFeatureName to access data in a FeatureStore.
     *        
* This name: *
** Must start and end with an alphanumeric character. *
** Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed. *
*
     * The name of the Feature whose value uniquely identifies a Record defined in the
     * FeatureStore. Only the latest record per identifier value will be stored in the
     * OnlineStore. RecordIdentifierFeatureName must be one of feature definitions' names.
     * 
     * You use the RecordIdentifierFeatureName to access data in a FeatureStore.
     * 
* This name: *
** Must start and end with an alphanumeric character. *
** Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed. *
*Feature whose value uniquely identifies a Record defined in the
     *         FeatureStore. Only the latest record per identifier value will be stored in the
     *         OnlineStore. RecordIdentifierFeatureName must be one of feature definitions'
     *         names.
     *         
     *         You use the RecordIdentifierFeatureName to access data in a FeatureStore.
     *         
* This name: *
** Must start and end with an alphanumeric character. *
** Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed. *
*
     * The name of the Feature whose value uniquely identifies a Record defined in the
     * FeatureStore. Only the latest record per identifier value will be stored in the
     * OnlineStore. RecordIdentifierFeatureName must be one of feature definitions' names.
     * 
     * You use the RecordIdentifierFeatureName to access data in a FeatureStore.
     * 
* This name: *
** Must start and end with an alphanumeric character. *
** Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed. *
*Feature whose value uniquely identifies a Record defined in the
     *        FeatureStore. Only the latest record per identifier value will be stored in the
     *        OnlineStore. RecordIdentifierFeatureName must be one of feature definitions'
     *        names.
     *        
     *        You use the RecordIdentifierFeatureName to access data in a FeatureStore.
     *        
* This name: *
** Must start and end with an alphanumeric character. *
** Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed. *
*
     * The name of the feature that stores the EventTime of a Record in a
     * FeatureGroup.
     * 
     * An EventTime is a point in time when a new event occurs that corresponds to the creation or update
     * of a Record in a FeatureGroup. All Records in the
     * FeatureGroup must have a corresponding EventTime.
     * 
     * An EventTime can be a String or Fractional.
     * 
     * Fractional: EventTime feature values must be a Unix timestamp in seconds.
     * 
     * String: EventTime feature values must be an ISO-8601 string in the format. The
     * following formats are supported yyyy-MM-dd'T'HH:mm:ssZ and yyyy-MM-dd'T'HH:mm:ss.SSSZ
     * where yyyy, MM, and dd represent the year, month, and day respectively and
     * HH, mm, ss, and if applicable, SSS represent the hour, month,
     * second and milliseconds respsectively. 'T' and Z are constants.
     * 
EventTime of a Record in a
     *        FeatureGroup.
     *        
     *        An EventTime is a point in time when a new event occurs that corresponds to the creation or
     *        update of a Record in a FeatureGroup. All Records in the
     *        FeatureGroup must have a corresponding EventTime.
     *        
     *        An EventTime can be a String or Fractional.
     *        
     *        Fractional: EventTime feature values must be a Unix timestamp in seconds.
     *        
     *        String: EventTime feature values must be an ISO-8601 string in the format. The
     *        following formats are supported yyyy-MM-dd'T'HH:mm:ssZ and
     *        yyyy-MM-dd'T'HH:mm:ss.SSSZ where yyyy, MM, and dd
     *        represent the year, month, and day respectively and HH, mm, ss, and
     *        if applicable, SSS represent the hour, month, second and milliseconds respsectively.
     *        'T' and Z are constants.
     *        
     * The name of the feature that stores the EventTime of a Record in a
     * FeatureGroup.
     * 
     * An EventTime is a point in time when a new event occurs that corresponds to the creation or update
     * of a Record in a FeatureGroup. All Records in the
     * FeatureGroup must have a corresponding EventTime.
     * 
     * An EventTime can be a String or Fractional.
     * 
     * Fractional: EventTime feature values must be a Unix timestamp in seconds.
     * 
     * String: EventTime feature values must be an ISO-8601 string in the format. The
     * following formats are supported yyyy-MM-dd'T'HH:mm:ssZ and yyyy-MM-dd'T'HH:mm:ss.SSSZ
     * where yyyy, MM, and dd represent the year, month, and day respectively and
     * HH, mm, ss, and if applicable, SSS represent the hour, month,
     * second and milliseconds respsectively. 'T' and Z are constants.
     * 
EventTime of a Record in a
     *         FeatureGroup.
     *         
     *         An EventTime is a point in time when a new event occurs that corresponds to the creation or
     *         update of a Record in a FeatureGroup. All Records in the
     *         FeatureGroup must have a corresponding EventTime.
     *         
     *         An EventTime can be a String or Fractional.
     *         
     *         Fractional: EventTime feature values must be a Unix timestamp in seconds.
     *         
     *         String: EventTime feature values must be an ISO-8601 string in the format. The
     *         following formats are supported yyyy-MM-dd'T'HH:mm:ssZ and
     *         yyyy-MM-dd'T'HH:mm:ss.SSSZ where yyyy, MM, and dd
     *         represent the year, month, and day respectively and HH, mm, ss,
     *         and if applicable, SSS represent the hour, month, second and milliseconds respsectively.
     *         'T' and Z are constants.
     *         
     * The name of the feature that stores the EventTime of a Record in a
     * FeatureGroup.
     * 
     * An EventTime is a point in time when a new event occurs that corresponds to the creation or update
     * of a Record in a FeatureGroup. All Records in the
     * FeatureGroup must have a corresponding EventTime.
     * 
     * An EventTime can be a String or Fractional.
     * 
     * Fractional: EventTime feature values must be a Unix timestamp in seconds.
     * 
     * String: EventTime feature values must be an ISO-8601 string in the format. The
     * following formats are supported yyyy-MM-dd'T'HH:mm:ssZ and yyyy-MM-dd'T'HH:mm:ss.SSSZ
     * where yyyy, MM, and dd represent the year, month, and day respectively and
     * HH, mm, ss, and if applicable, SSS represent the hour, month,
     * second and milliseconds respsectively. 'T' and Z are constants.
     * 
EventTime of a Record in a
     *        FeatureGroup.
     *        
     *        An EventTime is a point in time when a new event occurs that corresponds to the creation or
     *        update of a Record in a FeatureGroup. All Records in the
     *        FeatureGroup must have a corresponding EventTime.
     *        
     *        An EventTime can be a String or Fractional.
     *        
     *        Fractional: EventTime feature values must be a Unix timestamp in seconds.
     *        
     *        String: EventTime feature values must be an ISO-8601 string in the format. The
     *        following formats are supported yyyy-MM-dd'T'HH:mm:ssZ and
     *        yyyy-MM-dd'T'HH:mm:ss.SSSZ where yyyy, MM, and dd
     *        represent the year, month, and day respectively and HH, mm, ss, and
     *        if applicable, SSS represent the hour, month, second and milliseconds respsectively.
     *        'T' and Z are constants.
     *        
     * A list of Feature names and types. Name and Type is compulsory per
     * Feature.
     * 
     * Valid feature 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.
     * 
Feature names and types. Name and Type is compulsory per
     *         Feature. 
     *         
     *         Valid feature 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  
     * A list of  
     * Valid feature  
     *  
     * You can create up to 2,500 FeatureDefinitions per FeatureGroup.
     */
    public java.util.ListFeature names and types. Name and Type is compulsory per
     * Feature.
     * FeatureTypes are Integral, Fractional and
     * String.
     * FeatureNames cannot be any of the following: is_deleted, write_time,
     * api_invocation_time
     * FeatureDefinitions per FeatureGroup.
     * Feature names and types. Name and Type is compulsory per
     *        Feature. 
     *        Valid feature 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  
     * A list of  
     * Valid feature  
     *  
     * You can create up to 2,500  
     * 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.
     * FeatureDefinitions per FeatureGroup.
     */
    public void setFeatureDefinitions(java.util.CollectionFeature names and types. Name and Type is compulsory per
     * Feature.
     * FeatureTypes are Integral, Fractional and
     * String.
     * FeatureNames cannot be any of the following: is_deleted, write_time,
     * api_invocation_time
     * FeatureDefinitions per FeatureGroup.
     * Feature names and types. Name and Type is compulsory per
     *        Feature. 
     *        Valid feature 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  
     * A list of  
     * Valid feature  
     *  
     * 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 CreateFeatureGroupRequest withFeatureDefinitions(FeatureDefinition... featureDefinitions) {
        if (this.featureDefinitions == null) {
            setFeatureDefinitions(new java.util.ArrayListFeature names and types. Name and Type is compulsory per
     * Feature.
     * FeatureTypes are Integral, Fractional and
     * String.
     * FeatureNames cannot be any of the following: is_deleted, write_time,
     * api_invocation_time
     * FeatureDefinitions per FeatureGroup.
     * Feature names and types. Name and Type is compulsory per
     *        Feature. 
     *        Valid feature 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  
     * You can turn the  
     * You can also include an Amazon Web Services KMS key ID ( 
     * The default value is FeatureDefinitions per FeatureGroup.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateFeatureGroupRequest withFeatureDefinitions(java.util.CollectionOnlineStore on or off by specifying True for the
     * EnableOnlineStore flag in OnlineStoreConfig.
     * KMSKeyId) for at-rest encryption of the
     * OnlineStore.
     * False.
     * OnlineStore on or off by specifying True for the
     *        EnableOnlineStore flag in OnlineStoreConfig.
     *        You can also include an Amazon Web Services KMS key ID (KMSKeyId) for at-rest encryption of
     *        the OnlineStore.
     *        
     *        The default value is False.
     */
    public void setOnlineStoreConfig(OnlineStoreConfig onlineStoreConfig) {
        this.onlineStoreConfig = onlineStoreConfig;
    }
    /**
     * 
     * You can turn the OnlineStore on or off by specifying True for the
     * EnableOnlineStore flag in OnlineStoreConfig.
     * 
     * You can also include an Amazon Web Services KMS key ID (KMSKeyId) for at-rest encryption of the
     * OnlineStore.
     * 
     * The default value is False.
     * 
OnlineStore on or off by specifying True for the
     *         EnableOnlineStore flag in OnlineStoreConfig.
     *         
     *         You can also include an Amazon Web Services KMS key ID (KMSKeyId) for at-rest encryption of
     *         the OnlineStore.
     *         
     *         The default value is False.
     */
    public OnlineStoreConfig getOnlineStoreConfig() {
        return this.onlineStoreConfig;
    }
    /**
     * 
     * You can turn the OnlineStore on or off by specifying True for the
     * EnableOnlineStore flag in OnlineStoreConfig.
     * 
     * You can also include an Amazon Web Services KMS key ID (KMSKeyId) for at-rest encryption of the
     * OnlineStore.
     * 
     * The default value is False.
     * 
OnlineStore on or off by specifying True for the
     *        EnableOnlineStore flag in OnlineStoreConfig.
     *        
     *        You can also include an Amazon Web Services KMS key ID (KMSKeyId) for at-rest encryption of
     *        the OnlineStore.
     *        
     *        The default value is False.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateFeatureGroupRequest withOnlineStoreConfig(OnlineStoreConfig onlineStoreConfig) {
        setOnlineStoreConfig(onlineStoreConfig);
        return this;
    }
    /**
     * 
     * Use this to configure an OfflineFeatureStore. This parameter allows you to specify:
     * 
     * The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore.
     * 
* A configuration for an Amazon Web Services Glue or Amazon Web Services Hive data catalog. *
*
     * An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore. If KMS encryption key
     * is not specified, by default we encrypt all data at rest using Amazon Web Services KMS key. By defining your bucket-level key for SSE, you
     * can reduce Amazon Web Services KMS requests costs by up to 99 percent.
     * 
* Format for the offline store table. Supported formats are Glue (Default) and Apache Iceberg. *
** To learn more about this parameter, see OfflineStoreConfig. *
* * @param offlineStoreConfig * Use this to configure anOfflineFeatureStore. This parameter allows you to specify:
     *        
     *        The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore.
     *        
* A configuration for an Amazon Web Services Glue or Amazon Web Services Hive data catalog. *
*
     *        An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore. If KMS
     *        encryption key is not specified, by default we encrypt all data at rest using Amazon Web Services KMS key.
     *        By defining your bucket-level key for SSE,
     *        you can reduce Amazon Web Services KMS requests costs by up to 99 percent.
     *        
* Format for the offline store table. Supported formats are Glue (Default) and Apache Iceberg. *
** To learn more about this parameter, see OfflineStoreConfig. */ public void setOfflineStoreConfig(OfflineStoreConfig offlineStoreConfig) { this.offlineStoreConfig = offlineStoreConfig; } /** *
     * Use this to configure an OfflineFeatureStore. This parameter allows you to specify:
     * 
     * The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore.
     * 
* A configuration for an Amazon Web Services Glue or Amazon Web Services Hive data catalog. *
*
     * An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore. If KMS encryption key
     * is not specified, by default we encrypt all data at rest using Amazon Web Services KMS key. By defining your bucket-level key for SSE, you
     * can reduce Amazon Web Services KMS requests costs by up to 99 percent.
     * 
* Format for the offline store table. Supported formats are Glue (Default) and Apache Iceberg. *
** To learn more about this parameter, see OfflineStoreConfig. *
* * @return Use this to configure anOfflineFeatureStore. This parameter allows you to specify:
     *         
     *         The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore.
     *         
* A configuration for an Amazon Web Services Glue or Amazon Web Services Hive data catalog. *
*
     *         An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore. If KMS
     *         encryption key is not specified, by default we encrypt all data at rest using Amazon Web Services KMS
     *         key. By defining your bucket-level key for
     *         SSE, you can reduce Amazon Web Services KMS requests costs by up to 99 percent.
     *         
* Format for the offline store table. Supported formats are Glue (Default) and Apache Iceberg. *
** To learn more about this parameter, see OfflineStoreConfig. */ public OfflineStoreConfig getOfflineStoreConfig() { return this.offlineStoreConfig; } /** *
     * Use this to configure an OfflineFeatureStore. This parameter allows you to specify:
     * 
     * The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore.
     * 
* A configuration for an Amazon Web Services Glue or Amazon Web Services Hive data catalog. *
*
     * An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore. If KMS encryption key
     * is not specified, by default we encrypt all data at rest using Amazon Web Services KMS key. By defining your bucket-level key for SSE, you
     * can reduce Amazon Web Services KMS requests costs by up to 99 percent.
     * 
* Format for the offline store table. Supported formats are Glue (Default) and Apache Iceberg. *
** To learn more about this parameter, see OfflineStoreConfig. *
* * @param offlineStoreConfig * Use this to configure anOfflineFeatureStore. This parameter allows you to specify:
     *        
     *        The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore.
     *        
* A configuration for an Amazon Web Services Glue or Amazon Web Services Hive data catalog. *
*
     *        An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore. If KMS
     *        encryption key is not specified, by default we encrypt all data at rest using Amazon Web Services KMS key.
     *        By defining your bucket-level key for SSE,
     *        you can reduce Amazon Web Services KMS requests costs by up to 99 percent.
     *        
* Format for the offline store table. Supported formats are Glue (Default) and Apache Iceberg. *
** To learn more about this parameter, see OfflineStoreConfig. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateFeatureGroupRequest withOfflineStoreConfig(OfflineStoreConfig offlineStoreConfig) { setOfflineStoreConfig(offlineStoreConfig); return this; } /** *
     * The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the OfflineStore
     * if an OfflineStoreConfig is provided.
     * 
OfflineStore if an OfflineStoreConfig is provided.
     */
    public void setRoleArn(String roleArn) {
        this.roleArn = roleArn;
    }
    /**
     * 
     * The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the OfflineStore
     * if an OfflineStoreConfig is provided.
     * 
OfflineStore if an OfflineStoreConfig is provided.
     */
    public String getRoleArn() {
        return this.roleArn;
    }
    /**
     * 
     * The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the OfflineStore
     * if an OfflineStoreConfig is provided.
     * 
OfflineStore if an OfflineStoreConfig is provided.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateFeatureGroupRequest withRoleArn(String roleArn) {
        setRoleArn(roleArn);
        return this;
    }
    /**
     * 
     * A free-form description of a FeatureGroup.
     * 
FeatureGroup.
     */
    public void setDescription(String description) {
        this.description = description;
    }
    /**
     * 
     * A free-form description of a FeatureGroup.
     * 
FeatureGroup.
     */
    public String getDescription() {
        return this.description;
    }
    /**
     * 
     * A free-form description of a FeatureGroup.
     * 
FeatureGroup.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateFeatureGroupRequest withDescription(String description) {
        setDescription(description);
        return this;
    }
    /**
     * 
     * Tags used to identify Features in each FeatureGroup.
     * 
Features in each FeatureGroup.
     */
    public java.util.List
     * Tags used to identify Features in each FeatureGroup.
     * 
Features in each FeatureGroup.
     */
    public void setTags(java.util.Collection
     * Tags used to identify Features in each 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 identifyFeatures in each FeatureGroup.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateFeatureGroupRequest withTags(Tag... tags) {
        if (this.tags == null) {
            setTags(new java.util.ArrayList
     * Tags used to identify Features in each FeatureGroup.
     * 
Features in each FeatureGroup.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public CreateFeatureGroupRequest withTags(java.util.Collection