import * as core from "@terrascript/core"; export interface SchemaChangePolicyArgs extends core.SchemaArgs { deleteBehavior?: string | core.StringOut; updateBehavior?: string | core.StringOut; } export class SchemaChangePolicy extends core.Schema { @core.attr(String) public deleteBehavior?: string | core.StringOut; @core.attr(String) public updateBehavior?: string | core.StringOut; } export interface LineageConfigurationArgs extends core.SchemaArgs { crawlerLineageSettings?: string | core.StringOut; } export class LineageConfiguration extends core.Schema { @core.attr(String) public crawlerLineageSettings?: string | core.StringOut; } export interface RecrawlPolicyArgs extends core.SchemaArgs { recrawlBehavior?: string | core.StringOut; } export class RecrawlPolicy extends core.Schema { @core.attr(String) public recrawlBehavior?: string | core.StringOut; } export interface S3TargetArgs extends core.SchemaArgs { connectionName?: string | core.StringOut; dlqEventQueueArn?: string | core.StringOut; eventQueueArn?: string | core.StringOut; exclusions?: core.Array | core.ArrayOut; path: string | core.StringOut; sampleSize?: number | core.NumberOut; } export class S3Target extends core.Schema { @core.attr(String) public connectionName?: string | core.StringOut; @core.attr(String) public dlqEventQueueArn?: string | core.StringOut; @core.attr(String) public eventQueueArn?: string | core.StringOut; @core.attr(String, { kind: "array" }) public exclusions?: core.Array | core.ArrayOut; @core.attr(String) public path!: string | core.StringOut; @core.attr(Number) public sampleSize?: number | core.NumberOut; } export interface DynamodbTargetArgs extends core.SchemaArgs { path: string | core.StringOut; scanAll?: boolean | core.BooleanOut; scanRate?: number | core.NumberOut; } export class DynamodbTarget extends core.Schema { @core.attr(String) public path!: string | core.StringOut; @core.attr(Boolean) public scanAll?: boolean | core.BooleanOut; @core.attr(Number) public scanRate?: number | core.NumberOut; } export interface CatalogTargetArgs extends core.SchemaArgs { databaseName: string | core.StringOut; tables: core.Array | core.ArrayOut; } export class CatalogTarget extends core.Schema { @core.attr(String) public databaseName!: string | core.StringOut; @core.attr(String, { kind: "array" }) public tables!: core.Array | core.ArrayOut; } export interface MongodbTargetArgs extends core.SchemaArgs { connectionName: string | core.StringOut; path: string | core.StringOut; scanAll?: boolean | core.BooleanOut; } export class MongodbTarget extends core.Schema { @core.attr(String) public connectionName!: string | core.StringOut; @core.attr(String) public path!: string | core.StringOut; @core.attr(Boolean) public scanAll?: boolean | core.BooleanOut; } export interface DeltaTargetArgs extends core.SchemaArgs { connectionName: string | core.StringOut; deltaTables: core.Array | core.ArrayOut; writeManifest: boolean | core.BooleanOut; } export class DeltaTarget extends core.Schema { @core.attr(String) public connectionName!: string | core.StringOut; @core.attr(String, { kind: "array" }) public deltaTables!: core.Array | core.ArrayOut; @core.attr(Boolean) public writeManifest!: boolean | core.BooleanOut; } export interface JdbcTargetArgs extends core.SchemaArgs { connectionName: string | core.StringOut; exclusions?: core.Array | core.ArrayOut; path: string | core.StringOut; } export class JdbcTarget extends core.Schema { @core.attr(String) public connectionName!: string | core.StringOut; @core.attr(String, { kind: "array" }) public exclusions?: core.Array | core.ArrayOut; @core.attr(String) public path!: string | core.StringOut; } export interface CrawlerArgs extends core.ResourceArgs { catalogTarget?: core.Array | core.ArrayOut; classifiers?: core.Array | core.ArrayOut; configuration?: string | core.StringOut; /** * (Required) The name of the Glue database to be synchronized. */ databaseName: string | core.StringOut; deltaTarget?: core.Array | core.ArrayOut; description?: string | core.StringOut; dynamodbTarget?: core.Array | core.ArrayOut; jdbcTarget?: core.Array | core.ArrayOut; lineageConfiguration?: LineageConfiguration; mongodbTarget?: core.Array | core.ArrayOut; name: string | core.StringOut; recrawlPolicy?: RecrawlPolicy; role: string | core.StringOut; s3Target?: core.Array | core.ArrayOut; schedule?: string | core.StringOut; schemaChangePolicy?: SchemaChangePolicy; securityConfiguration?: string | core.StringOut; tablePrefix?: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; } export class Crawler extends core.Resource { /** * The ARN of the crawler */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(CatalogTarget, { kind: "array" }) public catalogTarget?: | core.Array | core.ArrayOut; @core.attr(String, { kind: "array" }) public classifiers?: core.Array | core.ArrayOut; @core.attr(String) public configuration?: string | core.StringOut; /** * (Required) The name of the Glue database to be synchronized. */ @core.attr(String) public databaseName!: string | core.StringOut; @core.attr(DeltaTarget, { kind: "array" }) public deltaTarget?: core.Array | core.ArrayOut; @core.attr(String) public description?: string | core.StringOut; @core.attr(DynamodbTarget, { kind: "array" }) public dynamodbTarget?: | core.Array | core.ArrayOut; /** * Crawler name */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(JdbcTarget, { kind: "array" }) public jdbcTarget?: core.Array | core.ArrayOut; @core.attr(LineageConfiguration) public lineageConfiguration?: LineageConfiguration; @core.attr(MongodbTarget, { kind: "array" }) public mongodbTarget?: | core.Array | core.ArrayOut; @core.attr(String) public name!: string | core.StringOut; @core.attr(RecrawlPolicy) public recrawlPolicy?: RecrawlPolicy; @core.attr(String) public role!: string | core.StringOut; @core.attr(S3Target, { kind: "array" }) public s3Target?: core.Array | core.ArrayOut; @core.attr(String) public schedule?: string | core.StringOut; @core.attr(SchemaChangePolicy) public schemaChangePolicy?: SchemaChangePolicy; @core.attr(String) public securityConfiguration?: string | core.StringOut; @core.attr(String) public tablePrefix?: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; constructor(name: string, args?: CrawlerArgs) { super(name, "aws_glue_crawler", args); } public override getNamespace(): string { return "aws_glue"; } }