@@ -2410,6 +2410,72 @@ func TestAccLambdaFunction_sourceKMSKeyARN(t *testing.T) {
24102410 })
24112411}
24122412
2413+ func TestAccLambdaFunction_tenancyConfig (t * testing.T ) {
2414+ ctx := acctest .Context (t )
2415+ var conf lambda.GetFunctionOutput
2416+ rName := sdkacctest .RandomWithPrefix (acctest .ResourcePrefix )
2417+ resourceName := "aws_lambda_function.test"
2418+
2419+ resource .ParallelTest (t , resource.TestCase {
2420+ PreCheck : func () { acctest .PreCheck (ctx , t ) },
2421+ ErrorCheck : acctest .ErrorCheck (t , names .LambdaServiceID ),
2422+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories ,
2423+ CheckDestroy : testAccCheckFunctionDestroy (ctx ),
2424+ Steps : []resource.TestStep {
2425+ {
2426+ Config : testAccFunctionConfig_tenancyConfig (rName ),
2427+ Check : resource .ComposeAggregateTestCheckFunc (
2428+ testAccCheckFunctionExists (ctx , resourceName , & conf ),
2429+ resource .TestCheckResourceAttr (resourceName , "tenancy_config.#" , "1" ),
2430+ resource .TestCheckResourceAttr (resourceName , "tenancy_config.0.tenant_isolation_mode" , "PER_TENANT" ),
2431+ ),
2432+ },
2433+ {
2434+ ResourceName : resourceName ,
2435+ ImportState : true ,
2436+ ImportStateVerify : true ,
2437+ ImportStateVerifyIgnore : []string {"filename" , "publish" },
2438+ },
2439+ },
2440+ })
2441+ }
2442+
2443+ func TestAccLambdaFunction_tenancyConfigForceNew (t * testing.T ) {
2444+ ctx := acctest .Context (t )
2445+ var conf lambda.GetFunctionOutput
2446+ rName := sdkacctest .RandomWithPrefix (acctest .ResourcePrefix )
2447+ resourceName := "aws_lambda_function.test"
2448+
2449+ resource .ParallelTest (t , resource.TestCase {
2450+ PreCheck : func () { acctest .PreCheck (ctx , t ) },
2451+ ErrorCheck : acctest .ErrorCheck (t , names .LambdaServiceID ),
2452+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories ,
2453+ CheckDestroy : testAccCheckFunctionDestroy (ctx ),
2454+ Steps : []resource.TestStep {
2455+ {
2456+ Config : testAccFunctionConfig_basic (rName , rName , rName , rName ),
2457+ Check : resource .ComposeTestCheckFunc (
2458+ testAccCheckFunctionExists (ctx , resourceName , & conf ),
2459+ resource .TestCheckResourceAttr (resourceName , "tenancy_config.#" , "0" ),
2460+ ),
2461+ },
2462+ {
2463+ Config : testAccFunctionConfig_tenancyConfig (rName ),
2464+ ConfigPlanChecks : resource.ConfigPlanChecks {
2465+ PreApply : []plancheck.PlanCheck {
2466+ plancheck .ExpectResourceAction (resourceName , plancheck .ResourceActionReplace ),
2467+ },
2468+ },
2469+ Check : resource .ComposeAggregateTestCheckFunc (
2470+ testAccCheckFunctionExists (ctx , resourceName , & conf ),
2471+ resource .TestCheckResourceAttr (resourceName , "tenancy_config.#" , "1" ),
2472+ resource .TestCheckResourceAttr (resourceName , "tenancy_config.0.tenant_isolation_mode" , "PER_TENANT" ),
2473+ ),
2474+ },
2475+ },
2476+ })
2477+ }
2478+
24132479func TestAccLambdaFunction_resetNonRefreshableAttributesAfterUpdateFailure (t * testing.T ) {
24142480 ctx := acctest .Context (t )
24152481 var conf lambda.GetFunctionOutput
@@ -4364,6 +4430,24 @@ resource "aws_lambda_function" "test" {
43644430` , rName , kmsIdentifier ))
43654431}
43664432
4433+ func testAccFunctionConfig_tenancyConfig (rName string ) string {
4434+ return acctest .ConfigCompose (
4435+ acctest .ConfigLambdaBase (rName , rName , rName ),
4436+ fmt .Sprintf (`
4437+ resource "aws_lambda_function" "test" {
4438+ filename = "test-fixtures/lambdatest.zip"
4439+ function_name = %[1]q
4440+ role = aws_iam_role.iam_for_lambda.arn
4441+ handler = "exports.example"
4442+ runtime = "nodejs20.x"
4443+
4444+ tenancy_config {
4445+ tenant_isolation_mode = "PER_TENANT"
4446+ }
4447+ }
4448+ ` , rName ))
4449+ }
4450+
43674451func testAccFunctionConfig_skipDestroy (rName string ) string {
43684452 return acctest .ConfigCompose (acctest .ConfigLambdaBase (rName , rName , rName ), fmt .Sprintf (`
43694453resource "aws_lambda_function" "test" {
0 commit comments