Safe Haskell | None |
---|---|
Language | Haskell2010 |
Adds a permission to the access policy associated with the specified AWS
Lambda function. In a "push event" model, the access policy attached to the
Lambda function grants Amazon S3 or a user application permission for the
Lambda 'lambda:Invoke' action. For information about the push model, see AWSLambda: How it Works. Each Lambda function has one access policy associated
with it. You can use the AddPermission
API to add a permission to the policy.
You have one access policy but it can have multiple permission statements.
This operation requires permission for the 'lambda:AddPermission' action.
http://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html
- data AddPermission
- addPermission :: Text -> Text -> Text -> Text -> AddPermission
- apAction :: Lens' AddPermission Text
- apFunctionName :: Lens' AddPermission Text
- apPrincipal :: Lens' AddPermission Text
- apSourceAccount :: Lens' AddPermission (Maybe Text)
- apSourceArn :: Lens' AddPermission (Maybe Text)
- apStatementId :: Lens' AddPermission Text
- data AddPermissionResponse
- addPermissionResponse :: AddPermissionResponse
- aprStatement :: Lens' AddPermissionResponse (Maybe Text)
Request
data AddPermission Source
Request constructor
AddPermission
constructor.
The fields accessible through corresponding lenses are:
Request lenses
apAction :: Lens' AddPermission Text Source
The AWS Lambda action you want to allow in this statement. Each Lambda action
is a string starting with "lambda:" followed by the API name (see Operations
). For example, "lambda:CreateFunction". You can use wildcard ("lambda:*") to grant permission for all AWS Lambda actions.
apFunctionName :: Lens' AddPermission Text Source
Name of the Lambda function whose access policy you are updating by adding a new permission.
You can specify an unqualified function name (for example, Thumbnail) or you can specify Amazon Resource Name (ARN) of the function (for example, "arn:aws:lambda:us-west-2:account-id:function:ThumbNail"). AWS Lambda also allows you to specify only the account ID qualifier (for example, "account-id:Thumbnail"). Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 character in length.
apPrincipal :: Lens' AddPermission Text Source
The principal who is getting this permission. It can be Amazon S3 service Principal ("s3.amazonaws.com") if you want Amazon S3 to invoke the function, an AWS account ID if you are granting cross-account permission, or any valid AWS service principal such as "sns.amazonaws.com". For example, you might want to allow a custom application in another AWS account to push events to AWS Lambda by invoking your function.
apSourceAccount :: Lens' AddPermission (Maybe Text) Source
The AWS account ID (without a hyphen) of the source owner. If the SourceArn
identifies a bucket, then this is the bucket owner's account ID. You can use
this additional condition to ensure the bucket you specify is owned by a
specific account (it is possible the bucket owner deleted the bucket and some
other AWS account created the bucket). You can also use this condition to
specify all sources (that is, you don't specify the SourceArn
) owned by a
specific account.
apSourceArn :: Lens' AddPermission (Maybe Text) Source
This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the bucket Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified bucket can invoke the function.
If you add a permission for the Amazon S3 principal without providing the source ARN, any AWS account that creates a mapping to your function ARN can send events to invoke your Lambda function from Amazon S3.
apStatementId :: Lens' AddPermission Text Source
A unique statement identifier.
Response
Response constructor
addPermissionResponse :: AddPermissionResponse Source
AddPermissionResponse
constructor.
The fields accessible through corresponding lenses are:
Response lenses
aprStatement :: Lens' AddPermissionResponse (Maybe Text) Source
The permission statement you specified in the request. The response returns the same as a string using "" as an escape character in the JSON.