import { Construct } from 'constructs'; import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs'; import * as lambda from 'aws-cdk-lib/aws-lambda'; import { BasePathMapping, IDomainName, LambdaIntegration, RestApi } from 'aws-cdk-lib/aws-apigateway'; export interface ContactConstructProps { apiDomainName: IDomainName; } export class ContactConstruct extends Construct { constructor(scope: Construct, id: string, props: ContactConstructProps) { super(scope, id); const contactServiceRestApi = new RestApi(this, 'ContactService', { description: 'The ContactService rest api.' }); new BasePathMapping(this, 'ContactServiceMapping', { domainName: props.apiDomainName, restApi: contactServiceRestApi, basePath: 'contact' }); // contact endpoint const contactLambda = new NodejsFunction(this, 'Contact', { description: 'The lambda for the contact endpoint.', runtime: lambda.Runtime.NODEJS_24_X }); const contactIntegration = new LambdaIntegration(contactLambda); const contactResource = contactServiceRestApi.root.addResource('contact'); contactResource.addMethod('POST', contactIntegration); } }