Parameters: MyDomainName: Type: String Default: another-example.com MyDomainCert: Type: String Default: another-api-arn Globals: Api: Domain: CertificateArn: !Ref MyDomainCert Resources: MyFunction: Type: AWS::Serverless::Function Properties: InlineCode: | exports.handler = async (event) => { const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response; }; Handler: index.handler Runtime: nodejs12.x Events: Api: Type: Api Properties: RestApiId: !Ref MyApi Method: Put Path: /get Fetch: Type: Api Properties: RestApiId: !Ref MyApi Method: Post Path: /fetch Fetch2: Type: Api Properties: RestApiId: !Ref MyApiMissingCertificateArn Method: Post Path: /fetch ImplicitGet: Type: Api Properties: Method: Post Path: /implicit MyApi: Type: AWS::Serverless::Api Properties: OpenApiVersion: 3.0.1 StageName: Prod Domain: DomainName: api-example.com CertificateArn: my-api-cert-arn EndpointConfiguration: Invalid BasePath: [/get, /fetch] MyApiMissingCertificateArn: Type: AWS::Serverless::Api Properties: OpenApiVersion: 3.0.1 StageName: Prod Domain: DomainName: api-example.com CertificateArn: MyApiInvalidDomainType: Type: AWS::Serverless::Api Properties: OpenApiVersion: 3.0.1 StageName: Prod Domain: !Ref MyDomainName # this should be a map after solution MyApiWithIncorrectBasePathItemType: Type: AWS::Serverless::Api Properties: OpenApiVersion: 3.0.1 StageName: Prod Domain: DomainName: api-example.com CertificateArn: my-api-cert-arn BasePath: - 3 # this should not be a number