Package com.pulumi.aws.lambda
Class LayerVersionPermission
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.lambda.LayerVersionPermission
-
public class LayerVersionPermission extends com.pulumi.resources.CustomResourceManages an AWS Lambda Layer Version Permission. Use this resource to share Lambda Layers with other AWS accounts, organizations, or make them publicly accessible. For information about Lambda Layer Permissions and how to use them, see [Using Resource-based Policies for AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-xaccountlayer). > **Note:** Setting `skipDestroy` to `true` means that the AWS Provider will not destroy any layer version permission, even when running `pulumi destroy`. Layer version permissions are thus intentional dangling resources that are not managed by Pulumi and may incur extra expense in your AWS account. ## Example Usage ### Share Layer with Specific Account
### Share Layer with Organizationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lambda.LayerVersion; import com.pulumi.aws.lambda.LayerVersionArgs; import com.pulumi.aws.lambda.LayerVersionPermission; import com.pulumi.aws.lambda.LayerVersionPermissionArgs; import com.pulumi.asset.FileArchive; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { // Lambda layer to share var example = new LayerVersion("example", LayerVersionArgs.builder() .code(new FileArchive("layer.zip")) .layerName("shared_utilities") .description("Common utilities for Lambda functions") .compatibleRuntimes( "nodejs24.x", "python3.12") .build()); // Grant permission to specific AWS account var exampleLayerVersionPermission = new LayerVersionPermission("exampleLayerVersionPermission", LayerVersionPermissionArgs.builder() .layerName(example.layerName()) .versionNumber(example.version()) .principal("123456789012") .action("lambda:GetLayerVersion") .statementId("dev-account-access") .build()); } }
### Share Layer Publiclypackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lambda.LayerVersionPermission; import com.pulumi.aws.lambda.LayerVersionPermissionArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new LayerVersionPermission("example", LayerVersionPermissionArgs.builder() .layerName(exampleAwsLambdaLayerVersion.layerName()) .versionNumber(exampleAwsLambdaLayerVersion.version()) .principal("*") .organizationId("o-1234567890") .action("lambda:GetLayerVersion") .statementId("org-wide-access") .build()); } }
### Multiple Account Accesspackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lambda.LayerVersionPermission; import com.pulumi.aws.lambda.LayerVersionPermissionArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new LayerVersionPermission("example", LayerVersionPermissionArgs.builder() .layerName(exampleAwsLambdaLayerVersion.layerName()) .versionNumber(exampleAwsLambdaLayerVersion.version()) .principal("*") .action("lambda:GetLayerVersion") .statementId("public-access") .build()); } }
## Import For backwards compatibility, the following legacy `pulumi import` command is also supported: ```sh $ pulumi import aws:lambda/layerVersionPermission:LayerVersionPermission example arn:aws:lambda:us-west-2:123456789012:layer:shared_utilities,1 ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lambda.LayerVersionPermission; import com.pulumi.aws.lambda.LayerVersionPermissionArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { // Share with multiple specific accounts var devAccount = new LayerVersionPermission("devAccount", LayerVersionPermissionArgs.builder() .layerName(example.layerName()) .versionNumber(example.version()) .principal("111111111111") .action("lambda:GetLayerVersion") .statementId("dev-account") .build()); var stagingAccount = new LayerVersionPermission("stagingAccount", LayerVersionPermissionArgs.builder() .layerName(example.layerName()) .versionNumber(example.version()) .principal("222222222222") .action("lambda:GetLayerVersion") .statementId("staging-account") .build()); var prodAccount = new LayerVersionPermission("prodAccount", LayerVersionPermissionArgs.builder() .layerName(example.layerName()) .versionNumber(example.version()) .principal("333333333333") .action("lambda:GetLayerVersion") .statementId("prod-account") .build()); } }
-
-
Constructor Summary
Constructors Constructor Description LayerVersionPermission(java.lang.String name)LayerVersionPermission(java.lang.String name, LayerVersionPermissionArgs args)LayerVersionPermission(java.lang.String name, LayerVersionPermissionArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>action()static LayerVersionPermissionget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, LayerVersionPermissionState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>layerName()com.pulumi.core.Output<java.util.Optional<java.lang.String>>organizationId()com.pulumi.core.Output<java.lang.String>policy()com.pulumi.core.Output<java.lang.String>principal()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>revisionId()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>skipDestroy()com.pulumi.core.Output<java.lang.String>statementId()com.pulumi.core.Output<java.lang.Integer>versionNumber()
-
-
-
Constructor Detail
-
LayerVersionPermission
public LayerVersionPermission(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
LayerVersionPermission
public LayerVersionPermission(java.lang.String name, LayerVersionPermissionArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
LayerVersionPermission
public LayerVersionPermission(java.lang.String name, LayerVersionPermissionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
action
public com.pulumi.core.Output<java.lang.String> action()
- Returns:
- Action that will be allowed. `lambda:GetLayerVersion` is the standard value for layer access.
-
layerName
public com.pulumi.core.Output<java.lang.String> layerName()
- Returns:
- Name or ARN of the Lambda Layer.
-
organizationId
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> organizationId()
- Returns:
- AWS Organization ID that should be able to use your Lambda Layer. `principal` should be set to `*` when `organizationId` is provided.
-
policy
public com.pulumi.core.Output<java.lang.String> policy()
- Returns:
- Full Lambda Layer Permission policy.
-
principal
public com.pulumi.core.Output<java.lang.String> principal()
- Returns:
- AWS account ID that should be able to use your Lambda Layer. Use `*` to share with all AWS accounts.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- 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.
-
revisionId
public com.pulumi.core.Output<java.lang.String> revisionId()
- Returns:
- Unique identifier for the current revision of the policy.
-
skipDestroy
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> skipDestroy()
- Returns:
- Whether to retain the permission when the resource is destroyed. Default is `false`.
-
statementId
public com.pulumi.core.Output<java.lang.String> statementId()
- Returns:
- Unique identifier for the permission statement.
-
versionNumber
public com.pulumi.core.Output<java.lang.Integer> versionNumber()
- Returns:
- Version of Lambda Layer to grant access to. Note: permissions only apply to a single version of a layer. The following arguments are optional:
-
get
public static LayerVersionPermission get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable LayerVersionPermissionState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-