github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/glue/crawler.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package glue 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Manages a Glue Crawler. More information can be found in the [AWS Glue Developer Guide](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) 16 // 17 // ## Example Usage 18 // 19 // ### DynamoDB Target Example 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // _, err := glue.NewCrawler(ctx, "example", &glue.CrawlerArgs{ 35 // DatabaseName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name), 36 // Name: pulumi.String("example"), 37 // Role: pulumi.Any(exampleAwsIamRole.Arn), 38 // DynamodbTargets: glue.CrawlerDynamodbTargetArray{ 39 // &glue.CrawlerDynamodbTargetArgs{ 40 // Path: pulumi.String("table-name"), 41 // }, 42 // }, 43 // }) 44 // if err != nil { 45 // return err 46 // } 47 // return nil 48 // }) 49 // } 50 // 51 // ``` 52 // <!--End PulumiCodeChooser --> 53 // 54 // ### JDBC Target Example 55 // 56 // <!--Start PulumiCodeChooser --> 57 // ```go 58 // package main 59 // 60 // import ( 61 // 62 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue" 63 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 64 // 65 // ) 66 // 67 // func main() { 68 // pulumi.Run(func(ctx *pulumi.Context) error { 69 // _, err := glue.NewCrawler(ctx, "example", &glue.CrawlerArgs{ 70 // DatabaseName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name), 71 // Name: pulumi.String("example"), 72 // Role: pulumi.Any(exampleAwsIamRole.Arn), 73 // JdbcTargets: glue.CrawlerJdbcTargetArray{ 74 // &glue.CrawlerJdbcTargetArgs{ 75 // ConnectionName: pulumi.Any(exampleAwsGlueConnection.Name), 76 // Path: pulumi.String("database-name/%"), 77 // }, 78 // }, 79 // }) 80 // if err != nil { 81 // return err 82 // } 83 // return nil 84 // }) 85 // } 86 // 87 // ``` 88 // <!--End PulumiCodeChooser --> 89 // 90 // ### S3 Target Example 91 // 92 // <!--Start PulumiCodeChooser --> 93 // ```go 94 // package main 95 // 96 // import ( 97 // 98 // "fmt" 99 // 100 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue" 101 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 102 // 103 // ) 104 // 105 // func main() { 106 // pulumi.Run(func(ctx *pulumi.Context) error { 107 // _, err := glue.NewCrawler(ctx, "example", &glue.CrawlerArgs{ 108 // DatabaseName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name), 109 // Name: pulumi.String("example"), 110 // Role: pulumi.Any(exampleAwsIamRole.Arn), 111 // S3Targets: glue.CrawlerS3TargetArray{ 112 // &glue.CrawlerS3TargetArgs{ 113 // Path: pulumi.String(fmt.Sprintf("s3://%v", exampleAwsS3Bucket.Bucket)), 114 // }, 115 // }, 116 // }) 117 // if err != nil { 118 // return err 119 // } 120 // return nil 121 // }) 122 // } 123 // 124 // ``` 125 // <!--End PulumiCodeChooser --> 126 // 127 // ### Catalog Target Example 128 // 129 // <!--Start PulumiCodeChooser --> 130 // ```go 131 // package main 132 // 133 // import ( 134 // 135 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue" 136 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 137 // 138 // ) 139 // 140 // func main() { 141 // pulumi.Run(func(ctx *pulumi.Context) error { 142 // _, err := glue.NewCrawler(ctx, "example", &glue.CrawlerArgs{ 143 // DatabaseName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name), 144 // Name: pulumi.String("example"), 145 // Role: pulumi.Any(exampleAwsIamRole.Arn), 146 // CatalogTargets: glue.CrawlerCatalogTargetArray{ 147 // &glue.CrawlerCatalogTargetArgs{ 148 // DatabaseName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name), 149 // Tables: pulumi.StringArray{ 150 // exampleAwsGlueCatalogTable.Name, 151 // }, 152 // }, 153 // }, 154 // SchemaChangePolicy: &glue.CrawlerSchemaChangePolicyArgs{ 155 // DeleteBehavior: pulumi.String("LOG"), 156 // }, 157 // Configuration: pulumi.String(`{ 158 // "Version":1.0, 159 // "Grouping": { 160 // "TableGroupingPolicy": "CombineCompatibleSchemas" 161 // } 162 // } 163 // 164 // `), 165 // 166 // }) 167 // if err != nil { 168 // return err 169 // } 170 // return nil 171 // }) 172 // } 173 // 174 // ``` 175 // <!--End PulumiCodeChooser --> 176 // 177 // ### MongoDB Target Example 178 // 179 // <!--Start PulumiCodeChooser --> 180 // ```go 181 // package main 182 // 183 // import ( 184 // 185 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue" 186 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 187 // 188 // ) 189 // 190 // func main() { 191 // pulumi.Run(func(ctx *pulumi.Context) error { 192 // _, err := glue.NewCrawler(ctx, "example", &glue.CrawlerArgs{ 193 // DatabaseName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name), 194 // Name: pulumi.String("example"), 195 // Role: pulumi.Any(exampleAwsIamRole.Arn), 196 // MongodbTargets: glue.CrawlerMongodbTargetArray{ 197 // &glue.CrawlerMongodbTargetArgs{ 198 // ConnectionName: pulumi.Any(exampleAwsGlueConnection.Name), 199 // Path: pulumi.String("database-name/%"), 200 // }, 201 // }, 202 // }) 203 // if err != nil { 204 // return err 205 // } 206 // return nil 207 // }) 208 // } 209 // 210 // ``` 211 // <!--End PulumiCodeChooser --> 212 // 213 // ### Configuration Settings Example 214 // 215 // <!--Start PulumiCodeChooser --> 216 // ```go 217 // package main 218 // 219 // import ( 220 // 221 // "encoding/json" 222 // "fmt" 223 // 224 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue" 225 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 226 // 227 // ) 228 // 229 // func main() { 230 // pulumi.Run(func(ctx *pulumi.Context) error { 231 // tmpJSON0, err := json.Marshal(map[string]interface{}{ 232 // "Grouping": map[string]interface{}{ 233 // "TableGroupingPolicy": "CombineCompatibleSchemas", 234 // }, 235 // "CrawlerOutput": map[string]interface{}{ 236 // "Partitions": map[string]interface{}{ 237 // "AddOrUpdateBehavior": "InheritFromTable", 238 // }, 239 // }, 240 // "Version": 1, 241 // }) 242 // if err != nil { 243 // return err 244 // } 245 // json0 := string(tmpJSON0) 246 // _, err = glue.NewCrawler(ctx, "events_crawler", &glue.CrawlerArgs{ 247 // DatabaseName: pulumi.Any(glueDatabase.Name), 248 // Schedule: pulumi.String("cron(0 1 * * ? *)"), 249 // Name: pulumi.String(fmt.Sprintf("events_crawler_%v", environmentName)), 250 // Role: pulumi.Any(glueRole.Arn), 251 // Tags: pulumi.Any(tags), 252 // Configuration: pulumi.String(json0), 253 // S3Targets: glue.CrawlerS3TargetArray{ 254 // &glue.CrawlerS3TargetArgs{ 255 // Path: pulumi.String(fmt.Sprintf("s3://%v", dataLakeBucket.Bucket)), 256 // }, 257 // }, 258 // }) 259 // if err != nil { 260 // return err 261 // } 262 // return nil 263 // }) 264 // } 265 // 266 // ``` 267 // <!--End PulumiCodeChooser --> 268 // 269 // ## Import 270 // 271 // Using `pulumi import`, import Glue Crawlers using `name`. For example: 272 // 273 // ```sh 274 // $ pulumi import aws:glue/crawler:Crawler MyJob MyJob 275 // ``` 276 type Crawler struct { 277 pulumi.CustomResourceState 278 279 // The ARN of the crawler 280 Arn pulumi.StringOutput `pulumi:"arn"` 281 // List of nested AWS Glue Data Catalog target arguments. See Catalog Target below. 282 CatalogTargets CrawlerCatalogTargetArrayOutput `pulumi:"catalogTargets"` 283 // List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification. 284 Classifiers pulumi.StringArrayOutput `pulumi:"classifiers"` 285 // JSON string of configuration information. For more details see [Setting Crawler Configuration Options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html). 286 Configuration pulumi.StringPtrOutput `pulumi:"configuration"` 287 // Glue database where results are written. 288 DatabaseName pulumi.StringOutput `pulumi:"databaseName"` 289 // List of nested Delta Lake target arguments. See Delta Target below. 290 DeltaTargets CrawlerDeltaTargetArrayOutput `pulumi:"deltaTargets"` 291 // Description of the crawler. 292 Description pulumi.StringPtrOutput `pulumi:"description"` 293 // List of nested DynamoDB target arguments. See Dynamodb Target below. 294 DynamodbTargets CrawlerDynamodbTargetArrayOutput `pulumi:"dynamodbTargets"` 295 // List of nested Hudi target arguments. See Iceberg Target below. 296 HudiTargets CrawlerHudiTargetArrayOutput `pulumi:"hudiTargets"` 297 // List of nested Iceberg target arguments. See Iceberg Target below. 298 IcebergTargets CrawlerIcebergTargetArrayOutput `pulumi:"icebergTargets"` 299 // List of nested JDBC target arguments. See JDBC Target below. 300 JdbcTargets CrawlerJdbcTargetArrayOutput `pulumi:"jdbcTargets"` 301 // Specifies Lake Formation configuration settings for the crawler. See Lake Formation Configuration below. 302 LakeFormationConfiguration CrawlerLakeFormationConfigurationPtrOutput `pulumi:"lakeFormationConfiguration"` 303 // Specifies data lineage configuration settings for the crawler. See Lineage Configuration below. 304 LineageConfiguration CrawlerLineageConfigurationPtrOutput `pulumi:"lineageConfiguration"` 305 // List of nested MongoDB target arguments. See MongoDB Target below. 306 MongodbTargets CrawlerMongodbTargetArrayOutput `pulumi:"mongodbTargets"` 307 // Name of the crawler. 308 Name pulumi.StringOutput `pulumi:"name"` 309 // A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.. See Recrawl Policy below. 310 RecrawlPolicy CrawlerRecrawlPolicyPtrOutput `pulumi:"recrawlPolicy"` 311 // The IAM role friendly name (including path without leading slash), or ARN of an IAM role, used by the crawler to access other resources. 312 Role pulumi.StringOutput `pulumi:"role"` 313 // List of nested Amazon S3 target arguments. See S3 Target below. 314 S3Targets CrawlerS3TargetArrayOutput `pulumi:"s3Targets"` 315 // A cron expression used to specify the schedule. For more information, see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`. 316 Schedule pulumi.StringPtrOutput `pulumi:"schedule"` 317 // Policy for the crawler's update and deletion behavior. See Schema Change Policy below. 318 SchemaChangePolicy CrawlerSchemaChangePolicyPtrOutput `pulumi:"schemaChangePolicy"` 319 // The name of Security Configuration to be used by the crawler 320 SecurityConfiguration pulumi.StringPtrOutput `pulumi:"securityConfiguration"` 321 // The table prefix used for catalog tables that are created. 322 TablePrefix pulumi.StringPtrOutput `pulumi:"tablePrefix"` 323 // Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 324 Tags pulumi.StringMapOutput `pulumi:"tags"` 325 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 326 // 327 // Deprecated: Please use `tags` instead. 328 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 329 } 330 331 // NewCrawler registers a new resource with the given unique name, arguments, and options. 332 func NewCrawler(ctx *pulumi.Context, 333 name string, args *CrawlerArgs, opts ...pulumi.ResourceOption) (*Crawler, error) { 334 if args == nil { 335 return nil, errors.New("missing one or more required arguments") 336 } 337 338 if args.DatabaseName == nil { 339 return nil, errors.New("invalid value for required argument 'DatabaseName'") 340 } 341 if args.Role == nil { 342 return nil, errors.New("invalid value for required argument 'Role'") 343 } 344 opts = internal.PkgResourceDefaultOpts(opts) 345 var resource Crawler 346 err := ctx.RegisterResource("aws:glue/crawler:Crawler", name, args, &resource, opts...) 347 if err != nil { 348 return nil, err 349 } 350 return &resource, nil 351 } 352 353 // GetCrawler gets an existing Crawler resource's state with the given name, ID, and optional 354 // state properties that are used to uniquely qualify the lookup (nil if not required). 355 func GetCrawler(ctx *pulumi.Context, 356 name string, id pulumi.IDInput, state *CrawlerState, opts ...pulumi.ResourceOption) (*Crawler, error) { 357 var resource Crawler 358 err := ctx.ReadResource("aws:glue/crawler:Crawler", name, id, state, &resource, opts...) 359 if err != nil { 360 return nil, err 361 } 362 return &resource, nil 363 } 364 365 // Input properties used for looking up and filtering Crawler resources. 366 type crawlerState struct { 367 // The ARN of the crawler 368 Arn *string `pulumi:"arn"` 369 // List of nested AWS Glue Data Catalog target arguments. See Catalog Target below. 370 CatalogTargets []CrawlerCatalogTarget `pulumi:"catalogTargets"` 371 // List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification. 372 Classifiers []string `pulumi:"classifiers"` 373 // JSON string of configuration information. For more details see [Setting Crawler Configuration Options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html). 374 Configuration *string `pulumi:"configuration"` 375 // Glue database where results are written. 376 DatabaseName *string `pulumi:"databaseName"` 377 // List of nested Delta Lake target arguments. See Delta Target below. 378 DeltaTargets []CrawlerDeltaTarget `pulumi:"deltaTargets"` 379 // Description of the crawler. 380 Description *string `pulumi:"description"` 381 // List of nested DynamoDB target arguments. See Dynamodb Target below. 382 DynamodbTargets []CrawlerDynamodbTarget `pulumi:"dynamodbTargets"` 383 // List of nested Hudi target arguments. See Iceberg Target below. 384 HudiTargets []CrawlerHudiTarget `pulumi:"hudiTargets"` 385 // List of nested Iceberg target arguments. See Iceberg Target below. 386 IcebergTargets []CrawlerIcebergTarget `pulumi:"icebergTargets"` 387 // List of nested JDBC target arguments. See JDBC Target below. 388 JdbcTargets []CrawlerJdbcTarget `pulumi:"jdbcTargets"` 389 // Specifies Lake Formation configuration settings for the crawler. See Lake Formation Configuration below. 390 LakeFormationConfiguration *CrawlerLakeFormationConfiguration `pulumi:"lakeFormationConfiguration"` 391 // Specifies data lineage configuration settings for the crawler. See Lineage Configuration below. 392 LineageConfiguration *CrawlerLineageConfiguration `pulumi:"lineageConfiguration"` 393 // List of nested MongoDB target arguments. See MongoDB Target below. 394 MongodbTargets []CrawlerMongodbTarget `pulumi:"mongodbTargets"` 395 // Name of the crawler. 396 Name *string `pulumi:"name"` 397 // A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.. See Recrawl Policy below. 398 RecrawlPolicy *CrawlerRecrawlPolicy `pulumi:"recrawlPolicy"` 399 // The IAM role friendly name (including path without leading slash), or ARN of an IAM role, used by the crawler to access other resources. 400 Role *string `pulumi:"role"` 401 // List of nested Amazon S3 target arguments. See S3 Target below. 402 S3Targets []CrawlerS3Target `pulumi:"s3Targets"` 403 // A cron expression used to specify the schedule. For more information, see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`. 404 Schedule *string `pulumi:"schedule"` 405 // Policy for the crawler's update and deletion behavior. See Schema Change Policy below. 406 SchemaChangePolicy *CrawlerSchemaChangePolicy `pulumi:"schemaChangePolicy"` 407 // The name of Security Configuration to be used by the crawler 408 SecurityConfiguration *string `pulumi:"securityConfiguration"` 409 // The table prefix used for catalog tables that are created. 410 TablePrefix *string `pulumi:"tablePrefix"` 411 // Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 412 Tags map[string]string `pulumi:"tags"` 413 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 414 // 415 // Deprecated: Please use `tags` instead. 416 TagsAll map[string]string `pulumi:"tagsAll"` 417 } 418 419 type CrawlerState struct { 420 // The ARN of the crawler 421 Arn pulumi.StringPtrInput 422 // List of nested AWS Glue Data Catalog target arguments. See Catalog Target below. 423 CatalogTargets CrawlerCatalogTargetArrayInput 424 // List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification. 425 Classifiers pulumi.StringArrayInput 426 // JSON string of configuration information. For more details see [Setting Crawler Configuration Options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html). 427 Configuration pulumi.StringPtrInput 428 // Glue database where results are written. 429 DatabaseName pulumi.StringPtrInput 430 // List of nested Delta Lake target arguments. See Delta Target below. 431 DeltaTargets CrawlerDeltaTargetArrayInput 432 // Description of the crawler. 433 Description pulumi.StringPtrInput 434 // List of nested DynamoDB target arguments. See Dynamodb Target below. 435 DynamodbTargets CrawlerDynamodbTargetArrayInput 436 // List of nested Hudi target arguments. See Iceberg Target below. 437 HudiTargets CrawlerHudiTargetArrayInput 438 // List of nested Iceberg target arguments. See Iceberg Target below. 439 IcebergTargets CrawlerIcebergTargetArrayInput 440 // List of nested JDBC target arguments. See JDBC Target below. 441 JdbcTargets CrawlerJdbcTargetArrayInput 442 // Specifies Lake Formation configuration settings for the crawler. See Lake Formation Configuration below. 443 LakeFormationConfiguration CrawlerLakeFormationConfigurationPtrInput 444 // Specifies data lineage configuration settings for the crawler. See Lineage Configuration below. 445 LineageConfiguration CrawlerLineageConfigurationPtrInput 446 // List of nested MongoDB target arguments. See MongoDB Target below. 447 MongodbTargets CrawlerMongodbTargetArrayInput 448 // Name of the crawler. 449 Name pulumi.StringPtrInput 450 // A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.. See Recrawl Policy below. 451 RecrawlPolicy CrawlerRecrawlPolicyPtrInput 452 // The IAM role friendly name (including path without leading slash), or ARN of an IAM role, used by the crawler to access other resources. 453 Role pulumi.StringPtrInput 454 // List of nested Amazon S3 target arguments. See S3 Target below. 455 S3Targets CrawlerS3TargetArrayInput 456 // A cron expression used to specify the schedule. For more information, see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`. 457 Schedule pulumi.StringPtrInput 458 // Policy for the crawler's update and deletion behavior. See Schema Change Policy below. 459 SchemaChangePolicy CrawlerSchemaChangePolicyPtrInput 460 // The name of Security Configuration to be used by the crawler 461 SecurityConfiguration pulumi.StringPtrInput 462 // The table prefix used for catalog tables that are created. 463 TablePrefix pulumi.StringPtrInput 464 // Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 465 Tags pulumi.StringMapInput 466 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 467 // 468 // Deprecated: Please use `tags` instead. 469 TagsAll pulumi.StringMapInput 470 } 471 472 func (CrawlerState) ElementType() reflect.Type { 473 return reflect.TypeOf((*crawlerState)(nil)).Elem() 474 } 475 476 type crawlerArgs struct { 477 // List of nested AWS Glue Data Catalog target arguments. See Catalog Target below. 478 CatalogTargets []CrawlerCatalogTarget `pulumi:"catalogTargets"` 479 // List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification. 480 Classifiers []string `pulumi:"classifiers"` 481 // JSON string of configuration information. For more details see [Setting Crawler Configuration Options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html). 482 Configuration *string `pulumi:"configuration"` 483 // Glue database where results are written. 484 DatabaseName string `pulumi:"databaseName"` 485 // List of nested Delta Lake target arguments. See Delta Target below. 486 DeltaTargets []CrawlerDeltaTarget `pulumi:"deltaTargets"` 487 // Description of the crawler. 488 Description *string `pulumi:"description"` 489 // List of nested DynamoDB target arguments. See Dynamodb Target below. 490 DynamodbTargets []CrawlerDynamodbTarget `pulumi:"dynamodbTargets"` 491 // List of nested Hudi target arguments. See Iceberg Target below. 492 HudiTargets []CrawlerHudiTarget `pulumi:"hudiTargets"` 493 // List of nested Iceberg target arguments. See Iceberg Target below. 494 IcebergTargets []CrawlerIcebergTarget `pulumi:"icebergTargets"` 495 // List of nested JDBC target arguments. See JDBC Target below. 496 JdbcTargets []CrawlerJdbcTarget `pulumi:"jdbcTargets"` 497 // Specifies Lake Formation configuration settings for the crawler. See Lake Formation Configuration below. 498 LakeFormationConfiguration *CrawlerLakeFormationConfiguration `pulumi:"lakeFormationConfiguration"` 499 // Specifies data lineage configuration settings for the crawler. See Lineage Configuration below. 500 LineageConfiguration *CrawlerLineageConfiguration `pulumi:"lineageConfiguration"` 501 // List of nested MongoDB target arguments. See MongoDB Target below. 502 MongodbTargets []CrawlerMongodbTarget `pulumi:"mongodbTargets"` 503 // Name of the crawler. 504 Name *string `pulumi:"name"` 505 // A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.. See Recrawl Policy below. 506 RecrawlPolicy *CrawlerRecrawlPolicy `pulumi:"recrawlPolicy"` 507 // The IAM role friendly name (including path without leading slash), or ARN of an IAM role, used by the crawler to access other resources. 508 Role string `pulumi:"role"` 509 // List of nested Amazon S3 target arguments. See S3 Target below. 510 S3Targets []CrawlerS3Target `pulumi:"s3Targets"` 511 // A cron expression used to specify the schedule. For more information, see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`. 512 Schedule *string `pulumi:"schedule"` 513 // Policy for the crawler's update and deletion behavior. See Schema Change Policy below. 514 SchemaChangePolicy *CrawlerSchemaChangePolicy `pulumi:"schemaChangePolicy"` 515 // The name of Security Configuration to be used by the crawler 516 SecurityConfiguration *string `pulumi:"securityConfiguration"` 517 // The table prefix used for catalog tables that are created. 518 TablePrefix *string `pulumi:"tablePrefix"` 519 // Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 520 Tags map[string]string `pulumi:"tags"` 521 } 522 523 // The set of arguments for constructing a Crawler resource. 524 type CrawlerArgs struct { 525 // List of nested AWS Glue Data Catalog target arguments. See Catalog Target below. 526 CatalogTargets CrawlerCatalogTargetArrayInput 527 // List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification. 528 Classifiers pulumi.StringArrayInput 529 // JSON string of configuration information. For more details see [Setting Crawler Configuration Options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html). 530 Configuration pulumi.StringPtrInput 531 // Glue database where results are written. 532 DatabaseName pulumi.StringInput 533 // List of nested Delta Lake target arguments. See Delta Target below. 534 DeltaTargets CrawlerDeltaTargetArrayInput 535 // Description of the crawler. 536 Description pulumi.StringPtrInput 537 // List of nested DynamoDB target arguments. See Dynamodb Target below. 538 DynamodbTargets CrawlerDynamodbTargetArrayInput 539 // List of nested Hudi target arguments. See Iceberg Target below. 540 HudiTargets CrawlerHudiTargetArrayInput 541 // List of nested Iceberg target arguments. See Iceberg Target below. 542 IcebergTargets CrawlerIcebergTargetArrayInput 543 // List of nested JDBC target arguments. See JDBC Target below. 544 JdbcTargets CrawlerJdbcTargetArrayInput 545 // Specifies Lake Formation configuration settings for the crawler. See Lake Formation Configuration below. 546 LakeFormationConfiguration CrawlerLakeFormationConfigurationPtrInput 547 // Specifies data lineage configuration settings for the crawler. See Lineage Configuration below. 548 LineageConfiguration CrawlerLineageConfigurationPtrInput 549 // List of nested MongoDB target arguments. See MongoDB Target below. 550 MongodbTargets CrawlerMongodbTargetArrayInput 551 // Name of the crawler. 552 Name pulumi.StringPtrInput 553 // A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.. See Recrawl Policy below. 554 RecrawlPolicy CrawlerRecrawlPolicyPtrInput 555 // The IAM role friendly name (including path without leading slash), or ARN of an IAM role, used by the crawler to access other resources. 556 Role pulumi.StringInput 557 // List of nested Amazon S3 target arguments. See S3 Target below. 558 S3Targets CrawlerS3TargetArrayInput 559 // A cron expression used to specify the schedule. For more information, see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`. 560 Schedule pulumi.StringPtrInput 561 // Policy for the crawler's update and deletion behavior. See Schema Change Policy below. 562 SchemaChangePolicy CrawlerSchemaChangePolicyPtrInput 563 // The name of Security Configuration to be used by the crawler 564 SecurityConfiguration pulumi.StringPtrInput 565 // The table prefix used for catalog tables that are created. 566 TablePrefix pulumi.StringPtrInput 567 // Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 568 Tags pulumi.StringMapInput 569 } 570 571 func (CrawlerArgs) ElementType() reflect.Type { 572 return reflect.TypeOf((*crawlerArgs)(nil)).Elem() 573 } 574 575 type CrawlerInput interface { 576 pulumi.Input 577 578 ToCrawlerOutput() CrawlerOutput 579 ToCrawlerOutputWithContext(ctx context.Context) CrawlerOutput 580 } 581 582 func (*Crawler) ElementType() reflect.Type { 583 return reflect.TypeOf((**Crawler)(nil)).Elem() 584 } 585 586 func (i *Crawler) ToCrawlerOutput() CrawlerOutput { 587 return i.ToCrawlerOutputWithContext(context.Background()) 588 } 589 590 func (i *Crawler) ToCrawlerOutputWithContext(ctx context.Context) CrawlerOutput { 591 return pulumi.ToOutputWithContext(ctx, i).(CrawlerOutput) 592 } 593 594 // CrawlerArrayInput is an input type that accepts CrawlerArray and CrawlerArrayOutput values. 595 // You can construct a concrete instance of `CrawlerArrayInput` via: 596 // 597 // CrawlerArray{ CrawlerArgs{...} } 598 type CrawlerArrayInput interface { 599 pulumi.Input 600 601 ToCrawlerArrayOutput() CrawlerArrayOutput 602 ToCrawlerArrayOutputWithContext(context.Context) CrawlerArrayOutput 603 } 604 605 type CrawlerArray []CrawlerInput 606 607 func (CrawlerArray) ElementType() reflect.Type { 608 return reflect.TypeOf((*[]*Crawler)(nil)).Elem() 609 } 610 611 func (i CrawlerArray) ToCrawlerArrayOutput() CrawlerArrayOutput { 612 return i.ToCrawlerArrayOutputWithContext(context.Background()) 613 } 614 615 func (i CrawlerArray) ToCrawlerArrayOutputWithContext(ctx context.Context) CrawlerArrayOutput { 616 return pulumi.ToOutputWithContext(ctx, i).(CrawlerArrayOutput) 617 } 618 619 // CrawlerMapInput is an input type that accepts CrawlerMap and CrawlerMapOutput values. 620 // You can construct a concrete instance of `CrawlerMapInput` via: 621 // 622 // CrawlerMap{ "key": CrawlerArgs{...} } 623 type CrawlerMapInput interface { 624 pulumi.Input 625 626 ToCrawlerMapOutput() CrawlerMapOutput 627 ToCrawlerMapOutputWithContext(context.Context) CrawlerMapOutput 628 } 629 630 type CrawlerMap map[string]CrawlerInput 631 632 func (CrawlerMap) ElementType() reflect.Type { 633 return reflect.TypeOf((*map[string]*Crawler)(nil)).Elem() 634 } 635 636 func (i CrawlerMap) ToCrawlerMapOutput() CrawlerMapOutput { 637 return i.ToCrawlerMapOutputWithContext(context.Background()) 638 } 639 640 func (i CrawlerMap) ToCrawlerMapOutputWithContext(ctx context.Context) CrawlerMapOutput { 641 return pulumi.ToOutputWithContext(ctx, i).(CrawlerMapOutput) 642 } 643 644 type CrawlerOutput struct{ *pulumi.OutputState } 645 646 func (CrawlerOutput) ElementType() reflect.Type { 647 return reflect.TypeOf((**Crawler)(nil)).Elem() 648 } 649 650 func (o CrawlerOutput) ToCrawlerOutput() CrawlerOutput { 651 return o 652 } 653 654 func (o CrawlerOutput) ToCrawlerOutputWithContext(ctx context.Context) CrawlerOutput { 655 return o 656 } 657 658 // The ARN of the crawler 659 func (o CrawlerOutput) Arn() pulumi.StringOutput { 660 return o.ApplyT(func(v *Crawler) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 661 } 662 663 // List of nested AWS Glue Data Catalog target arguments. See Catalog Target below. 664 func (o CrawlerOutput) CatalogTargets() CrawlerCatalogTargetArrayOutput { 665 return o.ApplyT(func(v *Crawler) CrawlerCatalogTargetArrayOutput { return v.CatalogTargets }).(CrawlerCatalogTargetArrayOutput) 666 } 667 668 // List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification. 669 func (o CrawlerOutput) Classifiers() pulumi.StringArrayOutput { 670 return o.ApplyT(func(v *Crawler) pulumi.StringArrayOutput { return v.Classifiers }).(pulumi.StringArrayOutput) 671 } 672 673 // JSON string of configuration information. For more details see [Setting Crawler Configuration Options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html). 674 func (o CrawlerOutput) Configuration() pulumi.StringPtrOutput { 675 return o.ApplyT(func(v *Crawler) pulumi.StringPtrOutput { return v.Configuration }).(pulumi.StringPtrOutput) 676 } 677 678 // Glue database where results are written. 679 func (o CrawlerOutput) DatabaseName() pulumi.StringOutput { 680 return o.ApplyT(func(v *Crawler) pulumi.StringOutput { return v.DatabaseName }).(pulumi.StringOutput) 681 } 682 683 // List of nested Delta Lake target arguments. See Delta Target below. 684 func (o CrawlerOutput) DeltaTargets() CrawlerDeltaTargetArrayOutput { 685 return o.ApplyT(func(v *Crawler) CrawlerDeltaTargetArrayOutput { return v.DeltaTargets }).(CrawlerDeltaTargetArrayOutput) 686 } 687 688 // Description of the crawler. 689 func (o CrawlerOutput) Description() pulumi.StringPtrOutput { 690 return o.ApplyT(func(v *Crawler) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 691 } 692 693 // List of nested DynamoDB target arguments. See Dynamodb Target below. 694 func (o CrawlerOutput) DynamodbTargets() CrawlerDynamodbTargetArrayOutput { 695 return o.ApplyT(func(v *Crawler) CrawlerDynamodbTargetArrayOutput { return v.DynamodbTargets }).(CrawlerDynamodbTargetArrayOutput) 696 } 697 698 // List of nested Hudi target arguments. See Iceberg Target below. 699 func (o CrawlerOutput) HudiTargets() CrawlerHudiTargetArrayOutput { 700 return o.ApplyT(func(v *Crawler) CrawlerHudiTargetArrayOutput { return v.HudiTargets }).(CrawlerHudiTargetArrayOutput) 701 } 702 703 // List of nested Iceberg target arguments. See Iceberg Target below. 704 func (o CrawlerOutput) IcebergTargets() CrawlerIcebergTargetArrayOutput { 705 return o.ApplyT(func(v *Crawler) CrawlerIcebergTargetArrayOutput { return v.IcebergTargets }).(CrawlerIcebergTargetArrayOutput) 706 } 707 708 // List of nested JDBC target arguments. See JDBC Target below. 709 func (o CrawlerOutput) JdbcTargets() CrawlerJdbcTargetArrayOutput { 710 return o.ApplyT(func(v *Crawler) CrawlerJdbcTargetArrayOutput { return v.JdbcTargets }).(CrawlerJdbcTargetArrayOutput) 711 } 712 713 // Specifies Lake Formation configuration settings for the crawler. See Lake Formation Configuration below. 714 func (o CrawlerOutput) LakeFormationConfiguration() CrawlerLakeFormationConfigurationPtrOutput { 715 return o.ApplyT(func(v *Crawler) CrawlerLakeFormationConfigurationPtrOutput { return v.LakeFormationConfiguration }).(CrawlerLakeFormationConfigurationPtrOutput) 716 } 717 718 // Specifies data lineage configuration settings for the crawler. See Lineage Configuration below. 719 func (o CrawlerOutput) LineageConfiguration() CrawlerLineageConfigurationPtrOutput { 720 return o.ApplyT(func(v *Crawler) CrawlerLineageConfigurationPtrOutput { return v.LineageConfiguration }).(CrawlerLineageConfigurationPtrOutput) 721 } 722 723 // List of nested MongoDB target arguments. See MongoDB Target below. 724 func (o CrawlerOutput) MongodbTargets() CrawlerMongodbTargetArrayOutput { 725 return o.ApplyT(func(v *Crawler) CrawlerMongodbTargetArrayOutput { return v.MongodbTargets }).(CrawlerMongodbTargetArrayOutput) 726 } 727 728 // Name of the crawler. 729 func (o CrawlerOutput) Name() pulumi.StringOutput { 730 return o.ApplyT(func(v *Crawler) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 731 } 732 733 // A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.. See Recrawl Policy below. 734 func (o CrawlerOutput) RecrawlPolicy() CrawlerRecrawlPolicyPtrOutput { 735 return o.ApplyT(func(v *Crawler) CrawlerRecrawlPolicyPtrOutput { return v.RecrawlPolicy }).(CrawlerRecrawlPolicyPtrOutput) 736 } 737 738 // The IAM role friendly name (including path without leading slash), or ARN of an IAM role, used by the crawler to access other resources. 739 func (o CrawlerOutput) Role() pulumi.StringOutput { 740 return o.ApplyT(func(v *Crawler) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput) 741 } 742 743 // List of nested Amazon S3 target arguments. See S3 Target below. 744 func (o CrawlerOutput) S3Targets() CrawlerS3TargetArrayOutput { 745 return o.ApplyT(func(v *Crawler) CrawlerS3TargetArrayOutput { return v.S3Targets }).(CrawlerS3TargetArrayOutput) 746 } 747 748 // A cron expression used to specify the schedule. For more information, see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`. 749 func (o CrawlerOutput) Schedule() pulumi.StringPtrOutput { 750 return o.ApplyT(func(v *Crawler) pulumi.StringPtrOutput { return v.Schedule }).(pulumi.StringPtrOutput) 751 } 752 753 // Policy for the crawler's update and deletion behavior. See Schema Change Policy below. 754 func (o CrawlerOutput) SchemaChangePolicy() CrawlerSchemaChangePolicyPtrOutput { 755 return o.ApplyT(func(v *Crawler) CrawlerSchemaChangePolicyPtrOutput { return v.SchemaChangePolicy }).(CrawlerSchemaChangePolicyPtrOutput) 756 } 757 758 // The name of Security Configuration to be used by the crawler 759 func (o CrawlerOutput) SecurityConfiguration() pulumi.StringPtrOutput { 760 return o.ApplyT(func(v *Crawler) pulumi.StringPtrOutput { return v.SecurityConfiguration }).(pulumi.StringPtrOutput) 761 } 762 763 // The table prefix used for catalog tables that are created. 764 func (o CrawlerOutput) TablePrefix() pulumi.StringPtrOutput { 765 return o.ApplyT(func(v *Crawler) pulumi.StringPtrOutput { return v.TablePrefix }).(pulumi.StringPtrOutput) 766 } 767 768 // Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 769 func (o CrawlerOutput) Tags() pulumi.StringMapOutput { 770 return o.ApplyT(func(v *Crawler) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 771 } 772 773 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 774 // 775 // Deprecated: Please use `tags` instead. 776 func (o CrawlerOutput) TagsAll() pulumi.StringMapOutput { 777 return o.ApplyT(func(v *Crawler) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 778 } 779 780 type CrawlerArrayOutput struct{ *pulumi.OutputState } 781 782 func (CrawlerArrayOutput) ElementType() reflect.Type { 783 return reflect.TypeOf((*[]*Crawler)(nil)).Elem() 784 } 785 786 func (o CrawlerArrayOutput) ToCrawlerArrayOutput() CrawlerArrayOutput { 787 return o 788 } 789 790 func (o CrawlerArrayOutput) ToCrawlerArrayOutputWithContext(ctx context.Context) CrawlerArrayOutput { 791 return o 792 } 793 794 func (o CrawlerArrayOutput) Index(i pulumi.IntInput) CrawlerOutput { 795 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Crawler { 796 return vs[0].([]*Crawler)[vs[1].(int)] 797 }).(CrawlerOutput) 798 } 799 800 type CrawlerMapOutput struct{ *pulumi.OutputState } 801 802 func (CrawlerMapOutput) ElementType() reflect.Type { 803 return reflect.TypeOf((*map[string]*Crawler)(nil)).Elem() 804 } 805 806 func (o CrawlerMapOutput) ToCrawlerMapOutput() CrawlerMapOutput { 807 return o 808 } 809 810 func (o CrawlerMapOutput) ToCrawlerMapOutputWithContext(ctx context.Context) CrawlerMapOutput { 811 return o 812 } 813 814 func (o CrawlerMapOutput) MapIndex(k pulumi.StringInput) CrawlerOutput { 815 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Crawler { 816 return vs[0].(map[string]*Crawler)[vs[1].(string)] 817 }).(CrawlerOutput) 818 } 819 820 func init() { 821 pulumi.RegisterInputType(reflect.TypeOf((*CrawlerInput)(nil)).Elem(), &Crawler{}) 822 pulumi.RegisterInputType(reflect.TypeOf((*CrawlerArrayInput)(nil)).Elem(), CrawlerArray{}) 823 pulumi.RegisterInputType(reflect.TypeOf((*CrawlerMapInput)(nil)).Elem(), CrawlerMap{}) 824 pulumi.RegisterOutputType(CrawlerOutput{}) 825 pulumi.RegisterOutputType(CrawlerArrayOutput{}) 826 pulumi.RegisterOutputType(CrawlerMapOutput{}) 827 }