aws-security-group-usage
Version:
List AWS security group dependencies
62 lines (61 loc) • 2.57 kB
TypeScript
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 {};