com.amazonaws.services.lambda.model

## Class AddPermissionRequest

- java.lang.Object
- - com.amazonaws.AmazonWebServiceRequest
  - - com.amazonaws.services.lambda.model.AddPermissionRequest

All Implemented Interfaces:
  ReadLimitInfo, Serializable, Cloneable

    public class AddPermissionRequest
    extends AmazonWebServiceRequest
    implements Serializable, Cloneable

See Also:
  Serialized Form

### Field Summary

### Fields inherited from class com.amazonaws.AmazonWebServiceRequest

`NOOP`

### Constructor Summary

Constructors
Constructor and Description
`AddPermissionRequest()`

### Method Summary

All Methods Instance Methods Concrete Methods
`AddPermissionRequest` `clone()`
`boolean` `equals(Object obj)`
`String` `getAction()` The AWS Lambda action you want to allow in this statement.
`String` `getEventSourceToken()` A unique token that must be supplied by the principal invoking the function.
`String` `getFunctionName()` Name of the Lambda function whose resource policy you are updating by adding a new permission.
`String` `getPrincipal()` The principal who is getting this permission.
`String` `getQualifier()` You can use this optional query parameter to describe a qualified ARN using a function version or an alias name.
`String` `getSourceAccount()` This parameter is used for S3, SES, CloudWatch Logs and CloudWatch Rules only.
`String` `getSourceArn()` This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value.
`String` `getStatementId()` A unique statement identifier.
`int` `hashCode()`
`void` `setAction(String action)` The AWS Lambda action you want to allow in this statement.
`void` `setEventSourceToken(String eventSourceToken)` A unique token that must be supplied by the principal invoking the function.
`void` `setFunctionName(String functionName)` Name of the Lambda function whose resource policy you are updating by adding a new permission.
`void` `setPrincipal(String principal)` The principal who is getting this permission.
`void` `setQualifier(String qualifier)` You can use this optional query parameter to describe a qualified ARN using a function version or an alias name.
`void` `setSourceAccount(String sourceAccount)` This parameter is used for S3, SES, CloudWatch Logs and CloudWatch Rules only.
`void` `setSourceArn(String sourceArn)` This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value.
`void` `setStatementId(String statementId)` A unique statement identifier.
`String` `toString()` Returns a string representation of this object; useful for testing and debugging.
`AddPermissionRequest` `withAction(String action)` The AWS Lambda action you want to allow in this statement.
`AddPermissionRequest` `withEventSourceToken(String eventSourceToken)` A unique token that must be supplied by the principal invoking the function.
`AddPermissionRequest` `withFunctionName(String functionName)` Name of the Lambda function whose resource policy you are updating by adding a new permission.
`AddPermissionRequest` `withPrincipal(String principal)` The principal who is getting this permission.
`AddPermissionRequest` `withQualifier(String qualifier)` You can use this optional query parameter to describe a qualified ARN using a function version or an alias name.
`AddPermissionRequest` `withSourceAccount(String sourceAccount)` This parameter is used for S3, SES, CloudWatch Logs and CloudWatch Rules only.
`AddPermissionRequest` `withSourceArn(String sourceArn)` This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value.
`AddPermissionRequest` `withStatementId(String statementId)` A unique statement identifier.

### Methods inherited from class com.amazonaws.AmazonWebServiceRequest

`copyBaseTo, getCloneRoot, getCloneSource, getCustomQueryParameters, getCustomRequestHeaders, getGeneralProgressListener, getReadLimit, getRequestClientOptions, getRequestCredentials, getRequestCredentialsProvider, getRequestMetricCollector, getSdkClientExecutionTimeout, getSdkRequestTimeout, putCustomQueryParameter, putCustomRequestHeader, setGeneralProgressListener, setRequestCredentials, setRequestCredentialsProvider, setRequestMetricCollector, setSdkClientExecutionTimeout, setSdkRequestTimeout, withGeneralProgressListener, withRequestMetricCollector, withSdkClientExecutionTimeout, withSdkRequestTimeout`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### AddPermissionRequest

    public AddPermissionRequest()

### Method Detail

#### setFunctionName

    public void setFunctionName(String functionName)

Name of the Lambda function whose resource policy you are updating by adding a new permission.

