cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
1,186 lines • 108 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VpcLattice = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [vpc-lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class VpcLattice extends shared_1.PolicyStatement {
/**
* Grants permission to create an access log subscription
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* Dependent actions:
* - logs:CreateLogDelivery
* - logs:GetLogDelivery
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_CreateAccessLogSubscription.html
*/
toCreateAccessLogSubscription() {
return this.to('CreateAccessLogSubscription');
}
/**
* Grants permission to create a listener
*
* Access Level: Write
*
* Possible conditions:
* - .ifProtocol()
* - .ifTargetGroupArns()
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_CreateListener.html
*/
toCreateListener() {
return this.to('CreateListener');
}
/**
* Grants permission to create a rule
*
* Access Level: Write
*
* Possible conditions:
* - .ifTargetGroupArns()
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_CreateRule.html
*/
toCreateRule() {
return this.to('CreateRule');
}
/**
* Grants permission to create a service
*
* Access Level: Write
*
* Possible conditions:
* - .ifAuthType()
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* Dependent actions:
* - iam:CreateServiceLinkedRole
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_CreateService.html
*/
toCreateService() {
return this.to('CreateService');
}
/**
* Grants permission to create a service network
*
* Access Level: Write
*
* Possible conditions:
* - .ifAuthType()
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* Dependent actions:
* - iam:CreateServiceLinkedRole
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_CreateServiceNetwork.html
*/
toCreateServiceNetwork() {
return this.to('CreateServiceNetwork');
}
/**
* Grants permission to create a service network and service association
*
* Access Level: Write
*
* Possible conditions:
* - .ifServiceNetworkArn()
* - .ifServiceArn()
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_CreateServiceNetworkServiceAssociation.html
*/
toCreateServiceNetworkServiceAssociation() {
return this.to('CreateServiceNetworkServiceAssociation');
}
/**
* Grants permission to create a service network and VPC association
*
* Access Level: Write
*
* Possible conditions:
* - .ifVpcId()
* - .ifServiceNetworkArn()
* - .ifSecurityGroupIds()
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* Dependent actions:
* - ec2:DescribeVpcs
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_CreateServiceNetworkVpcAssociation.html
*/
toCreateServiceNetworkVpcAssociation() {
return this.to('CreateServiceNetworkVpcAssociation');
}
/**
* Grants permission to create a target group
*
* Access Level: Write
*
* Possible conditions:
* - .ifVpcId()
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* Dependent actions:
* - iam:CreateServiceLinkedRole
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_CreateTargetGroup.html
*/
toCreateTargetGroup() {
return this.to('CreateTargetGroup');
}
/**
* Grants permission to delete an access log subscription
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* Dependent actions:
* - logs:DeleteLogDelivery
* - logs:GetLogDelivery
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeleteAccessLogSubscription.html
*/
toDeleteAccessLogSubscription() {
return this.to('DeleteAccessLogSubscription');
}
/**
* Grants permission to delete an auth policy
*
* Access Level: Permissions management
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeleteAuthPolicy.html
*/
toDeleteAuthPolicy() {
return this.to('DeleteAuthPolicy');
}
/**
* Grants permission to delete a listener
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeleteListener.html
*/
toDeleteListener() {
return this.to('DeleteListener');
}
/**
* Grants permission to delete a resource policy
*
* Access Level: Write
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeleteResourcePolicy.html
*/
toDeleteResourcePolicy() {
return this.to('DeleteResourcePolicy');
}
/**
* Grants permission to delete a rule
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeleteRule.html
*/
toDeleteRule() {
return this.to('DeleteRule');
}
/**
* Grants permission to delete a service
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeleteService.html
*/
toDeleteService() {
return this.to('DeleteService');
}
/**
* Grants permission to delete a service network
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeleteServiceNetwork.html
*/
toDeleteServiceNetwork() {
return this.to('DeleteServiceNetwork');
}
/**
* Grants permission to delete a service network service association
*
* Access Level: Write
*
* Possible conditions:
* - .ifServiceNetworkArn()
* - .ifServiceArn()
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeleteServiceNetworkServiceAssociation.html
*/
toDeleteServiceNetworkServiceAssociation() {
return this.to('DeleteServiceNetworkServiceAssociation');
}
/**
* Grants permission to delete a service network and VPC association
*
* Access Level: Write
*
* Possible conditions:
* - .ifVpcId()
* - .ifServiceNetworkArn()
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeleteServiceNetworkVpcAssociation.html
*/
toDeleteServiceNetworkVpcAssociation() {
return this.to('DeleteServiceNetworkVpcAssociation');
}
/**
* Grants permission to delete a target group
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeleteTargetGroup.html
*/
toDeleteTargetGroup() {
return this.to('DeleteTargetGroup');
}
/**
* Grants permission to deregister targets from a target group
*
* Access Level: Write
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_DeregisterTargets.html
*/
toDeregisterTargets() {
return this.to('DeregisterTargets');
}
/**
* Grants permission to get information about an access log subscription
*
* Access Level: Read
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* Dependent actions:
* - logs:GetLogDelivery
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetAccessLogSubscription.html
*/
toGetAccessLogSubscription() {
return this.to('GetAccessLogSubscription');
}
/**
* Grants permission to get information about an auth policy
*
* Access Level: Read
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetAuthPolicy.html
*/
toGetAuthPolicy() {
return this.to('GetAuthPolicy');
}
/**
* Grants permission to get information about a listener
*
* Access Level: Read
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetListener.html
*/
toGetListener() {
return this.to('GetListener');
}
/**
* Grants permission to get information about a resource policy
*
* Access Level: Read
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetResourcePolicy.html
*/
toGetResourcePolicy() {
return this.to('GetResourcePolicy');
}
/**
* Grants permission to get information about a rule
*
* Access Level: Read
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetRule.html
*/
toGetRule() {
return this.to('GetRule');
}
/**
* Grants permission to get information about a service
*
* Access Level: Read
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetService.html
*/
toGetService() {
return this.to('GetService');
}
/**
* Grants permission to get information about a service network
*
* Access Level: Read
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetServiceNetwork.html
*/
toGetServiceNetwork() {
return this.to('GetServiceNetwork');
}
/**
* Grants permission to get information about a service network and service association
*
* Access Level: Read
*
* Possible conditions:
* - .ifServiceNetworkArn()
* - .ifServiceArn()
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetServiceNetworkServiceAssociation.html
*/
toGetServiceNetworkServiceAssociation() {
return this.to('GetServiceNetworkServiceAssociation');
}
/**
* Grants permission to get information about a service network and VPC association
*
* Access Level: Read
*
* Possible conditions:
* - .ifVpcId()
* - .ifServiceNetworkArn()
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetServiceNetworkVpcAssociation.html
*/
toGetServiceNetworkVpcAssociation() {
return this.to('GetServiceNetworkVpcAssociation');
}
/**
* Grants permission to get information about a target group
*
* Access Level: Read
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html
*/
toGetTargetGroup() {
return this.to('GetTargetGroup');
}
/**
* Grants permission to list some or all access log subscriptions about a service network or a service
*
* Access Level: List
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_ListAccessLogSubscriptions.html
*/
toListAccessLogSubscriptions() {
return this.to('ListAccessLogSubscriptions');
}
/**
* Grants permission to list some or all listeners
*
* Access Level: List
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_ListListeners.html
*/
toListListeners() {
return this.to('ListListeners');
}
/**
* Grants permission to list some or all rules
*
* Access Level: List
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_ListRules.html
*/
toListRules() {
return this.to('ListRules');
}
/**
* Grants permission to list some or all service network and service associations
*
* Access Level: List
*
* Possible conditions:
* - .ifServiceNetworkArn()
* - .ifServiceArn()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_ListServiceNetworkServiceAssociations.html
*/
toListServiceNetworkServiceAssociations() {
return this.to('ListServiceNetworkServiceAssociations');
}
/**
* Grants permission to list some or all service network and VPC associations
*
* Access Level: List
*
* Possible conditions:
* - .ifVpcId()
* - .ifServiceNetworkArn()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_ListServiceNetworkVpcAssociations.html
*/
toListServiceNetworkVpcAssociations() {
return this.to('ListServiceNetworkVpcAssociations');
}
/**
* Grants permission to list the service networks owned by a caller account or shared with the caller account
*
* Access Level: List
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_ListServiceNetworks.html
*/
toListServiceNetworks() {
return this.to('ListServiceNetworks');
}
/**
* Grants permission to list the services owned by a caller account or shared with the caller account
*
* Access Level: List
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_ListServices.html
*/
toListServices() {
return this.to('ListServices');
}
/**
* Grants permission to list tags for a vpc-lattice resource
*
* Access Level: Read
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_ListTagsForResource.html
*/
toListTagsForResource() {
return this.to('ListTagsForResource');
}
/**
* Grants permission to list some or all target groups
*
* Access Level: List
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_ListTargetGroups.html
*/
toListTargetGroups() {
return this.to('ListTargetGroups');
}
/**
* Grants permission to list some or all targets in a target group
*
* Access Level: List
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_ListTargets.html
*/
toListTargets() {
return this.to('ListTargets');
}
/**
* Grants permission to create or update the auth policy for a service network or a service
*
* Access Level: Permissions management
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_PutAuthPolicy.html
*/
toPutAuthPolicy() {
return this.to('PutAuthPolicy');
}
/**
* Grants permission to create a resource policy for a service network or a service
*
* Access Level: Write
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_PutResourcePolicy.html
*/
toPutResourcePolicy() {
return this.to('PutResourcePolicy');
}
/**
* Grants permission to register targets to a target group
*
* Access Level: Write
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_RegisterTargets.html
*/
toRegisterTargets() {
return this.to('RegisterTargets');
}
/**
* Grants permission to tag a vpc-lattice resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_TagResource.html
*/
toTagResource() {
return this.to('TagResource');
}
/**
* Grants permission to untag a vpc-lattice resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_UntagResource.html
*/
toUntagResource() {
return this.to('UntagResource');
}
/**
* Grants permission to update an access log subscription
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* Dependent actions:
* - logs:GetLogDelivery
* - logs:UpdateLogDelivery
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_UpdateAccessLogSubscription.html
*/
toUpdateAccessLogSubscription() {
return this.to('UpdateAccessLogSubscription');
}
/**
* Grants permission to update a listener
*
* Access Level: Write
*
* Possible conditions:
* - .ifTargetGroupArns()
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_UpdateListener.html
*/
toUpdateListener() {
return this.to('UpdateListener');
}
/**
* Grants permission to update a rule
*
* Access Level: Write
*
* Possible conditions:
* - .ifTargetGroupArns()
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_UpdateRule.html
*/
toUpdateRule() {
return this.to('UpdateRule');
}
/**
* Grants permission to update a service
*
* Access Level: Write
*
* Possible conditions:
* - .ifAuthType()
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_UpdateService.html
*/
toUpdateService() {
return this.to('UpdateService');
}
/**
* Grants permission to update a service network
*
* Access Level: Write
*
* Possible conditions:
* - .ifAuthType()
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_UpdateServiceNetwork.html
*/
toUpdateServiceNetwork() {
return this.to('UpdateServiceNetwork');
}
/**
* Grants permission to update a service network and VPC association
*
* Access Level: Write
*
* Possible conditions:
* - .ifVpcId()
* - .ifServiceNetworkArn()
* - .ifSecurityGroupIds()
* - .ifAwsResourceTag()
*
* Dependent actions:
* - ec2:DescribeSecurityGroups
* - ec2:DescribeVpcs
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_UpdateServiceNetworkVpcAssociation.html
*/
toUpdateServiceNetworkVpcAssociation() {
return this.to('UpdateServiceNetworkVpcAssociation');
}
/**
* Grants permission to update a target group
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsResourceTag()
*
* https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_UpdateTargetGroup.html
*/
toUpdateTargetGroup() {
return this.to('UpdateTargetGroup');
}
/**
* Adds a resource of type ServiceNetwork to the statement
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/service-networks.html
*
* @param serviceNetworkId - Identifier for the serviceNetworkId.
* @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:
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
* - .ifAuthType()
*/
onServiceNetwork(serviceNetworkId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:vpc-lattice:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:servicenetwork/${serviceNetworkId}`);
}
/**
* Adds a resource of type Service to the statement
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/services.html
*
* @param serviceId - Identifier for the serviceId.
* @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:
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
* - .ifAuthType()
*/
onService(serviceId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:vpc-lattice:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:service/${serviceId}`);
}
/**
* Adds a resource of type ServiceNetworkVpcAssociation to the statement
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/service-network-associations.html#service-network-vpc-associations
*
* @param serviceNetworkVpcAssociationId - Identifier for the serviceNetworkVpcAssociationId.
* @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:
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
* - .ifSecurityGroupIds()
* - .ifServiceNetworkArn()
* - .ifVpcId()
*/
onServiceNetworkVpcAssociation(serviceNetworkVpcAssociationId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:vpc-lattice:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:servicenetworkvpcassociation/${serviceNetworkVpcAssociationId}`);
}
/**
* Adds a resource of type ServiceNetworkServiceAssociation to the statement
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/service-network-associations.html#service-network-service-associations
*
* @param serviceNetworkServiceAssociationId - Identifier for the serviceNetworkServiceAssociationId.
* @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:
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
* - .ifServiceArn()
* - .ifServiceNetworkArn()
*/
onServiceNetworkServiceAssociation(serviceNetworkServiceAssociationId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:vpc-lattice:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:servicenetworkserviceassociation/${serviceNetworkServiceAssociationId}`);
}
/**
* Adds a resource of type TargetGroup to the statement
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/target-groups.html
*
* @param targetGroupId - Identifier for the targetGroupId.
* @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:
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
* - .ifVpcId()
*/
onTargetGroup(targetGroupId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:vpc-lattice:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:targetgroup/${targetGroupId}`);
}
/**
* Adds a resource of type Listener to the statement
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html
*
* @param serviceId - Identifier for the serviceId.
* @param listenerId - Identifier for the listenerId.
* @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:
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
* - .ifProtocol()
* - .ifTargetGroupArns()
*/
onListener(serviceId, listenerId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:vpc-lattice:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:service/${serviceId}/listener/${listenerId}`);
}
/**
* Adds a resource of type Rule to the statement
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html#listener-rules
*
* @param serviceId - Identifier for the serviceId.
* @param listenerId - Identifier for the listenerId.
* @param ruleId - Identifier for the ruleId.
* @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:
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
* - .ifTargetGroupArns()
*/
onRule(serviceId, listenerId, ruleId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:vpc-lattice:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:service/${serviceId}/listener/${listenerId}/rule/${ruleId}`);
}
/**
* Adds a resource of type AccessLogSubscription to the statement
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/monitoring-access-logs.html
*
* @param accessLogSubscriptionId - Identifier for the accessLogSubscriptionId.
* @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:
* - .ifAwsRequestTag()
* - .ifAwsResourceTag()
* - .ifAwsTagKeys()
*/
onAccessLogSubscription(accessLogSubscriptionId, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:vpc-lattice:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:accesslogsubscription/${accessLogSubscriptionId}`);
}
/**
* Filters access by the presence of tag key-value pairs in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag
*
* Applies to actions:
* - .toCreateAccessLogSubscription()
* - .toCreateListener()
* - .toCreateRule()
* - .toCreateService()
* - .toCreateServiceNetwork()
* - .toCreateServiceNetworkServiceAssociation()
* - .toCreateServiceNetworkVpcAssociation()
* - .toCreateTargetGroup()
* - .toTagResource()
*
* Applies to resource types:
* - ServiceNetwork
* - Service
* - ServiceNetworkVpcAssociation
* - ServiceNetworkServiceAssociation
* - TargetGroup
* - Listener
* - Rule
* - AccessLogSubscription
*
* @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 tag key-value pairs attached to the resource
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to actions:
* - .toDeleteAccessLogSubscription()
* - .toDeleteListener()
* - .toDeleteRule()
* - .toDeleteService()
* - .toDeleteServiceNetwork()
* - .toDeleteServiceNetworkServiceAssociation()
* - .toDeleteServiceNetworkVpcAssociation()
* - .toDeleteTargetGroup()
* - .toGetAccessLogSubscription()
* - .toGetListener()
* - .toGetRule()
* - .toGetService()
* - .toGetServiceNetwork()
* - .toGetServiceNetworkServiceAssociation()
* - .toGetServiceNetworkVpcAssociation()
* - .toGetTargetGroup()
* - .toTagResource()
* - .toUpdateAccessLogSubscription()
* - .toUpdateListener()
* - .toUpdateRule()
* - .toUpdateService()
* - .toUpdateServiceNetwork()
* - .toUpdateServiceNetworkVpcAssociation()
* - .toUpdateTargetGroup()
*
* Applies to resource types:
* - ServiceNetwork
* - Service
* - ServiceNetworkVpcAssociation
* - ServiceNetworkServiceAssociation
* - TargetGroup
* - Listener
* - Rule
* - AccessLogSubscription
*
* @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 presence of tag keys in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys
*
* Applies to actions:
* - .toCreateAccessLogSubscription()
* - .toCreateListener()
* - .toCreateRule()
* - .toCreateService()
* - .toCreateServiceNetwork()
* - .toCreateServiceNetworkServiceAssociation()
* - .toCreateServiceNetworkVpcAssociation()
* - .toCreateTargetGroup()
* - .toTagResource()
* - .toUntagResource()
*
* Applies to resource types:
* - ServiceNetwork
* - Service
* - ServiceNetworkVpcAssociation
* - ServiceNetworkServiceAssociation
* - TargetGroup
* - Listener
* - Rule
* - AccessLogSubscription
*
* @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 auth type specified in the request
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/
*
* Applies to actions:
* - .toCreateService()
* - .toCreateServiceNetwork()
* - .toUpdateService()
* - .toUpdateServiceNetwork()
*
* Applies to resource types:
* - ServiceNetwork
* - Service
*
* @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`
*/
ifAuthType(value, operator) {
return this.if(`AuthType`, value, operator ?? 'StringLike');
}
/**
* Filters access by the protocol specified in the request
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/
*
* Applies to actions:
* - .toCreateListener()
*
* Applies to resource types:
* - Listener
*
* @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`
*/
ifProtocol(value, operator) {
return this.if(`Protocol`, value, operator ?? 'StringLike');
}
/**
* Filters access by the IDs of security groups
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/
*
* Applies to actions:
* - .toCreateServiceNetworkVpcAssociation()
* - .toUpdateServiceNetworkVpcAssociation()
*
* Applies to resource types:
* - ServiceNetworkVpcAssociation
*
* @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 a service
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/
*
* Applies to actions:
* - .toCreateServiceNetworkServiceAssociation()
* - .toDeleteServiceNetworkServiceAssociation()
* - .toGetServiceNetworkServiceAssociation()
* - .toListServiceNetworkServiceAssociations()
*
* Applies to resource types:
* - ServiceNetworkServiceAssociation
*
* @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`
*/
ifServiceArn(value, operator) {
return this.if(`ServiceArn`, value, operator ?? 'ArnLike');
}
/**
* Filters access by the ARN of a service network
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/
*
* Applies to actions:
* - .toCreateServiceNetworkServiceAssociation()
* - .toCreateServiceNetworkVpcAssociation()
* - .toDeleteServiceNetworkServiceAssociation()
* - .toDeleteServiceNetworkVpcAssociation()
* - .toGetServiceNetworkServiceAssociation()
* - .toGetServiceNetworkVpcAssociation()
* - .toListServiceNetworkServiceAssociations()
* - .toListServiceNetworkVpcAssociations()
* - .toUpdateServiceNetworkVpcAssociation()
*
* Applies to resource types:
* - ServiceNetworkVpcAssociation
* - ServiceNetworkServiceAssociation
*
* @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`
*/
ifServiceNetworkArn(value, operator) {
return this.if(`ServiceNetworkArn`, value, operator ?? 'ArnLike');
}
/**
* Filters access by the ARNs of target groups
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/
*
* Applies to actions:
* - .toCreateListener()
* - .toCreateRule()
* - .toUpdateListener()
* - .toUpdateRule()
*
* Applies to resource types:
* - Listener
* - Rule
*
* @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`
*/
ifTargetGroupArns(value, operator) {
return this.if(`TargetGroupArns`, value, operator ?? 'ArnLike');
}
/**
* Filters access by the ID of a virtual private cloud (VPC)
*
* https://docs.aws.amazon.com/vpc-lattice/latest/ug/
*
* Applies to actions:
* - .toCreateServiceNetworkVpcAssociation()
* - .toCreateTargetGroup()
* - .toDeleteServiceNetworkVpcAssociation()
* - .toGetServiceNetworkVpcAssociation()
* - .toListServiceNetworkVpcAssociations()
* - .toUpdateServiceNetworkVpcAssociation()
*
* Applies to resource types:
* - ServiceNetworkVpcAssociation
* - TargetGroup
*
* @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`
*/
ifVpcId(value, operator) {
return this.if(`VpcId`, value, operator ?? 'StringLike');
}
/**
* Statement provider for service [vpc-lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'vpc-lattice';
this.accessLevelList = {
Write: [
'CreateAccessLogSubscription',
'CreateListener',
'CreateRule',
'CreateService',
'CreateServiceNetwork',
'CreateServiceNetworkServiceAssociation',
'CreateServiceNetworkVpcAssociation',
'CreateTargetGroup',
'DeleteAccessLogSubscription',
'DeleteListener',
'DeleteResourcePolicy',
'DeleteRule',
'DeleteService',
'DeleteServiceNetwork',
'DeleteServiceNetworkServiceAssociation',
'DeleteServiceNetworkVpcAssociation',
'DeleteTargetGroup',
'DeregisterTargets',
'PutResourcePolicy',
'RegisterTargets',
'UpdateAccessLogSubscription',
'UpdateListener',
'UpdateRule',
'UpdateService',
'UpdateServiceNetwork',
'UpdateServiceNetworkVpcAssociation',
'UpdateTargetGroup'
],
'Permissions management': [
'DeleteAuthPolicy',
'PutAuthPolicy'
],
Read: [
'GetAccessLogSubscription',
'GetAuthPolicy',
'GetListener',
'GetResourcePolicy',
'GetRule',
'GetService',
'GetServiceNetwork',
'GetServiceNetworkServiceAssociation',
'GetServiceNetworkVpcAssociation',
'GetTargetGroup',
'ListTagsForResource'
],
List: [
'ListAccessLogSubscriptions',
'ListListeners',
'ListRules',
'ListServiceNetworkServiceAssociations',
'ListServiceNetworkVpcAssociations',
'ListServiceNetworks',
'ListServices',
'ListTargetGroups',
'ListTargets'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
}
exports.VpcLattice = VpcLattice;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjbGF0dGljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZwY2xhdHRpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBR3pEOzs7O0dBSUc7QUFDSCxNQUFhLFVBQVcsU0FBUSx3QkFBZTtJQUc3Qzs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNJLDZCQUE2QjtRQUNsQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNJLHNCQUFzQjtRQUMzQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksd0NBQXdDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNJLG9DQUFvQztRQUN6QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsb0NBQW9DLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdEMsQ0FBQztJ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