cdk-internal-gateway
Version:
CDK construct to create to create internal serverless applications.
75 lines (74 loc) • 2.69 kB
TypeScript
import { aws_apigateway as apigateway, aws_ec2 as ec2, aws_elasticloadbalancingv2 as elb, aws_route53 as route53 } from "aws-cdk-lib";
import { IVpc, SubnetSelection } from "aws-cdk-lib/aws-ec2";
import { Construct } from "constructs";
/**
* Properties for InternalService
*/
export interface InternalServiceProps {
/**
* VPC attached to the application load balancer.
*/
readonly vpc: IVpc;
/**
* Subnets attached to the application load balancer.
*/
readonly subnetSelection: SubnetSelection;
/**
* VPC endpoint ip addresses attached to the load balancer`s target group
*/
readonly vpcEndpointIPAddresses: Array<string>;
/**
* List of alternative domains attached to the solution.
*/
readonly subjectAlternativeNames: string[];
/**
* Subdomain attached to hosted zone name.
*/
readonly subDomain: string;
/**
* Hosted zone that will be used for the custom domain.
*/
readonly hostedZone: route53.IHostedZone;
/**
* SSLPolicy attached to the load balancer listener.
*
* @default elb.SslPolicy.FORWARD_SECRECY_TLS12_RES_GCM
*/
readonly loadBalancerListenerSSLPolicy?: elb.SslPolicy;
/**
* SSLPolicy attached to the apigateway custom domain.
*
* @default apigateway.SslPolicy.TLS_1_2
*/
readonly customDomainSSLPolicy?: apigateway.SecurityPolicy;
/**
* Use a custom security group used for the load balancer.
* By default, a security group will be created with inbound access to the typical private network CIDR ranges 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 and port 443.
* Any inbound access (0.0.0.0/0) is blocked by default to follow AWS best practices for security.
* Outbound traffic is allowed to all destinations.
*/
readonly loadBalancerSecurityGroup?: ec2.ISecurityGroup;
/**
* Enable or disable access logs for the load balancer to follow AWS best practices for security.
*
* @default true
*/
readonly enableLoadBalancerAccessLogs?: boolean;
/**
* Add load balancer redirect from port 80 to 443.
*
* @default true
*/
readonly addLoadBalancerRedirect?: boolean;
}
export declare class InternalService extends Construct {
/**
* List of domains created by the internal service stack and shared with the api gateway stack.
*/
readonly domains: apigateway.IDomainName[];
/**
* The application load balancer created by the internal service stack.
*/
readonly applicationLoadBalancer: elb.ApplicationLoadBalancer;
constructor(scope: Construct, id: string, props: InternalServiceProps);
}