export interface PermissionCondition {
    /** The operator to use for the condition evaluation. This determines how the condition values are compared. */
    conditionOperator: 'StringEquals';
    /** The key for the condition. This identifies the attribute that the condition applies to. */
    conditionKey: string;
    /** The values to compare against using the specified condition operator. */
    conditionValues: any[];
}
export interface DeleteDocument {
    /** The identifier of the deleted document. */
    documentId: string;
}
export interface Document {
    /** The identifier of the document. */
    id: string;
    /** Custom attributes to apply to the document for refining Amazon Q Business web experience responses. */
    attributes?: any[];
    /** The contents of the document. */
    content?: any;
    /** The file type of the document in the Blob field. If you want to index snippets or subsets of HTML documents instead of the entirety of the HTML documents, you add the HTML start and closing tags (&lt; */
    contentType?: 'PDF' | 'HTML' | 'MS_WORD' | 'PLAIN_TEXT' | 'PPT' | 'RTF' | 'XML' | 'XSLT' | 'MS_EXCEL' | 'CSV' | 'JSON' | 'MD';
    /** The title of the document. */
    title?: string;
    /** Configuration information for access permission to a document. */
    accessConfiguration?: any;
    /** The configuration information for altering document metadata and content during the document ingestion process. */
    documentEnrichmentConfiguration?: any;
    /** The configuration for extracting information from media in the document. */
    mediaExtractionConfiguration?: any;
}
export interface ConfigurationEvent {
    /** The chat modes available to an Amazon Q Business end user. RETRIEVAL_MODE - The default chat mode for an Amazon Q Business application. When this mode is enabled, Amazon Q Business generates responses */
    chatMode?: 'RETRIEVAL_MODE' | 'CREATOR_MODE' | 'PLUGIN_MODE';
    chatModeConfiguration?: any;
    attributeFilter?: any;
}
export interface TextInputEvent {
    /** A user message in a text message input event. */
    userMessage: string;
}
export interface AttachmentInputEvent {
    attachment?: any;
}
export interface ActionExecutionEvent {
    /** The identifier of the plugin for which the action is being requested. */
    pluginId: string;
    /** A mapping of field names to the field values in input that an end user provides to Amazon Q Business requests to perform their plugin action. */
    payload: Record<string, any>;
    /** A string used to retain information about the hierarchical contexts within a action execution event payload. */
    payloadFieldNameSeparator: string;
}
export interface AuthChallengeResponseEvent {
    /** The mapping of key-value pairs in an authentication challenge response. */
    responseMap: Record<string, any>;
}
export interface AttachmentInput {
    /** The contents of the attachment. */
    data?: string;
    /** The filename of the attachment. */
    name?: string;
    /** A reference to an existing attachment. */
    copyFrom?: any;
}
export interface ActionExecution {
    /** The identifier of the plugin the action is attached to. */
    pluginId: string;
    /** A mapping of field names to the field values in input that an end user provides to Amazon Q Business requests to perform their plugin action. */
    payload: Record<string, any>;
    /** A string used to retain information about the hierarchical contexts within an action execution event payload. */
    payloadFieldNameSeparator: string;
}
export interface AuthChallengeResponse {
    /** The mapping of key-value pairs in an authentication challenge response. */
    responseMap: Record<string, string>;
}
export interface AttributeFilter {
    /** Performs a logical AND operation on all supplied filters. */
    andAllFilters?: any[];
    /** Performs a logical OR operation on all supplied filters. */
    orAllFilters?: any[];
    /** Performs a logical NOT operation on all supplied filters. */
    notFilter?: AttributeFilter;
    /** Performs an equals operation on two document attributes or metadata fields. Supported for the following document attribute value types: dateValue, longValue, stringListValue and stringValue. */
    equalsTo?: DocumentAttribute;
    /** Returns true when a document contains all the specified document attributes or metadata fields. Supported for the following document attribute value types: stringListValue. */
    containsAll?: DocumentAttribute;
    /** Returns true when a document contains any of the specified document attributes or metadata fields. Supported for the following document attribute value types: stringListValue. */
    containsAny?: DocumentAttribute;
    /** Performs a greater than operation on two document attributes or metadata fields. Supported for the following document attribute value types: dateValue and longValue. */
    greaterThan?: DocumentAttribute;
    /** Performs a greater or equals than operation on two document attributes or metadata fields. Supported for the following document attribute value types: dateValue and longValue. */
    greaterThanOrEquals?: DocumentAttribute;
    /** Performs a less than operation on two document attributes or metadata fields. Supported for the following document attribute value types: dateValue and longValue. */
    lessThan?: DocumentAttribute;
    /** Performs a less than or equals operation on two document attributes or metadata fields.Supported for the following document attribute value type: dateValue and longValue. */
    lessThanOrEquals?: DocumentAttribute;
}
export interface DocumentAttribute {
    /** The identifier for the attribute. */
    name: string;
    /** The value of the attribute. */
    value: any;
}
export interface PluginConfiguration {
    /** The identifier of the plugin you want to use. */
    pluginId: string;
}
export interface EncryptionConfiguration {
    /** The identifier of the KMS key. Amazon Q Business doesn't support asymmetric keys. */
    kmsKeyId?: string;
}
export interface Tag {
    /** The key for the tag. Keys are not case sensitive and must be unique for the Amazon Q Business application or data source. */
    key: string;
    /** The value associated with the tag. The value may be an empty string but it can't be null. */
    value: string;
}
export interface AttachmentsConfiguration {
    /** Status information about whether file upload functionality is activated or deactivated for your end user. */
    attachmentsControlMode: 'ENABLED' | 'DISABLED';
}
export interface QAppsConfiguration {
    /** Status information about whether end users can create and use Amazon Q Apps in the web experience. */
    qAppsControlMode: 'ENABLED' | 'DISABLED';
}
export interface PersonalizationConfiguration {
    /** An option to allow Amazon Q Business to customize chat responses using user specific metadata—specifically, location and job information—in your IAM Identity Center instance. */
    personalizationControlMode: 'ENABLED' | 'DISABLED';
}
export interface QuickSightConfiguration {
    /** The Amazon Quick Suite namespace that is used as the identity provider. For more information about Quick Suite namespaces, see Namespace operations. */
    clientNamespace: string;
}
export interface ResponseConfiguration {
    /** A collection of instructions that guide how Amazon Q Business generates responses, including parameters for response length, target audience, perspective, output style, identity, tone, and custom inst */
    instructionCollection?: any;
}
export interface ActionConfiguration {
    /** The Amazon Q Business action that is allowed. */
    action: string;
    /** The filter configuration for the action, if any. */
    filterConfiguration?: any;
}
export interface DataAccessorAuthenticationDetail {
    /** The type of authentication to use for the data accessor. This determines how the ISV authenticates when accessing data. You can use one of two authentication types: AWS_IAM_IDC_TTI - Authentication us */
    authenticationType: 'AWS_IAM_IDC_TTI' | 'AWS_IAM_IDC_AUTH_CODE';
    /** The specific authentication configuration based on the authentication type. */
    authenticationConfiguration?: {
        idcTrustedTokenIssuerConfiguration?: any;
    };
    /** A list of external identifiers associated with this authentication configuration. These are used to correlate the data accessor with external systems. */
    externalIds?: string[];
}
export interface DataSourceVpcConfiguration {
    /** A list of identifiers for subnets within your Amazon VPC. The subnets should be able to connect to each other in the VPC, and they should have outgoing access to the Internet through a NAT device. */
    subnetIds: string[];
    /** A list of identifiers of security groups within your Amazon VPC. The security groups should enable Amazon Q Business to connect to the data source. */
    securityGroupIds: string[];
}
export interface HookConfiguration {
    /** The condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Q Business should invoke a function that */
    invocationCondition?: any;
    /** The Amazon Resource Name (ARN) of the Lambda function during ingestion. For more information, see Using Lambda functions for Amazon Q Business document enrichment. */
    lambdaArn?: string;
    /** Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see Data contracts for Lambda functions. */
    s3BucketName?: string;
    /** The Amazon Resource Name (ARN) of a role with permission to run PreExtractionHookConfiguration and PostExtractionHookConfiguration for altering document metadata and content during the document ingest */
    roleArn?: string;
}
export interface DocumentEnrichmentConfiguration {
    /** Configuration information to alter document attributes or metadata fields and content when ingesting documents into Amazon Q Business. */
    inlineConfigurations?: any[];
    preExtractionHookConfiguration?: HookConfiguration;
    postExtractionHookConfiguration?: HookConfiguration;
}
export interface ImageExtractionConfiguration {
    /** Specify whether to extract semantic meaning from images and visuals from documents. */
    imageExtractionStatus: 'ENABLED' | 'DISABLED';
}
export interface AudioExtractionConfiguration {
    /** The status of audio extraction (ENABLED or DISABLED) for processing audio content from files. */
    audioExtractionStatus: 'ENABLED' | 'DISABLED';
}
export interface VideoExtractionConfiguration {
    /** The status of video extraction (ENABLED or DISABLED) for processing video content from files. */
    videoExtractionStatus: 'ENABLED' | 'DISABLED';
}
export interface MediaExtractionConfiguration {
    /** The configuration for extracting semantic meaning from images in documents. For more information, see Extracting semantic meaning from images and visuals. */
    imageExtractionConfiguration?: ImageExtractionConfiguration;
    /** Configuration settings for extracting and processing audio content from media files. */
    audioExtractionConfiguration?: AudioExtractionConfiguration;
    /** Configuration settings for extracting and processing video content from media files. */
    videoExtractionConfiguration?: VideoExtractionConfiguration;
}
export interface IndexCapacityConfiguration {
    /** The number of storage units configured for an Amazon Q Business index. */
    units?: number;
}
export interface BasicAuthConfiguration {
    /** The ARN of the Secrets Manager secret that stores the basic authentication credentials used for plugin configuration.. */
    secretArn: string;
    /** The ARN of an IAM role used by Amazon Q Business to access the basic authentication credentials stored in a Secrets Manager secret. */
    roleArn: string;
}
export interface OAuth2ClientCredentialConfiguration {
    /** The ARN of the Secrets Manager secret that stores the OAuth 2.0 credentials/token used for plugin configuration. */
    secretArn: string;
    /** The ARN of an IAM role used by Amazon Q Business to access the OAuth 2.0 authentication credentials stored in a Secrets Manager secret. */
    roleArn: string;
    /** The redirect URL required by the OAuth 2.0 protocol for Amazon Q Business to authenticate a plugin user through a third party authentication server. */
    authorizationUrl?: string;
    /** The URL required by the OAuth 2.0 protocol to exchange an end user authorization code for an access token. */
    tokenUrl?: string;
}
export interface IdcAuthConfiguration {
    /** The Amazon Resource Name (ARN) of the IAM Identity Center Application used to configure authentication. */
    idcApplicationArn: string;
    /** The Amazon Resource Name (ARN) of the IAM role with permissions to perform actions on Amazon Web Services services on your behalf. */
    roleArn: string;
}
export interface CustomPluginConfiguration {
    /** A description for your custom plugin configuration. */
    description: string;
    /** The type of OpenAPI schema to use. */
    apiSchemaType: 'OPEN_API_V3';
    /** Contains either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. */
    apiSchema?: {
        payload?: string;
    } | {
        s3?: any;
    };
}
export interface NativeIndexConfiguration {
    /** The identifier for the Amazon Q Business index. */
    indexId: string;
    /** A read-only field that specifies the version of the NativeIndexConfiguration. Amazon Q Business introduces enhanced document retrieval capabilities in version 2 of NativeIndexConfiguration, focusing o */
    version?: number;
    /** Overrides the default boosts applied by Amazon Q Business to supported document attribute data types. */
    boostingOverride?: Record<string, any>;
}
export interface KendraIndexConfiguration {
    /** The identifier of the Amazon Kendra index. */
    indexId: string;
}
export interface UserAlias {
    /** The identifier of the index that the user aliases are associated with. */
    indexId?: string;
    /** The identifier of the data source that the user aliases are associated with. */
    dataSourceId?: string;
    /** The identifier of the user id associated with the user aliases. */
    userId: string;
}
export interface SamlProviderConfiguration {
    /** The URL where Amazon Q Business end users will be redirected for authentication. */
    authenticationUrl: string;
}
export interface OpenIDConnectProviderConfiguration {
    /** The Amazon Resource Name (ARN) of a Secrets Manager secret containing the OIDC client secret. */
    secretsArn: string;
    /** An IAM role with permissions to access KMS to decrypt the Secrets Manager secret containing your OIDC client secret. */
    secretsRole: string;
}
export interface BrowserExtensionConfiguration {
    /** Specify the browser extensions allowed for your Amazon Q web experience. CHROME — Enables the extension for Chromium-based browsers (Google Chrome, Microsoft Edge, Opera, etc.). FIREFOX — Enables the  */
    enabledBrowserExtensions: 'FIREFOX' | 'CHROME'[];
}
export interface CustomizationConfiguration {
    /** Provides the URL where the custom CSS file is hosted for an Amazon Q web experience. */
    customCSSUrl?: string;
    /** Provides the URL where the custom logo file is hosted for an Amazon Q web experience. */
    logoUrl?: string;
    /** Provides the URL where the custom font file is hosted for an Amazon Q web experience. */
    fontUrl?: string;
    /** Provides the URL where the custom favicon file is hosted for an Amazon Q web experience. */
    faviconUrl?: string;
}
export interface MessageUsefulnessFeedback {
    /** The usefulness value assigned by an end user to a message. */
    usefulness: 'USEFUL' | 'NOT_USEFUL';
    /** The reason for a usefulness rating. */
    reason?: 'NOT_FACTUALLY_CORRECT' | 'HARMFUL_OR_UNSAFE' | 'INCORRECT_OR_MISSING_SOURCES' | 'NOT_HELPFUL' | 'FACTUALLY_CORRECT' | 'COMPLETE' | 'RELEVANT_SOURCES' | 'HELPFUL' | 'NOT_BASED_ON_DOCUMENTS' | 'NOT_COMPLETE' | 'NOT_CONCISE' | 'OTHER';
    /** A comment given by an end user on the usefulness of an AI-generated chat message. */
    comment?: string;
    /** The timestamp for when the feedback was submitted. */
    submittedAt: string;
}
export interface S3 {
    /** The name of the S3 bucket that contains the file. */
    bucket: string;
    /** The name of the file. */
    key: string;
}
export interface GroupMembers {
    /** A list of sub groups that belong to a group. For example, the sub groups "Research", "Engineering", and "Sales and Marketing" all belong to the group "Company". */
    memberGroups?: any[];
    /** A list of users that belong to a group. For example, a list of interns all belong to the "Interns" group. */
    memberUsers?: any[];
    s3PathForGroupMembers?: S3;
}
export interface RetrieverContentSource {
    /** The unique identifier of the retriever to use as the content source. */
    retrieverId: string;
}
export interface AutoSubscriptionConfiguration {
    /** Describes whether automatic subscriptions are enabled for an Amazon Q Business application using IAM identity federation for user management. */
    autoSubscribe: 'ENABLED' | 'DISABLED';
    /** Describes the default subscription type assigned to an Amazon Q Business application using IAM identity federation for user management. If the value for autoSubscribe is set to ENABLED you must select */
    defaultSubscriptionType?: 'Q_LITE' | 'Q_BUSINESS';
}
export interface OrchestrationConfiguration {
    /** Status information about whether chat orchestration is activated or deactivated for your Amazon Q Business application. */
    control: 'ENABLED' | 'DISABLED';
}
export interface BlockedPhrasesConfigurationUpdate {
    /** Creates or updates a blocked phrases configuration in your Amazon Q Business application. */
    blockedPhrasesToCreateOrUpdate?: string[];
    /** Deletes a blocked phrases configuration in your Amazon Q Business application. */
    blockedPhrasesToDelete?: string[];
    /** The configured custom message displayed to your end user when they use blocked phrase during chat. */
    systemMessageOverride?: string;
}
export interface TopicConfiguration {
    /** A name for your topic control configuration. */
    name: string;
    /** A description for your topic control configuration. Use this to outline how the large language model (LLM) should use this topic control configuration. */
    description?: string;
    /** A list of example phrases that you expect the end user to use in relation to the topic. */
    exampleChatMessages?: any[];
    /** Rules defined for a topic configuration. */
    rules: any[];
}
export interface CreatorModeConfiguration {
    /** Status information about whether CREATOR_MODE has been enabled or disabled. The default status is DISABLED. */
    creatorModeControl: 'ENABLED' | 'DISABLED';
}
export interface HallucinationReductionConfiguration {
    /** Controls whether hallucination reduction has been enabled or disabled for your application. The default status is DISABLED. */
    hallucinationReductionControl?: 'ENABLED' | 'DISABLED';
}
export interface DocumentAttributeConfiguration {
    /** The name of the document attribute. */
    name?: string;
    /** The type of document attribute. */
    type?: 'STRING' | 'STRING_LIST' | 'NUMBER' | 'DATE';
    /** Information about whether the document attribute can be used by an end user to search for information on their web experience. */
    search?: 'ENABLED' | 'DISABLED';
}
export interface SamlConfiguration {
    /** The metadata XML that your IdP generated. */
    metadataXML: string;
    /** The Amazon Resource Name (ARN) of an IAM role assumed by users when they authenticate into their Amazon Q Business web experience, containing the relevant Amazon Q Business permissions for conversing  */
    roleArn: string;
    /** The user attribute name in your IdP that maps to the user email. */
    userIdAttribute: string;
    /** The group attribute name in your IdP that maps to user groups. */
    userGroupAttribute?: string;
}
export interface AssociatePermissionInput {
    /** The list of Amazon Q Business actions that the ISV is allowed to perform. */
    actions: string[];
    /** The unique identifier of the Amazon Q Business application. */
    applicationId: string;
    /** The Amazon Resource Name of the IAM role for the ISV that is being granted permission. */
    principal: string;
    /** A unique identifier for the policy statement. */
    statementId: string;
    /** The conditions that restrict when the permission is effective. These conditions can be used to limit the permission based on specific attributes of the request. */
    conditions?: PermissionCondition[];
}
export interface BatchDeleteDocumentInput {
    /** The identifier of the Amazon Q Business application. */
    applicationId: string;
    /** Documents deleted from the Amazon Q Business index. */
    documents: DeleteDocument[];
    /** The identifier of the Amazon Q Business index that contains the documents to delete. */
    indexId: string;
    /** The identifier of the data source sync during which the documents were deleted. */
    dataSourceSyncId?: string;
}
export interface BatchPutDocumentInput {
    /** The identifier of the Amazon Q Business application. */
    applicationId: string;
    /** One or more documents to add to the index. Ensure that the name of your document doesn't contain any confidential information. Amazon Q Business returns document names in chat responses and citations  */
    documents: Document[];
    /** The identifier of the Amazon Q Business index to add the documents to. */
    indexId: string;
    /** The identifier of the data source sync during which the documents were added. */
    dataSourceSyncId?: string;
    /** The Amazon Resource Name (ARN) of an IAM role with permission to access your S3 bucket. */
    roleArn?: string;
}
export interface CancelSubscriptionInput {
    /** The identifier of the Amazon Q Business application for which the subscription is being cancelled. */
    applicationId: string;
    /** The identifier of the Amazon Q Business subscription being cancelled. */
    subscriptionId: string;
}
export interface ChatInput {
    /** The identifier of the Amazon Q Business application linked to a streaming Amazon Q Business conversation. */
    applicationId: string;
    /** A token that you provide to identify the chat input. */
    clientToken?: string;
    /** The identifier of the Amazon Q Business conversation. */
    conversationId?: string;
    /** The streaming input for the Chat API. */
    inputStream?: any;
    /** The identifier used to associate a user message with a AI generated response. */
    parentMessageId?: string;
    /** The group names that a user associated with the chat input belongs to. */
    userGroups?: string[];
    /** The identifier of the user attached to the chat input. */
    userId?: string;
}
export interface ChatSyncInput {
    /** The identifier of the Amazon Q Business application linked to the Amazon Q Business conversation. */
    applicationId: string;
    /** A request from an end user to perform an Amazon Q Business plugin action. */
    actionExecution?: ActionExecution;
    /** A list of files uploaded directly during chat. You can upload a maximum of 5 files of upto 10 MB each. */
    attachments?: AttachmentInput[];
    /** Enables filtering of Amazon Q Business web experience responses based on document attributes or metadata fields. */
    attributeFilter?: AttributeFilter;
    /** An authentication verification event response by a third party authentication server to Amazon Q Business. */
    authChallengeResponse?: AuthChallengeResponse;
    /** The chatMode parameter determines the chat modes available to Amazon Q Business users: RETRIEVAL_MODE - If you choose this mode, Amazon Q generates responses solely from the data sources connected and */
    chatMode?: 'RETRIEVAL_MODE' | 'CREATOR_MODE' | 'PLUGIN_MODE';
    /** The chat mode configuration for an Amazon Q Business application. */
    chatModeConfiguration?: {
        pluginConfiguration?: PluginConfiguration;
    };
    /** A token that you provide to identify a chat request. */
    clientToken?: string;
    /** The identifier of the Amazon Q Business conversation. */
    conversationId?: string;
    /** The identifier of the previous system message in a conversation. */
    parentMessageId?: string;
    /** The group names that a user associated with the chat input belongs to. */
    userGroups?: string[];
    /** The identifier of the user attached to the chat input. */
    userId?: string;
    /** A end user message in a conversation. */
    userMessage?: string;
}
export interface CheckDocumentAccessInput {
    /** The unique identifier of the application. This is required to identify the specific Amazon Q Business application context for the document access check. */
    applicationId: string;
    /** The unique identifier of the document. Specifies which document's access permissions are being checked. */
    documentId: string;
    /** The unique identifier of the index. Used to locate the correct index within the application where the document is stored. */
    indexId: string;
    /** The unique identifier of the user. Used to check the access permissions for this specific user against the document's ACL. */
    userId: string;
    /** The unique identifier of the data source. Identifies the specific data source from which the document originates. Should not be used when a document is uploaded directly with BatchPutDocument, as no d */
    dataSourceId?: string;
}
export interface CreateAnonymousWebExperienceUrlInput {
    /** The identifier of the Amazon Q Business application environment attached to the web experience. */
    applicationId: string;
    /** The identifier of the web experience. */
    webExperienceId: string;
    /** The duration of the session associated with the unique URL for the web experience. */
    sessionDurationInMinutes?: number;
}
export interface CreateApplicationInput {
    /** A name for the Amazon Q Business application. */
    displayName: string;
    /** An option to allow end users to upload files directly during chat. */
    attachmentsConfiguration?: AttachmentsConfiguration;
    /** The OIDC client ID for a Amazon Q Business application. */
    clientIdsForOIDC?: string[];
    /** A token that you provide to identify the request to create your Amazon Q Business application. */
    clientToken?: string;
    /** A description for the Amazon Q Business application. */
    description?: string;
    /** The identifier of the KMS key that is used to encrypt your data. Amazon Q Business doesn't support asymmetric keys. */
    encryptionConfiguration?: EncryptionConfiguration;
    /** The Amazon Resource Name (ARN) of an identity provider being used by an Amazon Q Business application. */
    iamIdentityProviderArn?: string;
    /** The Amazon Resource Name (ARN) of the IAM Identity Center instance you are either creating for—or connecting to—your Amazon Q Business application. */
    identityCenterInstanceArn?: string;
    /** The authentication type being used by a Amazon Q Business application. */
    identityType?: 'AWS_IAM_IDP_SAML' | 'AWS_IAM_IDP_OIDC' | 'AWS_IAM_IDC' | 'AWS_QUICKSIGHT_IDP' | 'ANONYMOUS';
    /** Configuration information about chat response personalization. For more information, see Personalizing chat responses */
    personalizationConfiguration?: PersonalizationConfiguration;
    /** An option to allow end users to create and use Amazon Q Apps in the web experience. */
    qAppsConfiguration?: QAppsConfiguration;
    /** The Amazon Quick Suite configuration for an Amazon Q Business application that uses Quick Suite for authentication. This configuration is required if your application uses Quick Suite as the identity  */
    quickSightConfiguration?: QuickSightConfiguration;
    /** The Amazon Resource Name (ARN) of an IAM role with permissions to access your Amazon CloudWatch logs and metrics. If this property is not specified, Amazon Q Business will create a service linked role */
    roleArn?: string;
    /** A list of key-value pairs that identify or categorize your Amazon Q Business application. You can also use tags to help control access to the application. Tag keys and values can consist of Unicode le */
    tags?: Tag[];
}
export interface CreateChatResponseConfigurationInput {
    /** The unique identifier of the Amazon Q Business application for which to create the new chat response configuration. */
    applicationId: string;
    /** A human-readable name for the new chat response configuration, making it easier to identify and manage among multiple configurations. */
    displayName: string;
    /** A collection of response configuration settings that define how Amazon Q Business will generate and format responses to user queries in chat interactions. */
    responseConfigurations: Record<string, ResponseConfiguration>;
    /** A unique, case-sensitive identifier to ensure idempotency of the request. This helps prevent the same configuration from being created multiple times if retries occur. */
    clientToken?: string;
    /** A list of key-value pairs to apply as tags to the new chat response configuration, enabling categorization and management of resources across Amazon Web Services services. */
    tags?: Tag[];
}
export interface CreateDataAccessorInput {
    /** A list of action configurations specifying the allowed actions and any associated filters. */
    actionConfigurations: ActionConfiguration[];
    /** The unique identifier of the Amazon Q Business application. */
    applicationId: string;
    /** A friendly name for the data accessor. */
    displayName: string;
    /** The Amazon Resource Name (ARN) of the IAM role for the ISV that will be accessing the data. */
    principal: string;
    /** The authentication configuration details for the data accessor. This specifies how the ISV will authenticate when accessing data through this data accessor. */
    authenticationDetail?: DataAccessorAuthenticationDetail;
    /** A unique, case-sensitive identifier you provide to ensure idempotency of the request. */
    clientToken?: string;
    /** The tags to associate with the data accessor. */
    tags?: Tag[];
}
export interface CreateDataSourceInput {
    /** The identifier of the Amazon Q Business application the data source will be attached to. */
    applicationId: string;
    /** Configuration information to connect your data source repository to Amazon Q Business. Use this parameter to provide a JSON schema with configuration information specific to your data source connector */
    configuration: any;
    /** A name for the data source connector. */
    displayName: string;
    /** The identifier of the index that you want to use with the data source connector. */
    indexId: string;
    /** A token you provide to identify a request to create a data source connector. Multiple calls to the CreateDataSource API with the same client token will create only one data source connector. */
    clientToken?: string;
    /** A description for the data source connector. */
    description?: string;
    documentEnrichmentConfiguration?: DocumentEnrichmentConfiguration;
    /** The configuration for extracting information from media in documents during ingestion. */
    mediaExtractionConfiguration?: MediaExtractionConfiguration;
    /** The Amazon Resource Name (ARN) of an IAM role with permission to access the data source and required resources. This field is required for all connector types except custom connectors, where it is opt */
    roleArn?: string;
    /** Sets the frequency for Amazon Q Business to check the documents in your data source repository and update your index. If you don't set a schedule, Amazon Q Business won't periodically update the index */
    syncSchedule?: string;
    /** A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode l */
    tags?: Tag[];
    /** Configuration information for an Amazon VPC (Virtual Private Cloud) to connect to your data source. For more information, see Using Amazon VPC with Amazon Q Business connectors. */
    vpcConfiguration?: DataSourceVpcConfiguration;
}
export interface CreateIndexInput {
    /** The identifier of the Amazon Q Business application using the index. */
    applicationId: string;
    /** A name for the Amazon Q Business index. */
    displayName: string;
    /** The capacity units you want to provision for your index. You can add and remove capacity to fit your usage needs. */
    capacityConfiguration?: IndexCapacityConfiguration;
    /** A token that you provide to identify the request to create an index. Multiple calls to the CreateIndex API with the same client token will create only one index. */
    clientToken?: string;
    /** A description for the Amazon Q Business index. */
    description?: string;
    /** A list of key-value pairs that identify or categorize the index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and */
    tags?: Tag[];
    /** The index type that's suitable for your needs. For more information on what's included in each type of index, see Amazon Q Business tiers. */
    type?: 'ENTERPRISE' | 'STARTER';
}
export interface CreatePluginInput {
    /** The identifier of the application that will contain the plugin. */
    applicationId: string;
    authConfiguration: {
        basicAuthConfiguration?: BasicAuthConfiguration;
    } | {
        oAuth2ClientCredentialConfiguration?: OAuth2ClientCredentialConfiguration;
    } | {
        noAuthConfiguration?: Record<string, any>;
    } | {
        idcAuthConfiguration?: IdcAuthConfiguration;
    };
    /** A the name for your plugin. */
    displayName: string;
    /** The type of plugin you want to create. */
    type: 'SERVICE_NOW' | 'SALESFORCE' | 'JIRA' | 'ZENDESK' | 'CUSTOM' | 'QUICKSIGHT' | 'SERVICENOW_NOW_PLATFORM' | 'JIRA_CLOUD' | 'SALESFORCE_CRM' | 'ZENDESK_SUITE' | 'ATLASSIAN_CONFLUENCE' | 'GOOGLE_CALENDAR' | 'MICROSOFT_TEAMS' | 'MICROSOFT_EXCHANGE' | 'PAGERDUTY_ADVANCE' | 'SMARTSHEET' | 'ASANA';
    /** A token that you provide to identify the request to create your Amazon Q Business plugin. */
    clientToken?: string;
    /** Contains configuration for a custom plugin. */
    customPluginConfiguration?: CustomPluginConfiguration;
    /** The source URL used for plugin configuration. */
    serverUrl?: string;
    /** A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode l */
    tags?: Tag[];
}
export interface CreateRetrieverInput {
    /** The identifier of your Amazon Q Business application. */
    applicationId: string;
    configuration: {
        nativeIndexConfiguration?: NativeIndexConfiguration;
    } | {
        kendraIndexConfiguration?: KendraIndexConfiguration;
    };
    /** The name of your retriever. */
    displayName: string;
    /** The type of retriever you are using. */
    type: 'NATIVE_INDEX' | 'KENDRA_INDEX';
    /** A token that you provide to identify the request to create your Amazon Q Business application retriever. */
    clientToken?: string;
    /** The ARN of an IAM role used by Amazon Q Business to access the basic authentication credentials stored in a Secrets Manager secret. */
    roleArn?: string;
    /** A list of key-value pairs that identify or categorize the retriever. You can also use tags to help control access to the retriever. Tag keys and values can consist of Unicode letters, digits, white sp */
    tags?: Tag[];
}
export interface CreateSubscriptionInput {
    /** The identifier of the Amazon Q Business application the subscription should be added to. */
    applicationId: string;
    /** The IAM Identity Center UserId or GroupId of a user or group in the IAM Identity Center instance connected to the Amazon Q Business application. */
    principal: {
        user?: string;
    } | {
        group?: string;
    };
    /** The type of Amazon Q Business subscription you want to create. */
    type: 'Q_LITE' | 'Q_BUSINESS';
    /** A token that you provide to identify the request to create a subscription for your Amazon Q Business application. */
    clientToken?: string;
}
export interface CreateUserInput {
    /** The identifier of the application for which the user mapping will be created. */
    applicationId: string;
    /** The user emails attached to a user mapping. */
    userId: string;
    /** A token that you provide to identify the request to create your Amazon Q Business user mapping. */
    clientToken?: string;
    /** The list of user aliases in the mapping. */
    userAliases?: UserAlias[];
}
export interface CreateWebExperienceInput {
    /** The identifier of the Amazon Q Business web experience. */
    applicationId: string;
    /** The browser extension configuration for an Amazon Q Business web experience. For Amazon Q Business application using external OIDC-compliant identity providers (IdPs). The IdP administrator must add t */
    browserExtensionConfiguration?: BrowserExtensionConfiguration;
    /** A token you provide to identify a request to create an Amazon Q Business web experience. */
    clientToken?: string;
    /** Sets the custom logo, favicon, font, and color used in the Amazon Q web experience. */
    customizationConfiguration?: CustomizationConfiguration;
    /** Information about the identity provider (IdP) used to authenticate end users of an Amazon Q Business web experience. */
    identityProviderConfiguration?: {
        samlConfiguration?: SamlProviderConfiguration;
    } | {
        openIDConnectConfiguration?: OpenIDConnectProviderConfiguration;
    };
    /** Sets the website domain origins that are allowed to embed the Amazon Q Business web experience. The domain origin refers to the base URL for accessing a website including the protocol (http/https), th */
    origins?: string[];
    /** The Amazon Resource Name (ARN) of the service role attached to your web experience. The roleArn parameter is required when your Amazon Q Business application is created with IAM Identity Center. It is */
    roleArn?: string;
    /** Determines whether sample prompts are enabled in the web experience for an end user. */
    samplePromptsControlMode?: 'ENABLED' | 'DISABLED';
    /** A subtitle to personalize your Amazon Q Business web experience. */
    subtitle?: string;
    /** A list of key-value pairs that identify or categorize your Amazon Q Business web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unic */
    tags?: Tag[];
    /** The title for your Amazon Q Business web experience. */
    title?: string;
    /** The customized welcome message for end users of an Amazon Q Business web experience. */
    welcomeMessage?: string;
}
export interface DeleteApplicationInput {
    /** The identifier of the Amazon Q Business application. */
    applicationId: string;
}
export interface DeleteAttachmentInput {
    /** The unique identifier for the Amazon Q Business application environment. */
    applicationId: string;
    /** The unique identifier for the attachment. */
    attachmentId: string;
    /** The unique identifier of the conversation. */
    conversationId: string;
    /** The unique identifier of the user involved in the conversation. */
    userId?: string;
}
export interface DeleteChatControlsConfigurationInput {
    /** The identifier of the application the chat controls have been configured for. */
    applicationId: string;
}
export interface DeleteChatResponseConfigurationInput {
    /** The unique identifier of theAmazon Q Business application from which to delete the chat response configuration. */
    applicationId: string;
    /** The unique identifier of the chat response configuration to delete from the specified application. */
    chatResponseConfigurationId: string;
}
export interface DeleteConversationInput {
    /** The identifier of the Amazon Q Business application associated with the conversation. */
    applicationId: string;
    /** The identifier of the Amazon Q Business web experience conversation being deleted. */
    conversationId: string;
    /** The identifier of the user who is deleting the conversation. */
    userId?: string;
}
export interface DeleteDataAccessorInput {
    /** The unique identifier of the Amazon Q Business application. */
    applicationId: string;
    /** The unique identifier of the data accessor to delete. */
    dataAccessorId: string;
}
export interface DeleteDataSourceInput {
    /** The identifier of the Amazon Q Business application used with the data source connector. */
    applicationId: string;
    /** The identifier of the data source connector that you want to delete. */
    dataSourceId: string;
    /** The identifier of the index used with the data source connector. */
    indexId: string;
}
export interface DeleteGroupInput {
    /** The identifier of the application in which the group mapping belongs. */
    applicationId: string;
    /** The name of the group you want to delete. */
    groupName: string;
    /** The identifier of the index you want to delete the group from. */
    indexId: string;
    /** The identifier of the data source linked to the group A group can be tied to multiple data sources. You can delete a group from accessing documents in a certain data source. For example, the groups "R */
    dataSourceId?: string;
}
export interface DeleteIndexInput {
    /** The identifier of the Amazon Q Business application the Amazon Q Business index is linked to. */
    applicationId: string;
    /** The identifier of the Amazon Q Business index. */
    indexId: string;
}
export interface DeletePluginInput {
    /** The identifier the application attached to the Amazon Q Business plugin. */
    applicationId: string;
    /** The identifier of the plugin being deleted. */
    pluginId: string;
}
export interface DeleteRetrieverInput {
    /** The identifier of the Amazon Q Business application using the retriever. */
    applicationId: string;
    /** The identifier of the retriever being deleted. */
    retrieverId: string;
}
export interface DeleteUserInput {
    /** The identifier of the application from which the user is being deleted. */
    applicationId: string;
    /** The user email being deleted. */
    userId: string;
}
export interface DeleteWebExperienceInput {
    /** The identifier of the Amazon Q Business application linked to the Amazon Q Business web experience. */
    applicationId: string;
    /** The identifier of the Amazon Q Business web experience being deleted. */
    webExperienceId: string;
}
export interface DisassociatePermissionInput {
    /** The unique identifier of the Amazon Q Business application. */
    applicationId: string;
    /** The statement ID of the permission to remove. */
    statementId: string;
}
export interface GetApplicationInput {
    /** The identifier of the Amazon Q Business application. */
    applicationId: string;
}
export interface GetChatControlsConfigurationInput {
    /** The identifier of the application for which the chat controls are configured. */
    applicationId: string;
    /** The maximum number of configured chat controls to return. */
    maxResults?: number;
    /** If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next s */
    nextToken?: string;
}
export interface GetChatResponseConfigurationInput {
    /** The unique identifier of the Amazon Q Business application containing the chat response configuration to retrieve. */
    applicationId: string;
    /** The unique identifier of the chat response configuration to retrieve from the specified application. */
    chatResponseConfigurationId: string;
}
export interface GetDataAccessorInput {
    /** The unique identifier of the Amazon Q Business application. */
    applicationId: string;
    /** The unique identifier of the data accessor to retrieve. */
    dataAccessorId: string;
}
export interface GetDataSourceInput {
    /** The identifier of the Amazon Q Business application. */
    applicationId: string;
    /** The identifier of the data source connector. */
    dataSourceId: string;
    /** The identfier of the index used with the data source connector. */
    indexId: string;
}
export interface GetDocumentContentInput {
    /** The unique identifier of the Amazon Q Business application containing the document. This ensures the request is scoped to the correct application environment and its associated security policies. */
    applicationId: string;
    /** The unique identifier of the document that is indexed via BatchPutDocument API or file-upload or connector sync. It is also found in chat or chatSync response. */
    documentId: string;
    /** The identifier of the index where documents are indexed. */
    indexId: string;
    /** The identifier of the data source from which the document was ingested. This field is not present if the document is ingested by directly calling the BatchPutDocument API. If the document is from a fi */
    dataSourceId?: string;
    /** Document outputFormat. Defaults to RAW if not selected. */
    outputFormat?: 'RAW' | 'EXTRACTED';
}
export interface GetGroupInput {
    /** The identifier of the application id the group is attached to. */
    applicationId: string;
    /** The name of the group. */
    groupName: string;
    /** The identifier of the index the group is attached to. */
    indexId: string;
    /** The identifier of the data source the group is attached to. */
    dataSourceId?: string;
}
export interface GetIndexInput {
    /** The identifier of the Amazon Q Business application connected to the index. */
    applicationId: string;
    /** The identifier of the Amazon Q Business index you want information on. */
    indexId: string;
}
export interface GetMediaInput {
    /** The identifier of the Amazon Q Business which contains the media object. */
    applicationId: string;
    /** The identifier of the Amazon Q Business conversation. */
    conversationId: string;
    /** The identifier of the media object. You can find this in the sourceAttributions returned by the Chat, ChatSync, and ListMessages API responses. */
    mediaId: string;
    /** The identifier of the Amazon Q Business message. */
    messageId: string;
}
export interface GetPluginInput {
    /** The identifier of the application which contains the plugin. */
    applicationId: string;
    /** The identifier of the plugin. */
    pluginId: string;
}
export interface GetPolicyInput {
    /** The unique identifier of the Amazon Q Business application. */
    applicationId: string;
}
export interface GetRetrieverInput {
    /** The identifier of the Amazon Q Business application using the retriever. */
    applicationId: string;
    /** The identifier of the retriever. */
    retrieverId: string;
}
export interface GetUserInput {
    /** The identifier of the application connected to the user. */
    applicationId: string;
    /** The user email address attached to the user. */
    userId: string;
}
export interface GetWebExperienceInput {
    /** The identifier of the Amazon Q Business application linked to the web experience. */
    applicationId: string;
    /** The identifier of the Amazon Q Business web experience. */
    webExperienceId: string;
}
export interface ListApplicationsInput {
    /** The maximum number of Amazon Q Business applications to return. */
    maxResults?: number;
    /** If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next s */
    nextToken?: string;
}
export interface ListAttachmentsInput {
    /** The unique identifier for the Amazon Q Business application. */
    applicationId: string;
    /** The unique identifier of the Amazon Q Business web experience conversation. */
    conversationId?: string;
    /** The maximum number of attachements to return. */
    maxResults?: number;
    /** If the number of attachments returned exceeds maxResults, Amazon Q Business returns a next token as a pagination token to retrieve the next set of attachments. */
    nextToken?: string;
    /** The unique identifier of the user involved in the Amazon Q Business web experience conversation. */
    userId?: string;
}
export interface ListChatResponseConfigurationsInput {
    /** The unique identifier of the Amazon Q Business application for which to list available chat response configurations. */
    applicationId: string;
    /** The maximum number of chat response configurations to return in a single response. This parameter helps control pagination of results when many configurations exist. */
    maxResults?: number;
    /** A pagination token used to retrieve the next set of results when the number of configurations exceeds the specified maxResults value. */
    nextToken?: string;
}
export interface ListConversationsInput {
    /** The identifier of the Amazon Q Business application. */
    applicationId: string;
    /** The maximum number of Amazon Q Business conversations to return. */
    maxResults?: number;
    /** If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next s */
    nextToken?: string;
    /** The identifier of the user involved in the Amazon Q Business web experience conversation. */
    userId?: string;
}
export interface ListDataAccessorsInput {
    /** The unique identifier of the Amazon Q Business application. */
    applicationId: string;
    /** The maximum number of results to return in a single call. */
    maxResults?: number;
    /** The token for the next set of results. (You received this token from a previous call.) */
    nextToken?: string;
}
export interface ListDataSourcesInput {
    /** The identifier of the Amazon Q Business application linked to the data source connectors. */
    applicationId: string;
    /** The identifier of the index used with one or more data source connectors. */
    indexId: string;
    /** The maximum number of data source connectors to return. */
    maxResults?: number;
    /** If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next s */
    nextToken?: string;
}
export interface ListDataSourceSyncJobsInput {
    /** The identifier of the Amazon Q Business application connected to the data source. */
    applicationId: string;
    /** The identifier of the data source connector. */
    dataSourceId: string;
    /** The identifier of the index used with the Amazon Q Business data source connector. */
    indexId: string;
    /** The end time of the data source connector sync. */
    endTime?: string;
    /** The maximum number of synchronization jobs to return in the response. */
    maxResults?: number;
    /** If the maxResults response was incpmplete because there is more data to retriever, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next  */
    nextToken?: string;
    /** The start time of the data source connector sync. */
    startTime?: string;
    /** Only returns synchronization jobs with the Status field equal to the specified status. */
    statusFilter?: 'FAILED' | 'SUCCEEDED' | 'SYNCING' | 'INCOMPLETE' | 'STOPPING' | 'ABORTED' | 'SYNCING_INDEXING';
}
export interface ListDocumentsInput {
    /** The identifier of the application id the documents are attached to. */
    applicationId: string;
    /** The identifier of the index the documents are attached to. */
    indexId: string;
    /** The identifier of the data sources the documents are attached to. */
    dataSourceIds?: string[];
    /** The maximum number of documents to return. */
    maxResults?: number;
    /** If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next s */
    nextToken?: string;
}
export interface ListGroupsInput {
    /** The identifier of the application for getting a list of groups mapped to users. */
    applicationId: string;
    /** The identifier of the index for getting a list of groups mapped to users. */
    indexId: string;
    /** The timestamp identifier used for the latest PUT or DELETE action for mapping users to their groups. */
    updatedEarlierThan: string;
    /** The identifier of the data source for getting a list of groups mapped to users. */
    dataSourceId?: string;
    /** The maximum number of returned groups that are mapped to users. */
    maxResults?: number;
    /** If the previous response was incomplete (because there is more data to retrieve), Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next s */
    nextToken?: string;
}
export interface ListIndicesInput {
    /** The identifier of the Amazon Q Business application connected to the index. */
    applicationId: string;
    /** The maximum number of indices to return. */
    maxResults?: number;
    /** If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next s */
    nextToken?: string;
}
export interface ListMessagesInput {
    /** The identifier for the Amazon Q Business application. */
    applicationId: string;
    /** The identifier of the Amazon Q Business web experience conversation. */
    conversationId: string;
    /** The maximum number of messages to return. */
    maxResults?: number;
    /** If the number of messages returned exceeds maxResults, Amazon Q Business returns a next token as a pagination token to retrieve the next set of messages. */
    nextToken?: string;
    /** The identifier of the user involved in the Amazon Q Business web experience conversation. */
    userId?: string;
}
export interface ListPluginActionsInput {
    /** The identifier of the Amazon Q Business application the plugin is attached to. */
    applicationId: string;
    /** The identifier of the Amazon Q Business plugin. */
    pluginId: string;
    /** The maximum number of plugin actions to return. */
    maxResults?: number;
    /** If the number of plugin actions returned exceeds maxResults, Amazon Q Business returns a next token as a pagination token to retrieve the next set of plugin actions. */
    nextToken?: string;
}
export interface ListPluginsInput {
    /** The identifier of the application the plugin is attached to. */
    applicationId: string;
    /** The maximum number of documents to return. */
    maxResults?: number;
    /** If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next s */
    nextToken?: string;
}
export interface ListPluginTypeActionsInput {
    /** The type of the plugin. */
    pluginType: 'SERVICE_NOW' | 'SALESFORCE' | 'JIRA' | 'ZENDESK' | 'CUSTOM' | 'QUICKSIGHT' | 'SERVICENOW_NOW_PLATFORM' | 'JIRA_CLOUD' | 'SALESFORCE_CRM' | 'ZENDESK_SUITE' | 'ATLASSIAN_CONFLUENCE' | 'GOOGLE_CALENDAR' | 'MICROSOFT_TEAMS' | 'MICROSOFT_EXCHANGE' | 'PAGERDUTY_ADVANCE' | 'SMARTSHEET' | 'ASANA';
    /** The maximum number of plugins to return. */
    maxResults?: number;
    /** If the number of plugins returned exceeds maxResults, Amazon Q Business returns a next token as a pagination token to retrieve the next set of plugins. */
    nextToken?: string;
}
export interface ListPluginTypeMetadataInput {
    /** The maximum number of plugin metadata items to return. */
    maxResults?: number;
    /** If the metadata returned exceeds maxResults, Amazon Q Business returns a next token as a pagination token to retrieve the next set of metadata. */
    nextToken?: string;
}
export interface ListRetrieversInput {
    /** The identifier of the Amazon Q Business application using the retriever. */
    applicationId: string;
    /** The maximum number of retrievers returned. */
    maxResults?: number;
    /** If the number of retrievers returned exceeds maxResults, Amazon Q Business returns a next token as a pagination token to retrieve the next set of retrievers. */
    nextToken?: string;
}
export interface ListSubscriptionsInput {
    /** The identifier of the Amazon Q Business application linked to the subscription. */
    applicationId: string;
    /** The maximum number of Amazon Q Business subscriptions to return. */
    maxResults?: number;
    /** If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next s */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon Q Business application or data source to get a list of tags for. */
    resourceARN: string;
}
export interface ListWebExperiencesInput {
    /** The identifier of the Amazon Q Business application linked to the listed web experiences. */
    applicationId: string;
    /** The maximum number of Amazon Q Business Web Experiences to return. */
    maxResults?: number;
    /** If the maxResults response was incomplete because there is more data to retrieve, Amazon Q Business returns a pagination token in the response. You can use this pagination token to retrieve the next s */
    nextToken?: string;
}
export interface PutFeedbackInput {
    /** The identifier of the application associated with the feedback. */
    applicationId: string;
    /** The identifier of the conversation the feedback is attached to. */
    conversationId: string;
    /** The identifier of the chat message that the feedback was given for. */
    messageId: string;
    /** The timestamp for when the feedback was recorded. */
    messageCopiedAt?: string;
    /** The feedback usefulness value given by the user to the chat message. */
    messageUsefulness?: MessageUsefulnessFeedback;
    /** The identifier of the user giving the feedback. */
    userId?: string;
}
export interface PutGroupInput {
    /** The identifier of the application in which the user and group mapping belongs. */
    applicationId: string;
    groupMembers: GroupMembers;
    /** The list that contains your users or sub groups that belong the same group. For example, the group "Company" includes the user "CEO" and the sub groups "Research", "Engineering", and "Sales and Market */
    groupName: string;
    /** The identifier of the index in which you want to map users to their groups. */
    indexId: string;
    /** The type of the group. */
    type: 'INDEX' | 'DATASOURCE';
    /** The identifier of the data source for which you want to map users to their groups. This is useful if a group is tied to multiple data sources, but you only want the group to access documents of a cert */
    dataSourceId?: string;
    /** The Amazon Resource Name (ARN) of an IAM role that has access to the S3 file that contains your list of users that belong to a group. */
    roleArn?: string;
}
export interface SearchRelevantContentInput {
    /** The unique identifier of the Amazon Q Business application to search. */
    applicationId: string;
    /** The source of content to search in. */
    contentSource: {
        retriever?: RetrieverContentSource;
    };
    /** The text to search for. */
    queryText: string;
    attributeFilter?: AttributeFilter;
    /** The maximum number of results to return. */
    maxResults?: number;
    /** The token for the next set of results. (You received this token from a previous call.) */
    nextToken?: string;
}
export interface StartDataSourceSyncJobInput {
    /** The identifier of Amazon Q Business application the data source is connected to. */
    applicationId: string;
    /** The identifier of the data source connector. */
    dataSourceId: string;
    /** The identifier of the index used with the data source connector. */
    indexId: string;
}
export interface StopDataSourceSyncJobInput {
    /** The identifier of the Amazon Q Business application that the data source is connected to. */
    applicationId: string;
    /** The identifier of the data source connector. */
    dataSourceId: string;
    /** The identifier of the index used with the Amazon Q Business data source connector. */
    indexId: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon Q Business application or data source to tag. */
    resourceARN: string;
    /** A list of tag keys to add to the Amazon Q Business application or data source. If a tag already exists, the existing value is replaced with the new value. */
    tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon Q Business application, or data source to remove the tag from. */
    resourceARN: string;
    /** A list of tag keys to remove from the Amazon Q Business application or data source. If a tag key does not exist on the resource, it is ignored. */
    tagKeys: string[];
}
export interface UpdateApplicationInput {
    /** The identifier of the Amazon Q Business application. */
    applicationId: string;
    /** An option to allow end users to upload files directly during chat. */
    attachmentsConfiguration?: AttachmentsConfiguration;
    /** An option to enable updating the default subscription type assigned to an Amazon Q Business application using IAM identity federation for user management. */
    autoSubscriptionConfiguration?: AutoSubscriptionConfiguration;
    /** A description for the Amazon Q Business application. */
    description?: string;
    /** A name for the Amazon Q Business application. */
    displayName?: string;
    /** The Amazon Resource Name (ARN) of the IAM Identity Center instance you are either creating for—or connecting to—your Amazon Q Business application. */
    identityCenterInstanceArn?: string;
    /** Configuration information about chat response personalization. For more information, see Personalizing chat responses. */
    personalizationConfiguration?: PersonalizationConfiguration;
    /** An option to allow end users to create and use Amazon Q Apps in the web experience. */
    qAppsConfiguration?: QAppsConfiguration;
    /** An Amazon Web Services Identity and Access Management (IAM) role that gives Amazon Q Business permission to access Amazon CloudWatch logs and metrics. */
    roleArn?: string;
}
export interface UpdateChatControlsConfigurationInput {
    /** The identifier of the application for which the chat controls are configured. */
    applicationId: string;
    /** The phrases blocked from chat by your chat control configuration. */
    blockedPhrasesConfigurationUpdate?: BlockedPhrasesConfigurationUpdate;
    /** A token that you provide to identify the request to update a Amazon Q Business application chat configuration. */
    clientToken?: string;
    /** The configuration details for CREATOR_MODE. */
    creatorModeConfiguration?: CreatorModeConfiguration;
    /** The hallucination reduction settings for your application. */
    hallucinationReductionConfiguration?: HallucinationReductionConfiguration;
    /** The chat response orchestration settings for your application. */
    orchestrationConfiguration?: OrchestrationConfiguration;
    /** The response scope configured for your application. This determines whether your application uses its retrieval augmented generation (RAG) system to generate answers only from your enterprise data, or */
    responseScope?: 'ENTERPRISE_CONTENT_ONLY' | 'EXTENDED_KNOWLEDGE_ENABLED';
    /** The configured topic specific chat controls you want to update. */
    topicConfigurationsToCreateOrUpdate?: TopicConfiguration[];
    /** The configured topic specific chat controls you want to delete. */
    topicConfigurationsToDelete?: TopicConfiguration[];
}
export interface UpdateChatResponseConfigurationInput {
    /** The unique identifier of the Amazon Q Business application containing the chat response configuration to update. */
    applicationId: string;
    /** The unique identifier of the chat response configuration to update within the specified application. */
    chatResponseConfigurationId: string;
    /** The updated collection of response configuration settings that define how Amazon Q Business generates and formats responses to user queries. */
    responseConfigurations: Record<string, ResponseConfiguration>;
    /** A unique, case-sensitive identifier to ensure idempotency of the request. This helps prevent the same update from being processed multiple times if retries occur. */
    clientToken?: string;
    /** The new human-readable name to assign to the chat response configuration, making it easier to identify among multiple configurations. */
    displayName?: string;
}
export interface UpdateDataAccessorInput {
    /** The updated list of action configurations specifying the allowed actions and any associated filters. */
    actionConfigurations: ActionConfiguration[];
    /** The unique identifier of the Amazon Q Business application. */
    applicationId: string;
    /** The unique identifier of the data accessor to update. */
    dataAccessorId: string;
    /** The updated authentication configuration details for the data accessor. This specifies how the ISV will authenticate when accessing data through this data accessor. */
    authenticationDetail?: DataAccessorAuthenticationDetail;
    /** The updated friendly name for the data accessor. */
    displayName?: string;
}
export interface UpdateDataSourceInput {
    /** The identifier of the Amazon Q Business application the data source is attached to. */
    applicationId: string;
    /** The identifier of the data source connector. */
    dataSourceId: string;
    /** The identifier of the index attached to the data source connector. */
    indexId: string;
    configuration?: any;
    /** The description of the data source connector. */
    description?: string;
    /** A name of the data source connector. */
    displayName?: string;
    documentEnrichmentConfiguration?: DocumentEnrichmentConfiguration;
    /** The configuration for extracting information from media in documents for your data source. */
    mediaExtractionConfiguration?: MediaExtractionConfiguration;
    /** The Amazon Resource Name (ARN) of an IAM role with permission to access the data source and required resources. */
    roleArn?: string;
    /** The chosen update frequency for your data source. */
    syncSchedule?: string;
    vpcConfiguration?: DataSourceVpcConfiguration;
}
export interface UpdateIndexInput {
    /** The identifier of the Amazon Q Business application connected to the index. */
    applicationId: string;
    /** The identifier of the Amazon Q Business index. */
    indexId: string;
    /** The storage capacity units you want to provision for your Amazon Q Business index. You can add and remove capacity to fit your usage needs. */
    capacityConfiguration?: IndexCapacityConfiguration;
    /** The description of the Amazon Q Business index. */
    description?: string;
    /** The name of the Amazon Q Business index. */
    displayName?: string;
    /** Configuration information for document metadata or fields. Document metadata are fields or attributes associated with your documents. For example, the company department name associated with each docu */
    documentAttributeConfigurations?: DocumentAttributeConfiguration[];
}
export interface UpdatePluginInput {
    /** The identifier of the application the plugin is attached to. */
    applicationId: string;
    /** The identifier of the plugin. */
    pluginId: string;
    /** The authentication configuration the plugin is using. */
    authConfiguration?: {
        basicAuthConfiguration?: BasicAuthConfiguration;
    } | {
        oAuth2ClientCredentialConfiguration?: OAuth2ClientCredentialConfiguration;
    } | {
        noAuthConfiguration?: Record<string, any>;
    } | {
        idcAuthConfiguration?: IdcAuthConfiguration;
    };
    /** The configuration for a custom plugin. */
    customPluginConfiguration?: CustomPluginConfiguration;
    /** The name of the plugin. */
    displayName?: string;
    /** The source URL used for plugin configuration. */
    serverUrl?: string;
    /** The status of the plugin. */
    state?: 'ENABLED' | 'DISABLED';
}
export interface UpdateRetrieverInput {
    /** The identifier of your Amazon Q Business application. */
    applicationId: string;
    /** The identifier of your retriever. */
    retrieverId: string;
    configuration?: {
        nativeIndexConfiguration?: NativeIndexConfiguration;
    } | {
        kendraIndexConfiguration?: KendraIndexConfiguration;
    };
    /** The name of your retriever. */
    displayName?: string;
    /** The Amazon Resource Name (ARN) of an IAM role with permission to access the retriever and required resources. */
    roleArn?: string;
}
export interface UpdateSubscriptionInput {
    /** The identifier of the Amazon Q Business application where the subscription update should take effect. */
    applicationId: string;
    /** The identifier of the Amazon Q Business subscription to be updated. */
    subscriptionId: string;
    /** The type of the Amazon Q Business subscription to be updated. */
    type: 'Q_LITE' | 'Q_BUSINESS';
}
export interface UpdateUserInput {
    /** The identifier of the application the user is attached to. */
    applicationId: string;
    /** The email id attached to the user. */
    userId: string;
    /** The user aliases attached to the user id that are to be deleted. */
    userAliasesToDelete?: UserAlias[];
    /** The user aliases attached to the user id that are to be updated. */
    userAliasesToUpdate?: UserAlias[];
}
export interface UpdateWebExperienceInput {
    /** The identifier of the Amazon Q Business application attached to the web experience. */
    applicationId: string;
    /** The identifier of the Amazon Q Business web experience. */
    webExperienceId: string;
    /** The authentication configuration of the Amazon Q Business web experience. */
    authenticationConfiguration?: {
        samlConfiguration?: SamlConfiguration;
    };
    /** The browser extension configuration for an Amazon Q Business web experience. For Amazon Q Business application using external OIDC-compliant identity providers (IdPs). The IdP administrator must add t */
    browserExtensionConfiguration?: BrowserExtensionConfiguration;
    /** Updates the custom logo, favicon, font, and color used in the Amazon Q web experience. */
    customizationConfiguration?: CustomizationConfiguration;
    /** Information about the identity provider (IdP) used to authenticate end users of an Amazon Q Business web experience. */
    identityProviderConfiguration?: {
        samlConfiguration?: SamlProviderConfiguration;
    } | {
        openIDConnectConfiguration?: OpenIDConnectProviderConfiguration;
    };
    /** Updates the website domain origins that are allowed to embed the Amazon Q Business web experience. The domain origin refers to the base URL for accessing a website including the protocol (http/https), */
    origins?: string[];
    /** The Amazon Resource Name (ARN) of the role with permission to access the Amazon Q Business web experience and required resources. */
    roleArn?: string;
    /** Determines whether sample prompts are enabled in the web experience for an end user. */
    samplePromptsControlMode?: 'ENABLED' | 'DISABLED';
    /** The subtitle of the Amazon Q Business web experience. */
    subtitle?: string;
    /** The title of the Amazon Q Business web experience. */
    title?: string;
    /** A customized welcome message for an end user in an Amazon Q Business web experience. */
    welcomeMessage?: string;
}
/** QBusiness service binding for Step Functions SDK integrations. */
export declare class QBusiness {
    constructor();
    associatePermission<T>(params: AssociatePermissionInput): Promise<T>;
    batchDeleteDocument<T>(params: BatchDeleteDocumentInput): Promise<T>;
    batchPutDocument<T>(params: BatchPutDocumentInput): Promise<T>;
    cancelSubscription<T>(params: CancelSubscriptionInput): Promise<T>;
    chat<T>(params: ChatInput): Promise<T>;
    chatSync<T>(params: ChatSyncInput): Promise<T>;
    checkDocumentAccess<T>(params: CheckDocumentAccessInput): Promise<T>;
    createAnonymousWebExperienceUrl<T>(params: CreateAnonymousWebExperienceUrlInput): Promise<T>;
    createApplication<T>(params: CreateApplicationInput): Promise<T>;
    createChatResponseConfiguration<T>(params: CreateChatResponseConfigurationInput): Promise<T>;
    createDataAccessor<T>(params: CreateDataAccessorInput): Promise<T>;
    createDataSource<T>(params: CreateDataSourceInput): Promise<T>;
    createIndex<T>(params: CreateIndexInput): Promise<T>;
    createPlugin<T>(params: CreatePluginInput): Promise<T>;
    createRetriever<T>(params: CreateRetrieverInput): Promise<T>;
    createSubscription<T>(params: CreateSubscriptionInput): Promise<T>;
    createUser<T>(params: CreateUserInput): Promise<T>;
    createWebExperience<T>(params: CreateWebExperienceInput): Promise<T>;
    deleteApplication<T>(params: DeleteApplicationInput): Promise<T>;
    deleteAttachment<T>(params: DeleteAttachmentInput): Promise<T>;
    deleteChatControlsConfiguration<T>(params: DeleteChatControlsConfigurationInput): Promise<T>;
    deleteChatResponseConfiguration<T>(params: DeleteChatResponseConfigurationInput): Promise<T>;
    deleteConversation<T>(params: DeleteConversationInput): Promise<T>;
    deleteDataAccessor<T>(params: DeleteDataAccessorInput): Promise<T>;
    deleteDataSource<T>(params: DeleteDataSourceInput): Promise<T>;
    deleteGroup<T>(params: DeleteGroupInput): Promise<T>;
    deleteIndex<T>(params: DeleteIndexInput): Promise<T>;
    deletePlugin<T>(params: DeletePluginInput): Promise<T>;
    deleteRetriever<T>(params: DeleteRetrieverInput): Promise<T>;
    deleteUser<T>(params: DeleteUserInput): Promise<T>;
    deleteWebExperience<T>(params: DeleteWebExperienceInput): Promise<T>;
    disassociatePermission<T>(params: DisassociatePermissionInput): Promise<T>;
    getApplication<T>(params: GetApplicationInput): Promise<T>;
    getChatControlsConfiguration<T>(params: GetChatControlsConfigurationInput): Promise<T>;
    getChatResponseConfiguration<T>(params: GetChatResponseConfigurationInput): Promise<T>;
    getDataAccessor<T>(params: GetDataAccessorInput): Promise<T>;
    getDataSource<T>(params: GetDataSourceInput): Promise<T>;
    getDocumentContent<T>(params: GetDocumentContentInput): Promise<T>;
    getGroup<T>(params: GetGroupInput): Promise<T>;
    getIndex<T>(params: GetIndexInput): Promise<T>;
    getMedia<T>(params: GetMediaInput): Promise<T>;
    getPlugin<T>(params: GetPluginInput): Promise<T>;
    getPolicy<T>(params: GetPolicyInput): Promise<T>;
    getRetriever<T>(params: GetRetrieverInput): Promise<T>;
    getUser<T>(params: GetUserInput): Promise<T>;
    getWebExperience<T>(params: GetWebExperienceInput): Promise<T>;
    listApplications<T>(params: ListApplicationsInput): Promise<T>;
    listAttachments<T>(params: ListAttachmentsInput): Promise<T>;
    listChatResponseConfigurations<T>(params: ListChatResponseConfigurationsInput): Promise<T>;
    listConversations<T>(params: ListConversationsInput): Promise<T>;
    listDataAccessors<T>(params: ListDataAccessorsInput): Promise<T>;
    listDataSources<T>(params: ListDataSourcesInput): Promise<T>;
    listDataSourceSyncJobs<T>(params: ListDataSourceSyncJobsInput): Promise<T>;
    listDocuments<T>(params: ListDocumentsInput): Promise<T>;
    listGroups<T>(params: ListGroupsInput): Promise<T>;
    listIndices<T>(params: ListIndicesInput): Promise<T>;
    listMessages<T>(params: ListMessagesInput): Promise<T>;
    listPluginActions<T>(params: ListPluginActionsInput): Promise<T>;
    listPlugins<T>(params: ListPluginsInput): Promise<T>;
    listPluginTypeActions<T>(params: ListPluginTypeActionsInput): Promise<T>;
    listPluginTypeMetadata<T>(params: ListPluginTypeMetadataInput): Promise<T>;
    listRetrievers<T>(params: ListRetrieversInput): Promise<T>;
    listSubscriptions<T>(params: ListSubscriptionsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listWebExperiences<T>(params: ListWebExperiencesInput): Promise<T>;
    putFeedback<T>(params: PutFeedbackInput): Promise<T>;
    putGroup<T>(params: PutGroupInput): Promise<T>;
    searchRelevantContent<T>(params: SearchRelevantContentInput): Promise<T>;
    startDataSourceSyncJob<T>(params: StartDataSourceSyncJobInput): Promise<T>;
    stopDataSourceSyncJob<T>(params: StopDataSourceSyncJobInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateApplication<T>(params: UpdateApplicationInput): Promise<T>;
    updateChatControlsConfiguration<T>(params: UpdateChatControlsConfigurationInput): Promise<T>;
    updateChatResponseConfiguration<T>(params: UpdateChatResponseConfigurationInput): Promise<T>;
    updateDataAccessor<T>(params: UpdateDataAccessorInput): Promise<T>;
    updateDataSource<T>(params: UpdateDataSourceInput): Promise<T>;
    updateIndex<T>(params: UpdateIndexInput): Promise<T>;
    updatePlugin<T>(params: UpdatePluginInput): Promise<T>;
    updateRetriever<T>(params: UpdateRetrieverInput): Promise<T>;
    updateSubscription<T>(params: UpdateSubscriptionInput): Promise<T>;
    updateUser<T>(params: UpdateUserInput): Promise<T>;
    updateWebExperience<T>(params: UpdateWebExperienceInput): Promise<T>;
}
//# sourceMappingURL=QBusiness.d.ts.map