This is the preferred interface for making Lambda Permissions with Fugue. If you want to manage a Lambda Permission with Fugue, the new function is the right place to start.

Table of Contents

Module Members



new Lambda Permission (Constructor)

Call this constructor to create a new Fugue.Core.AWS.Lambda.Permission value.

Example usage:

import Fugue.AWS as AWS
import Fugue.AWS.IAM as IAM
import Fugue.AWS.Lambda as Lambda
import Fugue.AWS.S3 as S3

bucket: S3.Bucket.new {
  name: "example-bucket",
  region: AWS.Us-east-2,

lambda-role: IAM.Role {
  roleName: 'lambda-role',
  assumeRolePolicyDocument: IAM.Policy.AssumeRole.lambda,

invokeFromBucket: Lambda.Permission.new {
  action: Lambda.InvokeFunction,
  principal: "s3.amazonaws.com",
  source: Lambda.Source.s3Bucket {
    bucket: bucket,
    account: "0123456789012",

fn: Lambda.Function {
  functionName: 'lambda1',
  runtime: Lambda.Nodejs4_3,
  role: lambda-role,
  handler: 'exports.myHandler',
  code: Lambda.Code.fromZipFile {
    path: "handler.zip",
  region: AWS.Us-east-2,
  permissions: [

Type Signature

 fun { action: Action,
       principal: String,
       qualifier: Optional<Qualifier>,
       source: Optional<Source> } -> Permission
Argument: action

The Lambda.Action to allow in this permission.

Type: Action

Argument: principal

The principal who is getting this permission, such as “s3.amazonaws.com”.

Type: String

Argument: qualifier

The Lambda.Qualifier for the permission to limit the permission to a specific alias or version. See Fugue.AWS.Lambda.Qualifier for utilities for defining qualifiers.

Type: Optional<Qualifier>

Argument: source

The Lambda.Source for which the permission is being granted. See Fugue.AWS.Lambda.Source for utilities for defining sources.

Type: Optional<Source>


A Fugue.Core.AWS.Lambda.Permission value.

Type: Permission