import * as core from "@terrascript/core"; export interface ServerSideEncryptionConfigurationArgs extends core.SchemaArgs { kmsKeyId: string | core.StringOut; } export class ServerSideEncryptionConfiguration extends core.Schema { @core.attr(String, { computed: true }) public kmsKeyId!: string | core.StringOut; } export interface RelevanceArgs extends core.SchemaArgs { duration: string | core.StringOut; freshness: boolean | core.BooleanOut; importance: number | core.NumberOut; rankOrder: string | core.StringOut; valuesImportanceMap: core.Map | core.MapOut; } export class Relevance extends core.Schema { @core.attr(String, { computed: true }) public duration!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public freshness!: boolean | core.BooleanOut; @core.attr(Number, { computed: true }) public importance!: number | core.NumberOut; @core.attr(String, { computed: true }) public rankOrder!: string | core.StringOut; @core.attr(Number, { computed: true, kind: "map" }) public valuesImportanceMap!: | core.Map | core.MapOut; } export interface SearchArgs extends core.SchemaArgs { displayable: boolean | core.BooleanOut; facetable: boolean | core.BooleanOut; searchable: boolean | core.BooleanOut; sortable: boolean | core.BooleanOut; } export class Search extends core.Schema { @core.attr(Boolean, { computed: true }) public displayable!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public facetable!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public searchable!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public sortable!: boolean | core.BooleanOut; } export interface DocumentMetadataConfigurationUpdatesArgs extends core.SchemaArgs { name: string | core.StringOut; relevance: core.Array | core.ArrayOut; search: core.Array | core.ArrayOut; type: string | core.StringOut; } export class DocumentMetadataConfigurationUpdates extends core.Schema { @core.attr(String, { computed: true }) public name!: string | core.StringOut; @core.attr(Relevance, { computed: true, kind: "array" }) public relevance!: core.Array | core.ArrayOut; @core.attr(Search, { computed: true, kind: "array" }) public search!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public type!: string | core.StringOut; } export interface JsonTokenTypeConfigurationArgs extends core.SchemaArgs { groupAttributeField: string | core.StringOut; userNameAttributeField: string | core.StringOut; } export class JsonTokenTypeConfiguration extends core.Schema { @core.attr(String, { computed: true }) public groupAttributeField!: string | core.StringOut; @core.attr(String, { computed: true }) public userNameAttributeField!: string | core.StringOut; } export interface JwtTokenTypeConfigurationArgs extends core.SchemaArgs { claimRegex: string | core.StringOut; groupAttributeField: string | core.StringOut; issuer: string | core.StringOut; keyLocation: string | core.StringOut; secretsManagerArn: string | core.StringOut; url: string | core.StringOut; userNameAttributeField: string | core.StringOut; } export class JwtTokenTypeConfiguration extends core.Schema { @core.attr(String, { computed: true }) public claimRegex!: string | core.StringOut; @core.attr(String, { computed: true }) public groupAttributeField!: string | core.StringOut; @core.attr(String, { computed: true }) public issuer!: string | core.StringOut; @core.attr(String, { computed: true }) public keyLocation!: string | core.StringOut; @core.attr(String, { computed: true }) public secretsManagerArn!: string | core.StringOut; @core.attr(String, { computed: true }) public url!: string | core.StringOut; @core.attr(String, { computed: true }) public userNameAttributeField!: string | core.StringOut; } export interface UserTokenConfigurationsArgs extends core.SchemaArgs { jsonTokenTypeConfiguration: | core.Array | core.ArrayOut; jwtTokenTypeConfiguration: | core.Array | core.ArrayOut; } export class UserTokenConfigurations extends core.Schema { @core.attr(JsonTokenTypeConfiguration, { computed: true, kind: "array" }) public jsonTokenTypeConfiguration!: | core.Array | core.ArrayOut; @core.attr(JwtTokenTypeConfiguration, { computed: true, kind: "array" }) public jwtTokenTypeConfiguration!: | core.Array | core.ArrayOut; } export interface CapacityUnitsArgs extends core.SchemaArgs { queryCapacityUnits: number | core.NumberOut; storageCapacityUnits: number | core.NumberOut; } export class CapacityUnits extends core.Schema { @core.attr(Number, { computed: true }) public queryCapacityUnits!: number | core.NumberOut; @core.attr(Number, { computed: true }) public storageCapacityUnits!: number | core.NumberOut; } export interface UserGroupResolutionConfigurationArgs extends core.SchemaArgs { userGroupResolutionMode: string | core.StringOut; } export class UserGroupResolutionConfiguration extends core.Schema { @core.attr(String, { computed: true }) public userGroupResolutionMode!: string | core.StringOut; } export interface TextDocumentStatisticsArgs extends core.SchemaArgs { indexedTextBytes: number | core.NumberOut; indexedTextDocumentsCount: number | core.NumberOut; } export class TextDocumentStatistics extends core.Schema { @core.attr(Number, { computed: true }) public indexedTextBytes!: number | core.NumberOut; @core.attr(Number, { computed: true }) public indexedTextDocumentsCount!: number | core.NumberOut; } export interface FaqStatisticsArgs extends core.SchemaArgs { indexedQuestionAnswersCount: number | core.NumberOut; } export class FaqStatistics extends core.Schema { @core.attr(Number, { computed: true }) public indexedQuestionAnswersCount!: number | core.NumberOut; } export interface IndexStatisticsArgs extends core.SchemaArgs { faqStatistics: core.Array | core.ArrayOut; textDocumentStatistics: | core.Array | core.ArrayOut; } export class IndexStatistics extends core.Schema { @core.attr(FaqStatistics, { computed: true, kind: "array" }) public faqStatistics!: | core.Array | core.ArrayOut; @core.attr(TextDocumentStatistics, { computed: true, kind: "array" }) public textDocumentStatistics!: | core.Array | core.ArrayOut; } export interface DsIndexArgs { /** * (Required) Returns information on a specific Index by id. */ id: string | core.StringOut; /** * Metadata that helps organize the Indices you create. */ tags?: core.Map | core.MapOut; } export class DsIndex extends core.Data { /** * The Amazon Resource Name (ARN) of the Index. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * A block that sets the number of additional document storage and query capacity units that should be * used by the index. Documented below. */ @core.attr(CapacityUnits, { computed: true, kind: "array" }) public capacityUnits!: | core.Array | core.ArrayOut; /** * The Unix datetime that the index was created. */ @core.attr(String, { computed: true }) public createdAt!: string | core.StringOut; /** * The description of the Index. */ @core.attr(String, { computed: true }) public description!: string | core.StringOut; /** * One or more blocks that specify the configuration settings for any metadata applied to the documents * in the index. Documented below. */ @core.attr(DocumentMetadataConfigurationUpdates, { computed: true, kind: "array", }) public documentMetadataConfigurationUpdates!: | core.Array | core.ArrayOut; /** * The Amazon Kendra edition for the index. */ @core.attr(String, { computed: true }) public edition!: string | core.StringOut; /** * When the Status field value is `FAILED`, this contains a message that explains why. */ @core.attr(String, { computed: true }) public errorMessage!: string | core.StringOut; /** * (Required) Returns information on a specific Index by id. */ @core.attr(String) public id!: string | core.StringOut; /** * A block that provides information about the number of FAQ questions and answers and the number of te * xt documents indexed. Documented below. */ @core.attr(IndexStatistics, { computed: true, kind: "array" }) public indexStatistics!: | core.Array | core.ArrayOut; /** * Specifies the name of the Index. */ @core.attr(String, { computed: true }) public name!: string | core.StringOut; /** * An AWS Identity and Access Management (IAM) role that gives Amazon Kendra permissions to access your * Amazon CloudWatch logs and metrics. This is also the role you use when you call the `BatchPutDocume * nt` API to index documents from an Amazon S3 bucket. */ @core.attr(String, { computed: true }) public roleArn!: string | core.StringOut; /** * A block that specifies the identifier of the AWS KMS customer managed key (CMK) that's used to encry * pt data indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs. Documented below. */ @core.attr(ServerSideEncryptionConfiguration, { computed: true, kind: "array", }) public serverSideEncryptionConfiguration!: | core.Array | core.ArrayOut; /** * The current status of the index. When the value is `ACTIVE`, the index is ready for use. If the Stat * us field value is `FAILED`, the `error_message` field contains a message that explains why. */ @core.attr(String, { computed: true }) public status!: string | core.StringOut; /** * Metadata that helps organize the Indices you create. */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; /** * The Unix datetime that the index was last updated. */ @core.attr(String, { computed: true }) public updatedAt!: string | core.StringOut; /** * The user context policy. Valid values are `ATTRIBUTE_FILTER` or `USER_TOKEN`. For more information, * refer to [UserContextPolicy](https://docs.aws.amazon.com/kendra/latest/dg/API_CreateIndex. */ @core.attr(String, { computed: true }) public userContextPolicy!: string | core.StringOut; /** * A block that enables fetching access levels of groups and users from an AWS Single Sign-On identity * source. Documented below. */ @core.attr(UserGroupResolutionConfiguration, { computed: true, kind: "array", }) public userGroupResolutionConfiguration!: | core.Array | core.ArrayOut; /** * A block that specifies the user token configuration. Documented below. */ @core.attr(UserTokenConfigurations, { computed: true, kind: "array" }) public userTokenConfigurations!: | core.Array | core.ArrayOut; constructor(name: string, args?: DsIndexArgs) { super(name, "aws_kendra_index", args); } public override getNamespace(): string { return "aws_kendra"; } }