import * as core from "@terrascript/core"; export interface SecurityConfigArgs extends core.SchemaArgs { kmsKeyId?: string | core.StringOut; } export class SecurityConfig extends core.Schema { @core.attr(String) public kmsKeyId?: string | core.StringOut; } export interface OnlineStoreConfigArgs extends core.SchemaArgs { enableOnlineStore?: boolean | core.BooleanOut; securityConfig?: SecurityConfig; } export class OnlineStoreConfig extends core.Schema { @core.attr(Boolean) public enableOnlineStore?: boolean | core.BooleanOut; @core.attr(SecurityConfig) public securityConfig?: SecurityConfig; } export interface FeatureDefinitionArgs extends core.SchemaArgs { featureName?: string | core.StringOut; featureType?: string | core.StringOut; } export class FeatureDefinition extends core.Schema { @core.attr(String) public featureName?: string | core.StringOut; @core.attr(String) public featureType?: string | core.StringOut; } export interface DataCatalogConfigArgs extends core.SchemaArgs { catalog?: string | core.StringOut; database?: string | core.StringOut; tableName?: string | core.StringOut; } export class DataCatalogConfig extends core.Schema { @core.attr(String, { computed: true }) public catalog?: string | core.StringOut; @core.attr(String, { computed: true }) public database?: string | core.StringOut; @core.attr(String, { computed: true }) public tableName?: string | core.StringOut; } export interface S3StorageConfigArgs extends core.SchemaArgs { kmsKeyId?: string | core.StringOut; s3Uri: string | core.StringOut; } export class S3StorageConfig extends core.Schema { @core.attr(String) public kmsKeyId?: string | core.StringOut; @core.attr(String) public s3Uri!: string | core.StringOut; } export interface OfflineStoreConfigArgs extends core.SchemaArgs { dataCatalogConfig?: DataCatalogConfig; disableGlueTableCreation?: boolean | core.BooleanOut; s3StorageConfig: S3StorageConfig; } export class OfflineStoreConfig extends core.Schema { @core.attr(DataCatalogConfig, { computed: true }) public dataCatalogConfig?: DataCatalogConfig; @core.attr(Boolean) public disableGlueTableCreation?: boolean | core.BooleanOut; @core.attr(S3StorageConfig) public s3StorageConfig!: S3StorageConfig; } export interface FeatureGroupArgs extends core.ResourceArgs { description?: string | core.StringOut; /** * (Required) The name of the feature that stores the EventTime of a Record in a Feature Group. */ eventTimeFeatureName: string | core.StringOut; featureDefinition: | core.Array | core.ArrayOut; /** * (Required) The name of the Feature Group. The name must be unique within an AWS Region in an AWS acc * ount. */ featureGroupName: string | core.StringOut; offlineStoreConfig?: OfflineStoreConfig; onlineStoreConfig?: OnlineStoreConfig; /** * (Required) The name of the Feature whose value uniquely identifies a Record defined in the Feature S * tore. Only the latest record per identifier value will be stored in the Online Store. */ recordIdentifierFeatureName: string | core.StringOut; roleArn: string | core.StringOut; /** * (Optional) Map of resource tags for the resource. If configured with a provider [`default_tags` conf * iguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-conf * iguration-block) present, tags with matching keys will overwrite those defined at the provider-level * . */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class FeatureGroup extends core.Resource { /** * The Amazon Resource Name (ARN) assigned by AWS to this feature_group. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String) public description?: string | core.StringOut; /** * (Required) The name of the feature that stores the EventTime of a Record in a Feature Group. */ @core.attr(String) public eventTimeFeatureName!: string | core.StringOut; @core.attr(FeatureDefinition, { kind: "array" }) public featureDefinition!: | core.Array | core.ArrayOut; /** * (Required) The name of the Feature Group. The name must be unique within an AWS Region in an AWS acc * ount. */ @core.attr(String) public featureGroupName!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(OfflineStoreConfig) public offlineStoreConfig?: OfflineStoreConfig; @core.attr(OnlineStoreConfig) public onlineStoreConfig?: OnlineStoreConfig; /** * (Required) The name of the Feature whose value uniquely identifies a Record defined in the Feature S * tore. Only the latest record per identifier value will be stored in the Online Store. */ @core.attr(String) public recordIdentifierFeatureName!: string | core.StringOut; @core.attr(String) public roleArn!: string | core.StringOut; /** * (Optional) Map of resource tags for the resource. If configured with a provider [`default_tags` conf * iguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-conf * iguration-block) present, tags with matching keys will overwrite those defined at the provider-level * . */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: FeatureGroupArgs) { super(name, "aws_sagemaker_feature_group", args); } public override getNamespace(): string { return "aws_sagemaker"; } }