DataSource

class DataSource : KotlinCustomResource

Resource for managing an AWS Kendra Data Source.

Example Usage

Basic Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.description("example")
.languageCode("en")
.type("CUSTOM")
.tags(Map.of("hello", "world"))
.build());
}
}

With Schedule

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationS3ConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("S3")
.roleArn(aws_iam_role.example().arn())
.schedule("cron(9 10 1 * ? *)")
.configuration(DataSourceConfigurationArgs.builder()
.s3Configuration(DataSourceConfigurationS3ConfigurationArgs.builder()
.bucketName(aws_s3_bucket.example().id())
.build())
.build())
.build());
}
}

With Access Control List

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationS3ConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationS3ConfigurationAccessControlListConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("S3")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.s3Configuration(DataSourceConfigurationS3ConfigurationArgs.builder()
.accessControlListConfiguration(DataSourceConfigurationS3ConfigurationAccessControlListConfigurationArgs.builder()
.keyPath(String.format("s3://%s/path-1", aws_s3_bucket.example().id()))
.build())
.bucketName(aws_s3_bucket.example().id())
.build())
.build())
.build());
}
}

With Documents Metadata Configuration

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationS3ConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("S3")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.s3Configuration(DataSourceConfigurationS3ConfigurationArgs.builder()
.bucketName(aws_s3_bucket.example().id())
.s3Prefix("example")
.exclusionPatterns("example")
.inclusionPatterns("hello")
.inclusionPrefixes("world")
.build())
.build())
.build());
}
}

With Seed URLs

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("WEBCRAWLER")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.webCrawlerConfiguration(DataSourceConfigurationWebCrawlerConfigurationArgs.builder()
.urls(DataSourceConfigurationWebCrawlerConfigurationUrlsArgs.builder()
.seedUrlConfiguration(DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs.builder()
.seedUrls("REPLACE_WITH_YOUR_URL")
.build())
.build())
.build())
.build())
.build());
}
}

With Site Maps

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSiteMapsConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("WEBCRAWLER")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.webCrawlerConfiguration(DataSourceConfigurationWebCrawlerConfigurationArgs.builder()
.urls(DataSourceConfigurationWebCrawlerConfigurationUrlsArgs.builder()
.siteMapsConfiguration(DataSourceConfigurationWebCrawlerConfigurationUrlsSiteMapsConfigurationArgs.builder()
.siteMaps("REPLACE_WITH_YOUR_URL")
.build())
.build())
.build())
.build())
.build());
}
}

With Web Crawler Mode

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("WEBCRAWLER")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.webCrawlerConfiguration(DataSourceConfigurationWebCrawlerConfigurationArgs.builder()
.urls(DataSourceConfigurationWebCrawlerConfigurationUrlsArgs.builder()
.seedUrlConfiguration(DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs.builder()
.webCrawlerMode("SUBDOMAINS")
.seedUrls("REPLACE_WITH_YOUR_URL")
.build())
.build())
.build())
.build())
.build());
}
}

With Authentication Configuration

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("WEBCRAWLER")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.webCrawlerConfiguration(DataSourceConfigurationWebCrawlerConfigurationArgs.builder()
.authenticationConfiguration(DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationArgs.builder()
.basicAuthentications(DataSourceConfigurationWebCrawlerConfigurationAuthenticationConfigurationBasicAuthenticationArgs.builder()
.credentials(aws_secretsmanager_secret.example().arn())
.host("a.example.com")
.port("443")
.build())
.build())
.urls(DataSourceConfigurationWebCrawlerConfigurationUrlsArgs.builder()
.seedUrlConfiguration(DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs.builder()
.seedUrls("REPLACE_WITH_YOUR_URL")
.build())
.build())
.build())
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(aws_secretsmanager_secret_version.example())
.build());
}
}

With Crawl Depth

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("WEBCRAWLER")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.webCrawlerConfiguration(DataSourceConfigurationWebCrawlerConfigurationArgs.builder()
.crawlDepth(3)
.urls(DataSourceConfigurationWebCrawlerConfigurationUrlsArgs.builder()
.seedUrlConfiguration(DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs.builder()
.seedUrls("REPLACE_WITH_YOUR_URL")
.build())
.build())
.build())
.build())
.build());
}
}

With Max Links Per Page

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("WEBCRAWLER")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.webCrawlerConfiguration(DataSourceConfigurationWebCrawlerConfigurationArgs.builder()
.maxLinksPerPage(100)
.urls(DataSourceConfigurationWebCrawlerConfigurationUrlsArgs.builder()
.seedUrlConfiguration(DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs.builder()
.seedUrls("REPLACE_WITH_YOUR_URL")
.build())
.build())
.build())
.build())
.build());
}
}

