168 lines
4.1 KiB
TypeScript
168 lines
4.1 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import { Connections } from './connections';
|
|
import type { IPrefixListRef, PrefixListReference } from './ec2.generated';
|
|
import { CfnPrefixList } from './ec2.generated';
|
|
import type { IPeer } from './peer';
|
|
import type { IResource } from '../../core';
|
|
import { Resource } from '../../core';
|
|
/**
|
|
* A prefix list
|
|
*/
|
|
export interface IPrefixList extends IResource, IPeer, IPrefixListRef {
|
|
/**
|
|
* The ID of the prefix list
|
|
*
|
|
* @attribute
|
|
*/
|
|
readonly prefixListId: string;
|
|
}
|
|
/**
|
|
* The IP address type.
|
|
*/
|
|
export declare enum AddressFamily {
|
|
IP_V4 = "IPv4",
|
|
IP_V6 = "IPv6"
|
|
}
|
|
/**
|
|
* Options to add a prefix list
|
|
*/
|
|
export interface PrefixListOptions {
|
|
/**
|
|
* The maximum number of entries for the prefix list.
|
|
*
|
|
* @default Automatically-calculated
|
|
*/
|
|
readonly maxEntries?: number;
|
|
}
|
|
/**
|
|
* Properties for creating a prefix list.
|
|
*/
|
|
export interface PrefixListProps extends PrefixListOptions {
|
|
/**
|
|
* The address family of the prefix list.
|
|
*
|
|
* @default AddressFamily.IP_V4
|
|
*/
|
|
readonly addressFamily?: AddressFamily;
|
|
/**
|
|
* The name of the prefix list.
|
|
*
|
|
* @default None
|
|
*
|
|
* @remarks
|
|
* It is not recommended to use an explicit name.
|
|
*/
|
|
readonly prefixListName?: string;
|
|
/**
|
|
* The list of entries for the prefix list.
|
|
*
|
|
* @default []
|
|
*/
|
|
readonly entries?: CfnPrefixList.EntryProperty[];
|
|
}
|
|
/**
|
|
* The base class for a prefix list
|
|
*/
|
|
declare abstract class PrefixListBase extends Resource implements IPrefixList {
|
|
/**
|
|
* The ID of the prefix list
|
|
*
|
|
* @attribute
|
|
*/
|
|
abstract readonly prefixListId: string;
|
|
/**
|
|
* The network connections associated with this resource.
|
|
*/
|
|
readonly connections: Connections;
|
|
/**
|
|
* Whether the rule can be inlined into a SecurityGroup or not
|
|
*/
|
|
readonly canInlineRule = false;
|
|
abstract readonly prefixListRef: PrefixListReference;
|
|
/**
|
|
* A unique identifier for this connection peer
|
|
*/
|
|
get uniqueId(): string;
|
|
/**
|
|
* Produce the ingress rule JSON for the given connection
|
|
*/
|
|
toIngressRuleConfig(): any;
|
|
/**
|
|
* Produce the egress rule JSON for the given connection
|
|
*/
|
|
toEgressRuleConfig(): any;
|
|
}
|
|
/**
|
|
* Properties for looking up an existing managed prefix list.
|
|
*/
|
|
export interface PrefixListLookupOptions {
|
|
/**
|
|
* The name of the managed prefix list.
|
|
*/
|
|
readonly prefixListName: string;
|
|
/**
|
|
* The ID of the AWS account that owns the managed prefix list.
|
|
*
|
|
* @default - Don't filter on ownerId
|
|
*/
|
|
readonly ownerId?: string;
|
|
/**
|
|
* The address family of the managed prefix list.
|
|
*
|
|
* @default - Don't filter on addressFamily
|
|
*/
|
|
readonly addressFamily?: AddressFamily;
|
|
}
|
|
/**
|
|
* A managed prefix list.
|
|
* @resource AWS::EC2::PrefixList
|
|
*/
|
|
export declare class PrefixList extends PrefixListBase {
|
|
/** Uniquely identifies this class. */
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
/**
|
|
* Look up prefix list by id.
|
|
*/
|
|
static fromPrefixListId(scope: Construct, id: string, prefixListId: string): IPrefixList;
|
|
/**
|
|
* Look up prefix list by name
|
|
*/
|
|
static fromLookup(scope: Construct, id: string, options: PrefixListLookupOptions): IPrefixList;
|
|
/**
|
|
* The ID of the prefix list
|
|
*
|
|
* @attribute
|
|
*/
|
|
readonly prefixListId: string;
|
|
/**
|
|
* The name of the prefix list
|
|
*
|
|
* @attribute
|
|
*/
|
|
readonly prefixListName: string;
|
|
/**
|
|
* The ARN of the prefix list
|
|
*
|
|
* @attribute
|
|
*/
|
|
readonly prefixListArn: string;
|
|
/**
|
|
* The owner ID of the prefix list
|
|
*
|
|
*/
|
|
readonly ownerId: string;
|
|
/**
|
|
* The version of the prefix list
|
|
*
|
|
*/
|
|
readonly version: number;
|
|
/**
|
|
* The address family of the prefix list
|
|
*
|
|
*/
|
|
readonly addressFamily: string;
|
|
constructor(scope: Construct, id: string, props?: PrefixListProps);
|
|
get prefixListRef(): PrefixListReference;
|
|
}
|
|
export {};
|