/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the sagemaker-2017-07-24.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.SageMaker.Model
{
///
/// Container for the parameters to the CreateFeatureGroup operation.
/// Create a new FeatureGroup. A FeatureGroup is a group of
/// Features defined in the FeatureStore to describe a Record.
///
///
///
///
/// The FeatureGroup defines the schema and features contained in the FeatureGroup.
/// A FeatureGroup definition is composed of a list of Features,
/// a RecordIdentifierFeatureName, an EventTimeFeatureName and
/// configurations for its OnlineStore and OfflineStore. Check
/// Amazon
/// Web Services service quotas to see the FeatureGroups quota for your
/// Amazon Web Services account.
///
///
///
/// You must include at least one of OnlineStoreConfig and OfflineStoreConfig
/// to create a FeatureGroup.
///
///
///
public partial class CreateFeatureGroupRequest : AmazonSageMakerRequest
{
private string _description;
private string _eventTimeFeatureName;
private List _featureDefinitions = new List();
private string _featureGroupName;
private OfflineStoreConfig _offlineStoreConfig;
private OnlineStoreConfig _onlineStoreConfig;
private string _recordIdentifierFeatureName;
private string _roleArn;
private List _tags = new List();
///
/// Gets and sets the property Description.
///
/// A free-form description of a FeatureGroup.
///
///
[AWSProperty(Max=128)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property EventTimeFeatureName.
///
/// 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.
///
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string EventTimeFeatureName
{
get { return this._eventTimeFeatureName; }
set { this._eventTimeFeatureName = value; }
}
// Check to see if EventTimeFeatureName property is set
internal bool IsSetEventTimeFeatureName()
{
return this._eventTimeFeatureName != null;
}
///
/// Gets and sets the property FeatureDefinitions.
///
/// 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.
///
///
[AWSProperty(Required=true, Min=1, Max=2500)]
public List FeatureDefinitions
{
get { return this._featureDefinitions; }
set { this._featureDefinitions = value; }
}
// Check to see if FeatureDefinitions property is set
internal bool IsSetFeatureDefinitions()
{
return this._featureDefinitions != null && this._featureDefinitions.Count > 0;
}
///
/// Gets and sets the property FeatureGroupName.
///
/// 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.
///
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string FeatureGroupName
{
get { return this._featureGroupName; }
set { this._featureGroupName = value; }
}
// Check to see if FeatureGroupName property is set
internal bool IsSetFeatureGroupName()
{
return this._featureGroupName != null;
}
///
/// Gets and sets the property 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.
///
///
public OfflineStoreConfig OfflineStoreConfig
{
get { return this._offlineStoreConfig; }
set { this._offlineStoreConfig = value; }
}
// Check to see if OfflineStoreConfig property is set
internal bool IsSetOfflineStoreConfig()
{
return this._offlineStoreConfig != null;
}
///
/// Gets and sets the property 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.
///
///
public OnlineStoreConfig OnlineStoreConfig
{
get { return this._onlineStoreConfig; }
set { this._onlineStoreConfig = value; }
}
// Check to see if OnlineStoreConfig property is set
internal bool IsSetOnlineStoreConfig()
{
return this._onlineStoreConfig != null;
}
///
/// Gets and sets the property RecordIdentifierFeatureName.
///
/// 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.
///
///
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string RecordIdentifierFeatureName
{
get { return this._recordIdentifierFeatureName; }
set { this._recordIdentifierFeatureName = value; }
}
// Check to see if RecordIdentifierFeatureName property is set
internal bool IsSetRecordIdentifierFeatureName()
{
return this._recordIdentifierFeatureName != null;
}
///
/// Gets and sets the property RoleArn.
///
/// The Amazon Resource Name (ARN) of the IAM execution role used to persist data into
/// the OfflineStore if an OfflineStoreConfig is provided.
///
///
[AWSProperty(Min=20, Max=2048)]
public string RoleArn
{
get { return this._roleArn; }
set { this._roleArn = value; }
}
// Check to see if RoleArn property is set
internal bool IsSetRoleArn()
{
return this._roleArn != null;
}
///
/// Gets and sets the property Tags.
///
/// Tags used to identify Features in each FeatureGroup.
///
///
[AWSProperty(Min=0, Max=50)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
}
}