With Max Urls Per Minute Crawl Rate

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("WEBCRAWLER")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.webCrawlerConfiguration(DataSourceConfigurationWebCrawlerConfigurationArgs.builder()
.maxUrlsPerMinuteCrawlRate(300)
.urls(DataSourceConfigurationWebCrawlerConfigurationUrlsArgs.builder()
.seedUrlConfiguration(DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs.builder()
.seedUrls("REPLACE_WITH_YOUR_URL")
.build())
.build())
.build())
.build())
.build());
}
}

With Proxy Configuration

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationProxyConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("WEBCRAWLER")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.webCrawlerConfiguration(DataSourceConfigurationWebCrawlerConfigurationArgs.builder()
.proxyConfiguration(DataSourceConfigurationWebCrawlerConfigurationProxyConfigurationArgs.builder()
.credentials(aws_secretsmanager_secret.example().arn())
.host("a.example.com")
.port("443")
.build())
.urls(DataSourceConfigurationWebCrawlerConfigurationUrlsArgs.builder()
.seedUrlConfiguration(DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs.builder()
.seedUrls("REPLACE_WITH_YOUR_URL")
.build())
.build())
.build())
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(aws_secretsmanager_secret_version.example())
.build());
}
}

With URL Exclusion and Inclusion Patterns

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kendra.DataSource;
import com.pulumi.aws.kendra.DataSourceArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsArgs;
import com.pulumi.aws.kendra.inputs.DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new DataSource("example", DataSourceArgs.builder()
.indexId(aws_kendra_index.example().id())
.type("WEBCRAWLER")
.roleArn(aws_iam_role.example().arn())
.configuration(DataSourceConfigurationArgs.builder()
.webCrawlerConfiguration(DataSourceConfigurationWebCrawlerConfigurationArgs.builder()
.urlExclusionPatterns("example")
.urlInclusionPatterns("hello")
.urls(DataSourceConfigurationWebCrawlerConfigurationUrlsArgs.builder()
.seedUrlConfiguration(DataSourceConfigurationWebCrawlerConfigurationUrlsSeedUrlConfigurationArgs.builder()
.seedUrls("REPLACE_WITH_YOUR_URL")
.build())
.build())
.build())
.build())
.build());
}
}

Import

Kendra Data Source can be imported using the unique identifiers of the data_source and index separated by a slash (/) e.g.,

$ pulumi import aws:kendra/dataSource:DataSource example 1045d08d-66ef-4882-b3ed-dfb7df183e90/b34dfdf7-1f2b-4704-9581-79e00296845f

Properties

Link copied to clipboard
val arn: Output<String>

ARN of the Data Source.

Link copied to clipboard

A block with the configuration information to connect to your Data Source repository. You can't specify the configuration argument when the type parameter is set to CUSTOM. Detailed below.

Link copied to clipboard
val createdAt: Output<String>

The Unix timestamp of when the Data Source was created.

Link copied to clipboard

A block with the configuration information for altering document metadata and content during the document ingestion process. For more information on how to create, modify and delete document metadata, or make other content alterations when you ingest documents into Amazon Kendra, see Customizing document metadata during the ingestion process. Detailed below.

Link copied to clipboard
val dataSourceId: Output<String>

The unique identifiers of the Data Source.

Link copied to clipboard
val description: Output<String>?

A description for the Data Source connector.

Link copied to clipboard
val errorMessage: Output<String>

When the Status field value is FAILED, the ErrorMessage field contains a description of the error that caused the Data Source to fail.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val indexId: Output<String>

The identifier of the index for your Amazon Kendra data_source.

Link copied to clipboard
val languageCode: Output<String>

The code for a language. This allows you to support a language for all documents when creating the Data Source connector. English is supported by default. For more information on supported languages, including their codes, see Adding documents in languages other than English.

Link copied to clipboard
val name: Output<String>

A name for your Data Source connector.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val roleArn: Output<String>?

The Amazon Resource Name (ARN) of a role with permission to access the data source connector. For more information, see IAM roles for Amazon Kendra. You can't specify the role_arn parameter when the type parameter is set to CUSTOM. The role_arn parameter is required for all other data sources.

Link copied to clipboard
val schedule: Output<String>?

Sets the frequency for Amazon Kendra to check the documents in your Data Source repository and update the index. If you don't set a schedule Amazon Kendra will not periodically update the index. You can call the StartDataSourceSyncJob API to update the index.

Link copied to clipboard
val status: Output<String>

The current status of the Data Source. When the status is ACTIVE the Data Source is ready to use. When the status is FAILED, the error_message field contains the reason that the Data Source failed.

Link copied to clipboard
val tags: Output<Map<String, String>>?

Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Link copied to clipboard
val tagsAll: Output<Map<String, String>>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Link copied to clipboard
val type: Output<String>

The type of data source repository. For an updated list of values, refer to Valid Values for Type. The following arguments are optional:

Link copied to clipboard
val updatedAt: Output<String>

The Unix timestamp of when the Data Source was last updated.

Link copied to clipboard
val urn: Output<String>