You can specify a 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 partial ARN (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.

Parameters:
  `functionName` - Name of the Lambda function whose resource policy you are updating by adding a new permission.

  You can specify a 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 partial ARN (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.

#### getFunctionName

    public String getFunctionName()

Name of the Lambda function whose resource policy you are updating by adding a new permission.

You can specify a 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 partial ARN (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.

Returns:
  Name of the Lambda function whose resource policy you are updating by adding a new permission.

  You can specify a 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 partial ARN (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.

#### withFunctionName

    public AddPermissionRequest withFunctionName(String functionName)

Name of the Lambda function whose resource policy you are updating by adding a new permission.

You can specify a 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 partial ARN (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.

Parameters:
  `functionName` - Name of the Lambda function whose resource policy you are updating by adding a new permission.

  You can specify a 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 partial ARN (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.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setStatementId

    public void setStatementId(String statementId)

A unique statement identifier.

Parameters:
  `statementId` - A unique statement identifier.

#### getStatementId

    public String getStatementId()

A unique statement identifier.

Returns:
  A unique statement identifier.

#### withStatementId

    public AddPermissionRequest withStatementId(String statementId)

A unique statement identifier.

Parameters:
  `statementId` - A unique statement identifier.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setAction

    public void setAction(String action)

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 . For example, `lambda:CreateFunction`. You can use wildcard (`lambda:*`) to grant permission for all AWS Lambda actions.

Parameters:
  `action` - 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 . For example, `lambda:CreateFunction`. You can use wildcard (`lambda:*`) to grant permission for all AWS Lambda actions.

#### getAction

    public String getAction()

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 . For example, `lambda:CreateFunction`. You can use wildcard (`lambda:*`) to grant permission for all AWS Lambda actions.

Returns:
  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 . For example, `lambda:CreateFunction`. You can use wildcard (`lambda:*`) to grant permission for all AWS Lambda actions.

#### withAction

    public AddPermissionRequest withAction(String action)

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 . For example, `lambda:CreateFunction`. You can use wildcard (`lambda:*`) to grant permission for all AWS Lambda actions.

Parameters:
  `action` - 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 . For example, `lambda:CreateFunction`. You can use wildcard (`lambda:*`) to grant permission for all AWS Lambda actions.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setPrincipal

    public void setPrincipal(String principal)

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.

Parameters:
  `principal` - 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.

#### getPrincipal

    public String getPrincipal()

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.

Returns:
  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.

#### withPrincipal

    public AddPermissionRequest withPrincipal(String principal)

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.

Parameters:
  `principal` - 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.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setSourceArn

    public void setSourceArn(String sourceArn)

This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified source can invoke the function.

<important>

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.

</important>

Parameters:
  `sourceArn` - This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified source can invoke the function. <important>

  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.

#### getSourceArn

    public String getSourceArn()

This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified source can invoke the function.

<important>

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.

</important>

Returns:
  This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified source can invoke the function. <important>

  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.

#### withSourceArn

    public AddPermissionRequest withSourceArn(String sourceArn)

This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified source can invoke the function.

<important>

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.

</important>

Parameters:
  `sourceArn` - This is optional; however, when granting Amazon S3 permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified source can invoke the function. <important>

  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.

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setSourceAccount

    public void setSourceAccount(String sourceAccount)

This parameter is used for S3, SES, CloudWatch Logs and CloudWatch Rules only. The AWS account ID (without a hyphen) of the source owner. For example, 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.

Parameters:
  `sourceAccount` - This parameter is used for S3, SES, CloudWatch Logs and CloudWatch Rules only. The AWS account ID (without a hyphen) of the source owner. For example, 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.

#### getSourceAccount

    public String getSourceAccount()

This parameter is used for S3, SES, CloudWatch Logs and CloudWatch Rules only. The AWS account ID (without a hyphen) of the source owner. For example, 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.

Returns:
  This parameter is used for S3, SES, CloudWatch Logs and CloudWatch Rules only. The AWS account ID (without a hyphen) of the source owner. For example, 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.

#### withSourceAccount

    public AddPermissionRequest withSourceAccount(String sourceAccount)

This parameter is used for S3, SES, CloudWatch Logs and CloudWatch Rules only. The AWS account ID (without a hyphen) of the source owner. For example, 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.

Parameters:
  `sourceAccount` - This parameter is used for S3, SES, CloudWatch Logs and CloudWatch Rules only. The AWS account ID (without a hyphen) of the source owner. For example, 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.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setEventSourceToken

    public void setEventSourceToken(String eventSourceToken)

A unique token that must be supplied by the principal invoking the function. This is currently only used for Alexa Smart Home functions.

Parameters:
  `eventSourceToken` - A unique token that must be supplied by the principal invoking the function. This is currently only used for Alexa Smart Home functions.

#### getEventSourceToken

    public String getEventSourceToken()

A unique token that must be supplied by the principal invoking the function. This is currently only used for Alexa Smart Home functions.

Returns:
  A unique token that must be supplied by the principal invoking the function. This is currently only used for Alexa Smart Home functions.

#### withEventSourceToken

    public AddPermissionRequest withEventSourceToken(String eventSourceToken)

A unique token that must be supplied by the principal invoking the function. This is currently only used for Alexa Smart Home functions.

Parameters:
  `eventSourceToken` - A unique token that must be supplied by the principal invoking the function. This is currently only used for Alexa Smart Home functions.
Returns:
  Returns a reference to this object so that method calls can be chained together.

#### setQualifier

    public void setQualifier(String qualifier)

You can use this optional query parameter to describe a qualified ARN using a function version or an alias name. The permission will then apply to the specific qualified ARN. For example, if you specify function version 2 as the qualifier, then permission applies only when request is made using qualified function ARN:

`arn:aws:lambda:aws-region:acct-id:function:function-name:2`

If you specify an alias name, for example `PROD`, then the permission is valid only for requests made using the alias ARN:

`arn:aws:lambda:aws-region:acct-id:function:function-name:PROD`

If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN.

`arn:aws:lambda:aws-region:acct-id:function:function-name`

Parameters:
  `qualifier` - You can use this optional query parameter to describe a qualified ARN using a function version or an alias name. The permission will then apply to the specific qualified ARN. For example, if you specify function version 2 as the qualifier, then permission applies only when request is made using qualified function ARN:

  `arn:aws:lambda:aws-region:acct-id:function:function-name:2`

  If you specify an alias name, for example `PROD`, then the permission is valid only for requests made using the alias ARN:

  `arn:aws:lambda:aws-region:acct-id:function:function-name:PROD`

  If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN.

  `arn:aws:lambda:aws-region:acct-id:function:function-name`

#### getQualifier

    public String getQualifier()

You can use this optional query parameter to describe a qualified ARN using a function version or an alias name. The permission will then apply to the specific qualified ARN. For example, if you specify function version 2 as the qualifier, then permission applies only when request is made using qualified function ARN:

`arn:aws:lambda:aws-region:acct-id:function:function-name:2`

If you specify an alias name, for example `PROD`, then the permission is valid only for requests made using the alias ARN:

`arn:aws:lambda:aws-region:acct-id:function:function-name:PROD`

If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN.

`arn:aws:lambda:aws-region:acct-id:function:function-name`

Returns:
  You can use this optional query parameter to describe a qualified ARN using a function version or an alias name. The permission will then apply to the specific qualified ARN. For example, if you specify function version 2 as the qualifier, then permission applies only when request is made using qualified function ARN:

  `arn:aws:lambda:aws-region:acct-id:function:function-name:2`

  If you specify an alias name, for example `PROD`, then the permission is valid only for requests made using the alias ARN:

  `arn:aws:lambda:aws-region:acct-id:function:function-name:PROD`

  If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN.

  `arn:aws:lambda:aws-region:acct-id:function:function-name`

#### withQualifier

    public AddPermissionRequest withQualifier(String qualifier)

You can use this optional query parameter to describe a qualified ARN using a function version or an alias name. The permission will then apply to the specific qualified ARN. For example, if you specify function version 2 as the qualifier, then permission applies only when request is made using qualified function ARN:

`arn:aws:lambda:aws-region:acct-id:function:function-name:2`

If you specify an alias name, for example `PROD`, then the permission is valid only for requests made using the alias ARN:

`arn:aws:lambda:aws-region:acct-id:function:function-name:PROD`

If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN.

`arn:aws:lambda:aws-region:acct-id:function:function-name`

Parameters:
  `qualifier` - You can use this optional query parameter to describe a qualified ARN using a function version or an alias name. The permission will then apply to the specific qualified ARN. For example, if you specify function version 2 as the qualifier, then permission applies only when request is made using qualified function ARN:

  `arn:aws:lambda:aws-region:acct-id:function:function-name:2`

  If you specify an alias name, for example `PROD`, then the permission is valid only for requests made using the alias ARN:

  `arn:aws:lambda:aws-region:acct-id:function:function-name:PROD`

  If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN.

  `arn:aws:lambda:aws-region:acct-id:function:function-name`

Returns:
  Returns a reference to this object so that method calls can be chained together.

#### toString

    public String toString()

Returns a string representation of this object; useful for testing and debugging.

Overrides:
  `toString` in class `Object`
Returns:
  A string representation of this object.
See Also:
  `Object.toString()`

#### equals

    public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### clone

    public AddPermissionRequest clone()

Overrides:
  `clone` in class `AmazonWebServiceRequest`