// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateFeatureGroup`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`feature_group_name(impl Into<String>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::feature_group_name) / [`set_feature_group_name(Option<String>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::set_feature_group_name):<br>required: **true**<br><p>The name of the <code>FeatureGroup</code>. The name must be unique within an Amazon Web Services Region in an Amazon Web Services account. The name:</p> <ul> <li> <p>Must start and end with an alphanumeric character.</p> </li> <li> <p>Can only contain alphanumeric character and hyphens. Spaces are not allowed. </p> </li> </ul><br>
/// - [`record_identifier_feature_name(impl Into<String>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::record_identifier_feature_name) / [`set_record_identifier_feature_name(Option<String>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::set_record_identifier_feature_name):<br>required: **true**<br><p>The name of the <code>Feature</code> whose value uniquely identifies a <code>Record</code> defined in the <code>FeatureStore</code>. Only the latest record per identifier value will be stored in the <code>OnlineStore</code>. <code>RecordIdentifierFeatureName</code> must be one of feature definitions' names.</p> <p>You use the <code>RecordIdentifierFeatureName</code> to access data in a <code>FeatureStore</code>.</p> <p>This name:</p> <ul> <li> <p>Must start and end with an alphanumeric character.</p> </li> <li> <p>Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed. </p> </li> </ul><br>
/// - [`event_time_feature_name(impl Into<String>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::event_time_feature_name) / [`set_event_time_feature_name(Option<String>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::set_event_time_feature_name):<br>required: **true**<br><p>The name of the feature that stores the <code>EventTime</code> of a <code>Record</code> in a <code>FeatureGroup</code>.</p> <p>An <code>EventTime</code> is a point in time when a new event occurs that corresponds to the creation or update of a <code>Record</code> in a <code>FeatureGroup</code>. All <code>Records</code> in the <code>FeatureGroup</code> must have a corresponding <code>EventTime</code>.</p> <p>An <code>EventTime</code> can be a <code>String</code> or <code>Fractional</code>. </p> <ul> <li> <p> <code>Fractional</code>: <code>EventTime</code> feature values must be a Unix timestamp in seconds.</p> </li> <li> <p> <code>String</code>: <code>EventTime</code> feature values must be an ISO-8601 string in the format. The following formats are supported <code>yyyy-MM-dd'T'HH:mm:ssZ</code> and <code>yyyy-MM-dd'T'HH:mm:ss.SSSZ</code> where <code>yyyy</code>, <code>MM</code>, and <code>dd</code> represent the year, month, and day respectively and <code>HH</code>, <code>mm</code>, <code>ss</code>, and if applicable, <code>SSS</code> represent the hour, month, second and milliseconds respsectively. <code>'T'</code> and <code>Z</code> are constants.</p> </li> </ul><br>
/// - [`feature_definitions(FeatureDefinition)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::feature_definitions) / [`set_feature_definitions(Option<Vec::<FeatureDefinition>>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::set_feature_definitions):<br>required: **true**<br><p>A list of <code>Feature</code> names and types. <code>Name</code> and <code>Type</code> is compulsory per <code>Feature</code>. </p> <p>Valid feature <code>FeatureType</code>s are <code>Integral</code>, <code>Fractional</code> and <code>String</code>.</p> <p> <code>FeatureName</code>s cannot be any of the following: <code>is_deleted</code>, <code>write_time</code>, <code>api_invocation_time</code> </p> <p>You can create up to 2,500 <code>FeatureDefinition</code>s per <code>FeatureGroup</code>.</p><br>
/// - [`online_store_config(OnlineStoreConfig)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::online_store_config) / [`set_online_store_config(Option<OnlineStoreConfig>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::set_online_store_config):<br>required: **false**<br><p>You can turn the <code>OnlineStore</code> on or off by specifying <code>True</code> for the <code>EnableOnlineStore</code> flag in <code>OnlineStoreConfig</code>.</p> <p>You can also include an Amazon Web Services KMS key ID (<code>KMSKeyId</code>) for at-rest encryption of the <code>OnlineStore</code>.</p> <p>The default value is <code>False</code>.</p><br>
/// - [`offline_store_config(OfflineStoreConfig)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::offline_store_config) / [`set_offline_store_config(Option<OfflineStoreConfig>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::set_offline_store_config):<br>required: **false**<br><p>Use this to configure an <code>OfflineFeatureStore</code>. This parameter allows you to specify:</p> <ul> <li> <p>The Amazon Simple Storage Service (Amazon S3) location of an <code>OfflineStore</code>.</p> </li> <li> <p>A configuration for an Amazon Web Services Glue or Amazon Web Services Hive data catalog. </p> </li> <li> <p>An KMS encryption key to encrypt the Amazon S3 location used for <code>OfflineStore</code>. If KMS encryption key is not specified, by default we encrypt all data at rest using Amazon Web Services KMS key. By defining your <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html">bucket-level key</a> for SSE, you can reduce Amazon Web Services KMS requests costs by up to 99 percent.</p> </li> <li> <p>Format for the offline store table. Supported formats are Glue (Default) and <a href="https://iceberg.apache.org/">Apache Iceberg</a>.</p> </li> </ul> <p>To learn more about this parameter, see <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OfflineStoreConfig.html">OfflineStoreConfig</a>.</p><br>
/// - [`role_arn(impl Into<String>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::role_arn) / [`set_role_arn(Option<String>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::set_role_arn):<br>required: **false**<br><p>The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the <code>OfflineStore</code> if an <code>OfflineStoreConfig</code> is provided.</p><br>
/// - [`description(impl Into<String>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::set_description):<br>required: **false**<br><p>A free-form description of a <code>FeatureGroup</code>.</p><br>
/// - [`tags(Tag)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::set_tags):<br>required: **false**<br><p>Tags used to identify <code>Features</code> in each <code>FeatureGroup</code>.</p><br>
/// - On success, responds with [`CreateFeatureGroupOutput`](crate::operation::create_feature_group::CreateFeatureGroupOutput) with field(s):
/// - [`feature_group_arn(Option<String>)`](crate::operation::create_feature_group::CreateFeatureGroupOutput::feature_group_arn): <p>The Amazon Resource Name (ARN) of the <code>FeatureGroup</code>. This is a unique identifier for the feature group. </p>
/// - On failure, responds with [`SdkError<CreateFeatureGroupError>`](crate::operation::create_feature_group::CreateFeatureGroupError)
pub fn create_feature_group(&self) -> crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder {
crate::operation::create_feature_group::builders::CreateFeatureGroupFluentBuilder::new(self.handle.clone())
}
}