UNPKG

aws-security-group-usage

Version:

List AWS security group dependencies

62 lines (61 loc) 2.57 kB
import { DMS, EC2, ElastiCache, ELB, ELBv2, Lambda, RDS, Route53Resolver } from 'aws-sdk'; import PQueue from 'p-queue'; interface ListSecurityGroupUsageOptions { readonly groupIds?: string[]; readonly ec2?: EC2; readonly elb?: ELB; readonly elbv2?: ELBv2; readonly rds?: RDS; readonly lambda?: Lambda; readonly ec?: ElastiCache; readonly r53r?: Route53Resolver; readonly dms?: DMS; readonly queue?: PQueue; } interface SecurityGroupWithEnis extends EC2.Types.SecurityGroup { readonly enis: EC2.Types.NetworkInterfaceList; } interface InstanceUsage extends EC2.Types.Instance { readonly usagetype: 'instance'; } interface ElbUsage extends ELB.Types.LoadBalancerDescription { readonly usagetype: 'elb'; } interface XlbUsage extends ELBv2.Types.LoadBalancer { readonly usagetype: 'xlb'; } interface VpceUsage extends EC2.Types.VpcEndpoint { readonly usagetype: 'vpce'; } interface RdsUsage extends RDS.Types.DBInstance { readonly usagetype: 'rds'; } interface LambdaUsage extends Lambda.Types.FunctionConfiguration { readonly usagetype: 'lambda'; } interface ElastiCacheUsage extends ElastiCache.Types.CacheCluster { readonly usagetype: 'elasticache'; } interface Route53ResolverUsage extends Route53Resolver.Types.ResolverEndpoint { readonly usagetype: 'route53resolver'; } interface DmsUsage extends DMS.Types.ReplicationInstance { readonly usagetype: 'dms'; } export declare type Usage = InstanceUsage | ElbUsage | XlbUsage | VpceUsage | RdsUsage | LambdaUsage | ElastiCacheUsage | Route53ResolverUsage | DmsUsage; declare type Usages = readonly Usage[]; export interface SecurityGroupWithUsage extends SecurityGroupWithEnis { readonly usage: Usages; } export declare type SecurityGroupsWithUsage = readonly SecurityGroupWithUsage[]; export declare const eniIsInstance: (obj: unknown) => boolean; export declare const eniIsElb: import("ramda").Pred; export declare const eniIsXlb: import("ramda").Pred; export declare const eniIsVpce: (x: EC2.Types.NetworkInterface) => boolean; export declare const eniIsRds: (x: EC2.Types.NetworkInterface) => boolean; export declare const eniIsLambda: (x: EC2.Types.NetworkInterface) => boolean; export declare const eniIsElastiCache: (x: EC2.Types.NetworkInterface) => boolean; export declare const eniIsR53Resolver: (obj: unknown) => boolean; export declare const eniIsDms: (x: EC2.Types.NetworkInterface) => boolean; export declare const listSecurityGroupUsage: (opts: ListSecurityGroupUsageOptions) => Promise<SecurityGroupsWithUsage>; export {};