/**
 * Embeddings AWS Bedrock Node - Version 1
 * Use Embeddings AWS Bedrock
 */


export interface LcEmbeddingsAwsBedrockV1Params {
  authentication?: 'iam' | 'assumeRole' | Expression<string>;
/**
 * The model or inference profile which will generate the embeddings. &lt;a href="https://docs.aws.amazon.com/bedrock/latest/userguide/foundation-models.html"&gt;Learn more&lt;/a&gt;.
 * @loadOptionsMethod listModels
 */
    model?: string | Expression<string>;
/**
 * Additional options to add
 * @default {}
 */
    options?: {
    /** Model-specific request fields passed through as JSON (e.g. Titan &lt;code&gt;dimensions&lt;/code&gt;/&lt;code&gt;normalize&lt;/code&gt;, Cohere &lt;code&gt;input_type&lt;/code&gt;/&lt;code&gt;truncate&lt;/code&gt;). See the &lt;a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html"&gt;AWS model parameters docs&lt;/a&gt;.
     * @default {}
     */
    additionalModelRequestFields?: IDataObject | string | Expression<string>;
    /** Maximum number of retries to attempt when a request fails
     * @default 2
     */
    maxRetries?: number | Expression<number>;
    /** Maximum amount of time a request is allowed to take in milliseconds. Set to 0 to disable.
     * @default 60000
     */
    timeout?: number | Expression<number>;
  };
}

export interface LcEmbeddingsAwsBedrockV1Credentials {
  aws: CredentialReference;
  awsAssumeRole: CredentialReference;
}

interface LcEmbeddingsAwsBedrockV1NodeBase {
  type: '@n8n/n8n-nodes-langchain.embeddingsAwsBedrock';
  version: 1;
}

export type LcEmbeddingsAwsBedrockV1ParamsNode = LcEmbeddingsAwsBedrockV1NodeBase & {
  config: NodeConfig<LcEmbeddingsAwsBedrockV1Params> & { credentials?: LcEmbeddingsAwsBedrockV1Credentials };
};

export type LcEmbeddingsAwsBedrockV1Node = LcEmbeddingsAwsBedrockV1ParamsNode;