cdk-serverless 3.2.1 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -0
- package/docs/constructs/assets/hierarchy.js +1 -1
- package/docs/constructs/assets/navigation.js +1 -1
- package/docs/constructs/assets/search.js +1 -1
- package/docs/constructs/classes/McpAuth.html +43 -0
- package/docs/constructs/classes/McpCognitoAuth.html +43 -0
- package/docs/constructs/classes/RestApi.html +6 -3
- package/docs/constructs/classes/SingleTableDatastore.html +1 -1
- package/docs/constructs/classes/Workflow.html +1 -1
- package/docs/constructs/hierarchy.html +1 -1
- package/docs/constructs/index.html +112 -1
- package/docs/constructs/interfaces/McpAuthCognitoOptions.html +17 -0
- package/docs/constructs/interfaces/McpAuthFunctions.html +14 -0
- package/docs/constructs/interfaces/McpAuthGenericOptions.html +11 -0
- package/docs/constructs/interfaces/McpAuthOptions.html +33 -0
- package/docs/constructs/interfaces/McpAuthProps.html +43 -0
- package/docs/constructs/interfaces/McpCognitoAuthProps.html +49 -0
- package/docs/constructs/interfaces/RestApiProps.html +24 -6
- package/docs/constructs/modules.html +1 -1
- package/docs/lambda/index.html +112 -1
- package/docs/projen/index.html +112 -1
- package/lib/constructs/index.d.ts +2 -0
- package/lib/constructs/index.js +3 -1
- package/lib/constructs/mcp-auth.d.ts +117 -0
- package/lib/constructs/mcp-auth.js +127 -0
- package/lib/constructs/mcp-cognito-auth.d.ts +110 -0
- package/lib/constructs/mcp-cognito-auth.js +76 -0
- package/lib/constructs/rest-api.d.ts +136 -0
- package/lib/constructs/rest-api.js +159 -1
- package/lib/mcp-auth/config.d.ts +39 -0
- package/lib/mcp-auth/config.js +3 -0
- package/lib/mcp-auth/handlers/authorization-server.d.ts +7 -0
- package/lib/mcp-auth/handlers/authorization-server.js +34 -0
- package/lib/mcp-auth/handlers/authorize.d.ts +8 -0
- package/lib/mcp-auth/handlers/authorize.js +32 -0
- package/lib/mcp-auth/handlers/index.d.ts +7 -0
- package/lib/mcp-auth/handlers/index.js +24 -0
- package/lib/mcp-auth/handlers/protected-resource.d.ts +7 -0
- package/lib/mcp-auth/handlers/protected-resource.js +26 -0
- package/lib/mcp-auth/handlers/register.d.ts +7 -0
- package/lib/mcp-auth/handlers/register.js +68 -0
- package/lib/mcp-auth/handlers/token.d.ts +8 -0
- package/lib/mcp-auth/handlers/token.js +74 -0
- package/lib/mcp-auth/handlers/types.d.ts +21 -0
- package/lib/mcp-auth/handlers/types.js +3 -0
- package/lib/mcp-auth/handlers/validate-redirect-uris.d.ts +10 -0
- package/lib/mcp-auth/handlers/validate-redirect-uris.js +22 -0
- package/lib/mcp-auth/index.d.ts +3 -0
- package/lib/mcp-auth/index.js +20 -0
- package/lib/mcp-auth/lambda-handlers/authorization-server.handler.d.ts +2 -0
- package/lib/mcp-auth/lambda-handlers/authorization-server.handler.js +23 -0
- package/lib/mcp-auth/lambda-handlers/authorize.handler.d.ts +2 -0
- package/lib/mcp-auth/lambda-handlers/authorize.handler.js +23 -0
- package/lib/mcp-auth/lambda-handlers/env-config.d.ts +7 -0
- package/lib/mcp-auth/lambda-handlers/env-config.js +37 -0
- package/lib/mcp-auth/lambda-handlers/protected-resource.handler.d.ts +2 -0
- package/lib/mcp-auth/lambda-handlers/protected-resource.handler.js +23 -0
- package/lib/mcp-auth/lambda-handlers/register.handler.d.ts +2 -0
- package/lib/mcp-auth/lambda-handlers/register.handler.js +23 -0
- package/lib/mcp-auth/lambda-handlers/token.handler.d.ts +2 -0
- package/lib/mcp-auth/lambda-handlers/token.handler.js +23 -0
- package/lib/mcp-auth/mcp/errors.d.ts +8 -0
- package/lib/mcp-auth/mcp/errors.js +20 -0
- package/lib/mcp-auth/mcp/index.d.ts +4 -0
- package/lib/mcp-auth/mcp/index.js +21 -0
- package/lib/mcp-auth/mcp/jsonrpc.d.ts +21 -0
- package/lib/mcp-auth/mcp/jsonrpc.js +56 -0
- package/lib/mcp-auth/mcp/server.d.ts +9 -0
- package/lib/mcp-auth/mcp/server.js +107 -0
- package/lib/mcp-auth/mcp/types.d.ts +32 -0
- package/lib/mcp-auth/mcp/types.js +3 -0
- package/llm.md +214 -0
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ It allows auto-generating routes based on the provided OpenAPI definition and pr
|
|
|
6
6
|
|
|
7
7
|
</div></div></section><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="paths"><span class="tsd-kind-type-parameter">PATHS</span></span><div class="tsd-comment tsd-typography"><p>The type definition for the API paths.</p>
|
|
8
8
|
</div></li><li><span id="ops"><span class="tsd-kind-type-parameter">OPS</span></span><div class="tsd-comment tsd-typography"><p>The type definition for the API operations.</p>
|
|
9
|
-
</div></li></ul></section><section class="tsd-panel tsd-hierarchy" data-refl="
|
|
9
|
+
</div></li></ul></section><section class="tsd-panel tsd-hierarchy" data-refl="628"><h4>Hierarchy (<a href="../hierarchy.html#RestApi">View Summary</a>)</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><a href="BaseApi.html" class="tsd-signature-type tsd-kind-class">BaseApi</a><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">RestApi</span></li></ul></li></ul></section><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
|
|
10
10
|
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#api" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api</span></a>
|
|
11
11
|
<a href="#apidomainname" class="tsd-index-link tsd-is-protected tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Domain<wbr/>Name?</span></a>
|
|
12
12
|
<a href="#apifqdn" class="tsd-index-link tsd-is-protected tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>FQDN?</span></a>
|
|
@@ -20,6 +20,7 @@ It allows auto-generating routes based on the provided OpenAPI definition and pr
|
|
|
20
20
|
<a href="#cleanupspec" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>cleanup<wbr/>Spec</span></a>
|
|
21
21
|
<a href="#getfunctionforoperation" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Function<wbr/>For<wbr/>Operation</span></a>
|
|
22
22
|
<a href="#getfunctions" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Functions</span></a>
|
|
23
|
+
<a href="#getmcpauth" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Mcp<wbr/>Auth</span></a>
|
|
23
24
|
<a href="#modifyoperationfunctions" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>modify<wbr/>Operation<wbr/>Functions</span></a>
|
|
24
25
|
<a href="#patchsecurity" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>patch<wbr/>Security</span></a>
|
|
25
26
|
<a href="#patchsecurityschemes" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>patch<wbr/>Security<wbr/>Schemes</span></a>
|
|
@@ -43,7 +44,9 @@ object reference), mutations after SpecRestApi construction still take effect.</
|
|
|
43
44
|
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">operationIds</span>: (<span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#ops">OPS</a>)<span class="tsd-signature-symbol">[]</span></span><div class="tsd-comment tsd-typography"><p>The operation IDs to add to the anonymous set.</p>
|
|
44
45
|
</div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="addcustomrestresource"><span>add<wbr/>Custom<wbr/>Rest<wbr/>Resource</span><a href="#addcustomrestresource" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="addcustomrestresource-1"><span class="tsd-kind-call-signature">addCustomRestResource</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">operation</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">OperationObject</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">method</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">description</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">additionalLambdaOptions</span><span class="tsd-signature-symbol">?:</span> <a href="../types/LambdaOptions.html" class="tsd-signature-type tsd-kind-type-alias">LambdaOptions</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span><a href="#addcustomrestresource-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">operation</span>: <span class="tsd-signature-type">OperationObject</span></span></li><li><span><span class="tsd-kind-parameter">method</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">description</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">additionalLambdaOptions</span>: <a href="../types/LambdaOptions.html" class="tsd-signature-type tsd-kind-type-alias">LambdaOptions</a><span class="tsd-signature-symbol"> = {}</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span></h4></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="addrestresource"><span>add<wbr/>Rest<wbr/>Resource</span><a href="#addrestresource" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="addrestresource-1"><span class="tsd-kind-call-signature">addRestResource</span><span class="tsd-signature-symbol"><</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#addrestresourcep">P</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#addrestresourcep">P</a><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">method</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#paths">PATHS</a><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#addrestresourcep">P</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span><a href="#addrestresource-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="addrestresourcep"><span class="tsd-kind-type-parameter">P</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">path</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#addrestresourcep">P</a></span></li><li><span><span class="tsd-kind-parameter">method</span>: <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#paths">PATHS</a><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#addrestresourcep">P</a><span class="tsd-signature-symbol">]</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span></h4></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><h3 class="tsd-anchor-link" id="cleanupspec"><code class="tsd-tag">Protected</code><span>cleanup<wbr/>Spec</span><a href="#cleanupspec" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class=""><div class="tsd-signature tsd-anchor-link" id="cleanupspec-1"><span class="tsd-kind-call-signature">cleanupSpec</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">spec</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">key</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]:</span> <span class="tsd-signature-type">any</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">key</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]:</span> <span class="tsd-signature-type">any</span> <span class="tsd-signature-symbol">}</span><a href="#cleanupspec-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">spec</span>: <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">key</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]:</span> <span class="tsd-signature-type">any</span> <span class="tsd-signature-symbol">}</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">key</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]:</span> <span class="tsd-signature-type">any</span> <span class="tsd-signature-symbol">}</span></h4></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getfunctionforoperation"><span>get<wbr/>Function<wbr/>For<wbr/>Operation</span><a href="#getfunctionforoperation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getfunctionforoperation-1"><span class="tsd-kind-call-signature">getFunctionForOperation</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">operationId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#ops">OPS</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a><a href="#getfunctionforoperation-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>return the generated Lambda function for the specified API operation</p>
|
|
45
46
|
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">operationId</span>: <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#ops">OPS</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a></h4></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getfunctions"><span>get<wbr/>Functions</span><a href="#getfunctions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getfunctions-1"><span class="tsd-kind-call-signature">getFunctions</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a><span class="tsd-signature-symbol">[]</span><a href="#getfunctions-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>return a list of all generated Lambda functions</p>
|
|
46
|
-
</div><h4 class="tsd-returns-title">Returns <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a><span class="tsd-signature-symbol">[]</span></h4></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="
|
|
47
|
+
</div><h4 class="tsd-returns-title">Returns <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a><span class="tsd-signature-symbol">[]</span></h4></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="getmcpauth"><span>get<wbr/>Mcp<wbr/>Auth</span><a href="#getmcpauth" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="getmcpauth-1"><span class="tsd-kind-call-signature">getMcpAuth</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="McpAuth.html" class="tsd-signature-type tsd-kind-class">McpAuth</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span><a href="#getmcpauth-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the MCP auth construct if mcpAuth was configured.
|
|
48
|
+
Useful for accessing the created Lambda functions or env vars.</p>
|
|
49
|
+
</div><h4 class="tsd-returns-title">Returns <a href="McpAuth.html" class="tsd-signature-type tsd-kind-class">McpAuth</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span></h4></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="modifyoperationfunctions"><span>modify<wbr/>Operation<wbr/>Functions</span><a href="#modifyoperationfunctions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="modifyoperationfunctions-1"><span class="tsd-kind-call-signature">modifyOperationFunctions</span><span class="tsd-signature-symbol">(</span><br/> <span class="tsd-kind-parameter">operationIds</span><span class="tsd-signature-symbol">:</span> (<span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#ops">OPS</a>)<span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">,</span><br/> <span class="tsd-kind-parameter">op</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">fn</span><span class="tsd-signature-symbol">:</span> <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#modifyoperationfunctions-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Visitor method to modify the given functions</p>
|
|
47
50
|
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">operationIds</span>: (<span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#ops">OPS</a>)<span class="tsd-signature-symbol">[]</span></span><div class="tsd-comment tsd-typography"><p>the list of functions to visit</p>
|
|
48
51
|
</div></li><li><span><span class="tsd-kind-parameter">op</span>: <span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">fn</span><span class="tsd-signature-symbol">:</span> <a href="LambdaFunction.html" class="tsd-signature-type tsd-kind-class">LambdaFunction</a><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=></span> <span class="tsd-signature-type">void</span></span><div class="tsd-comment tsd-typography"><p>the function to call for every function</p>
|
|
49
52
|
</div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><h3 class="tsd-anchor-link" id="patchsecurity"><code class="tsd-tag">Protected</code><span>patch<wbr/>Security</span><a href="#patchsecurity" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class=""><div class="tsd-signature tsd-anchor-link" id="patchsecurity-1"><span class="tsd-kind-call-signature">patchSecurity</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">spec</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">OpenAPI3</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#patchsecurity-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>AWS does not properly apply the 'security' option to every single path-method.
|
|
@@ -88,4 +91,4 @@ unpredictably. It is safest to avoid using <code>instanceof</code>, and using
|
|
|
88
91
|
this type-testing method instead.</p>
|
|
89
92
|
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">x</span>: <span class="tsd-signature-type">any</span></span><div class="tsd-comment tsd-typography"><p>Any object</p>
|
|
90
93
|
</div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-kind-parameter">x</span> <span class="tsd-signature-keyword">is</span> <span class="tsd-signature-type">Construct</span></h4><p>true if <code>x</code> is an object created from a class which extends <code>Construct</code>.</p>
|
|
91
|
-
<aside class="tsd-sources"><p>Inherited from <a href="BaseApi.html">BaseApi</a>.<a href="BaseApi.html#isconstruct">isConstruct</a></p></aside></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#api"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api</span></a><a href="#apidomainname" class="tsd-is-protected tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Domain<wbr/>Name</span></a><a href="#apifqdn" class="tsd-is-protected tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>FQDN</span></a><a href="#apihostname" class="tsd-is-protected tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Host<wbr/>Name</span></a><a href="#apispec"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Spec</span></a><a href="#hostedzone" class="tsd-is-protected tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>hosted<wbr/>Zone</span></a><a href="#node" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>node</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#addanonymousoperations"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Anonymous<wbr/>Operations</span></a><a href="#addcustomrestresource"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Custom<wbr/>Rest<wbr/>Resource</span></a><a href="#addrestresource"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Rest<wbr/>Resource</span></a><a href="#cleanupspec" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>cleanup<wbr/>Spec</span></a><a href="#getfunctionforoperation"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Function<wbr/>For<wbr/>Operation</span></a><a href="#getfunctions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Functions</span></a><a href="#modifyoperationfunctions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>modify<wbr/>Operation<wbr/>Functions</span></a><a href="#patchsecurity" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>patch<wbr/>Security</span></a><a href="#patchsecurityschemes" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>patch<wbr/>Security<wbr/>Schemes</span></a><a href="#setanonymousoperations"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Anonymous<wbr/>Operations</span></a><a href="#tostring" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>to<wbr/>String</span></a><a href="#with" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>with</span></a><a href="#isconstruct" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Construct</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">cdk-serverless</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
94
|
+
<aside class="tsd-sources"><p>Inherited from <a href="BaseApi.html">BaseApi</a>.<a href="BaseApi.html#isconstruct">isConstruct</a></p></aside></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#api"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api</span></a><a href="#apidomainname" class="tsd-is-protected tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Domain<wbr/>Name</span></a><a href="#apifqdn" class="tsd-is-protected tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>FQDN</span></a><a href="#apihostname" class="tsd-is-protected tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Host<wbr/>Name</span></a><a href="#apispec"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Spec</span></a><a href="#hostedzone" class="tsd-is-protected tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>hosted<wbr/>Zone</span></a><a href="#node" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>node</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#addanonymousoperations"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Anonymous<wbr/>Operations</span></a><a href="#addcustomrestresource"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Custom<wbr/>Rest<wbr/>Resource</span></a><a href="#addrestresource"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Rest<wbr/>Resource</span></a><a href="#cleanupspec" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>cleanup<wbr/>Spec</span></a><a href="#getfunctionforoperation"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Function<wbr/>For<wbr/>Operation</span></a><a href="#getfunctions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Functions</span></a><a href="#getmcpauth"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Mcp<wbr/>Auth</span></a><a href="#modifyoperationfunctions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>modify<wbr/>Operation<wbr/>Functions</span></a><a href="#patchsecurity" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>patch<wbr/>Security</span></a><a href="#patchsecurityschemes" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>patch<wbr/>Security<wbr/>Schemes</span></a><a href="#setanonymousoperations"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Anonymous<wbr/>Operations</span></a><a href="#tostring" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>to<wbr/>String</span></a><a href="#with" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>with</span></a><a href="#isconstruct" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Construct</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">cdk-serverless</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -4,7 +4,7 @@ It also supports point-in-time recovery and time-to-live attributes.</p>
|
|
|
4
4
|
</div><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example">Example<a href="#example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="ts"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">datastore</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">SingleTableDatastore</span><span class="hl-1">(</span><span class="hl-5">this</span><span class="hl-1">, </span><span class="hl-2">'MyDatastore'</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-4">design:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">primaryKey:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">partitionKey:</span><span class="hl-1"> </span><span class="hl-2">'PK'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">sortKey:</span><span class="hl-1"> </span><span class="hl-2">'SK'</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">globalIndexes:</span><span class="hl-1"> [</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">indexName:</span><span class="hl-1"> </span><span class="hl-2">'GSI1'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">partitionKey:</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'GSI1PK'</span><span class="hl-1">, </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">dynamodb</span><span class="hl-1">.</span><span class="hl-4">AttributeType</span><span class="hl-1">.</span><span class="hl-7">STRING</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">sortKey:</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'GSI1SK'</span><span class="hl-1">, </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">dynamodb</span><span class="hl-1">.</span><span class="hl-4">AttributeType</span><span class="hl-1">.</span><span class="hl-7">STRING</span><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> ],</span><br/><span class="hl-1"> </span><span class="hl-4">localIndexes:</span><span class="hl-1"> [</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">indexName:</span><span class="hl-1"> </span><span class="hl-2">'LSI1'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">sortKey:</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'LSI1SK'</span><span class="hl-1">, </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-4">dynamodb</span><span class="hl-1">.</span><span class="hl-4">AttributeType</span><span class="hl-1">.</span><span class="hl-7">STRING</span><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> ],</span><br/><span class="hl-1"> </span><span class="hl-4">timeToLiveAttribute:</span><span class="hl-1"> </span><span class="hl-2">'TTL'</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">encryption:</span><span class="hl-1"> </span><span class="hl-4">dynamodb</span><span class="hl-1">.</span><span class="hl-4">TableEncryption</span><span class="hl-1">.</span><span class="hl-7">AWS_MANAGED</span><span class="hl-1">,</span><br/><span class="hl-1">});</span>
|
|
5
5
|
</code><button type="button">Copy</button></pre>
|
|
6
6
|
|
|
7
|
-
</div></div></section><section class="tsd-panel tsd-hierarchy" data-refl="
|
|
7
|
+
</div></div></section><section class="tsd-panel tsd-hierarchy" data-refl="748"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Construct</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">SingleTableDatastore</span></li></ul></li></ul></section><section class="tsd-panel"><h4>Implements</h4><ul class="tsd-hierarchy"><li><a href="../interfaces/ISingleTableDatastore.html" class="tsd-signature-type tsd-kind-interface">ISingleTableDatastore</a></li></ul></section><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
|
|
8
8
|
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#node" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>node</span></a>
|
|
9
9
|
<a href="#table" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>table</span></a>
|
|
10
10
|
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="#tostring" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>to<wbr/>String</span></a>
|
|
@@ -4,7 +4,7 @@ various configurations for logging and tracing. It implements the IGrantable int
|
|
|
4
4
|
</div><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example">Example<a href="#example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="ts"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">workflow</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">Workflow</span><span class="hl-1">(</span><span class="hl-5">this</span><span class="hl-1">, </span><span class="hl-2">'MyWorkflow'</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-4">definitionFileName:</span><span class="hl-1"> </span><span class="hl-2">'path/to/definition.asl.json'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">stateMachineType:</span><span class="hl-1"> </span><span class="hl-4">sfn</span><span class="hl-1">.</span><span class="hl-4">StateMachineType</span><span class="hl-1">.</span><span class="hl-7">STANDARD</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">loggingConfiguration:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">level:</span><span class="hl-1"> </span><span class="hl-4">sfn</span><span class="hl-1">.</span><span class="hl-4">LogLevel</span><span class="hl-1">.</span><span class="hl-7">ALL</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">includeExecutionData:</span><span class="hl-1"> </span><span class="hl-5">true</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">destinations:</span><span class="hl-1"> [</span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-4">logs</span><span class="hl-1">.</span><span class="hl-0">LogGroup</span><span class="hl-1">(</span><span class="hl-5">this</span><span class="hl-1">, </span><span class="hl-2">'LogGroup'</span><span class="hl-1">)],</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">tracingConfiguration:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">enabled:</span><span class="hl-1"> </span><span class="hl-5">true</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">definitionSubstitutions:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">'${MyVariable}'</span><span class="hl-4">:</span><span class="hl-1"> </span><span class="hl-2">'MyValue'</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">lambdaFunction</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-4">lambda</span><span class="hl-1">.</span><span class="hl-0">Function</span><span class="hl-1">(</span><span class="hl-5">this</span><span class="hl-1">, </span><span class="hl-2">'MyFunction'</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-4">runtime:</span><span class="hl-1"> </span><span class="hl-4">lambda</span><span class="hl-1">.</span><span class="hl-4">Runtime</span><span class="hl-1">.</span><span class="hl-7">NODEJS_20_X</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">handler:</span><span class="hl-1"> </span><span class="hl-2">'index.handler'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">code:</span><span class="hl-1"> </span><span class="hl-4">lambda</span><span class="hl-1">.</span><span class="hl-4">Code</span><span class="hl-1">.</span><span class="hl-0">fromAsset</span><span class="hl-1">(</span><span class="hl-2">'lambda'</span><span class="hl-1">),</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-4">workflow</span><span class="hl-1">.</span><span class="hl-4">grantPrincipal</span><span class="hl-1">.</span><span class="hl-0">grantInvoke</span><span class="hl-1">(</span><span class="hl-4">lambdaFunction</span><span class="hl-1">);</span>
|
|
5
5
|
</code><button type="button">Copy</button></pre>
|
|
6
6
|
|
|
7
|
-
</div></div></section><section class="tsd-panel tsd-hierarchy" data-refl="
|
|
7
|
+
</div></div></section><section class="tsd-panel tsd-hierarchy" data-refl="778"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">Construct</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">Workflow</span></li></ul></li></ul></section><section class="tsd-panel"><h4>Implements</h4><ul class="tsd-hierarchy"><li><span class="tsd-signature-type">IGrantable</span></li></ul></section><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
|
|
8
8
|
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#grantprincipal" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>grant<wbr/>Principal</span></a>
|
|
9
9
|
<a href="#node" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>node</span></a>
|
|
10
10
|
<a href="#role" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>role</span></a>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>cdk-serverless</title><meta name="description" content="Documentation for cdk-serverless"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">cdk-serverless</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>cdk-serverless</h1></div><h2>Hierarchy Summary</h2><ul class="tsd-full-hierarchy"><li data-refl="89" id="BaseApi"><a href="classes/BaseApi.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BaseApi</a><ul><li data-refl="386" id="GraphQlApi"><a href="classes/GraphQlApi.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>GraphQlApi</a></li><li data-refl="
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>cdk-serverless</title><meta name="description" content="Documentation for cdk-serverless"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">cdk-serverless</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>cdk-serverless</h1></div><h2>Hierarchy Summary</h2><ul class="tsd-full-hierarchy"><li data-refl="89" id="BaseApi"><a href="classes/BaseApi.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BaseApi</a><ul><li data-refl="386" id="GraphQlApi"><a href="classes/GraphQlApi.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>GraphQlApi</a></li><li data-refl="628" id="RestApi"><a href="classes/RestApi.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>RestApi</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="73" id="BaseApiProps"><a href="interfaces/BaseApiProps.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BaseApiProps</a><ul><li data-refl="356" id="GraphQlApiProps"><a href="interfaces/GraphQlApiProps.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>GraphQlApiProps</a></li><li data-refl="601" id="RestApiProps"><a href="interfaces/RestApiProps.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>RestApiProps</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="22" id="ICognitoAuthentication"><a href="interfaces/ICognitoAuthentication.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ICognitoAuthentication</a><ul><li data-refl="49" id="CognitoAuthentication"><a href="classes/CognitoAuthentication.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>CognitoAuthentication</a></li></ul></li></ul><ul class="tsd-full-hierarchy"><li data-refl="734" id="ISingleTableDatastore"><a href="interfaces/ISingleTableDatastore.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ISingleTableDatastore</a><ul><li data-refl="748" id="SingleTableDatastore"><a href="classes/SingleTableDatastore.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>SingleTableDatastore</a></li></ul></li></ul></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">cdk-serverless</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -55,6 +55,117 @@
|
|
|
55
55
|
<pre><code class="typescript"><span class="hl-3">import</span><span class="hl-1"> { </span><span class="hl-4">IntegTestUtil</span><span class="hl-1"> } </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">'cdk-serverless/tests/integ-test-util'</span><span class="hl-1">;</span><br/><br/><span class="hl-6">// Initialize with your stack outputs</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">test</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">IntegTestUtil</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">region:</span><span class="hl-1"> </span><span class="hl-2">'us-east-1'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">apiOptions:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">baseURL:</span><span class="hl-1"> </span><span class="hl-2">'https://api.example.com'</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">authOptions:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">userPoolId:</span><span class="hl-1"> </span><span class="hl-2">'us-east-1_xxxxx'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">userPoolClientId:</span><span class="hl-1"> </span><span class="hl-2">'xxxxxxxx'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">identityPoolId:</span><span class="hl-1"> </span><span class="hl-2">'us-east-1:xxxxxxxx'</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">datastoreOptions:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">tableName:</span><span class="hl-1"> </span><span class="hl-2">'MyTable'</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-6">// Create and authenticate a test user</span><br/><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">test</span><span class="hl-1">.</span><span class="hl-0">createUser</span><span class="hl-1">(</span><span class="hl-2">'test@example.com'</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-2">'custom:attribute'</span><span class="hl-4">:</span><span class="hl-1"> </span><span class="hl-2">'value'</span><span class="hl-1">,</span><br/><span class="hl-1">}, [</span><span class="hl-2">'admin'</span><span class="hl-1">]);</span><br/><br/><span class="hl-6">// Get an authenticated API client</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">client</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">test</span><span class="hl-1">.</span><span class="hl-0">getAuthenticatedClient</span><span class="hl-1">(</span><span class="hl-2">'test@example.com'</span><span class="hl-1">);</span><br/><br/><span class="hl-6">// Make API calls</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">response</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">client</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-2">'/items'</span><span class="hl-1">);</span><br/><br/><span class="hl-6">// Clean up test data</span><br/><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">test</span><span class="hl-1">.</span><span class="hl-0">cleanupItems</span><span class="hl-1">();</span><br/><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">test</span><span class="hl-1">.</span><span class="hl-0">removeUser</span><span class="hl-1">(</span><span class="hl-2">'test@example.com'</span><span class="hl-1">);</span>
|
|
56
56
|
</code><button type="button">Copy</button></pre>
|
|
57
57
|
|
|
58
|
+
<h2 id="mcp-auth" class="tsd-anchor-link">MCP Auth<a href="#mcp-auth" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
59
|
+
<p>CDK Serverless includes built-in support for adding <a href="https://spec.modelcontextprotocol.io">Model Context Protocol (MCP)</a> OAuth authentication to your API. This enables MCP clients like Claude and ChatGPT to authenticate with your API using standard OAuth 2.0 flows.</p>
|
|
60
|
+
<p>When activated, the following endpoints are automatically added to your OpenAPI spec:</p>
|
|
61
|
+
<table>
|
|
62
|
+
<thead>
|
|
63
|
+
<tr>
|
|
64
|
+
<th>Endpoint</th>
|
|
65
|
+
<th>Method</th>
|
|
66
|
+
<th>RFC</th>
|
|
67
|
+
<th>Purpose</th>
|
|
68
|
+
</tr>
|
|
69
|
+
</thead>
|
|
70
|
+
<tbody>
|
|
71
|
+
<tr>
|
|
72
|
+
<td><code>/.well-known/oauth-protected-resource</code></td>
|
|
73
|
+
<td>GET</td>
|
|
74
|
+
<td>RFC 9728</td>
|
|
75
|
+
<td>Resource metadata discovery</td>
|
|
76
|
+
</tr>
|
|
77
|
+
<tr>
|
|
78
|
+
<td><code>/.well-known/oauth-authorization-server</code></td>
|
|
79
|
+
<td>GET</td>
|
|
80
|
+
<td>RFC 8414</td>
|
|
81
|
+
<td>Authorization server metadata</td>
|
|
82
|
+
</tr>
|
|
83
|
+
<tr>
|
|
84
|
+
<td><code>/oauth/authorize</code></td>
|
|
85
|
+
<td>GET</td>
|
|
86
|
+
<td>—</td>
|
|
87
|
+
<td>Authorize proxy (redirect to upstream)</td>
|
|
88
|
+
</tr>
|
|
89
|
+
<tr>
|
|
90
|
+
<td><code>/oauth/token</code></td>
|
|
91
|
+
<td>POST</td>
|
|
92
|
+
<td>—</td>
|
|
93
|
+
<td>Token proxy (forward to upstream)</td>
|
|
94
|
+
</tr>
|
|
95
|
+
<tr>
|
|
96
|
+
<td><code>/oauth/register</code></td>
|
|
97
|
+
<td>POST</td>
|
|
98
|
+
<td>RFC 7591</td>
|
|
99
|
+
<td>Dynamic client registration</td>
|
|
100
|
+
</tr>
|
|
101
|
+
</tbody>
|
|
102
|
+
</table>
|
|
103
|
+
<p>All MCP auth endpoints are anonymous (no API authorizer applied).</p>
|
|
104
|
+
<h3 id="with-cognito" class="tsd-anchor-link">With Cognito<a href="#with-cognito" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
105
|
+
<p>MCP clients like Claude enforce that all OAuth endpoints (discovery, authorize, token, register) live on the <strong>same origin</strong> as the API itself. Cognito's hosted UI lives on a different domain (<code>auth.example.com</code>), so MCP clients cannot talk to it directly. Additionally:</p>
|
|
106
|
+
<ul>
|
|
107
|
+
<li>Cognito Managed Login v2 requires the RFC 8707 <code>resource</code> parameter for custom scopes in authorize requests — MCP clients do not send this parameter.</li>
|
|
108
|
+
<li>MCP clients construct the token endpoint URL from the OAuth metadata <code>issuer</code> field rather than using the explicit <code>token_endpoint</code> — so the token exchange must be proxied through the API domain.</li>
|
|
109
|
+
<li>Dynamic Client Registration (RFC 7591) is not natively supported by Cognito.</li>
|
|
110
|
+
</ul>
|
|
111
|
+
<p>The MCP auth proxy solves all three problems: it serves discovery metadata on the API domain, strips unsupported parameters before forwarding to Cognito, and implements a simplified registration endpoint that returns a pre-provisioned client ID.</p>
|
|
112
|
+
<p>If your API already uses <code>CognitoAuthentication</code>, add MCP auth with minimal config — a dedicated user pool client is created automatically:</p>
|
|
113
|
+
<pre><code class="typescript"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">api</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">TestApiRestApi</span><span class="hl-1">(</span><span class="hl-5">this</span><span class="hl-1">, </span><span class="hl-2">'Api'</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-4">stageName:</span><span class="hl-1"> </span><span class="hl-2">'dev'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">domainName:</span><span class="hl-1"> </span><span class="hl-2">'example.com'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">apiHostname:</span><span class="hl-1"> </span><span class="hl-2">'api'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">authentication:</span><span class="hl-1"> </span><span class="hl-4">cognitoAuth</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">cors:</span><span class="hl-1"> </span><span class="hl-5">true</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">mcpAuth:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">cognito:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">auth:</span><span class="hl-1"> </span><span class="hl-4">cognitoAuth</span><span class="hl-1">, </span><span class="hl-6">// your CognitoAuthentication construct</span><br/><span class="hl-1"> </span><span class="hl-4">authDomain:</span><span class="hl-1"> </span><span class="hl-2">'auth.example.com'</span><span class="hl-1">, </span><span class="hl-6">// Cognito custom/hosted domain (required)</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">serverInfo:</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'my-mcp-server'</span><span class="hl-1">, </span><span class="hl-4">version:</span><span class="hl-1"> </span><span class="hl-2">'1.0.0'</span><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">});</span>
|
|
114
|
+
</code><button type="button">Copy</button></pre>
|
|
115
|
+
|
|
116
|
+
<p>The <code>apiDomain</code> is derived from the RestApi's own domain config (<code>apiHostname</code> + <code>domainName</code>), and <code>stageName</code> is reused — no duplication needed.</p>
|
|
117
|
+
<h3 id="with-any-oauth2-provider" class="tsd-anchor-link">With any OAuth2 provider<a href="#with-any-oauth2-provider" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
118
|
+
<p>For non-Cognito providers, use <code>generic</code> mode with explicit endpoint URLs:</p>
|
|
119
|
+
<pre><code class="typescript"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">api</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">TestApiRestApi</span><span class="hl-1">(</span><span class="hl-5">this</span><span class="hl-1">, </span><span class="hl-2">'Api'</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-6">// ...</span><br/><span class="hl-1"> </span><span class="hl-4">mcpAuth:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">generic:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">authorizeEndpoint:</span><span class="hl-1"> </span><span class="hl-2">'https://auth.example.com/authorize'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">tokenEndpoint:</span><span class="hl-1"> </span><span class="hl-2">'https://auth.example.com/token'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">clientId:</span><span class="hl-1"> </span><span class="hl-2">'my-pre-provisioned-client-id'</span><span class="hl-1">,</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">serverInfo:</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'my-mcp-server'</span><span class="hl-1">, </span><span class="hl-4">version:</span><span class="hl-1"> </span><span class="hl-2">'1.0.0'</span><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">});</span>
|
|
120
|
+
</code><button type="button">Copy</button></pre>
|
|
121
|
+
|
|
122
|
+
<h3 id="configuration-options" class="tsd-anchor-link">Configuration options<a href="#configuration-options" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
123
|
+
<table>
|
|
124
|
+
<thead>
|
|
125
|
+
<tr>
|
|
126
|
+
<th>Option</th>
|
|
127
|
+
<th>Default</th>
|
|
128
|
+
<th>Description</th>
|
|
129
|
+
</tr>
|
|
130
|
+
</thead>
|
|
131
|
+
<tbody>
|
|
132
|
+
<tr>
|
|
133
|
+
<td><code>serverInfo</code></td>
|
|
134
|
+
<td>(required)</td>
|
|
135
|
+
<td><code>{ name, version }</code> returned in MCP initialize</td>
|
|
136
|
+
</tr>
|
|
137
|
+
<tr>
|
|
138
|
+
<td><code>allowedRedirectUris</code></td>
|
|
139
|
+
<td>Claude + ChatGPT callbacks</td>
|
|
140
|
+
<td>Allowlist for dynamic registration</td>
|
|
141
|
+
</tr>
|
|
142
|
+
<tr>
|
|
143
|
+
<td><code>protocolVersions</code></td>
|
|
144
|
+
<td><code>['2025-11-25', '2025-03-26', '2024-11-05']</code></td>
|
|
145
|
+
<td>Supported MCP versions</td>
|
|
146
|
+
</tr>
|
|
147
|
+
<tr>
|
|
148
|
+
<td><code>scopes</code></td>
|
|
149
|
+
<td><code>['openid', 'email', 'profile']</code></td>
|
|
150
|
+
<td>Advertised OAuth scopes</td>
|
|
151
|
+
</tr>
|
|
152
|
+
<tr>
|
|
153
|
+
<td><code>stripParameters</code></td>
|
|
154
|
+
<td><code>['resource']</code></td>
|
|
155
|
+
<td>Params stripped from authorize/token proxying</td>
|
|
156
|
+
</tr>
|
|
157
|
+
<tr>
|
|
158
|
+
<td><code>lambdaOptions</code></td>
|
|
159
|
+
<td>—</td>
|
|
160
|
+
<td>Lambda config for MCP auth handlers</td>
|
|
161
|
+
</tr>
|
|
162
|
+
</tbody>
|
|
163
|
+
</table>
|
|
164
|
+
<h3 id="mcp-server-runtime" class="tsd-anchor-link">MCP Server runtime<a href="#mcp-server-runtime" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
165
|
+
<p>The <code>cdk-serverless/mcp-auth</code> module also exports a JSON-RPC server for implementing the MCP tool endpoint itself:</p>
|
|
166
|
+
<pre><code class="typescript"><span class="hl-3">import</span><span class="hl-1"> { </span><span class="hl-4">createMcpServer</span><span class="hl-1"> } </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">'cdk-serverless/mcp-auth'</span><span class="hl-1">;</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">server</span><span class="hl-1"> = </span><span class="hl-0">createMcpServer</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-4">serverInfo:</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'my-server'</span><span class="hl-1">, </span><span class="hl-4">version:</span><span class="hl-1"> </span><span class="hl-2">'1.0.0'</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">protocolVersions:</span><span class="hl-1"> [</span><span class="hl-2">'2025-11-25'</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-4">resolver:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">async</span><span class="hl-1"> </span><span class="hl-0">resolve</span><span class="hl-1">(</span><span class="hl-4">headers</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-6">// Validate Bearer token, return principal or throw McpUnauthorizedError</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">token</span><span class="hl-1"> = </span><span class="hl-4">headers</span><span class="hl-1">.</span><span class="hl-4">authorization</span><span class="hl-1">?.</span><span class="hl-0">replace</span><span class="hl-1">(</span><span class="hl-2">'Bearer '</span><span class="hl-1">, </span><span class="hl-2">''</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">if</span><span class="hl-1"> (!</span><span class="hl-4">token</span><span class="hl-1">) </span><span class="hl-3">throw</span><span class="hl-1"> </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">McpUnauthorizedError</span><span class="hl-1">(</span><span class="hl-2">'Bearer'</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">return</span><span class="hl-1"> </span><span class="hl-0">verifyToken</span><span class="hl-1">(</span><span class="hl-4">token</span><span class="hl-1">);</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">tools:</span><span class="hl-1"> [</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">'search'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">description:</span><span class="hl-1"> </span><span class="hl-2">'Search documents'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">inputSchema:</span><span class="hl-1"> { </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-2">'object'</span><span class="hl-1">, </span><span class="hl-4">properties:</span><span class="hl-1"> { </span><span class="hl-4">query:</span><span class="hl-1"> { </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-2">'string'</span><span class="hl-1"> } } },</span><br/><span class="hl-1"> </span><span class="hl-5">async</span><span class="hl-1"> </span><span class="hl-0">invoke</span><span class="hl-1">(</span><span class="hl-4">principal</span><span class="hl-1">, </span><span class="hl-4">args</span><span class="hl-1">) {</span><br/><span class="hl-1"> </span><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">results</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-0">search</span><span class="hl-1">(</span><span class="hl-4">principal</span><span class="hl-1">, (</span><span class="hl-4">args</span><span class="hl-1"> </span><span class="hl-3">as</span><span class="hl-1"> </span><span class="hl-8">any</span><span class="hl-1">).</span><span class="hl-4">query</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-3">return</span><span class="hl-1"> { </span><span class="hl-4">content:</span><span class="hl-1"> [{ </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-2">'text'</span><span class="hl-1">, </span><span class="hl-4">text:</span><span class="hl-1"> </span><span class="hl-7">JSON</span><span class="hl-1">.</span><span class="hl-0">stringify</span><span class="hl-1">(</span><span class="hl-4">results</span><span class="hl-1">) }] };</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> ],</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-6">// In your Lambda handler:</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-7">response</span><span class="hl-1"> = </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">server</span><span class="hl-1">.</span><span class="hl-0">handle</span><span class="hl-1">(</span><span class="hl-4">parsedBody</span><span class="hl-1">, </span><span class="hl-4">event</span><span class="hl-1">.</span><span class="hl-4">headers</span><span class="hl-1">);</span>
|
|
167
|
+
</code><button type="button">Copy</button></pre>
|
|
168
|
+
|
|
58
169
|
<h2 id="breaking-change-removed" class="tsd-anchor-link">Breaking Change: <code>axios</code> Removed<a href="#breaking-change-removed" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
59
170
|
<p>CDK Serverless no longer depends on <code>axios</code>. The library now uses the
|
|
60
171
|
platform-native <code>fetch</code> API (stable in Node.js 18+; the Lambda functions
|
|
@@ -136,4 +247,4 @@ issue.</p>
|
|
|
136
247
|
</ul>
|
|
137
248
|
<h2 id="authors" class="tsd-anchor-link">Authors<a href="#authors" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
138
249
|
<p>Brought to you by <a href="https://taimos.de">Taimos</a></p>
|
|
139
|
-
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#cdk-serverless"><span>CDK <wbr/>Serverless</span></a><ul><li><ul><li><a href="#features"><span>Features</span></a></li></ul></li><li><a href="#quick-start"><span>Quick <wbr/>Start</span></a></li><li><ul><li><a href="#adding-projen-constructs"><span>Adding projen constructs</span></a></li><li><a href="#using-the-cdk-serverless-l3-constructs"><span>Using the <wbr/>CDK serverless <wbr/>L3 constructs</span></a></li></ul></li><li><a href="#testing-utilities"><span>Testing <wbr/>Utilities</span></a></li><li><ul><li><a href="#lambdatestutil"><span>Lambda<wbr/>Test<wbr/>Util</span></a></li><li><ul><li><a href="#rest-api-testing"><span>REST <wbr/>API <wbr/>Testing</span></a></li><li><a href="#graphql-testing"><span>Graph<wbr/>QL <wbr/>Testing</span></a></li></ul></li><li><a href="#integtestutil"><span>Integ<wbr/>Test<wbr/>Util</span></a></li></ul></li><li><a href="#breaking-change-removed"><span>Breaking <wbr/>Change: <wbr/>Removed</span></a></li><li><ul><li><a href="#impact-on-lambda-handlers-"><span>Impact on <wbr/>Lambda handlers ()</span></a></li><li><a href="#impact-on-"><span>Impact on ()</span></a></li></ul></li><li><a href="#contribute"><span>Contribute</span></a></li><li><ul><li><a href="#how-to-contribute-to-cdk-serverless"><span>How to contribute to <wbr/>CDK <wbr/>Serverless</span></a></li><li><ul><li><a href="#did-you-find-a-bug"><span>Did you find a bug?</span></a></li><li><a href="#did-you-write-a-patch-that-fixes-a-bug"><span>Did you write a patch that fixes a bug?</span></a></li><li><a href="#did-you-fix-whitespace-format-code-or-make-a-purely-cosmetic-patch"><span>Did you fix whitespace, format code, or make a purely cosmetic patch?</span></a></li><li><a href="#do-you-intend-to-add-a-new-feature-or-change-an-existing-one"><span>Do you intend to add a new feature or change an existing one?</span></a></li><li><a href="#do-you-want-to-contribute-to-the-cdk-serverless-documentation"><span>Do you want to contribute to the <wbr/>CDK <wbr/>Serverless documentation?</span></a></li></ul></li></ul></li><li><a href="#authors"><span>Authors</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">cdk-serverless</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
250
|
+
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#cdk-serverless"><span>CDK <wbr/>Serverless</span></a><ul><li><ul><li><a href="#features"><span>Features</span></a></li></ul></li><li><a href="#quick-start"><span>Quick <wbr/>Start</span></a></li><li><ul><li><a href="#adding-projen-constructs"><span>Adding projen constructs</span></a></li><li><a href="#using-the-cdk-serverless-l3-constructs"><span>Using the <wbr/>CDK serverless <wbr/>L3 constructs</span></a></li></ul></li><li><a href="#testing-utilities"><span>Testing <wbr/>Utilities</span></a></li><li><ul><li><a href="#lambdatestutil"><span>Lambda<wbr/>Test<wbr/>Util</span></a></li><li><ul><li><a href="#rest-api-testing"><span>REST <wbr/>API <wbr/>Testing</span></a></li><li><a href="#graphql-testing"><span>Graph<wbr/>QL <wbr/>Testing</span></a></li></ul></li><li><a href="#integtestutil"><span>Integ<wbr/>Test<wbr/>Util</span></a></li></ul></li><li><a href="#mcp-auth"><span>MCP <wbr/>Auth</span></a></li><li><ul><li><a href="#with-cognito"><span>With <wbr/>Cognito</span></a></li><li><a href="#with-any-oauth2-provider"><span>With any <wbr/>O<wbr/>Auth2 provider</span></a></li><li><a href="#configuration-options"><span>Configuration options</span></a></li><li><a href="#mcp-server-runtime"><span>MCP <wbr/>Server runtime</span></a></li></ul></li><li><a href="#breaking-change-removed"><span>Breaking <wbr/>Change: <wbr/>Removed</span></a></li><li><ul><li><a href="#impact-on-lambda-handlers-"><span>Impact on <wbr/>Lambda handlers ()</span></a></li><li><a href="#impact-on-"><span>Impact on ()</span></a></li></ul></li><li><a href="#contribute"><span>Contribute</span></a></li><li><ul><li><a href="#how-to-contribute-to-cdk-serverless"><span>How to contribute to <wbr/>CDK <wbr/>Serverless</span></a></li><li><ul><li><a href="#did-you-find-a-bug"><span>Did you find a bug?</span></a></li><li><a href="#did-you-write-a-patch-that-fixes-a-bug"><span>Did you write a patch that fixes a bug?</span></a></li><li><a href="#did-you-fix-whitespace-format-code-or-make-a-purely-cosmetic-patch"><span>Did you fix whitespace, format code, or make a purely cosmetic patch?</span></a></li><li><a href="#do-you-intend-to-add-a-new-feature-or-change-an-existing-one"><span>Do you intend to add a new feature or change an existing one?</span></a></li><li><a href="#do-you-want-to-contribute-to-the-cdk-serverless-documentation"><span>Do you want to contribute to the <wbr/>CDK <wbr/>Serverless documentation?</span></a></li></ul></li></ul></li><li><a href="#authors"><span>Authors</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">cdk-serverless</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|