|
| 1 | +# AddLayerVersionPermission<a name="API_AddLayerVersionPermission"></a> |
| 2 | + |
| 3 | +Adds permissions to the resource\-based policy of a version of a function layer\. Use this action to grant layer usage permission to other accounts\. You can grant permission to a single account, all AWS accounts, or all accounts in an organization\. |
| 4 | + |
| 5 | +To revoke permission, call [RemoveLayerVersionPermission](API_RemoveLayerVersionPermission.md) with the statement ID that you specified when you added it\. |
| 6 | + |
| 7 | +## Request Syntax<a name="API_AddLayerVersionPermission_RequestSyntax"></a> |
| 8 | + |
| 9 | +``` |
| 10 | +POST /2018-10-31/layers/LayerName/versions/VersionNumber/policy?RevisionId=RevisionId HTTP/1.1 |
| 11 | +Content-type: application/json |
| 12 | +
|
| 13 | +{ |
| 14 | + "[Action](#SSS-AddLayerVersionPermission-request-Action)": "string", |
| 15 | + "[OrganizationId](#SSS-AddLayerVersionPermission-request-OrganizationId)": "string", |
| 16 | + "[Principal](#SSS-AddLayerVersionPermission-request-Principal)": "string", |
| 17 | + "[StatementId](#SSS-AddLayerVersionPermission-request-StatementId)": "string" |
| 18 | +} |
| 19 | +``` |
| 20 | + |
| 21 | +## URI Request Parameters<a name="API_AddLayerVersionPermission_RequestParameters"></a> |
| 22 | + |
| 23 | +The request requires the following URI parameters\. |
| 24 | + |
| 25 | + ** [LayerName](#API_AddLayerVersionPermission_RequestSyntax) ** <a name="SSS-AddLayerVersionPermission-request-LayerName"></a> |
| 26 | +The name of the layer\. |
| 27 | +Length Constraints: Minimum length of 1\. Maximum length of 140\. |
| 28 | +Pattern: `(arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+)|[a-zA-Z0-9-_]+` |
| 29 | + |
| 30 | + ** [RevisionId](#API_AddLayerVersionPermission_RequestSyntax) ** <a name="SSS-AddLayerVersionPermission-request-RevisionId"></a> |
| 31 | +Only update the policy if the revision ID matches the ID specified\. Use this option to avoid modifying a policy that has changed since you last read it\. |
| 32 | + |
| 33 | + ** [VersionNumber](#API_AddLayerVersionPermission_RequestSyntax) ** <a name="SSS-AddLayerVersionPermission-request-VersionNumber"></a> |
| 34 | +The version number\. |
| 35 | + |
| 36 | +## Request Body<a name="API_AddLayerVersionPermission_RequestBody"></a> |
| 37 | + |
| 38 | +The request accepts the following data in JSON format\. |
| 39 | + |
| 40 | + ** [Action](#API_AddLayerVersionPermission_RequestSyntax) ** <a name="SSS-AddLayerVersionPermission-request-Action"></a> |
| 41 | +The API action that grants access to the layer\. For example, `lambda:GetLayerVersion`\. |
| 42 | +Type: String |
| 43 | +Pattern: `lambda:GetLayerVersion` |
| 44 | +Required: Yes |
| 45 | + |
| 46 | + ** [OrganizationId](#API_AddLayerVersionPermission_RequestSyntax) ** <a name="SSS-AddLayerVersionPermission-request-OrganizationId"></a> |
| 47 | +With the principal set to `*`, grant permission to all accounts in the specified organization\. |
| 48 | +Type: String |
| 49 | +Pattern: `o-[a-z0-9]{10,32}` |
| 50 | +Required: No |
| 51 | + |
| 52 | + ** [Principal](#API_AddLayerVersionPermission_RequestSyntax) ** <a name="SSS-AddLayerVersionPermission-request-Principal"></a> |
| 53 | +An account ID, or `*` to grant permission to all AWS accounts\. |
| 54 | +Type: String |
| 55 | +Pattern: `\d{12}|\*|arn:(aws[a-zA-Z-]*):iam::\d{12}:root` |
| 56 | +Required: Yes |
| 57 | + |
| 58 | + ** [StatementId](#API_AddLayerVersionPermission_RequestSyntax) ** <a name="SSS-AddLayerVersionPermission-request-StatementId"></a> |
| 59 | +An identifier that distinguishes the policy from others on the same layer version\. |
| 60 | +Type: String |
| 61 | +Length Constraints: Minimum length of 1\. Maximum length of 100\. |
| 62 | +Pattern: `([a-zA-Z0-9-_]+)` |
| 63 | +Required: Yes |
| 64 | + |
| 65 | +## Response Syntax<a name="API_AddLayerVersionPermission_ResponseSyntax"></a> |
| 66 | + |
| 67 | +``` |
| 68 | +HTTP/1.1 201 |
| 69 | +Content-type: application/json |
| 70 | +
|
| 71 | +{ |
| 72 | + "[RevisionId](#SSS-AddLayerVersionPermission-response-RevisionId)": "string", |
| 73 | + "[Statement](#SSS-AddLayerVersionPermission-response-Statement)": "string" |
| 74 | +} |
| 75 | +``` |
| 76 | + |
| 77 | +## Response Elements<a name="API_AddLayerVersionPermission_ResponseElements"></a> |
| 78 | + |
| 79 | +If the action is successful, the service sends back an HTTP 201 response\. |
| 80 | + |
| 81 | +The following data is returned in JSON format by the service\. |
| 82 | + |
| 83 | + ** [RevisionId](#API_AddLayerVersionPermission_ResponseSyntax) ** <a name="SSS-AddLayerVersionPermission-response-RevisionId"></a> |
| 84 | +A unique identifier for the current revision of the policy\. |
| 85 | +Type: String |
| 86 | + |
| 87 | + ** [Statement](#API_AddLayerVersionPermission_ResponseSyntax) ** <a name="SSS-AddLayerVersionPermission-response-Statement"></a> |
| 88 | +The permission statement\. |
| 89 | +Type: String |
| 90 | + |
| 91 | +## Errors<a name="API_AddLayerVersionPermission_Errors"></a> |
| 92 | + |
| 93 | + **InvalidParameterValueException** |
| 94 | +One of the parameters in the request is invalid\. For example, if you provided an IAM role for AWS Lambda to assume in the `CreateFunction` or the `UpdateFunctionConfiguration` API, that AWS Lambda is unable to assume you will get this exception\. |
| 95 | +HTTP Status Code: 400 |
| 96 | + |
| 97 | + **PolicyLengthExceededException** |
| 98 | +Lambda function access policy is limited to 20 KB\. |
| 99 | +HTTP Status Code: 400 |
| 100 | + |
| 101 | + **PreconditionFailedException** |
| 102 | +The RevisionId provided does not match the latest RevisionId for the Lambda function or alias\. Call the `GetFunction` or the `GetAlias` API to retrieve the latest RevisionId for your resource\. |
| 103 | +HTTP Status Code: 412 |
| 104 | + |
| 105 | + **ResourceConflictException** |
| 106 | +The resource already exists\. |
| 107 | +HTTP Status Code: 409 |
| 108 | + |
| 109 | + **ResourceNotFoundException** |
| 110 | +The resource \(for example, a Lambda function or access policy statement\) specified in the request does not exist\. |
| 111 | +HTTP Status Code: 404 |
| 112 | + |
| 113 | + **ServiceException** |
| 114 | +The AWS Lambda service encountered an internal error\. |
| 115 | +HTTP Status Code: 500 |
| 116 | + |
| 117 | + **TooManyRequestsException** |
| 118 | +Request throughput limit exceeded |
| 119 | +HTTP Status Code: 429 |
| 120 | + |
| 121 | +## See Also<a name="API_AddLayerVersionPermission_SeeAlso"></a> |
| 122 | + |
| 123 | +For more information about using this API in one of the language\-specific AWS SDKs, see the following: |
| 124 | ++ [AWS Command Line Interface](https://docs.aws.amazon.com/goto/aws-cli/lambda-2015-03-31/AddLayerVersionPermission) |
| 125 | ++ [AWS SDK for \.NET](https://docs.aws.amazon.com/goto/DotNetSDKV3/lambda-2015-03-31/AddLayerVersionPermission) |
| 126 | ++ [AWS SDK for C\+\+](https://docs.aws.amazon.com/goto/SdkForCpp/lambda-2015-03-31/AddLayerVersionPermission) |
| 127 | ++ [AWS SDK for Go](https://docs.aws.amazon.com/goto/SdkForGoV1/lambda-2015-03-31/AddLayerVersionPermission) |
| 128 | ++ [AWS SDK for Java](https://docs.aws.amazon.com/goto/SdkForJava/lambda-2015-03-31/AddLayerVersionPermission) |
| 129 | ++ [AWS SDK for JavaScript](https://docs.aws.amazon.com/goto/AWSJavaScriptSDK/lambda-2015-03-31/AddLayerVersionPermission) |
| 130 | ++ [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/lambda-2015-03-31/AddLayerVersionPermission) |
| 131 | ++ [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/lambda-2015-03-31/AddLayerVersionPermission) |
| 132 | ++ [AWS SDK for Ruby V2](https://docs.aws.amazon.com/goto/SdkForRubyV2/lambda-2015-03-31/AddLayerVersionPermission) |
0 commit comments