iam-floyd
Version:
AWS IAM policy statement generator with fluent interface
1,208 lines • 118 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Lambda = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [lambda](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Lambda extends shared_1.PolicyStatement {
/**
* Statement provider for service [lambda](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
constructor(sid) {
super(sid);
this.servicePrefix = 'lambda';
this.accessLevelList = {
'Permissions management': [
'AddLayerVersionPermission',
'AddPermission',
'DisableReplication',
'EnableReplication',
'RemoveLayerVersionPermission',
'RemovePermission'
],
Write: [
'CreateAlias',
'CreateCodeSigningConfig',
'CreateEventSourceMapping',
'CreateFunction',
'CreateFunctionUrlConfig',
'DeleteAlias',
'DeleteCodeSigningConfig',
'DeleteEventSourceMapping',
'DeleteFunction',
'DeleteFunctionCodeSigningConfig',
'DeleteFunctionConcurrency',
'DeleteFunctionEventInvokeConfig',
'DeleteFunctionUrlConfig',
'DeleteLayerVersion',
'DeleteProvisionedConcurrencyConfig',
'InvokeAsync',
'InvokeFunction',
'InvokeFunctionUrl',
'PublishLayerVersion',
'PublishVersion',
'PutFunctionCodeSigningConfig',
'PutFunctionConcurrency',
'PutFunctionEventInvokeConfig',
'PutFunctionRecursionConfig',
'PutProvisionedConcurrencyConfig',
'PutRuntimeManagementConfig',
'UpdateAlias',
'UpdateCodeSigningConfig',
'UpdateEventSourceMapping',
'UpdateFunctionCode',
'UpdateFunctionCodeSigningConfig',
'UpdateFunctionConfiguration',
'UpdateFunctionEventInvokeConfig',
'UpdateFunctionUrlConfig'
],
Read: [
'GetAccountSettings',
'GetAlias',
'GetCodeSigningConfig',
'GetEventSourceMapping',
'GetFunction',
'GetFunctionCodeSigningConfig',
'GetFunctionConcurrency',
'GetFunctionConfiguration',
'GetFunctionEventInvokeConfig',
'GetFunctionRecursionConfig',
'GetFunctionUrlConfig',
'GetLayerVersion',
'GetLayerVersionPolicy',
'GetPolicy',
'GetProvisionedConcurrencyConfig',
'GetRuntimeManagementConfig',
'ListTags'
],
List: [
'ListAliases',
'ListCodeSigningConfigs',
'ListEventSourceMappings',
'ListFunctionEventInvokeConfigs',
'ListFunctionUrlConfigs',
'ListFunctions',
'ListFunctionsByCodeSigningConfig',
'ListLayerVersions',
'ListLayers',
'ListProvisionedConcurrencyConfigs',
'ListVersionsByFunction'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
/**
* Grants permission to add permissions to the resource-based policy of a version of an AWS Lambda layer
*
* Access Level: Permissions management
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_AddLayerVersionPermission.html
*/
toAddLayerVersionPermission() {
return this.to('AddLayerVersionPermission');
}
/**
* Grants permission to give an AWS service or another account permission to use an AWS Lambda function
*
* Access Level: Permissions management
*
* Possible conditions:
* - .ifPrincipal()
* - .ifFunctionUrlAuthType()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html
*/
toAddPermission() {
return this.to('AddPermission');
}
/**
* Grants permission to create an alias for a Lambda function version
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_CreateAlias.html
*/
toCreateAlias() {
return this.to('CreateAlias');
}
/**
* Grants permission to create an AWS Lambda code signing config
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_CreateCodeSigningConfig.html
*/
toCreateCodeSigningConfig() {
return this.to('CreateCodeSigningConfig');
}
/**
* Grants permission to create a mapping between an event source and an AWS Lambda function
*
* Access Level: Write
*
* Possible conditions:
* - .ifFunctionArn()
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_CreateEventSourceMapping.html
*/
toCreateEventSourceMapping() {
return this.to('CreateEventSourceMapping');
}
/**
* Grants permission to create an AWS Lambda function
*
* Access Level: Write
*
* Possible conditions:
* - .ifLayer()
* - .ifVpcIds()
* - .ifSubnetIds()
* - .ifSecurityGroupIds()
* - .ifCodeSigningConfigArn()
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* Dependent actions:
* - iam:PassRole
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_CreateFunction.html
*/
toCreateFunction() {
return this.to('CreateFunction');
}
/**
* Grants permission to create a function url configuration for a Lambda function
*
* Access Level: Write
*
* Possible conditions:
* - .ifFunctionUrlAuthType()
* - .ifFunctionArn()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_CreateFunctionUrlConfig.html
*/
toCreateFunctionUrlConfig() {
return this.to('CreateFunctionUrlConfig');
}
/**
* Grants permission to delete an AWS Lambda function alias
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_DeleteAlias.html
*/
toDeleteAlias() {
return this.to('DeleteAlias');
}
/**
* Grants permission to delete an AWS Lambda code signing config
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_DeleteCodeSigningConfig.html
*/
toDeleteCodeSigningConfig() {
return this.to('DeleteCodeSigningConfig');
}
/**
* Grants permission to delete an AWS Lambda event source mapping
*
* Access Level: Write
*
* Possible conditions:
* - .ifFunctionArn()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_DeleteEventSourceMapping.html
*/
toDeleteEventSourceMapping() {
return this.to('DeleteEventSourceMapping');
}
/**
* Grants permission to delete an AWS Lambda function
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_DeleteFunction.html
*/
toDeleteFunction() {
return this.to('DeleteFunction');
}
/**
* Grants permission to detach a code signing config from an AWS Lambda function
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_DeleteFunctionCodeSigningConfig.html
*/
toDeleteFunctionCodeSigningConfig() {
return this.to('DeleteFunctionCodeSigningConfig');
}
/**
* Grants permission to remove a concurrent execution limit from an AWS Lambda function
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_DeleteFunctionConcurrency.html
*/
toDeleteFunctionConcurrency() {
return this.to('DeleteFunctionConcurrency');
}
/**
* Grants permission to delete the configuration for asynchronous invocation for an AWS Lambda function, version, or alias
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_DeleteFunctionEventInvokeConfig.html
*/
toDeleteFunctionEventInvokeConfig() {
return this.to('DeleteFunctionEventInvokeConfig');
}
/**
* Grants permission to delete function url configuration for a Lambda function
*
* Access Level: Write
*
* Possible conditions:
* - .ifFunctionUrlAuthType()
* - .ifFunctionArn()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_DeleteFunctionUrlConfig.html
*/
toDeleteFunctionUrlConfig() {
return this.to('DeleteFunctionUrlConfig');
}
/**
* Grants permission to delete a version of an AWS Lambda layer
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_DeleteLayerVersion.html
*/
toDeleteLayerVersion() {
return this.to('DeleteLayerVersion');
}
/**
* Grants permission to delete the provisioned concurrency configuration for an AWS Lambda function
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_DeleteProvisionedConcurrencyConfig.html
*/
toDeleteProvisionedConcurrencyConfig() {
return this.to('DeleteProvisionedConcurrencyConfig');
}
/**
* Grants permission to disable replication for a Lambda@Edge function
*
* Access Level: Permissions management
*
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-permissions.html
*/
toDisableReplication() {
return this.to('DisableReplication');
}
/**
* Grants permission to enable replication for a Lambda@Edge function
*
* Access Level: Permissions management
*
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-permissions.html
*/
toEnableReplication() {
return this.to('EnableReplication');
}
/**
* Grants permission to view details about an account's limits and usage in an AWS Region
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetAccountSettings.html
*/
toGetAccountSettings() {
return this.to('GetAccountSettings');
}
/**
* Grants permission to view details about an AWS Lambda function alias
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetAlias.html
*/
toGetAlias() {
return this.to('GetAlias');
}
/**
* Grants permission to view details about an AWS Lambda code signing config
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetCodeSigningConfig.html
*/
toGetCodeSigningConfig() {
return this.to('GetCodeSigningConfig');
}
/**
* Grants permission to view details about an AWS Lambda event source mapping
*
* Access Level: Read
*
* Possible conditions:
* - .ifFunctionArn()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetEventSourceMapping.html
*/
toGetEventSourceMapping() {
return this.to('GetEventSourceMapping');
}
/**
* Grants permission to view details about an AWS Lambda function
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunction.html
*/
toGetFunction() {
return this.to('GetFunction');
}
/**
* Grants permission to view the code signing config arn attached to an AWS Lambda function
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionCodeSigningConfig.html
*/
toGetFunctionCodeSigningConfig() {
return this.to('GetFunctionCodeSigningConfig');
}
/**
* Grants permission to view details about the reserved concurrency configuration for a function
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionConcurrency.html
*/
toGetFunctionConcurrency() {
return this.to('GetFunctionConcurrency');
}
/**
* Grants permission to view details about the version-specific settings of an AWS Lambda function or version
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionConfiguration.html
*/
toGetFunctionConfiguration() {
return this.to('GetFunctionConfiguration');
}
/**
* Grants permission to view the configuration for asynchronous invocation for a function, version, or alias
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionEventInvokeConfig.html
*/
toGetFunctionEventInvokeConfig() {
return this.to('GetFunctionEventInvokeConfig');
}
/**
* Grants permission to view the recursion configuration of an AWS Lambda function
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionRecursionConfig.html
*/
toGetFunctionRecursionConfig() {
return this.to('GetFunctionRecursionConfig');
}
/**
* Grants permission to read function url configuration for a Lambda function
*
* Access Level: Read
*
* Possible conditions:
* - .ifFunctionUrlAuthType()
* - .ifFunctionArn()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionUrlConfig.html
*/
toGetFunctionUrlConfig() {
return this.to('GetFunctionUrlConfig');
}
/**
* Grants permission to view details about a version of an AWS Lambda layer. Note this action also supports GetLayerVersionByArn API
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetLayerVersion.html
*/
toGetLayerVersion() {
return this.to('GetLayerVersion');
}
/**
* Grants permission to view the resource-based policy for a version of an AWS Lambda layer
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetLayerVersionPolicy.html
*/
toGetLayerVersionPolicy() {
return this.to('GetLayerVersionPolicy');
}
/**
* Grants permission to view the resource-based policy for an AWS Lambda function, version, or alias
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetPolicy.html
*/
toGetPolicy() {
return this.to('GetPolicy');
}
/**
* Grants permission to view the provisioned concurrency configuration for an AWS Lambda function's alias or version
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetProvisionedConcurrencyConfig.html
*/
toGetProvisionedConcurrencyConfig() {
return this.to('GetProvisionedConcurrencyConfig');
}
/**
* Grants permission to view the runtime management configuration of an AWS Lambda function
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_GetRuntimeManagementConfig.html
*/
toGetRuntimeManagementConfig() {
return this.to('GetRuntimeManagementConfig');
}
/**
* Grants permission to invoke a function asynchronously (Deprecated)
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_InvokeAsync.html
*/
toInvokeAsync() {
return this.to('InvokeAsync');
}
/**
* Grants permission to invoke an AWS Lambda function
*
* Access Level: Write
*
* Possible conditions:
* - .ifEventSourceToken()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html
*/
toInvokeFunction() {
return this.to('InvokeFunction');
}
/**
* Grants permission to invoke an AWS Lambda function through url
*
* Access Level: Write
*
* Possible conditions:
* - .ifFunctionUrlAuthType()
* - .ifFunctionArn()
* - .ifEventSourceToken()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_InvokeFunctionUrl.html
*/
toInvokeFunctionUrl() {
return this.to('InvokeFunctionUrl');
}
/**
* Grants permission to retrieve a list of aliases for an AWS Lambda function
*
* Access Level: List
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListAliases.html
*/
toListAliases() {
return this.to('ListAliases');
}
/**
* Grants permission to retrieve a list of AWS Lambda code signing configs
*
* Access Level: List
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListCodeSigningConfigs.html
*/
toListCodeSigningConfigs() {
return this.to('ListCodeSigningConfigs');
}
/**
* Grants permission to retrieve a list of AWS Lambda event source mappings
*
* Access Level: List
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListEventSourceMappings.html
*/
toListEventSourceMappings() {
return this.to('ListEventSourceMappings');
}
/**
* Grants permission to retrieve a list of configurations for asynchronous invocation for a function
*
* Access Level: List
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionEventInvokeConfigs.html
*/
toListFunctionEventInvokeConfigs() {
return this.to('ListFunctionEventInvokeConfigs');
}
/**
* Grants permission to read function url configurations for a function
*
* Access Level: List
*
* Possible conditions:
* - .ifFunctionUrlAuthType()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionUrlConfigs.html
*/
toListFunctionUrlConfigs() {
return this.to('ListFunctionUrlConfigs');
}
/**
* Grants permission to retrieve a list of AWS Lambda functions, with the version-specific configuration of each function
*
* Access Level: List
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctions.html
*/
toListFunctions() {
return this.to('ListFunctions');
}
/**
* Grants permission to retrieve a list of AWS Lambda functions by the code signing config assigned
*
* Access Level: List
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionsByCodeSigningConfig.html
*/
toListFunctionsByCodeSigningConfig() {
return this.to('ListFunctionsByCodeSigningConfig');
}
/**
* Grants permission to retrieve a list of versions of an AWS Lambda layer
*
* Access Level: List
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListLayerVersions.html
*/
toListLayerVersions() {
return this.to('ListLayerVersions');
}
/**
* Grants permission to retrieve a list of AWS Lambda layers, with details about the latest version of each layer
*
* Access Level: List
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListLayers.html
*/
toListLayers() {
return this.to('ListLayers');
}
/**
* Grants permission to retrieve a list of provisioned concurrency configurations for an AWS Lambda function
*
* Access Level: List
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListProvisionedConcurrencyConfigs.html
*/
toListProvisionedConcurrencyConfigs() {
return this.to('ListProvisionedConcurrencyConfigs');
}
/**
* Grants permission to retrieve a list of tags for an AWS Lambda function, event source mapping or code signing configuration resource
*
* Access Level: Read
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListTags.html
*/
toListTags() {
return this.to('ListTags');
}
/**
* Grants permission to retrieve a list of versions for an AWS Lambda function
*
* Access Level: List
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_ListVersionsByFunction.html
*/
toListVersionsByFunction() {
return this.to('ListVersionsByFunction');
}
/**
* Grants permission to create an AWS Lambda layer
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_PublishLayerVersion.html
*/
toPublishLayerVersion() {
return this.to('PublishLayerVersion');
}
/**
* Grants permission to create an AWS Lambda function version
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_PublishVersion.html
*/
toPublishVersion() {
return this.to('PublishVersion');
}
/**
* Grants permission to attach a code signing config to an AWS Lambda function
*
* Access Level: Write
*
* Possible conditions:
* - .ifCodeSigningConfigArn()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_PutFunctionCodeSigningConfig.html
*/
toPutFunctionCodeSigningConfig() {
return this.to('PutFunctionCodeSigningConfig');
}
/**
* Grants permission to configure reserved concurrency for an AWS Lambda function
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_PutFunctionConcurrency.html
*/
toPutFunctionConcurrency() {
return this.to('PutFunctionConcurrency');
}
/**
* Grants permission to configures options for asynchronous invocation on an AWS Lambda function, version, or alias
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_PutFunctionEventInvokeConfig.html
*/
toPutFunctionEventInvokeConfig() {
return this.to('PutFunctionEventInvokeConfig');
}
/**
* Grants permission to update the recursion configuration of an AWS Lambda function
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_PutFunctionRecursionConfig.html
*/
toPutFunctionRecursionConfig() {
return this.to('PutFunctionRecursionConfig');
}
/**
* Grants permission to configure provisioned concurrency for an AWS Lambda function's alias or version
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_PutProvisionedConcurrencyConfig.html
*/
toPutProvisionedConcurrencyConfig() {
return this.to('PutProvisionedConcurrencyConfig');
}
/**
* Grants permission to update the runtime management configuration of an AWS Lambda function
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_PutRuntimeManagementConfig.html
*/
toPutRuntimeManagementConfig() {
return this.to('PutRuntimeManagementConfig');
}
/**
* Grants permission to remove a statement from the permissions policy for a version of an AWS Lambda layer
*
* Access Level: Permissions management
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_RemoveLayerVersionPermission.html
*/
toRemoveLayerVersionPermission() {
return this.to('RemoveLayerVersionPermission');
}
/**
* Grants permission to revoke function-use permission from an AWS service or another account
*
* Access Level: Permissions management
*
* Possible conditions:
* - .ifPrincipal()
* - .ifFunctionUrlAuthType()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_RemovePermission.html
*/
toRemovePermission() {
return this.to('RemovePermission');
}
/**
* Grants permission to add tags to an AWS Lambda function, event source mapping or code signing configuration resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_TagResources.html
*/
toTagResource() {
return this.to('TagResource');
}
/**
* Grants permission to remove tags from an AWS Lambda function, event source mapping or code signing configuration resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_UntagResource.html
*/
toUntagResource() {
return this.to('UntagResource');
}
/**
* Grants permission to update the configuration of an AWS Lambda function's alias
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateAlias.html
*/
toUpdateAlias() {
return this.to('UpdateAlias');
}
/**
* Grants permission to update an AWS Lambda code signing config
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateCodeSigningConfig.html
*/
toUpdateCodeSigningConfig() {
return this.to('UpdateCodeSigningConfig');
}
/**
* Grants permission to update the configuration of an AWS Lambda event source mapping
*
* Access Level: Write
*
* Possible conditions:
* - .ifFunctionArn()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateEventSourceMapping.html
*/
toUpdateEventSourceMapping() {
return this.to('UpdateEventSourceMapping');
}
/**
* Grants permission to update the code of an AWS Lambda function
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionCode.html
*/
toUpdateFunctionCode() {
return this.to('UpdateFunctionCode');
}
/**
* Grants permission to update the code signing config of an AWS Lambda function
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionCodeSigningConfig.html
*/
toUpdateFunctionCodeSigningConfig() {
return this.to('UpdateFunctionCodeSigningConfig');
}
/**
* Grants permission to modify the version-specific settings of an AWS Lambda function
*
* Access Level: Write
*
* Possible conditions:
* - .ifLayer()
* - .ifVpcIds()
* - .ifSubnetIds()
* - .ifSecurityGroupIds()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionConfiguration.html
*/
toUpdateFunctionConfiguration() {
return this.to('UpdateFunctionConfiguration');
}
/**
* Grants permission to modify the configuration for asynchronous invocation for an AWS Lambda function, version, or alias
*
* Access Level: Write
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionEventInvokeConfig.html
*/
toUpdateFunctionEventInvokeConfig() {
return this.to('UpdateFunctionEventInvokeConfig');
}
/**
* Grants permission to update a function url configuration for a Lambda function
*
* Access Level: Write
*
* Possible conditions:
* - .ifFunctionUrlAuthType()
* - .ifFunctionArn()
*
* https://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionUrlConfig.html
*/
toUpdateFunctionUrlConfig() {
return this.to('UpdateFunctionUrlConfig');
}
/**
* Adds a resource of type code signing config to the statement
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* @param codeSigningConfigId - Identifier for the codeSigningConfigId.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onCodeSigningConfig(codeSigningConfigId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:lambda:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:code-signing-config:${codeSigningConfigId}`);
}
/**
* Adds a resource of type eventSourceMapping to the statement
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* @param uUID - Identifier for the uUID.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onEventSourceMapping(uUID, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:lambda:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:event-source-mapping:${uUID}`);
}
/**
* Adds a resource of type function to the statement
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* @param functionName - Identifier for the functionName.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onFunction(functionName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:lambda:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:function:${functionName}`);
}
/**
* Adds a resource of type function alias to the statement
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* @param functionName - Identifier for the functionName.
* @param alias - Identifier for the alias.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onFunctionAlias(functionName, alias, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:lambda:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:function:${functionName}:${alias}`);
}
/**
* Adds a resource of type function version to the statement
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* @param functionName - Identifier for the functionName.
* @param version - Identifier for the version.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onFunctionVersion(functionName, version, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:lambda:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:function:${functionName}:${version}`);
}
/**
* Adds a resource of type layer to the statement
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* @param layerName - Identifier for the layerName.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*/
onLayer(layerName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:lambda:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:layer:${layerName}`);
}
/**
* Adds a resource of type layerVersion to the statement
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* @param layerName - Identifier for the layerName.
* @param layerVersion - Identifier for the layerVersion.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*/
onLayerVersion(layerName, layerVersion, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:lambda:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:layer:${layerName}:${layerVersion}`);
}
/**
* Filters access by the tags that are passed in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag
*
* Applies to actions:
* - .toCreateCodeSigningConfig()
* - .toCreateEventSourceMapping()
* - .toCreateFunction()
* - .toTagResource()
*
* @param tagKey The tag key to check
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsRequestTag(tagKey, value, operator) {
return this.if(`aws:RequestTag/${tagKey}`, value, operator ?? 'StringLike');
}
/**
* Filters access by the tags associated with the resource
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to resource types:
* - code signing config
* - eventSourceMapping
* - function
* - function alias
* - function version
*
* @param tagKey The tag key to check
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsResourceTag(tagKey, value, operator) {
return this.if(`aws:ResourceTag/${tagKey}`, value, operator ?? 'StringLike');
}
/**
* Filters access by the tag keys that are passed in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys
*
* Applies to actions:
* - .toCreateCodeSigningConfig()
* - .toCreateEventSourceMapping()
* - .toCreateFunction()
* - .toTagResource()
* - .toUntagResource()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsTagKeys(value, operator) {
return this.if(`aws:TagKeys`, value, operator ?? 'StringLike');
}
/**
* Filters access by the ARN of an AWS Lambda code signing config
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* Applies to actions:
* - .toCreateFunction()
* - .toPutFunctionCodeSigningConfig()
*
* @param value The value(s) to check
* @param operator Works with [arn operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN). **Default:** `ArnLike`
*/
ifCodeSigningConfigArn(value, operator) {
return this.if(`CodeSigningConfigArn`, value, operator ?? 'ArnLike');
}
/**
* Filters access by the ID from a non-AWS event source configured for the AWS Lambda function
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* Applies to actions:
* - .toInvokeFunction()
* - .toInvokeFunctionUrl()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifEventSourceToken(value, operator) {
return this.if(`EventSourceToken`, value, operator ?? 'StringLike');
}
/**
* Filters access by the ARN of an AWS Lambda function
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* Applies to actions:
* - .toCreateEventSourceMapping()
* - .toCreateFunctionUrlConfig()
* - .toDeleteEventSourceMapping()
* - .toDeleteFunctionUrlConfig()
* - .toGetEventSourceMapping()
* - .toGetFunctionUrlConfig()
* - .toInvokeFunctionUrl()
* - .toUpdateEventSourceMapping()
* - .toUpdateFunctionUrlConfig()
*
* @param value The value(s) to check
* @param operator Works with [arn operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN). **Default:** `ArnLike`
*/
ifFunctionArn(value, operator) {
return this.if(`FunctionArn`, value, operator ?? 'ArnLike');
}
/**
* Filters access by authorization type specified in request. Available during CreateFunctionUrlConfig, UpdateFunctionUrlConfig, DeleteFunctionUrlConfig, GetFunctionUrlConfig, ListFunctionUrlConfig, AddPermission and RemovePermission operations
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* Applies to actions:
* - .toAddPermission()
* - .toCreateFunctionUrlConfig()
* - .toDeleteFunctionUrlConfig()
* - .toGetFunctionUrlConfig()
* - .toInvokeFunctionUrl()
* - .toListFunctionUrlConfigs()
* - .toRemovePermission()
* - .toUpdateFunctionUrlConfig()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifFunctionUrlAuthType(value, operator) {
return this.if(`FunctionUrlAuthType`, value, operator ?? 'StringLike');
}
/**
* Filters access by the ARN of a version of an AWS Lambda layer
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* Applies to actions:
* - .toCreateFunction()
* - .toUpdateFunctionConfiguration()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifLayer(value, operator) {
return this.if(`Layer`, value, operator ?? 'StringLike');
}
/**
* Filters access by restricting the AWS service or account that can invoke a function
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* Applies to actions:
* - .toAddPermission()
* - .toRemovePermission()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifPrincipal(value, operator) {
return this.if(`Principal`, value, operator ?? 'StringLike');
}
/**
* Filters access by the ID of security groups configured for the AWS Lambda function
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* Applies to actions:
* - .toCreateFunction()
* - .toUpdateFunctionConfiguration()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifSecurityGroupIds(value, operator) {
return this.if(`SecurityGroupIds`, value, operator ?? 'StringLike');
}
/**
* Filters access by the ARN of the AWS Lambda function from which the request originated
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* @param value The value(s) to check
* @param operator Works with [arn operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN). **Default:** `ArnLike`
*/
ifSourceFunctionArn(value, operator) {
return this.if(`SourceFunctionArn`, value, operator ?? 'ArnLike');
}
/**
* Filters access by the ID of subnets configured for the AWS Lambda function
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* Applies to actions:
* - .toCreateFunction()
* - .toUpdateFunctionConfiguration()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifSubnetIds(value, operator) {
return this.if(`SubnetIds`, value, operator ?? 'StringLike');
}
/**
* Filters access by the ID of the VPC configured for the AWS Lambda function
*
* https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html
*
* Applies to actions:
* - .toCreateFunction()
* - .toUpdateFunctionConfiguration()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifVpcIds(value, operator) {
return this.if(`VpcIds`, value, operator ?? 'StringLike');
}
}
exports.Lambda = Lambda;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUV6RDs7OztHQUlHO0FBQ0gsTUFBYSxNQUFPLFNBQVEsd0JBQWU7SUFHekM7Ozs7T0FJRztJQUNILFlBQVksR0FBWTtRQUN0QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFSTixrQkFBYSxHQUFHLFFBQVEsQ0FBQztRQTgxQnRCLG9CQUFlLEdBQW9CO1lBQzNDLHdCQUF3QixFQUFFO2dCQUN4QiwyQkFBMkI7Z0JBQzNCLGVBQWU7Z0JBQ2Ysb0JBQW9CO2dCQUNwQixtQkFBbUI7Z0JBQ25CLDhCQUE4QjtnQkFDOUIsa0JBQWtCO2FBQ25CO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLGFBQWE7Z0JBQ2IseUJBQXlCO2dCQUN6QiwwQkFBMEI7Z0JBQzFCLGdCQUFnQjtnQkFDaEIseUJBQXlCO2dCQUN6QixhQUFhO2dCQUNiLHlCQUF5QjtnQkFDekIsMEJBQTBCO2dCQUMxQixnQkFBZ0I7Z0JBQ2hCLGlDQUFpQztnQkFDakMsMkJBQTJCO2dCQUMzQixpQ0FBaUM7Z0JBQ2pDLHlCQUF5QjtnQkFDekIsb0JBQW9CO2dCQUNwQixvQ0FBb0M7Z0JBQ3BDLGFBQWE7Z0JBQ2IsZ0JBQWdCO2dCQUNoQixtQkFBbUI7Z0JBQ25CLHFCQUFxQjtnQkFDckIsZ0JBQWdCO2dCQUNoQiw4QkFBOEI7Z0JBQzlCLHdCQUF3QjtnQkFDeEIsOEJBQThCO2dCQUM5Qiw0QkFBNEI7Z0JBQzVCLGlDQUFpQztnQkFDakMsNEJBQTRCO2dCQUM1QixhQUFhO2dCQUNiLHlCQUF5QjtnQkFDekIsMEJBQTBCO2dCQUMxQixvQkFBb0I7Z0JBQ3BCLGlDQUFpQztnQkFDakMsNkJBQTZCO2dCQUM3QixpQ0FBaUM7Z0JBQ2pDLHlCQUF5QjthQUMxQjtZQUNELElBQUksRUFBRTtnQkFDSixvQkFBb0I7Z0JBQ3BCLFVBQVU7Z0JBQ1Ysc0JBQXNCO2dCQUN0Qix1QkFBdUI7Z0JBQ3ZCLGFBQWE7Z0JBQ2IsOEJBQThCO2dCQUM5Qix3QkFBd0I7Z0JBQ3hCLDBCQUEwQjtnQkFDMUIsOEJBQThCO2dCQUM5Qiw0QkFBNEI7Z0JBQzVCLHNCQUFzQjtnQkFDdEIsaUJBQWlCO2dCQUNqQix1QkFBdUI7Z0JBQ3ZCLFdBQVc7Z0JBQ1gsaUNBQWlDO2dCQUNqQyw0QkFBNEI7Z0JBQzVCLFVBQVU7YUFDWDtZQUNELElBQUksRUFBRTtnQkFDSixhQUFhO2dCQUNiLHdCQUF3QjtnQkFDeEIseUJBQXlCO2dCQUN6QixnQ0FBZ0M7Z0JBQ2hDLHdCQUF3QjtnQkFDeEIsZUFBZTtnQkFDZixrQ0FBa0M7Z0JBQ2xDLG1CQUFtQjtnQkFDbkIsWUFBWTtnQkFDWixtQ0FBbUM7Z0JBQ25DLHdCQUF3QjthQUN6QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxhQUFhO2dCQUNiLGVBQWU7YUFDaEI7U0FDRixDQUFDO0lBdDZCRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0kseUJBQXlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLDBCQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWtCRztJQUNJLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLHlCQUF5QjtRQUM5QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHlCQUF5QjtRQUM5QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksMEJBQTBCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGlDQUFpQztRQUN0QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxpQ0FBaUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSx5QkFBeUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLG9CQUFvQjtRQUN6QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksb0NBQW9DO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLHVCQUF1QjtRQUM1QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDhCQUE4QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDhCQUE4QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksNEJBQTRCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxpQkFBaUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsRUFBRSxD