UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

1,186 lines 108 kB
"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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