@anvil-cloud/sdk 0.0.13 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/aws/cognitoAuth.ts +70 -0
  2. package/aws/cognitoUserPool.ts +132 -0
  3. package/aws/dynamoDB.ts +176 -0
  4. package/aws/eventBus.ts +91 -0
  5. package/aws/httpApi.ts +108 -0
  6. package/aws/index.ts +63 -0
  7. package/aws/lambda.ts +9 -3
  8. package/aws/oauthAuthorizer.ts +70 -0
  9. package/aws/queue.ts +156 -0
  10. package/aws/svelteKitSite.ts +14 -0
  11. package/aws/vpc.ts +159 -0
  12. package/aws/vpcEndpoint.ts +98 -0
  13. package/bin/aws/cognitoAuth.d.ts +36 -0
  14. package/bin/aws/cognitoAuth.js +53 -0
  15. package/bin/aws/cognitoAuth.js.map +1 -0
  16. package/bin/aws/cognitoUserPool.d.ts +82 -0
  17. package/bin/aws/cognitoUserPool.js +65 -0
  18. package/bin/aws/cognitoUserPool.js.map +1 -0
  19. package/bin/aws/dynamoDB.d.ts +115 -0
  20. package/bin/aws/dynamoDB.js +121 -0
  21. package/bin/aws/dynamoDB.js.map +1 -0
  22. package/bin/aws/eventBus.d.ts +47 -0
  23. package/bin/aws/eventBus.js +63 -0
  24. package/bin/aws/eventBus.js.map +1 -0
  25. package/bin/aws/httpApi.d.ts +66 -0
  26. package/bin/aws/httpApi.js +60 -0
  27. package/bin/aws/httpApi.js.map +1 -0
  28. package/bin/aws/index.d.ts +27 -0
  29. package/bin/aws/index.js +37 -1
  30. package/bin/aws/index.js.map +1 -1
  31. package/bin/aws/lambda.d.ts +7 -3
  32. package/bin/aws/lambda.js +2 -0
  33. package/bin/aws/lambda.js.map +1 -1
  34. package/bin/aws/oauthAuthorizer.d.ts +36 -0
  35. package/bin/aws/oauthAuthorizer.js +53 -0
  36. package/bin/aws/oauthAuthorizer.js.map +1 -0
  37. package/bin/aws/queue.d.ts +83 -0
  38. package/bin/aws/queue.js +103 -0
  39. package/bin/aws/queue.js.map +1 -0
  40. package/bin/aws/svelteKitSite.d.ts +9 -0
  41. package/bin/aws/svelteKitSite.js +3 -0
  42. package/bin/aws/svelteKitSite.js.map +1 -1
  43. package/bin/aws/vpc.d.ts +98 -0
  44. package/bin/aws/vpc.js +94 -0
  45. package/bin/aws/vpc.js.map +1 -0
  46. package/bin/aws/vpcEndpoint.d.ts +53 -0
  47. package/bin/aws/vpcEndpoint.js +62 -0
  48. package/bin/aws/vpcEndpoint.js.map +1 -0
  49. package/bin/grants.d.ts +0 -10
  50. package/bin/grants.js +5 -10
  51. package/bin/grants.js.map +1 -1
  52. package/bin/package.json +1 -1
  53. package/bin/types/enums/aws/index.d.ts +211 -7
  54. package/bin/types/enums/aws/index.js +192 -8
  55. package/bin/types/enums/aws/index.js.map +1 -1
  56. package/bin/types/input.d.ts +1040 -0
  57. package/bin/types/output.d.ts +13 -0
  58. package/grants.ts +7 -22
  59. package/package.json +1 -1
  60. package/tsconfig.json +9 -0
  61. package/types/enums/aws/index.ts +239 -7
  62. package/types/input.ts +1079 -0
  63. package/types/output.ts +14 -0
@@ -1,5 +1,6 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  import * as inputs from "../types/input";
3
+ import * as enums from "../types/enums";
3
4
  import * as pulumiAws from "@pulumi/aws";
4
5
  import * as pulumiGcp from "@pulumi/gcp";
5
6
  export declare namespace aws {
@@ -345,6 +346,814 @@ export declare namespace aws {
345
346
  */
346
347
  routingRules?: pulumi.Input<pulumi.Input<pulumiAws.types.input.s3.BucketWebsiteConfigurationRoutingRule>[]>;
347
348
  }
349
+ /**
350
+ * Default app client configuration. Covers the 80% case — one client per pool.
351
+ */
352
+ interface CognitoUserPoolAppClientArgs {
353
+ /**
354
+ * Allowed redirect URLs after successful sign-in. Required when using the hosted UI.
355
+ */
356
+ callbackUrls?: pulumi.Input<pulumi.Input<string>[]>;
357
+ /**
358
+ * Generate a client secret. Required for confidential clients (server-side apps). Must NOT be set for SPAs — never expose secrets in browser code. Default: false.
359
+ */
360
+ generateSecret?: pulumi.Input<boolean>;
361
+ /**
362
+ * Allowed redirect URLs after sign-out.
363
+ */
364
+ logoutUrls?: pulumi.Input<pulumi.Input<string>[]>;
365
+ /**
366
+ * Allowed OAuth flows. Default: [code]. Use code (PKCE) for SPAs and server apps. client_credentials for M2M.
367
+ */
368
+ oauthFlows?: pulumi.Input<pulumi.Input<enums.aws.CognitoUserPoolOAuthFlow>[]>;
369
+ /**
370
+ * OAuth scopes to allow. Default: [openid, email, profile].
371
+ */
372
+ oauthScopes?: pulumi.Input<pulumi.Input<string>[]>;
373
+ /**
374
+ * Identity providers shown on the hosted UI login page for this client. Default: [COGNITO]. Add provider names from identityProviders here to show social login buttons.
375
+ */
376
+ supportedIdentityProviders?: pulumi.Input<pulumi.Input<string>[]>;
377
+ /**
378
+ * Token validity periods. Anvil defaults: access 1h, id 1h, refresh 30d.
379
+ */
380
+ tokenValidity?: pulumi.Input<inputs.aws.CognitoUserPoolTokenValidityArgs>;
381
+ }
382
+ /**
383
+ * User attribute and sign-in configuration.
384
+ */
385
+ interface CognitoUserPoolAttributesArgs {
386
+ /**
387
+ * Custom attributes to add to user profiles. Cannot be deleted after pool creation.
388
+ */
389
+ customAttributes?: pulumi.Input<pulumi.Input<inputs.aws.CognitoUserPoolCustomAttributeArgs>[]>;
390
+ /**
391
+ * Standard attributes required on sign-up. Default: [email]. Cannot be changed after pool creation.
392
+ */
393
+ requiredAttributes?: pulumi.Input<pulumi.Input<string>[]>;
394
+ /**
395
+ * Attributes users can sign in with. Default: [email]. Set to [phone_number] or [email, phone_number] to allow both. Cannot be changed after pool creation.
396
+ */
397
+ usernameAttributes?: pulumi.Input<pulumi.Input<enums.aws.CognitoUserPoolUsernameAttribute>[]>;
398
+ }
399
+ /**
400
+ * A custom attribute to add to user profiles.
401
+ */
402
+ interface CognitoUserPoolCustomAttributeArgs {
403
+ /**
404
+ * Whether the attribute can be changed after a user is created. Default: true.
405
+ */
406
+ mutable?: pulumi.Input<boolean>;
407
+ /**
408
+ * Attribute name. Cognito prefixes this with 'custom:' automatically.
409
+ */
410
+ name: pulumi.Input<string>;
411
+ /**
412
+ * Attribute data type. Default: String.
413
+ */
414
+ type?: pulumi.Input<enums.aws.CognitoUserPoolCustomAttributeType>;
415
+ }
416
+ /**
417
+ * Email delivery configuration. Default uses Cognito-managed email which has a 50 emails/day limit. Configure SES for production workloads.
418
+ */
419
+ interface CognitoUserPoolEmailConfigurationArgs {
420
+ /**
421
+ * Reply-to address shown in outgoing emails. Optional.
422
+ */
423
+ replyToAddress?: pulumi.Input<string>;
424
+ /**
425
+ * Verified SES sender address (e.g. noreply@myapp.com). Setting this switches delivery to SES, removing the 50 emails/day limit. The address must be verified in SES in the same region as the user pool.
426
+ */
427
+ sesFromAddress?: pulumi.Input<string>;
428
+ }
429
+ /**
430
+ * Hosted UI (Managed Login) configuration. Enables the Cognito-hosted sign-in page.
431
+ */
432
+ interface CognitoUserPoolHostedUiArgs {
433
+ /**
434
+ * ACM certificate ARN for the custom domain. Must be in us-east-1 regardless of user pool region — this is a hard AWS requirement. Required when customDomain is true.
435
+ */
436
+ acmCertificateArn?: pulumi.Input<string>;
437
+ /**
438
+ * Set to true when domain is a custom FQDN you own. Requires acmCertificateArn. Anvil creates the CloudFront distribution and wires the alias automatically. Default: false.
439
+ */
440
+ customDomain?: pulumi.Input<boolean>;
441
+ /**
442
+ * Domain for the hosted UI. For Cognito-managed domains, provide just the prefix (e.g. 'myapp' → myapp.auth.{region}.amazoncognito.com). For custom domains, provide the fully-qualified domain name (e.g. 'auth.myapp.com'). Required.
443
+ */
444
+ domain: pulumi.Input<string>;
445
+ }
446
+ /**
447
+ * An external identity provider to federate with this user pool. Discriminated by type — the same schema covers all provider types. Add new providers by extending the identityProviders array, no schema changes required.
448
+ */
449
+ interface CognitoUserPoolIdentityProviderArgs {
450
+ /**
451
+ * Maps Cognito user attributes to provider-specific claim names. Key is the Cognito attribute (e.g. 'email'), value is the provider claim (e.g. 'email' for Google, or the full SAML attribute URI for SAML providers).
452
+ */
453
+ attributeMapping?: pulumi.Input<{
454
+ [key: string]: pulumi.Input<string>;
455
+ }>;
456
+ /**
457
+ * OAuth client ID from the identity provider. Required for Google, Facebook, LoginWithAmazon, SignInWithApple, OIDC.
458
+ */
459
+ clientId?: pulumi.Input<string>;
460
+ /**
461
+ * OAuth client secret from the identity provider. Required for Google, Facebook, LoginWithAmazon, OIDC. Not used for SAML.
462
+ */
463
+ clientSecret?: pulumi.Input<string>;
464
+ /**
465
+ * Inline SAML metadata XML. Required for SAML when metadataUrl is not provided.
466
+ */
467
+ metadataContent?: pulumi.Input<string>;
468
+ /**
469
+ * URL of the SAML metadata document. Required for SAML when metadataContent is not provided.
470
+ */
471
+ metadataUrl?: pulumi.Input<string>;
472
+ /**
473
+ * Friendly name for this provider. Required for OIDC and SAML providers. Optional for well-known social providers (Google, Facebook etc.) — defaults to the type name.
474
+ */
475
+ name?: pulumi.Input<string>;
476
+ /**
477
+ * OIDC issuer URL. Required when type is OIDC. Cognito fetches the discovery document from {oidcIssuer}/.well-known/openid-configuration.
478
+ */
479
+ oidcIssuer?: pulumi.Input<string>;
480
+ /**
481
+ * Provider type. Determines which fields are required. Google/Facebook/LoginWithAmazon/SignInWithApple require clientId and clientSecret. OIDC additionally requires oidcIssuer. SAML requires metadataUrl or metadataContent.
482
+ */
483
+ type: pulumi.Input<enums.aws.CognitoUserPoolIdentityProviderType>;
484
+ }
485
+ /**
486
+ * MFA configuration for the user pool.
487
+ */
488
+ interface CognitoUserPoolMfaArgs {
489
+ /**
490
+ * MFA methods to enable. TOTP requires no additional AWS resources. SMS requires snsCallerArn.
491
+ */
492
+ methods?: pulumi.Input<pulumi.Input<enums.aws.CognitoUserPoolMfaMethod>[]>;
493
+ /**
494
+ * MFA enforcement mode. Default: OFF.
495
+ */
496
+ mode?: pulumi.Input<enums.aws.CognitoUserPoolMfaMode>;
497
+ /**
498
+ * ARN of the IAM role Cognito uses to send SMS messages via SNS. Required when methods includes SMS. Anvil will create this role automatically if omitted and SMS is enabled.
499
+ */
500
+ snsCallerArn?: pulumi.Input<string>;
501
+ }
502
+ interface CognitoUserPoolOverridesArgs {
503
+ /**
504
+ * Configuration block to define which verified available method a user can use to recover their forgotten password. Detailed below.
505
+ */
506
+ accountRecoverySetting?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolAccountRecoverySetting>;
507
+ /**
508
+ * Configuration block for creating a new user profile. Detailed below.
509
+ */
510
+ adminCreateUserConfig?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolAdminCreateUserConfig>;
511
+ /**
512
+ * Attributes supported as an alias for this user pool. Valid values: <span pulumi-lang-nodejs="`phoneNumber`" pulumi-lang-dotnet="`PhoneNumber`" pulumi-lang-go="`phoneNumber`" pulumi-lang-python="`phone_number`" pulumi-lang-yaml="`phoneNumber`" pulumi-lang-java="`phoneNumber`">`phone_number`</span>, <span pulumi-lang-nodejs="`email`" pulumi-lang-dotnet="`Email`" pulumi-lang-go="`email`" pulumi-lang-python="`email`" pulumi-lang-yaml="`email`" pulumi-lang-java="`email`">`email`</span>, or <span pulumi-lang-nodejs="`preferredUsername`" pulumi-lang-dotnet="`PreferredUsername`" pulumi-lang-go="`preferredUsername`" pulumi-lang-python="`preferred_username`" pulumi-lang-yaml="`preferredUsername`" pulumi-lang-java="`preferredUsername`">`preferred_username`</span>. Conflicts with <span pulumi-lang-nodejs="`usernameAttributes`" pulumi-lang-dotnet="`UsernameAttributes`" pulumi-lang-go="`usernameAttributes`" pulumi-lang-python="`username_attributes`" pulumi-lang-yaml="`usernameAttributes`" pulumi-lang-java="`usernameAttributes`">`username_attributes`</span>.
513
+ */
514
+ aliasAttributes?: pulumi.Input<pulumi.Input<string>[]>;
515
+ /**
516
+ * Attributes to be auto-verified. Valid values: <span pulumi-lang-nodejs="`email`" pulumi-lang-dotnet="`Email`" pulumi-lang-go="`email`" pulumi-lang-python="`email`" pulumi-lang-yaml="`email`" pulumi-lang-java="`email`">`email`</span>, <span pulumi-lang-nodejs="`phoneNumber`" pulumi-lang-dotnet="`PhoneNumber`" pulumi-lang-go="`phoneNumber`" pulumi-lang-python="`phone_number`" pulumi-lang-yaml="`phoneNumber`" pulumi-lang-java="`phoneNumber`">`phone_number`</span>.
517
+ */
518
+ autoVerifiedAttributes?: pulumi.Input<pulumi.Input<string>[]>;
519
+ /**
520
+ * When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature. Valid values are `ACTIVE` and `INACTIVE`, Default value is `INACTIVE`.
521
+ */
522
+ deletionProtection?: pulumi.Input<string>;
523
+ /**
524
+ * Configuration block for the user pool's device tracking. Detailed below.
525
+ */
526
+ deviceConfiguration?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolDeviceConfiguration>;
527
+ /**
528
+ * Configuration block for configuring email. Detailed below.
529
+ */
530
+ emailConfiguration?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolEmailConfiguration>;
531
+ /**
532
+ * Configuration block for configuring email Multi-Factor Authentication (MFA); requires at least 2 <span pulumi-lang-nodejs="`accountRecoverySetting`" pulumi-lang-dotnet="`AccountRecoverySetting`" pulumi-lang-go="`accountRecoverySetting`" pulumi-lang-python="`account_recovery_setting`" pulumi-lang-yaml="`accountRecoverySetting`" pulumi-lang-java="`accountRecoverySetting`">`account_recovery_setting`</span> entries; requires an <span pulumi-lang-nodejs="`emailConfiguration`" pulumi-lang-dotnet="`EmailConfiguration`" pulumi-lang-go="`emailConfiguration`" pulumi-lang-python="`email_configuration`" pulumi-lang-yaml="`emailConfiguration`" pulumi-lang-java="`emailConfiguration`">`email_configuration`</span> configuration block. Effective only when <span pulumi-lang-nodejs="`mfaConfiguration`" pulumi-lang-dotnet="`MfaConfiguration`" pulumi-lang-go="`mfaConfiguration`" pulumi-lang-python="`mfa_configuration`" pulumi-lang-yaml="`mfaConfiguration`" pulumi-lang-java="`mfaConfiguration`">`mfa_configuration`</span> is `ON` or `OPTIONAL`. Detailed below.
533
+ */
534
+ emailMfaConfiguration?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolEmailMfaConfiguration>;
535
+ /**
536
+ * String representing the email verification message. Conflicts with <span pulumi-lang-nodejs="`verificationMessageTemplate`" pulumi-lang-dotnet="`VerificationMessageTemplate`" pulumi-lang-go="`verificationMessageTemplate`" pulumi-lang-python="`verification_message_template`" pulumi-lang-yaml="`verificationMessageTemplate`" pulumi-lang-java="`verificationMessageTemplate`">`verification_message_template`</span> configuration block <span pulumi-lang-nodejs="`emailMessage`" pulumi-lang-dotnet="`EmailMessage`" pulumi-lang-go="`emailMessage`" pulumi-lang-python="`email_message`" pulumi-lang-yaml="`emailMessage`" pulumi-lang-java="`emailMessage`">`email_message`</span> argument.
537
+ */
538
+ emailVerificationMessage?: pulumi.Input<string>;
539
+ /**
540
+ * String representing the email verification subject. Conflicts with <span pulumi-lang-nodejs="`verificationMessageTemplate`" pulumi-lang-dotnet="`VerificationMessageTemplate`" pulumi-lang-go="`verificationMessageTemplate`" pulumi-lang-python="`verification_message_template`" pulumi-lang-yaml="`verificationMessageTemplate`" pulumi-lang-java="`verificationMessageTemplate`">`verification_message_template`</span> configuration block <span pulumi-lang-nodejs="`emailSubject`" pulumi-lang-dotnet="`EmailSubject`" pulumi-lang-go="`emailSubject`" pulumi-lang-python="`email_subject`" pulumi-lang-yaml="`emailSubject`" pulumi-lang-java="`emailSubject`">`email_subject`</span> argument.
541
+ */
542
+ emailVerificationSubject?: pulumi.Input<string>;
543
+ /**
544
+ * Configuration block for the AWS Lambda triggers associated with the user pool. Detailed below.
545
+ */
546
+ lambdaConfig?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolLambdaConfig>;
547
+ /**
548
+ * Multi-Factor Authentication (MFA) configuration for the User Pool. Defaults of `OFF`. Valid values are `OFF` (MFA Tokens are not required), `ON` (MFA is required for all users to sign in; requires at least one of <span pulumi-lang-nodejs="`emailMfaConfiguration`" pulumi-lang-dotnet="`EmailMfaConfiguration`" pulumi-lang-go="`emailMfaConfiguration`" pulumi-lang-python="`email_mfa_configuration`" pulumi-lang-yaml="`emailMfaConfiguration`" pulumi-lang-java="`emailMfaConfiguration`">`email_mfa_configuration`</span>, <span pulumi-lang-nodejs="`smsConfiguration`" pulumi-lang-dotnet="`SmsConfiguration`" pulumi-lang-go="`smsConfiguration`" pulumi-lang-python="`sms_configuration`" pulumi-lang-yaml="`smsConfiguration`" pulumi-lang-java="`smsConfiguration`">`sms_configuration`</span> or <span pulumi-lang-nodejs="`softwareTokenMfaConfiguration`" pulumi-lang-dotnet="`SoftwareTokenMfaConfiguration`" pulumi-lang-go="`softwareTokenMfaConfiguration`" pulumi-lang-python="`software_token_mfa_configuration`" pulumi-lang-yaml="`softwareTokenMfaConfiguration`" pulumi-lang-java="`softwareTokenMfaConfiguration`">`software_token_mfa_configuration`</span> to be configured), or `OPTIONAL` (MFA Will be required only for individual users who have MFA Enabled; requires at least one of <span pulumi-lang-nodejs="`emailMfaConfiguration`" pulumi-lang-dotnet="`EmailMfaConfiguration`" pulumi-lang-go="`emailMfaConfiguration`" pulumi-lang-python="`email_mfa_configuration`" pulumi-lang-yaml="`emailMfaConfiguration`" pulumi-lang-java="`emailMfaConfiguration`">`email_mfa_configuration`</span>, <span pulumi-lang-nodejs="`smsConfiguration`" pulumi-lang-dotnet="`SmsConfiguration`" pulumi-lang-go="`smsConfiguration`" pulumi-lang-python="`sms_configuration`" pulumi-lang-yaml="`smsConfiguration`" pulumi-lang-java="`smsConfiguration`">`sms_configuration`</span> or <span pulumi-lang-nodejs="`softwareTokenMfaConfiguration`" pulumi-lang-dotnet="`SoftwareTokenMfaConfiguration`" pulumi-lang-go="`softwareTokenMfaConfiguration`" pulumi-lang-python="`software_token_mfa_configuration`" pulumi-lang-yaml="`softwareTokenMfaConfiguration`" pulumi-lang-java="`softwareTokenMfaConfiguration`">`software_token_mfa_configuration`</span> to be configured).
549
+ */
550
+ mfaConfiguration?: pulumi.Input<string>;
551
+ /**
552
+ * Name of the user pool.
553
+ */
554
+ name?: pulumi.Input<string>;
555
+ /**
556
+ * Configuration block for information about the user pool password policy. Detailed below.
557
+ */
558
+ passwordPolicy?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolPasswordPolicy>;
559
+ /**
560
+ * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
561
+ */
562
+ region?: pulumi.Input<string>;
563
+ /**
564
+ * Configuration block for the schema attributes of a user pool. Detailed below. Schema attributes from the [standard attribute set](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) only need to be specified if they are different from the default configuration. Attributes can be added, but not modified or removed. Maximum of 50 attributes.
565
+ */
566
+ schemas?: pulumi.Input<pulumi.Input<pulumiAws.types.input.cognito.UserPoolSchema>[]>;
567
+ /**
568
+ * Configuration block for information about the user pool sign in policy. Detailed below.
569
+ */
570
+ signInPolicy?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolSignInPolicy>;
571
+ /**
572
+ * String representing the SMS authentication message. The Message must contain the `{####}` placeholder, which will be replaced with the code.
573
+ */
574
+ smsAuthenticationMessage?: pulumi.Input<string>;
575
+ /**
576
+ * Configuration block for Short Message Service (SMS) settings. Detailed below. These settings apply to SMS user verification and SMS Multi-Factor Authentication (MFA). SMS MFA is activated only when <span pulumi-lang-nodejs="`mfaConfiguration`" pulumi-lang-dotnet="`MfaConfiguration`" pulumi-lang-go="`mfaConfiguration`" pulumi-lang-python="`mfa_configuration`" pulumi-lang-yaml="`mfaConfiguration`" pulumi-lang-java="`mfaConfiguration`">`mfa_configuration`</span> is set to `ON` or `OPTIONAL` along with this block. Due to Cognito API restrictions, the SMS configuration cannot be removed without recreating the Cognito User Pool. For user data safety, this resource will ignore the removal of this configuration by disabling drift detection. To force resource recreation after this configuration has been applied, see the <span pulumi-lang-nodejs="`taint`" pulumi-lang-dotnet="`Taint`" pulumi-lang-go="`taint`" pulumi-lang-python="`taint`" pulumi-lang-yaml="`taint`" pulumi-lang-java="`taint`">`taint`</span> command.
577
+ */
578
+ smsConfiguration?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolSmsConfiguration>;
579
+ /**
580
+ * String representing the SMS verification message. Conflicts with <span pulumi-lang-nodejs="`verificationMessageTemplate`" pulumi-lang-dotnet="`VerificationMessageTemplate`" pulumi-lang-go="`verificationMessageTemplate`" pulumi-lang-python="`verification_message_template`" pulumi-lang-yaml="`verificationMessageTemplate`" pulumi-lang-java="`verificationMessageTemplate`">`verification_message_template`</span> configuration block <span pulumi-lang-nodejs="`smsMessage`" pulumi-lang-dotnet="`SmsMessage`" pulumi-lang-go="`smsMessage`" pulumi-lang-python="`sms_message`" pulumi-lang-yaml="`smsMessage`" pulumi-lang-java="`smsMessage`">`sms_message`</span> argument.
581
+ */
582
+ smsVerificationMessage?: pulumi.Input<string>;
583
+ /**
584
+ * Configuration block for software token Mult-Factor Authentication (MFA) settings. Effective only when <span pulumi-lang-nodejs="`mfaConfiguration`" pulumi-lang-dotnet="`MfaConfiguration`" pulumi-lang-go="`mfaConfiguration`" pulumi-lang-python="`mfa_configuration`" pulumi-lang-yaml="`mfaConfiguration`" pulumi-lang-java="`mfaConfiguration`">`mfa_configuration`</span> is `ON` or `OPTIONAL`. Detailed below.
585
+ */
586
+ softwareTokenMfaConfiguration?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolSoftwareTokenMfaConfiguration>;
587
+ /**
588
+ * Map of tags to assign to the User Pool. If configured with a provider <span pulumi-lang-nodejs="`defaultTags`" pulumi-lang-dotnet="`DefaultTags`" pulumi-lang-go="`defaultTags`" pulumi-lang-python="`default_tags`" pulumi-lang-yaml="`defaultTags`" pulumi-lang-java="`defaultTags`">`default_tags`</span> configuration block present, tags with matching keys will overwrite those defined at the provider-level.
589
+ */
590
+ tags?: pulumi.Input<{
591
+ [key: string]: pulumi.Input<string>;
592
+ }>;
593
+ /**
594
+ * Configuration block for user attribute update settings. Detailed below.
595
+ */
596
+ userAttributeUpdateSettings?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolUserAttributeUpdateSettings>;
597
+ /**
598
+ * Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.
599
+ */
600
+ userPoolAddOns?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolUserPoolAddOns>;
601
+ /**
602
+ * The user pool [feature plan](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-sign-in-feature-plans.html), or tier. Valid values: `LITE`, `ESSENTIALS`, `PLUS`.
603
+ */
604
+ userPoolTier?: pulumi.Input<string>;
605
+ /**
606
+ * Whether email addresses or phone numbers can be specified as usernames when a user signs up. Conflicts with <span pulumi-lang-nodejs="`aliasAttributes`" pulumi-lang-dotnet="`AliasAttributes`" pulumi-lang-go="`aliasAttributes`" pulumi-lang-python="`alias_attributes`" pulumi-lang-yaml="`aliasAttributes`" pulumi-lang-java="`aliasAttributes`">`alias_attributes`</span>.
607
+ */
608
+ usernameAttributes?: pulumi.Input<pulumi.Input<string>[]>;
609
+ /**
610
+ * Configuration block for username configuration. Detailed below.
611
+ */
612
+ usernameConfiguration?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolUsernameConfiguration>;
613
+ /**
614
+ * Configuration block for verification message templates. Detailed below.
615
+ */
616
+ verificationMessageTemplate?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolVerificationMessageTemplate>;
617
+ /**
618
+ * Configuration block for web authn configuration. Detailed below.
619
+ */
620
+ webAuthnConfiguration?: pulumi.Input<pulumiAws.types.input.cognito.UserPoolWebAuthnConfiguration>;
621
+ }
622
+ /**
623
+ * Password policy for the user pool. Anvil defaults satisfy CIS Benchmarks and SOC 2 baseline.
624
+ */
625
+ interface CognitoUserPoolPasswordPolicyArgs {
626
+ /**
627
+ * Minimum password length. Default: 12. Minimum allowed: 6.
628
+ */
629
+ minLength?: pulumi.Input<number>;
630
+ /**
631
+ * Require at least one lowercase letter. Default: true.
632
+ */
633
+ requireLowercase?: pulumi.Input<boolean>;
634
+ /**
635
+ * Require at least one number. Default: true.
636
+ */
637
+ requireNumbers?: pulumi.Input<boolean>;
638
+ /**
639
+ * Require at least one symbol. Default: true.
640
+ */
641
+ requireSymbols?: pulumi.Input<boolean>;
642
+ /**
643
+ * Require at least one uppercase letter. Default: true.
644
+ */
645
+ requireUppercase?: pulumi.Input<boolean>;
646
+ /**
647
+ * Number of days a temporary password is valid. Default: 7.
648
+ */
649
+ temporaryPasswordValidityDays?: pulumi.Input<number>;
650
+ }
651
+ /**
652
+ * Token validity configuration.
653
+ */
654
+ interface CognitoUserPoolTokenValidityArgs {
655
+ /**
656
+ * Access token validity in hours. Default: 1.
657
+ */
658
+ accessTokenValidity?: pulumi.Input<number>;
659
+ /**
660
+ * ID token validity in hours. Default: 1.
661
+ */
662
+ idTokenValidity?: pulumi.Input<number>;
663
+ /**
664
+ * Refresh token validity in days. Default: 30.
665
+ */
666
+ refreshTokenValidity?: pulumi.Input<number>;
667
+ }
668
+ interface CognitoUserPoolTransformArgsArgs {
669
+ cognitoUserPool?: pulumi.Input<inputs.aws.CognitoUserPoolOverridesArgs>;
670
+ }
671
+ /**
672
+ * A Global Secondary Index. All key attributes must use the explicit { name, type } shape — Anvil merges these into the table attributeDefinitions automatically.
673
+ */
674
+ interface DynamoDBGlobalSecondaryIndexArgs {
675
+ /**
676
+ * GSI hash key. Must include name and type explicitly.
677
+ */
678
+ hashKey: pulumi.Input<inputs.aws.DynamoDBKeyAttributeArgs>;
679
+ /**
680
+ * GSI name.
681
+ */
682
+ name: pulumi.Input<string>;
683
+ /**
684
+ * Non-key attributes to project. Only valid when projectionType is INCLUDE.
685
+ */
686
+ nonKeyAttributes?: pulumi.Input<pulumi.Input<string>[]>;
687
+ /**
688
+ * Projection type. Defaults to ALL.
689
+ */
690
+ projectionType?: pulumi.Input<enums.aws.DynamoDBProjectionType>;
691
+ /**
692
+ * GSI range key. Optional. Must include name and type explicitly.
693
+ */
694
+ rangeKey?: pulumi.Input<inputs.aws.DynamoDBKeyAttributeArgs>;
695
+ }
696
+ /**
697
+ * A DynamoDB key attribute with an explicit name and type. All keys — table and GSI — must use this shape. Anvil derives attributeDefinitions automatically.
698
+ */
699
+ interface DynamoDBKeyAttributeArgs {
700
+ /**
701
+ * Attribute name.
702
+ */
703
+ name: pulumi.Input<string>;
704
+ /**
705
+ * Attribute type. S = String, N = Number, B = Binary.
706
+ */
707
+ type: pulumi.Input<enums.aws.DynamoDBAttributeType>;
708
+ }
709
+ /**
710
+ * DynamoDB Streams configuration. Opt-in.
711
+ */
712
+ interface DynamoDBStreamArgs {
713
+ /**
714
+ * Number of stream records to send to the consumer per batch. Defaults to 100.
715
+ */
716
+ batchSize?: pulumi.Input<number>;
717
+ /**
718
+ * The consumer of the stream. Discriminated union — exactly one of lambda or eventBridge.
719
+ */
720
+ consumer: pulumi.Input<inputs.aws.DynamoDBStreamConsumerArgs>;
721
+ /**
722
+ * Where to start reading the stream. Defaults to TRIM_HORIZON (AWS default — replays all existing records). Set to LATEST to only receive new events from the point of consumer creation.
723
+ */
724
+ startingPosition?: pulumi.Input<enums.aws.DynamoDBStreamStartingPosition>;
725
+ /**
726
+ * The stream view type. Controls what data is written to the stream on item changes.
727
+ */
728
+ viewType: pulumi.Input<enums.aws.DynamoDBStreamViewType>;
729
+ }
730
+ /**
731
+ * Discriminated union for the stream consumer. Exactly one of lambda or eventBridge must be set.
732
+ */
733
+ interface DynamoDBStreamConsumerArgs {
734
+ /**
735
+ * Wire an EventBridge bus as the stream consumer via an EventBridge Pipe. Use this for fanout — the bus routes to multiple targets via rules. Bypasses the 2-consumer-per-shard limit of direct Lambda ESM.
736
+ */
737
+ eventBridge?: pulumi.Input<inputs.aws.DynamoDBStreamEventBridgeConsumerArgs>;
738
+ /**
739
+ * Wire a Lambda function as the stream consumer via AWS-managed Event Source Mapping.
740
+ */
741
+ lambda?: pulumi.Input<inputs.aws.DynamoDBStreamLambdaConsumerArgs>;
742
+ }
743
+ /**
744
+ * EventBridge Pipe consumer. Anvil creates the Pipe, a scoped IAM role for the Pipe, and wires the stream to the target bus. Use this for fanout to multiple targets via EventBridge rules.
745
+ */
746
+ interface DynamoDBStreamEventBridgeConsumerArgs {
747
+ /**
748
+ * ARN of the target EventBridge event bus.
749
+ */
750
+ busArn: pulumi.Input<string>;
751
+ /**
752
+ * Name of the target EventBridge event bus (anvil.aws.EventBus).
753
+ */
754
+ name: pulumi.Input<string>;
755
+ }
756
+ /**
757
+ * Lambda stream consumer. Anvil creates the ESM, lambda:InvokeFunction permission, and attaches stream read permissions to the Lambda role. Does not grant table read/write access — call grantRead/Write separately if needed.
758
+ */
759
+ interface DynamoDBStreamLambdaConsumerArgs {
760
+ /**
761
+ * ARN of the Lambda function.
762
+ */
763
+ arn: pulumi.Input<string>;
764
+ /**
765
+ * ARN of the Lambda execution role. Anvil attaches an inline policy granting stream read permissions (GetRecords, GetShardIterator, DescribeStream, ListStreams).
766
+ */
767
+ lambdaRoleArn: pulumi.Input<string>;
768
+ }
769
+ interface DynamoOverridesArgs {
770
+ /**
771
+ * Set of nested attribute definitions. Only required for <span pulumi-lang-nodejs="`hashKey`" pulumi-lang-dotnet="`HashKey`" pulumi-lang-go="`hashKey`" pulumi-lang-python="`hash_key`" pulumi-lang-yaml="`hashKey`" pulumi-lang-java="`hashKey`">`hash_key`</span> and <span pulumi-lang-nodejs="`rangeKey`" pulumi-lang-dotnet="`RangeKey`" pulumi-lang-go="`rangeKey`" pulumi-lang-python="`range_key`" pulumi-lang-yaml="`rangeKey`" pulumi-lang-java="`rangeKey`">`range_key`</span> attributes. See below.
772
+ */
773
+ attributes?: pulumi.Input<pulumi.Input<pulumiAws.types.input.dynamodb.TableAttribute>[]>;
774
+ /**
775
+ * Controls how you are charged for read and write throughput and how you manage capacity. The valid values are `PROVISIONED` and `PAY_PER_REQUEST`. Defaults to `PROVISIONED`.
776
+ */
777
+ billingMode?: pulumi.Input<string>;
778
+ /**
779
+ * Enables deletion protection for table. Defaults to <span pulumi-lang-nodejs="`false`" pulumi-lang-dotnet="`False`" pulumi-lang-go="`false`" pulumi-lang-python="`false`" pulumi-lang-yaml="`false`" pulumi-lang-java="`false`">`false`</span>.
780
+ */
781
+ deletionProtectionEnabled?: pulumi.Input<boolean>;
782
+ /**
783
+ * Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below.
784
+ */
785
+ globalSecondaryIndexes?: pulumi.Input<pulumi.Input<pulumiAws.types.input.dynamodb.TableGlobalSecondaryIndex>[]>;
786
+ /**
787
+ * Witness Region in a Multi-Region Strong Consistency deployment. **Note** This must be used alongside a single <span pulumi-lang-nodejs="`replica`" pulumi-lang-dotnet="`Replica`" pulumi-lang-go="`replica`" pulumi-lang-python="`replica`" pulumi-lang-yaml="`replica`" pulumi-lang-java="`replica`">`replica`</span> with <span pulumi-lang-nodejs="`consistencyMode`" pulumi-lang-dotnet="`ConsistencyMode`" pulumi-lang-go="`consistencyMode`" pulumi-lang-python="`consistency_mode`" pulumi-lang-yaml="`consistencyMode`" pulumi-lang-java="`consistencyMode`">`consistency_mode`</span> set to `STRONG`. Other combinations will fail to provision. See below.
788
+ */
789
+ globalTableWitness?: pulumi.Input<pulumiAws.types.input.dynamodb.TableGlobalTableWitness>;
790
+ /**
791
+ * Attribute to use as the hash (partition) key. Must also be defined as an <span pulumi-lang-nodejs="`attribute`" pulumi-lang-dotnet="`Attribute`" pulumi-lang-go="`attribute`" pulumi-lang-python="`attribute`" pulumi-lang-yaml="`attribute`" pulumi-lang-java="`attribute`">`attribute`</span>. See below.
792
+ */
793
+ hashKey?: pulumi.Input<string>;
794
+ /**
795
+ * Import Amazon S3 data into a new table. See below.
796
+ */
797
+ importTable?: pulumi.Input<pulumiAws.types.input.dynamodb.TableImportTable>;
798
+ /**
799
+ * Describe an LSI on the table; these can only be allocated _at creation_ so you cannot change this definition after you have created the resource. See below.
800
+ */
801
+ localSecondaryIndexes?: pulumi.Input<pulumi.Input<pulumiAws.types.input.dynamodb.TableLocalSecondaryIndex>[]>;
802
+ /**
803
+ * Unique within a region name of the table.
804
+ *
805
+ * The following arguments are optional:
806
+ */
807
+ name?: pulumi.Input<string>;
808
+ /**
809
+ * Sets the maximum number of read and write units for the specified on-demand table. See below.
810
+ */
811
+ onDemandThroughput?: pulumi.Input<pulumiAws.types.input.dynamodb.TableOnDemandThroughput>;
812
+ /**
813
+ * Enable point-in-time recovery options. See below.
814
+ */
815
+ pointInTimeRecovery?: pulumi.Input<pulumiAws.types.input.dynamodb.TablePointInTimeRecovery>;
816
+ /**
817
+ * Attribute to use as the range (sort) key. Must also be defined as an <span pulumi-lang-nodejs="`attribute`" pulumi-lang-dotnet="`Attribute`" pulumi-lang-go="`attribute`" pulumi-lang-python="`attribute`" pulumi-lang-yaml="`attribute`" pulumi-lang-java="`attribute`">`attribute`</span>, see below.
818
+ */
819
+ rangeKey?: pulumi.Input<string>;
820
+ /**
821
+ * Number of read units for this table. If the <span pulumi-lang-nodejs="`billingMode`" pulumi-lang-dotnet="`BillingMode`" pulumi-lang-go="`billingMode`" pulumi-lang-python="`billing_mode`" pulumi-lang-yaml="`billingMode`" pulumi-lang-java="`billingMode`">`billing_mode`</span> is `PROVISIONED`, this field is required.
822
+ */
823
+ readCapacity?: pulumi.Input<number>;
824
+ /**
825
+ * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
826
+ */
827
+ region?: pulumi.Input<string>;
828
+ /**
829
+ * Configuration block(s) with [DynamoDB Global Tables V2 (version 2019.11.21)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) replication configurations. See below.
830
+ */
831
+ replicas?: pulumi.Input<pulumi.Input<pulumiAws.types.input.dynamodb.TableReplica>[]>;
832
+ /**
833
+ * Time of the point-in-time recovery point to restore.
834
+ */
835
+ restoreDateTime?: pulumi.Input<string>;
836
+ /**
837
+ * Name of the table to restore. Must match the name of an existing table.
838
+ */
839
+ restoreSourceName?: pulumi.Input<string>;
840
+ /**
841
+ * ARN of the source table to restore. Must be supplied for cross-region restores.
842
+ */
843
+ restoreSourceTableArn?: pulumi.Input<string>;
844
+ /**
845
+ * If set, restores table to the most recent point-in-time recovery point.
846
+ */
847
+ restoreToLatestTime?: pulumi.Input<boolean>;
848
+ /**
849
+ * Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. Must be supplied for cross-region restores. See below.
850
+ */
851
+ serverSideEncryption?: pulumi.Input<pulumiAws.types.input.dynamodb.TableServerSideEncryption>;
852
+ /**
853
+ * Whether Streams are enabled.
854
+ */
855
+ streamEnabled?: pulumi.Input<boolean>;
856
+ /**
857
+ * When an item in the table is modified, StreamViewType determines what information is written to the table's stream.
858
+ * Valid values are `KEYS_ONLY`, `NEW_IMAGE`, `OLD_IMAGE`, `NEW_AND_OLD_IMAGES`.
859
+ * Only valid when <span pulumi-lang-nodejs="`streamEnabled`" pulumi-lang-dotnet="`StreamEnabled`" pulumi-lang-go="`streamEnabled`" pulumi-lang-python="`stream_enabled`" pulumi-lang-yaml="`streamEnabled`" pulumi-lang-java="`streamEnabled`">`stream_enabled`</span> is true.
860
+ */
861
+ streamViewType?: pulumi.Input<string>;
862
+ /**
863
+ * Storage class of the table.
864
+ * Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`.
865
+ * Default value is `STANDARD`.
866
+ */
867
+ tableClass?: pulumi.Input<string>;
868
+ /**
869
+ * A map of tags to populate on the created table. If configured with a provider <span pulumi-lang-nodejs="`defaultTags`" pulumi-lang-dotnet="`DefaultTags`" pulumi-lang-go="`defaultTags`" pulumi-lang-python="`default_tags`" pulumi-lang-yaml="`defaultTags`" pulumi-lang-java="`defaultTags`">`default_tags`</span> configuration block present, tags with matching keys will overwrite those defined at the provider-level.
870
+ */
871
+ tags?: pulumi.Input<{
872
+ [key: string]: pulumi.Input<string>;
873
+ }>;
874
+ /**
875
+ * Configuration block for TTL. See below.
876
+ */
877
+ ttl?: pulumi.Input<pulumiAws.types.input.dynamodb.TableTtl>;
878
+ /**
879
+ * Sets the number of warm read and write units for the specified table. See below.
880
+ */
881
+ warmThroughput?: pulumi.Input<pulumiAws.types.input.dynamodb.TableWarmThroughput>;
882
+ /**
883
+ * Number of write units for this table. If the <span pulumi-lang-nodejs="`billingMode`" pulumi-lang-dotnet="`BillingMode`" pulumi-lang-go="`billingMode`" pulumi-lang-python="`billing_mode`" pulumi-lang-yaml="`billingMode`" pulumi-lang-java="`billingMode`">`billing_mode`</span> is `PROVISIONED`, this field is required.
884
+ */
885
+ writeCapacity?: pulumi.Input<number>;
886
+ }
887
+ interface DynamoTransformArgsArgs {
888
+ dynamo?: pulumi.Input<inputs.aws.DynamoOverridesArgs>;
889
+ }
890
+ interface EventBridgeOverridesArgs {
891
+ /**
892
+ * Configuration details of the Amazon SQS queue for EventBridge to use as a dead-letter queue (DLQ). This block supports the following arguments:
893
+ */
894
+ deadLetterConfig?: pulumi.Input<pulumiAws.types.input.cloudwatch.EventBusDeadLetterConfig>;
895
+ /**
896
+ * Event bus description.
897
+ */
898
+ description?: pulumi.Input<string>;
899
+ /**
900
+ * Partner event source that the new event bus will be matched with. Must match <span pulumi-lang-nodejs="`name`" pulumi-lang-dotnet="`Name`" pulumi-lang-go="`name`" pulumi-lang-python="`name`" pulumi-lang-yaml="`name`" pulumi-lang-java="`name`">`name`</span>.
901
+ */
902
+ eventSourceName?: pulumi.Input<string>;
903
+ /**
904
+ * Identifier of the AWS KMS customer managed key for EventBridge to use, if you choose to use a customer managed key to encrypt events on this event bus. The identifier can be the key Amazon Resource Name (ARN), KeyId, key alias, or key alias ARN.
905
+ */
906
+ kmsKeyIdentifier?: pulumi.Input<string>;
907
+ /**
908
+ * Block for logging configuration settings for the event bus.
909
+ */
910
+ logConfig?: pulumi.Input<pulumiAws.types.input.cloudwatch.EventBusLogConfig>;
911
+ /**
912
+ * Name of the new event bus. The names of custom event buses can't contain the / character. To create a partner event bus, ensure that the <span pulumi-lang-nodejs="`name`" pulumi-lang-dotnet="`Name`" pulumi-lang-go="`name`" pulumi-lang-python="`name`" pulumi-lang-yaml="`name`" pulumi-lang-java="`name`">`name`</span> matches the <span pulumi-lang-nodejs="`eventSourceName`" pulumi-lang-dotnet="`EventSourceName`" pulumi-lang-go="`eventSourceName`" pulumi-lang-python="`event_source_name`" pulumi-lang-yaml="`eventSourceName`" pulumi-lang-java="`eventSourceName`">`event_source_name`</span>.
913
+ *
914
+ * The following arguments are optional:
915
+ */
916
+ name?: pulumi.Input<string>;
917
+ /**
918
+ * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
919
+ */
920
+ region?: pulumi.Input<string>;
921
+ /**
922
+ * Map of tags assigned to the resource. If configured with a provider <span pulumi-lang-nodejs="`defaultTags`" pulumi-lang-dotnet="`DefaultTags`" pulumi-lang-go="`defaultTags`" pulumi-lang-python="`default_tags`" pulumi-lang-yaml="`defaultTags`" pulumi-lang-java="`defaultTags`">`default_tags`</span> configuration block present, tags with matching keys will overwrite those defined at the provider-level.
923
+ */
924
+ tags?: pulumi.Input<{
925
+ [key: string]: pulumi.Input<string>;
926
+ }>;
927
+ }
928
+ interface EventBridgeTransformArgsArgs {
929
+ eventBridge?: pulumi.Input<inputs.aws.EventBridgeOverridesArgs>;
930
+ }
931
+ /**
932
+ * Lambda function target for an EventBridge rule. Pass fn.arn and fn.roleArn from an Anvil Lambda component.
933
+ */
934
+ interface EventBusLambdaTargetArgsArgs {
935
+ /**
936
+ * The ARN of the Lambda function to invoke. Use fn.arn from an Anvil Lambda component.
937
+ */
938
+ arn: any;
939
+ /**
940
+ * The ARN of the Lambda's execution role. Use fn.roleArn from an Anvil Lambda component.
941
+ */
942
+ lambdaRoleArn: any;
943
+ }
944
+ /**
945
+ * An EventBridge rule that matches events by pattern and routes them to a target.
946
+ */
947
+ interface EventBusRuleArgs {
948
+ /**
949
+ * Logical name for this rule. Used to construct the physical rule name.
950
+ */
951
+ name: pulumi.Input<string>;
952
+ /**
953
+ * Defines which events this rule matches.
954
+ */
955
+ pattern: pulumi.Input<inputs.aws.EventBusRulePatternArgs>;
956
+ /**
957
+ * Defines what receives matching events.
958
+ */
959
+ target: pulumi.Input<inputs.aws.EventBusRuleTargetArgs>;
960
+ }
961
+ /**
962
+ * EventBridge content-based filtering pattern. All fields are AND-ed — an event must match every specified field.
963
+ */
964
+ interface EventBusRulePatternArgs {
965
+ /**
966
+ * Matches against fields inside the event detail payload. Structure depends on the event producer. e.g. { "orderId": [{ "exists": true }], "status": ["pending"] }
967
+ */
968
+ detail?: any;
969
+ /**
970
+ * Filters on the detail-type field. e.g. ["order.created", "order.cancelled"]
971
+ */
972
+ detailType?: pulumi.Input<pulumi.Input<string>[]>;
973
+ /**
974
+ * Filters on the event source field. e.g. ["anvil.api", "anvil.worker"]
975
+ */
976
+ source?: pulumi.Input<pulumi.Input<string>[]>;
977
+ }
978
+ /**
979
+ * Target that receives matching events from an EventBridge rule.
980
+ */
981
+ interface EventBusRuleTargetArgs {
982
+ /**
983
+ * Invoke a Lambda function when events match the rule pattern. Anvil creates the EventBridge target and grants EventBridge permission to invoke the function.
984
+ */
985
+ lambda?: pulumi.Input<inputs.aws.EventBusLambdaTargetArgsArgs>;
986
+ }
987
+ /**
988
+ * Cross-Origin Resource Sharing configuration. Opt-in — omit to disable CORS. Security rules: allowOrigins '*' is blocked, allowCredentials requires explicit origins, allowMethods is inferred from routes when omitted.
989
+ */
990
+ interface HttpApiCorsArgs {
991
+ /**
992
+ * Allow cookies and auth headers in cross-origin requests. Default: false. When true, allowOrigins must not contain '*' — browsers reject this combination per the CORS specification.
993
+ */
994
+ allowCredentials?: pulumi.Input<boolean>;
995
+ /**
996
+ * Allowed request headers. Default: ['Content-Type', 'Authorization', 'X-Request-ID'].
997
+ */
998
+ allowHeaders?: pulumi.Input<pulumi.Input<string>[]>;
999
+ /**
1000
+ * Allowed HTTP methods. Default: inferred automatically from the routes declared on this API.
1001
+ */
1002
+ allowMethods?: pulumi.Input<pulumi.Input<string>[]>;
1003
+ /**
1004
+ * Allowed origins. Required when CORS is enabled. Wildcard '*' is blocked — specify explicit origins. e.g. ['https://app.mysite.com'].
1005
+ */
1006
+ allowOrigins: pulumi.Input<pulumi.Input<string>[]>;
1007
+ /**
1008
+ * Preflight cache duration in seconds. Default: 86400 (24 hours) — reduces preflight requests significantly.
1009
+ */
1010
+ maxAge?: pulumi.Input<number>;
1011
+ }
1012
+ /**
1013
+ * Custom domain configuration. When set, Anvil provisions the ACM certificate (with DNS validation), API Gateway domain name resource, and Route 53 A alias record. TLS 1.2 minimum is always enforced. The execute-api endpoint is disabled when a domain is set. Set dns: false for Cloudflare or other non-Route 53 providers.
1014
+ */
1015
+ interface HttpApiDomainArgs {
1016
+ /**
1017
+ * Optional API mapping base path. e.g. 'v1' makes the API accessible at https://name/v1. Omit for root path mapping.
1018
+ */
1019
+ basePath?: pulumi.Input<string>;
1020
+ /**
1021
+ * BYO ACM certificate ARN. When omitted Anvil creates and validates the certificate automatically via DNS validation. Required when dns: false to skip Route 53 cert validation entirely.
1022
+ */
1023
+ certificateArn?: pulumi.Input<string>;
1024
+ /**
1025
+ * Create Route 53 DNS and cert validation records automatically. Default: true. Set to false for Cloudflare or other non-Route 53 DNS providers — Anvil will output the API Gateway target domain and (when certificateArn is omitted) the ACM validation CNAME for manual configuration.
1026
+ */
1027
+ dns?: pulumi.Input<boolean>;
1028
+ /**
1029
+ * The fully qualified domain name. e.g. 'api.mysite.com'.
1030
+ */
1031
+ name: pulumi.Input<string>;
1032
+ /**
1033
+ * Route 53 hosted zone ID. When omitted Anvil discovers the zone by domain name automatically. Ignored when dns: false.
1034
+ */
1035
+ zoneId?: pulumi.Input<string>;
1036
+ }
1037
+ /**
1038
+ * Routes requests directly to an EventBridge bus. API Gateway puts the request body as an event — no Lambda required. Anvil creates a least-privilege IAM role granting events:PutEvents on this bus only.
1039
+ */
1040
+ interface HttpApiEventBridgeConsumerArgs {
1041
+ /**
1042
+ * The EventBridge bus name. Pass bus.name directly. Accepts Output<string>.
1043
+ */
1044
+ name: any;
1045
+ }
1046
+ /**
1047
+ * Proxies requests to an external HTTP URL. Useful for gradual migration from legacy APIs or third-party integrations. No IAM configuration required.
1048
+ */
1049
+ interface HttpApiHttpConsumerArgs {
1050
+ /**
1051
+ * The external HTTP URL to proxy to. e.g. 'https://legacy-api.mycompany.com'.
1052
+ */
1053
+ url: pulumi.Input<string>;
1054
+ }
1055
+ /**
1056
+ * Routes requests to a Lambda function via AWS_PROXY integration. API Gateway invokes the Lambda synchronously and returns its response directly.
1057
+ */
1058
+ interface HttpApiLambdaConsumerArgs {
1059
+ /**
1060
+ * The Lambda function ARN. Pass lambda.arn directly. Accepts Output<string>.
1061
+ */
1062
+ arn: any;
1063
+ }
1064
+ /**
1065
+ * A single route on the HTTP API mapping a method and path to a consumer target.
1066
+ */
1067
+ interface HttpApiRouteArgs {
1068
+ /**
1069
+ * The target that handles this route. Exactly one consumer type must be set.
1070
+ */
1071
+ consumer: pulumi.Input<inputs.aws.HttpApiRouteConsumerArgs>;
1072
+ /**
1073
+ * The HTTP method for this route.
1074
+ */
1075
+ method: pulumi.Input<enums.aws.HttpApiMethod>;
1076
+ /**
1077
+ * The route path. e.g. '/users' or '/users/{id}'. Use {param} for path parameters and {proxy+} for greedy paths.
1078
+ */
1079
+ path: pulumi.Input<string>;
1080
+ /**
1081
+ * OAuth scopes required to access this route. API Gateway rejects tokens that do not contain all listed scopes. Only applies when defaultAuthorizerId is set and skipAuth is false. Example: ['read:users', 'write:orders'].
1082
+ */
1083
+ scopes?: pulumi.Input<pulumi.Input<string>[]>;
1084
+ /**
1085
+ * Explicitly opt this route out of the API-level defaultAuthorizer. Use for health checks, webhook endpoints, or any route that handles its own validation. Has no effect if defaultAuthorizerId is not set.
1086
+ */
1087
+ skipAuth?: pulumi.Input<boolean>;
1088
+ /**
1089
+ * Optional per-route throttling override. Inherits API-level throttling when omitted.
1090
+ */
1091
+ throttling?: pulumi.Input<inputs.aws.HttpApiThrottlingArgs>;
1092
+ }
1093
+ /**
1094
+ * The target that handles a route. Exactly one field must be set — Anvil validates this at deploy time and returns a clear error if zero or multiple are set.
1095
+ */
1096
+ interface HttpApiRouteConsumerArgs {
1097
+ /**
1098
+ * Route directly to an EventBridge bus. No Lambda required. Must use POST, PUT, or PATCH.
1099
+ */
1100
+ eventBridge?: pulumi.Input<inputs.aws.HttpApiEventBridgeConsumerArgs>;
1101
+ /**
1102
+ * Proxy to an external HTTP URL. Useful for gradual migration from legacy APIs.
1103
+ */
1104
+ http?: pulumi.Input<inputs.aws.HttpApiHttpConsumerArgs>;
1105
+ /**
1106
+ * Route to a Lambda function. Pass lambda.arn directly.
1107
+ */
1108
+ lambda?: pulumi.Input<inputs.aws.HttpApiLambdaConsumerArgs>;
1109
+ /**
1110
+ * Route directly to an SQS queue. No Lambda required. Returns 202 Accepted immediately — message is processed asynchronously. Must use POST, PUT, or PATCH.
1111
+ */
1112
+ sqs?: pulumi.Input<inputs.aws.HttpApiSqsConsumerArgs>;
1113
+ /**
1114
+ * Route to a Step Functions state machine. Async by default. Must use POST, PUT, or PATCH.
1115
+ */
1116
+ stepFunctions?: pulumi.Input<inputs.aws.HttpApiStepFunctionsConsumerArgs>;
1117
+ }
1118
+ /**
1119
+ * Routes requests directly to an SQS queue. API Gateway sends the request body as a message — no Lambda required. Returns 202 Accepted immediately. Anvil creates a least-privilege IAM role granting sqs:SendMessage on this queue only.
1120
+ */
1121
+ interface HttpApiSqsConsumerArgs {
1122
+ /**
1123
+ * The SQS queue ARN. Pass queue.arn directly. Accepts Output<string>.
1124
+ */
1125
+ arn: any;
1126
+ /**
1127
+ * The SQS queue URL. Pass queue.url directly. Accepts Output<string>.
1128
+ */
1129
+ url: any;
1130
+ }
1131
+ /**
1132
+ * Routes requests to a Step Functions state machine. Async by default (StartExecution). Set sync: true for StartSyncExecution — note the 29s API Gateway timeout applies. Anvil creates a least-privilege IAM role granting the appropriate Start action on this state machine only.
1133
+ */
1134
+ interface HttpApiStepFunctionsConsumerArgs {
1135
+ /**
1136
+ * The state machine ARN. Pass stateMachine.arn directly. Accepts Output<string>.
1137
+ */
1138
+ arn: any;
1139
+ /**
1140
+ * Wait for execution to complete before responding. Default: false (async). Only use for fast state machines — subject to the 29s API Gateway timeout.
1141
+ */
1142
+ sync?: pulumi.Input<boolean>;
1143
+ }
1144
+ /**
1145
+ * Rate and burst throttling limits. Applied at the API level by default — individual routes can override. Defaults: rateLimit 1000 rps, burstLimit 500 concurrent. Without throttling a single route can exhaust the account-level limit (10,000 rps) shared across all APIs in the account.
1146
+ */
1147
+ interface HttpApiThrottlingArgs {
1148
+ /**
1149
+ * Maximum concurrent requests (token bucket capacity). Default: 500.
1150
+ */
1151
+ burstLimit?: pulumi.Input<number>;
1152
+ /**
1153
+ * Maximum sustained requests per second. Default: 1000.
1154
+ */
1155
+ rateLimit?: pulumi.Input<number>;
1156
+ }
348
1157
  interface LambdaOverridesArgs {
349
1158
  /**
350
1159
  * Instruction set architecture for your Lambda function. Valid values are `[<span pulumi-lang-nodejs=""x8664"" pulumi-lang-dotnet=""X8664"" pulumi-lang-go=""x8664"" pulumi-lang-python=""x86_64"" pulumi-lang-yaml=""x8664"" pulumi-lang-java=""x8664"">"x86_64"</span>]` and `["arm64"]`. Default is `[<span pulumi-lang-nodejs=""x8664"" pulumi-lang-dotnet=""X8664"" pulumi-lang-go=""x8664"" pulumi-lang-python=""x86_64"" pulumi-lang-yaml=""x8664"" pulumi-lang-java=""x8664"">"x86_64"</span>]`. Removing this attribute, function's architecture stays the same.
@@ -522,6 +1331,51 @@ export declare namespace aws {
522
1331
  interface LambdaTransformArgsArgs {
523
1332
  lambda?: pulumi.Input<inputs.aws.LambdaOverridesArgs>;
524
1333
  }
1334
+ interface LambdaVpcArgsArgs {
1335
+ /**
1336
+ * CIDR-scoped egress rules. One SG rule per port per CIDR. Use for peered VPCs or on-premise ranges.
1337
+ */
1338
+ cidrs?: pulumi.Input<pulumi.Input<inputs.aws.LambdaVpcCidrArgsArgs>[]>;
1339
+ /**
1340
+ * Only needed for imported VPCs with NAT. Omit when using an Anvil Vpc component.
1341
+ */
1342
+ hasNat?: pulumi.Input<boolean>;
1343
+ /**
1344
+ * The IDs of the private subnets to attach the Lambda to. Always private - Lambda must never be placed in public subnets. Accepts Output<string[]> - pass vpc.privateSubnetIds directly.
1345
+ */
1346
+ privateSubnetIds: any;
1347
+ /**
1348
+ * VPC endpoints this Lambda needs access to. Anvil wires both SG rules automatically.
1349
+ */
1350
+ vpcEndpoints?: pulumi.Input<pulumi.Input<inputs.aws.LambdaVpcEndpointArgsArgs>[]>;
1351
+ /**
1352
+ * The ID of the VPC to place the Lambda in. Accepts Output<string> - pass vpc.vpcId directly.
1353
+ */
1354
+ vpcId: any;
1355
+ }
1356
+ interface LambdaVpcCidrArgsArgs {
1357
+ /**
1358
+ * TCP ports to allow. Required - be explicit.
1359
+ */
1360
+ ports: pulumi.Input<pulumi.Input<number>[]>;
1361
+ /**
1362
+ * IPv4 CIDR block, e.g. 10.0.0.0/8
1363
+ */
1364
+ range: pulumi.Input<string>;
1365
+ }
1366
+ /**
1367
+ * A VPC endpoint to grant this Lambda access to. Both fields accept Output<string> - pass component outputs directly.
1368
+ */
1369
+ interface LambdaVpcEndpointArgsArgs {
1370
+ /**
1371
+ * The endpoint's ID. Use ep.endpointId. Accepts Output<string>.
1372
+ */
1373
+ endpointId: any;
1374
+ /**
1375
+ * The endpoint's security group ID. Use ep.securityGroupId. Accepts Output<string>.
1376
+ */
1377
+ securityGroupId: any;
1378
+ }
525
1379
  interface PABTransformArgs {
526
1380
  /**
527
1381
  * Whether Amazon S3 should block public ACLs for this bucket. Defaults to <span pulumi-lang-nodejs="`false`" pulumi-lang-dotnet="`False`" pulumi-lang-go="`false`" pulumi-lang-python="`false`" pulumi-lang-yaml="`false`" pulumi-lang-java="`false`">`false`</span>. Enabling this setting does not affect existing policies or ACLs. When set to <span pulumi-lang-nodejs="`true`" pulumi-lang-dotnet="`True`" pulumi-lang-go="`true`" pulumi-lang-python="`true`" pulumi-lang-yaml="`true`" pulumi-lang-java="`true`">`true`</span> causes the following behavior:
@@ -557,6 +1411,192 @@ export declare namespace aws {
557
1411
  */
558
1412
  skipDestroy?: pulumi.Input<boolean>;
559
1413
  }
1414
+ /**
1415
+ * Consumer configuration for this queue.
1416
+ */
1417
+ interface QueueConsumerArgsArgs {
1418
+ /**
1419
+ * Wire an Anvil Lambda function as the SQS consumer. Creates the event source mapping and grants sqs:ReceiveMessage, sqs:DeleteMessage, sqs:GetQueueAttributes to the Lambda's execution role.
1420
+ */
1421
+ lambda?: pulumi.Input<inputs.aws.QueueLambdaConsumerArgsArgs>;
1422
+ }
1423
+ /**
1424
+ * Dead letter queue configuration. Set arn to reuse an existing queue. Omit arn to create a managed DLQ.
1425
+ */
1426
+ interface QueueDlqArgsArgs {
1427
+ /**
1428
+ * ARN of an existing queue to use as the DLQ. If the parent queue is fifo: true, this ARN must end with ".fifo". When omitted, Anvil creates a managed DLQ.
1429
+ */
1430
+ arn?: pulumi.Input<string>;
1431
+ /**
1432
+ * How many times a message can be received before being moved to the DLQ. Default: 3.
1433
+ */
1434
+ maxReceiveCount?: pulumi.Input<number>;
1435
+ }
1436
+ /**
1437
+ * Lambda consumer configuration. Pass fn.arn and fn.roleArn from an Anvil Lambda component.
1438
+ */
1439
+ interface QueueLambdaConsumerArgsArgs {
1440
+ /**
1441
+ * The ARN of the Lambda function to trigger. Use fn.arn from an Anvil Lambda component.
1442
+ */
1443
+ arn: pulumi.Input<string>;
1444
+ /**
1445
+ * The ARN of the Lambda's execution role. Use fn.roleArn from an Anvil Lambda component. Required for Anvil to attach the consume permissions policy.
1446
+ */
1447
+ lambdaRoleArn: pulumi.Input<string>;
1448
+ }
1449
+ interface QueueOverridesArgs {
1450
+ /**
1451
+ * Enables content-based deduplication for FIFO queues. For more information, see the [related documentation](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing).
1452
+ */
1453
+ contentBasedDeduplication?: pulumi.Input<boolean>;
1454
+ /**
1455
+ * Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and <span pulumi-lang-nodejs="`queue`" pulumi-lang-dotnet="`Queue`" pulumi-lang-go="`queue`" pulumi-lang-python="`queue`" pulumi-lang-yaml="`queue`" pulumi-lang-java="`queue`">`queue`</span> (default).
1456
+ */
1457
+ deduplicationScope?: pulumi.Input<string>;
1458
+ /**
1459
+ * Time in seconds that the delivery of all messages in the queue will be delayed. An integer from 0 to 900 (15 minutes). The default for this attribute is 0 seconds.
1460
+ */
1461
+ delaySeconds?: pulumi.Input<number>;
1462
+ /**
1463
+ * Boolean designating a FIFO queue. If not set, it defaults to <span pulumi-lang-nodejs="`false`" pulumi-lang-dotnet="`False`" pulumi-lang-go="`false`" pulumi-lang-python="`false`" pulumi-lang-yaml="`false`" pulumi-lang-java="`false`">`false`</span> making it standard.
1464
+ */
1465
+ fifoQueue?: pulumi.Input<boolean>;
1466
+ /**
1467
+ * Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` (default) and `perMessageGroupId`.
1468
+ */
1469
+ fifoThroughputLimit?: pulumi.Input<string>;
1470
+ /**
1471
+ * Length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes).
1472
+ */
1473
+ kmsDataKeyReusePeriodSeconds?: pulumi.Input<number>;
1474
+ /**
1475
+ * ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see [Key Terms](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms).
1476
+ */
1477
+ kmsMasterKeyId?: pulumi.Input<string>;
1478
+ /**
1479
+ * Limit of how many bytes a message can contain before Amazon SQS rejects it. An integer from 1024 bytes (1 KiB) up to 1048576 bytes (1024 KiB). The default for this attribute is 262144 (256 KiB).
1480
+ */
1481
+ maxMessageSize?: pulumi.Input<number>;
1482
+ /**
1483
+ * Number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days). The default for this attribute is 345600 (4 days).
1484
+ */
1485
+ messageRetentionSeconds?: pulumi.Input<number>;
1486
+ /**
1487
+ * Name of the queue. Queue names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 80 characters long. For a FIFO (first-in-first-out) queue, the name must end with the `.fifo` suffix. If omitted, the provider will assign a random, unique name. Conflicts with <span pulumi-lang-nodejs="`namePrefix`" pulumi-lang-dotnet="`NamePrefix`" pulumi-lang-go="`namePrefix`" pulumi-lang-python="`name_prefix`" pulumi-lang-yaml="`namePrefix`" pulumi-lang-java="`namePrefix`">`name_prefix`</span>.
1488
+ */
1489
+ name?: pulumi.Input<string>;
1490
+ /**
1491
+ * Creates a unique name beginning with the specified prefix. Conflicts with <span pulumi-lang-nodejs="`name`" pulumi-lang-dotnet="`Name`" pulumi-lang-go="`name`" pulumi-lang-python="`name`" pulumi-lang-yaml="`name`" pulumi-lang-java="`name`">`name`</span>.
1492
+ */
1493
+ namePrefix?: pulumi.Input<string>;
1494
+ /**
1495
+ * JSON policy for the SQS queue. For more information about building AWS IAM policy documents see the AWS IAM Policy Document Guide. The provider will only perform drift detection of its value when present in a configuration. It is preferred to use the <span pulumi-lang-nodejs="`aws.sqs.QueuePolicy`" pulumi-lang-dotnet="`aws.sqs.QueuePolicy`" pulumi-lang-go="`sqs.QueuePolicy`" pulumi-lang-python="`sqs.QueuePolicy`" pulumi-lang-yaml="`aws.sqs.QueuePolicy`" pulumi-lang-java="`aws.sqs.QueuePolicy`">`aws.sqs.QueuePolicy`</span> resource instead.
1496
+ */
1497
+ policy?: pulumi.Input<string>;
1498
+ /**
1499
+ * Time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds). The default for this attribute is 0, meaning that the call will return immediately.
1500
+ */
1501
+ receiveWaitTimeSeconds?: pulumi.Input<number>;
1502
+ /**
1503
+ * JSON policy to set up the Dead Letter Queue redrive permission, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html). The provider will only perform drift detection of its value when present in a configuration. It is preferred to use the <span pulumi-lang-nodejs="`aws.sqs.RedriveAllowPolicy`" pulumi-lang-dotnet="`aws.sqs.RedriveAllowPolicy`" pulumi-lang-go="`sqs.RedriveAllowPolicy`" pulumi-lang-python="`sqs.RedriveAllowPolicy`" pulumi-lang-yaml="`aws.sqs.RedriveAllowPolicy`" pulumi-lang-java="`aws.sqs.RedriveAllowPolicy`">`aws.sqs.RedriveAllowPolicy`</span> resource instead.
1504
+ */
1505
+ redriveAllowPolicy?: pulumi.Input<string>;
1506
+ /**
1507
+ * JSON policy to set up the Dead Letter Queue, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html). The provider will only perform drift detection of its value when present in a configuration. It is preferred to use the <span pulumi-lang-nodejs="`aws.sqs.RedrivePolicy`" pulumi-lang-dotnet="`aws.sqs.RedrivePolicy`" pulumi-lang-go="`sqs.RedrivePolicy`" pulumi-lang-python="`sqs.RedrivePolicy`" pulumi-lang-yaml="`aws.sqs.RedrivePolicy`" pulumi-lang-java="`aws.sqs.RedrivePolicy`">`aws.sqs.RedrivePolicy`</span> resource instead. **Note:** when specifying `maxReceiveCount`, you must specify it as an integer (<span pulumi-lang-nodejs="`5`" pulumi-lang-dotnet="`5`" pulumi-lang-go="`5`" pulumi-lang-python="`5`" pulumi-lang-yaml="`5`" pulumi-lang-java="`5`">`5`</span>), and not a string (`"5"`).
1508
+ */
1509
+ redrivePolicy?: pulumi.Input<string>;
1510
+ /**
1511
+ * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
1512
+ */
1513
+ region?: pulumi.Input<string>;
1514
+ /**
1515
+ * Boolean to enable server-side encryption (SSE) of message content with SQS-owned encryption keys. See [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html). The provider will only perform drift detection of its value when present in a configuration.
1516
+ */
1517
+ sqsManagedSseEnabled?: pulumi.Input<boolean>;
1518
+ /**
1519
+ * Map of tags to assign to the queue. If configured with a provider <span pulumi-lang-nodejs="`defaultTags`" pulumi-lang-dotnet="`DefaultTags`" pulumi-lang-go="`defaultTags`" pulumi-lang-python="`default_tags`" pulumi-lang-yaml="`defaultTags`" pulumi-lang-java="`defaultTags`">`default_tags`</span> configuration block present, tags with matching keys will overwrite those defined at the provider-level.
1520
+ */
1521
+ tags?: pulumi.Input<{
1522
+ [key: string]: pulumi.Input<string>;
1523
+ }>;
1524
+ /**
1525
+ * Visibility timeout for the queue. An integer from 0 to 43200 (12 hours). The default for this attribute is 30. For more information about visibility timeout, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html).
1526
+ */
1527
+ visibilityTimeoutSeconds?: pulumi.Input<number>;
1528
+ }
1529
+ interface QueueTransformArgsArgs {
1530
+ queue?: pulumi.Input<inputs.aws.QueueOverridesArgs>;
1531
+ }
1532
+ /**
1533
+ * SiteOriginProtectionArgs configures CloudFront origin protection via WAF. When set, Anvil provisions a WAF WebACL that blocks any request missing the correct x-origin-secret header. Configure Cloudflare Transform Rules to inject this header on every proxied request using the outputted originSecret value.
1534
+ */
1535
+ interface SiteOriginProtectionArgs {
1536
+ /**
1537
+ * Provider is the CDN/proxy in front of CloudFront. Only "cloudflare" is supported.
1538
+ */
1539
+ provider?: pulumi.Input<enums.aws.SiteOriginProtectionProvider>;
1540
+ }
1541
+ interface VpcBastionArgsArgs {
1542
+ /**
1543
+ * Source IP CIDRs allowed to initiate SSM sessions via IAM policy condition. Omit to allow any authenticated IAM principal. Example: ['203.0.113.0/32'] to restrict to your office IP.
1544
+ */
1545
+ allowedCidrs?: pulumi.Input<pulumi.Input<string>[]>;
1546
+ /**
1547
+ * EC2 instance type for the bastion host. Default: 't4g.nano' — the bastion is purely a jump box with minimal resource requirements.
1548
+ */
1549
+ instanceType?: pulumi.Input<string>;
1550
+ }
1551
+ interface VpcCloudWatchFlowLogArgsArgs {
1552
+ /**
1553
+ * Number of days to retain flow log data in CloudWatch Logs. Common values: 7, 14, 30, 90.
1554
+ */
1555
+ retention: pulumi.Input<number>;
1556
+ }
1557
+ /**
1558
+ * A single permission statement in the VPC endpoint policy. Effect must be Allow or Deny. Action is an IAM action string. Resource defaults to * if omitted.
1559
+ */
1560
+ interface VpcEndpointPermissionArgs {
1561
+ /**
1562
+ * The IAM action string, e.g. "sqs:SendMessage", "secretsmanager:GetSecretValue".
1563
+ */
1564
+ action: pulumi.Input<string>;
1565
+ /**
1566
+ * The IAM effect — "Allow" or "Deny".
1567
+ */
1568
+ effect: pulumi.Input<string>;
1569
+ /**
1570
+ * The ARN to scope this permission to. Defaults to "*" if omitted — applies to all resources of this service. Accepts Output<string> — pass resource ARNs directly, e.g. queue.arn, secret.arn.
1571
+ */
1572
+ resource?: pulumi.Input<string>;
1573
+ }
1574
+ interface VpcFlowLogsArgsArgs {
1575
+ /**
1576
+ * Enable flow log delivery to a CloudWatch Log Group. Use for fast querying with CloudWatch Logs Insights and active debugging of connection issues.
1577
+ */
1578
+ cloudwatch?: pulumi.Input<inputs.aws.VpcCloudWatchFlowLogArgsArgs>;
1579
+ /**
1580
+ * Enable flow log delivery to a dedicated S3 bucket with auto-tiered lifecycle policy. Use for compliance retention and audit evidence.
1581
+ */
1582
+ s3?: pulumi.Input<inputs.aws.VpcS3FlowLogArgsArgs>;
1583
+ }
1584
+ interface VpcNatArgsArgs {
1585
+ /**
1586
+ * EC2 instance type for the fck-nat instance. Only applies when natType is 'fck-nat'. Default: 't4g.small'.
1587
+ */
1588
+ instanceType?: pulumi.Input<string>;
1589
+ /**
1590
+ * Type of NAT to provision. 'gateway' provisions one AWS managed NAT Gateway per AZ. 'fck-nat' provisions a single fck-nat EC2 instance shared across all AZs.
1591
+ */
1592
+ natType: pulumi.Input<enums.aws.VpcNatType>;
1593
+ }
1594
+ interface VpcS3FlowLogArgsArgs {
1595
+ /**
1596
+ * Storage tiering policy for flow log retention.
1597
+ */
1598
+ lifecycle: pulumi.Input<enums.aws.S3FlowLogLifecycle>;
1599
+ }
560
1600
  }
561
1601
  export declare namespace gcp {
562
1602
  interface BucketOverridesArgs {