Skip to content

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider - #3943

Merged
vicheey merged 5 commits into
developfrom
feat/telemetry-config
Jul 22, 2026
Merged

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider#3943
vicheey merged 5 commits into
developfrom
feat/telemetry-config

Conversation

@vicheey

Copy link
Copy Markdown
Contributor

Issue #, if available

N/A — Feature paritfor AWS::Serverless::CapacityProvider TelemetryConfig support following AWS::Lambda::CapacityProvider CapacityProviderTelemetryConfig - AWS CloudFormation

Description of changes

Add LoggingConfig property to AWS::Serverless::CapacityProvider. SAM flattens CFN's TelemetryConfig.LoggingConfig wrapper to a top-level LoggingConfig property, consistent with how AWS::Serverless::Function already exposes LoggingConfig.

Customer experience:

MyCP:
Type: AWS::Serverless::CapacityProviderProperties:
LoggingConfig:
LogGroup: !Ref ScalingLogsSystemLogLevel: DEBUG

CFN output:

"TelemetryConfig": {
"LoggingConfig": {
"LogGroup": {"Ref": "ScalingLogs"},
"SystemLogLevel": "DEBUG"
}
}

Changes:

  • Schema source: LoggingConfig Pydantic model with PassThroughProperty fields (supports !Ref)
  • Translator model: LoggingConfig property on SamCapacityProvider
  • Generator: wraps LoggingConfig into {"TelemetryConfig": {"LoggingConfig": ...}}
  • Globals: LoggingConfig added to CapacityProvider globals (supports deep merge inheritance)
  • CFN resource: TelemetryConfig property on LambdaCapacityProvider

Description of how you validated changes

  • make schema — regenerated JSON schemas from Pydantic models
  • make format — all files formatted
  • python3 -m pytest tests/translator/test_translator.py -k "capacity_provider_telemetry_config" — 3 passed (aws, aws-cn, aws-us-gov partitions)
  • python3 -m pytest tests/schema/test_validate_schema.py -k "capacity_provider_telemetry" — 1 passed (schema validation of input template)
  • ruff check — all checks passed
  • mypy --strict — no issues in 177 files
  • cfn-lint — clean
  • Full test suite: 4506 passed, 6 pre-existing failures (SAR plugin timing + region config)

Checklist

Examples?

Please reach out in the comments if you want to add an example. Examples will be
added to sam init through aws/aws-sam-cli-app-templates.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.


SAM flattens CFN's TelemetryConfig.LoggingConfig to a top-level
LoggingConfig property, matching Function's existing pattern.
Generator wraps into {TelemetryConfig: {LoggingConfig: ...}} for CFN.
@vicheey
vicheey marked this pull request as ready for review June 19, 2026 22:40
@vicheey
vicheey requested a review from a team as a code ownerJune 19, 2026 22:40
Comment threadsamtranslator/internal/schema_source/sam-docs.json
Comment threadsamtranslator/internal/schema_source/aws_serverless_capacity_provider.py Outdated
Comment threadsamtranslator/schema/schema.json
…tom class
Updated cloudformation.schema.json to include TelemetryConfig definition.
LoggingConfig now references AWS::Lambda::CapacityProvider.CapacityProviderLoggingConfig
directly from the CFN schema, resolving schema naming ambiguity with Function's LoggingConfig.
@vicheey

Copy link
Copy Markdown
ContributorAuthor

DO NOT MERGE YET.

aws-sam-tooling-bot[bot]

This comment was marked as resolved.

@aws-sam-tooling-botaws-sam-tooling-botBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Results

Reviewed: ab044ba..e60af86
Files: 12 (skipped 5 large auto-generated schema/docs files that mirror the primary output)
Comments: 1


Comments on lines outside the diff:

[tests/translator/output/error_global_capacity_provider_unsupported.json:8][BUG] Both the errorMessage string (line 8) and the corresponding _autoGeneratedBreakdownErrorMessage array element (line 7) have a malformed value list — the closing single quote before the ] is missing:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags]

It should be:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags']

This value is produced by an f-string in samtranslator/plugins/globals/globals.py (line 326: f"Must be one of the following values - {supported_displayed}") where supported_displayed is a Python list of strings — str(list) would always emit balanced quotes, so the expected output cannot legitimately contain an unclosed '. tests/translator/test_translator.py::test_transform_invalid_document does an exact == comparison against expected["errorMessage"] (line 524), so this file will not match the actual translator output. The prior bot comment about inconsistency between line 7 and line 8 was addressed by copying the same typo to both lines rather than fixing it. Please restore the closing quote in both places (re-running the transform-test-error-json-format.py formatter after fixing errorMessage will regenerate the breakdown correctly).

@vicheey
vicheey enabled auto-merge (squash) July 22, 2026 19:33
@vicheey
vicheey merged commit c43bcbf into developJul 22, 2026
9 checks passed
@vicheey
vicheey deleted the feat/telemetry-config branch July 22, 2026 19:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vicheey@seshubaws@licjun
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider by vicheey · Pull Request #3943 · aws/serverless-application-model · GitHub
Skip to content

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider - #3943

Merged
vicheey merged 5 commits into
developfrom
feat/telemetry-config
Jul 22, 2026
Merged

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider#3943
vicheey merged 5 commits into
developfrom
feat/telemetry-config

Conversation

@vicheey

Copy link
Copy Markdown
Contributor

Issue #, if available

N/A — Feature paritfor AWS::Serverless::CapacityProvider TelemetryConfig support following AWS::Lambda::CapacityProvider CapacityProviderTelemetryConfig - AWS CloudFormation

Description of changes

Add LoggingConfig property to AWS::Serverless::CapacityProvider. SAM flattens CFN's TelemetryConfig.LoggingConfig wrapper to a top-level LoggingConfig property, consistent with how AWS::Serverless::Function already exposes LoggingConfig.

Customer experience:

MyCP:
Type: AWS::Serverless::CapacityProviderProperties:
LoggingConfig:
LogGroup: !Ref ScalingLogsSystemLogLevel: DEBUG

CFN output:

"TelemetryConfig": {
"LoggingConfig": {
"LogGroup": {"Ref": "ScalingLogs"},
"SystemLogLevel": "DEBUG"
}
}

Changes:

  • Schema source: LoggingConfig Pydantic model with PassThroughProperty fields (supports !Ref)
  • Translator model: LoggingConfig property on SamCapacityProvider
  • Generator: wraps LoggingConfig into {"TelemetryConfig": {"LoggingConfig": ...}}
  • Globals: LoggingConfig added to CapacityProvider globals (supports deep merge inheritance)
  • CFN resource: TelemetryConfig property on LambdaCapacityProvider

Description of how you validated changes

  • make schema — regenerated JSON schemas from Pydantic models
  • make format — all files formatted
  • python3 -m pytest tests/translator/test_translator.py -k "capacity_provider_telemetry_config" — 3 passed (aws, aws-cn, aws-us-gov partitions)
  • python3 -m pytest tests/schema/test_validate_schema.py -k "capacity_provider_telemetry" — 1 passed (schema validation of input template)
  • ruff check — all checks passed
  • mypy --strict — no issues in 177 files
  • cfn-lint — clean
  • Full test suite: 4506 passed, 6 pre-existing failures (SAR plugin timing + region config)

Checklist

Examples?

Please reach out in the comments if you want to add an example. Examples will be
added to sam init through aws/aws-sam-cli-app-templates.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.


SAM flattens CFN's TelemetryConfig.LoggingConfig to a top-level
LoggingConfig property, matching Function's existing pattern.
Generator wraps into {TelemetryConfig: {LoggingConfig: ...}} for CFN.
@vicheey
vicheey marked this pull request as ready for review June 19, 2026 22:40
@vicheey
vicheey requested a review from a team as a code ownerJune 19, 2026 22:40
Comment threadsamtranslator/internal/schema_source/sam-docs.json
Comment threadsamtranslator/internal/schema_source/aws_serverless_capacity_provider.py Outdated
Comment threadsamtranslator/schema/schema.json
…tom class
Updated cloudformation.schema.json to include TelemetryConfig definition.
LoggingConfig now references AWS::Lambda::CapacityProvider.CapacityProviderLoggingConfig
directly from the CFN schema, resolving schema naming ambiguity with Function's LoggingConfig.
@vicheey

Copy link
Copy Markdown
ContributorAuthor

DO NOT MERGE YET.

aws-sam-tooling-bot[bot]

This comment was marked as resolved.

@aws-sam-tooling-botaws-sam-tooling-botBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Results

Reviewed: ab044ba..e60af86
Files: 12 (skipped 5 large auto-generated schema/docs files that mirror the primary output)
Comments: 1


Comments on lines outside the diff:

[tests/translator/output/error_global_capacity_provider_unsupported.json:8][BUG] Both the errorMessage string (line 8) and the corresponding _autoGeneratedBreakdownErrorMessage array element (line 7) have a malformed value list — the closing single quote before the ] is missing:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags]

It should be:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags']

This value is produced by an f-string in samtranslator/plugins/globals/globals.py (line 326: f"Must be one of the following values - {supported_displayed}") where supported_displayed is a Python list of strings — str(list) would always emit balanced quotes, so the expected output cannot legitimately contain an unclosed '. tests/translator/test_translator.py::test_transform_invalid_document does an exact == comparison against expected["errorMessage"] (line 524), so this file will not match the actual translator output. The prior bot comment about inconsistency between line 7 and line 8 was addressed by copying the same typo to both lines rather than fixing it. Please restore the closing quote in both places (re-running the transform-test-error-json-format.py formatter after fixing errorMessage will regenerate the breakdown correctly).

@vicheey
vicheey enabled auto-merge (squash) July 22, 2026 19:33
@vicheey
vicheey merged commit c43bcbf into developJul 22, 2026
9 checks passed
@vicheey
vicheey deleted the feat/telemetry-config branch July 22, 2026 19:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vicheey@seshubaws@licjun
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider by vicheey · Pull Request #3943 · aws/serverless-application-model · GitHub
Skip to content

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider - #3943

Merged
vicheey merged 5 commits into
developfrom
feat/telemetry-config
Jul 22, 2026
Merged

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider#3943
vicheey merged 5 commits into
developfrom
feat/telemetry-config

Conversation

@vicheey

Copy link
Copy Markdown
Contributor

Issue #, if available

N/A — Feature paritfor AWS::Serverless::CapacityProvider TelemetryConfig support following AWS::Lambda::CapacityProvider CapacityProviderTelemetryConfig - AWS CloudFormation

Description of changes

Add LoggingConfig property to AWS::Serverless::CapacityProvider. SAM flattens CFN's TelemetryConfig.LoggingConfig wrapper to a top-level LoggingConfig property, consistent with how AWS::Serverless::Function already exposes LoggingConfig.

Customer experience:

MyCP:
Type: AWS::Serverless::CapacityProviderProperties:
LoggingConfig:
LogGroup: !Ref ScalingLogsSystemLogLevel: DEBUG

CFN output:

"TelemetryConfig": {
"LoggingConfig": {
"LogGroup": {"Ref": "ScalingLogs"},
"SystemLogLevel": "DEBUG"
}
}

Changes:

  • Schema source: LoggingConfig Pydantic model with PassThroughProperty fields (supports !Ref)
  • Translator model: LoggingConfig property on SamCapacityProvider
  • Generator: wraps LoggingConfig into {"TelemetryConfig": {"LoggingConfig": ...}}
  • Globals: LoggingConfig added to CapacityProvider globals (supports deep merge inheritance)
  • CFN resource: TelemetryConfig property on LambdaCapacityProvider

Description of how you validated changes

  • make schema — regenerated JSON schemas from Pydantic models
  • make format — all files formatted
  • python3 -m pytest tests/translator/test_translator.py -k "capacity_provider_telemetry_config" — 3 passed (aws, aws-cn, aws-us-gov partitions)
  • python3 -m pytest tests/schema/test_validate_schema.py -k "capacity_provider_telemetry" — 1 passed (schema validation of input template)
  • ruff check — all checks passed
  • mypy --strict — no issues in 177 files
  • cfn-lint — clean
  • Full test suite: 4506 passed, 6 pre-existing failures (SAR plugin timing + region config)

Checklist

Examples?

Please reach out in the comments if you want to add an example. Examples will be
added to sam init through aws/aws-sam-cli-app-templates.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.


SAM flattens CFN's TelemetryConfig.LoggingConfig to a top-level
LoggingConfig property, matching Function's existing pattern.
Generator wraps into {TelemetryConfig: {LoggingConfig: ...}} for CFN.
@vicheey
vicheey marked this pull request as ready for review June 19, 2026 22:40
@vicheey
vicheey requested a review from a team as a code ownerJune 19, 2026 22:40
Comment threadsamtranslator/internal/schema_source/sam-docs.json
Comment threadsamtranslator/internal/schema_source/aws_serverless_capacity_provider.py Outdated
Comment threadsamtranslator/schema/schema.json
…tom class
Updated cloudformation.schema.json to include TelemetryConfig definition.
LoggingConfig now references AWS::Lambda::CapacityProvider.CapacityProviderLoggingConfig
directly from the CFN schema, resolving schema naming ambiguity with Function's LoggingConfig.
@vicheey

Copy link
Copy Markdown
ContributorAuthor

DO NOT MERGE YET.

aws-sam-tooling-bot[bot]

This comment was marked as resolved.

@aws-sam-tooling-botaws-sam-tooling-botBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Results

Reviewed: ab044ba..e60af86
Files: 12 (skipped 5 large auto-generated schema/docs files that mirror the primary output)
Comments: 1


Comments on lines outside the diff:

[tests/translator/output/error_global_capacity_provider_unsupported.json:8][BUG] Both the errorMessage string (line 8) and the corresponding _autoGeneratedBreakdownErrorMessage array element (line 7) have a malformed value list — the closing single quote before the ] is missing:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags]

It should be:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags']

This value is produced by an f-string in samtranslator/plugins/globals/globals.py (line 326: f"Must be one of the following values - {supported_displayed}") where supported_displayed is a Python list of strings — str(list) would always emit balanced quotes, so the expected output cannot legitimately contain an unclosed '. tests/translator/test_translator.py::test_transform_invalid_document does an exact == comparison against expected["errorMessage"] (line 524), so this file will not match the actual translator output. The prior bot comment about inconsistency between line 7 and line 8 was addressed by copying the same typo to both lines rather than fixing it. Please restore the closing quote in both places (re-running the transform-test-error-json-format.py formatter after fixing errorMessage will regenerate the breakdown correctly).

@vicheey
vicheey enabled auto-merge (squash) July 22, 2026 19:33
@vicheey
vicheey merged commit c43bcbf into developJul 22, 2026
9 checks passed
@vicheey
vicheey deleted the feat/telemetry-config branch July 22, 2026 19:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vicheey@seshubaws@licjun
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider by vicheey · Pull Request #3943 · aws/serverless-application-model · GitHub
Skip to content

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider - #3943

Merged
vicheey merged 5 commits into
developfrom
feat/telemetry-config
Jul 22, 2026
Merged

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider#3943
vicheey merged 5 commits into
developfrom
feat/telemetry-config

Conversation

@vicheey

Copy link
Copy Markdown
Contributor

Issue #, if available

N/A — Feature paritfor AWS::Serverless::CapacityProvider TelemetryConfig support following AWS::Lambda::CapacityProvider CapacityProviderTelemetryConfig - AWS CloudFormation

Description of changes

Add LoggingConfig property to AWS::Serverless::CapacityProvider. SAM flattens CFN's TelemetryConfig.LoggingConfig wrapper to a top-level LoggingConfig property, consistent with how AWS::Serverless::Function already exposes LoggingConfig.

Customer experience:

MyCP:
Type: AWS::Serverless::CapacityProviderProperties:
LoggingConfig:
LogGroup: !Ref ScalingLogsSystemLogLevel: DEBUG

CFN output:

"TelemetryConfig": {
"LoggingConfig": {
"LogGroup": {"Ref": "ScalingLogs"},
"SystemLogLevel": "DEBUG"
}
}

Changes:

  • Schema source: LoggingConfig Pydantic model with PassThroughProperty fields (supports !Ref)
  • Translator model: LoggingConfig property on SamCapacityProvider
  • Generator: wraps LoggingConfig into {"TelemetryConfig": {"LoggingConfig": ...}}
  • Globals: LoggingConfig added to CapacityProvider globals (supports deep merge inheritance)
  • CFN resource: TelemetryConfig property on LambdaCapacityProvider

Description of how you validated changes

  • make schema — regenerated JSON schemas from Pydantic models
  • make format — all files formatted
  • python3 -m pytest tests/translator/test_translator.py -k "capacity_provider_telemetry_config" — 3 passed (aws, aws-cn, aws-us-gov partitions)
  • python3 -m pytest tests/schema/test_validate_schema.py -k "capacity_provider_telemetry" — 1 passed (schema validation of input template)
  • ruff check — all checks passed
  • mypy --strict — no issues in 177 files
  • cfn-lint — clean
  • Full test suite: 4506 passed, 6 pre-existing failures (SAR plugin timing + region config)

Checklist

Examples?

Please reach out in the comments if you want to add an example. Examples will be
added to sam init through aws/aws-sam-cli-app-templates.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.


SAM flattens CFN's TelemetryConfig.LoggingConfig to a top-level
LoggingConfig property, matching Function's existing pattern.
Generator wraps into {TelemetryConfig: {LoggingConfig: ...}} for CFN.
@vicheey
vicheey marked this pull request as ready for review June 19, 2026 22:40
@vicheey
vicheey requested a review from a team as a code ownerJune 19, 2026 22:40
Comment threadsamtranslator/internal/schema_source/sam-docs.json
Comment threadsamtranslator/internal/schema_source/aws_serverless_capacity_provider.py Outdated
Comment threadsamtranslator/schema/schema.json
…tom class
Updated cloudformation.schema.json to include TelemetryConfig definition.
LoggingConfig now references AWS::Lambda::CapacityProvider.CapacityProviderLoggingConfig
directly from the CFN schema, resolving schema naming ambiguity with Function's LoggingConfig.
@vicheey

Copy link
Copy Markdown
ContributorAuthor

DO NOT MERGE YET.

aws-sam-tooling-bot[bot]

This comment was marked as resolved.

@aws-sam-tooling-botaws-sam-tooling-botBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Results

Reviewed: ab044ba..e60af86
Files: 12 (skipped 5 large auto-generated schema/docs files that mirror the primary output)
Comments: 1


Comments on lines outside the diff:

[tests/translator/output/error_global_capacity_provider_unsupported.json:8][BUG] Both the errorMessage string (line 8) and the corresponding _autoGeneratedBreakdownErrorMessage array element (line 7) have a malformed value list — the closing single quote before the ] is missing:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags]

It should be:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags']

This value is produced by an f-string in samtranslator/plugins/globals/globals.py (line 326: f"Must be one of the following values - {supported_displayed}") where supported_displayed is a Python list of strings — str(list) would always emit balanced quotes, so the expected output cannot legitimately contain an unclosed '. tests/translator/test_translator.py::test_transform_invalid_document does an exact == comparison against expected["errorMessage"] (line 524), so this file will not match the actual translator output. The prior bot comment about inconsistency between line 7 and line 8 was addressed by copying the same typo to both lines rather than fixing it. Please restore the closing quote in both places (re-running the transform-test-error-json-format.py formatter after fixing errorMessage will regenerate the breakdown correctly).

@vicheey
vicheey enabled auto-merge (squash) July 22, 2026 19:33
@vicheey
vicheey merged commit c43bcbf into developJul 22, 2026
9 checks passed
@vicheey
vicheey deleted the feat/telemetry-config branch July 22, 2026 19:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vicheey@seshubaws@licjun
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider by vicheey · Pull Request #3943 · aws/serverless-application-model · GitHub
Skip to content

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider - #3943

Merged
vicheey merged 5 commits into
developfrom
feat/telemetry-config
Jul 22, 2026
Merged

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider#3943
vicheey merged 5 commits into
developfrom
feat/telemetry-config

Conversation

@vicheey

Copy link
Copy Markdown
Contributor

Issue #, if available

N/A — Feature paritfor AWS::Serverless::CapacityProvider TelemetryConfig support following AWS::Lambda::CapacityProvider CapacityProviderTelemetryConfig - AWS CloudFormation

Description of changes

Add LoggingConfig property to AWS::Serverless::CapacityProvider. SAM flattens CFN's TelemetryConfig.LoggingConfig wrapper to a top-level LoggingConfig property, consistent with how AWS::Serverless::Function already exposes LoggingConfig.

Customer experience:

MyCP:
Type: AWS::Serverless::CapacityProviderProperties:
LoggingConfig:
LogGroup: !Ref ScalingLogsSystemLogLevel: DEBUG

CFN output:

"TelemetryConfig": {
"LoggingConfig": {
"LogGroup": {"Ref": "ScalingLogs"},
"SystemLogLevel": "DEBUG"
}
}

Changes:

  • Schema source: LoggingConfig Pydantic model with PassThroughProperty fields (supports !Ref)
  • Translator model: LoggingConfig property on SamCapacityProvider
  • Generator: wraps LoggingConfig into {"TelemetryConfig": {"LoggingConfig": ...}}
  • Globals: LoggingConfig added to CapacityProvider globals (supports deep merge inheritance)
  • CFN resource: TelemetryConfig property on LambdaCapacityProvider

Description of how you validated changes

  • make schema — regenerated JSON schemas from Pydantic models
  • make format — all files formatted
  • python3 -m pytest tests/translator/test_translator.py -k "capacity_provider_telemetry_config" — 3 passed (aws, aws-cn, aws-us-gov partitions)
  • python3 -m pytest tests/schema/test_validate_schema.py -k "capacity_provider_telemetry" — 1 passed (schema validation of input template)
  • ruff check — all checks passed
  • mypy --strict — no issues in 177 files
  • cfn-lint — clean
  • Full test suite: 4506 passed, 6 pre-existing failures (SAR plugin timing + region config)

Checklist

Examples?

Please reach out in the comments if you want to add an example. Examples will be
added to sam init through aws/aws-sam-cli-app-templates.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.


SAM flattens CFN's TelemetryConfig.LoggingConfig to a top-level
LoggingConfig property, matching Function's existing pattern.
Generator wraps into {TelemetryConfig: {LoggingConfig: ...}} for CFN.
@vicheey
vicheey marked this pull request as ready for review June 19, 2026 22:40
@vicheey
vicheey requested a review from a team as a code ownerJune 19, 2026 22:40
Comment threadsamtranslator/internal/schema_source/sam-docs.json
Comment threadsamtranslator/internal/schema_source/aws_serverless_capacity_provider.py Outdated
Comment threadsamtranslator/schema/schema.json
…tom class
Updated cloudformation.schema.json to include TelemetryConfig definition.
LoggingConfig now references AWS::Lambda::CapacityProvider.CapacityProviderLoggingConfig
directly from the CFN schema, resolving schema naming ambiguity with Function's LoggingConfig.
@vicheey

Copy link
Copy Markdown
ContributorAuthor

DO NOT MERGE YET.

aws-sam-tooling-bot[bot]

This comment was marked as resolved.

@aws-sam-tooling-botaws-sam-tooling-botBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Results

Reviewed: ab044ba..e60af86
Files: 12 (skipped 5 large auto-generated schema/docs files that mirror the primary output)
Comments: 1


Comments on lines outside the diff:

[tests/translator/output/error_global_capacity_provider_unsupported.json:8][BUG] Both the errorMessage string (line 8) and the corresponding _autoGeneratedBreakdownErrorMessage array element (line 7) have a malformed value list — the closing single quote before the ] is missing:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags]

It should be:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags']

This value is produced by an f-string in samtranslator/plugins/globals/globals.py (line 326: f"Must be one of the following values - {supported_displayed}") where supported_displayed is a Python list of strings — str(list) would always emit balanced quotes, so the expected output cannot legitimately contain an unclosed '. tests/translator/test_translator.py::test_transform_invalid_document does an exact == comparison against expected["errorMessage"] (line 524), so this file will not match the actual translator output. The prior bot comment about inconsistency between line 7 and line 8 was addressed by copying the same typo to both lines rather than fixing it. Please restore the closing quote in both places (re-running the transform-test-error-json-format.py formatter after fixing errorMessage will regenerate the breakdown correctly).

@vicheey
vicheey enabled auto-merge (squash) July 22, 2026 19:33
@vicheey
vicheey merged commit c43bcbf into developJul 22, 2026
9 checks passed
@vicheey
vicheey deleted the feat/telemetry-config branch July 22, 2026 19:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vicheey@seshubaws@licjun
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider by vicheey · Pull Request #3943 · aws/serverless-application-model · GitHub
Skip to content

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider - #3943

Merged
vicheey merged 5 commits into
developfrom
feat/telemetry-config
Jul 22, 2026
Merged

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider#3943
vicheey merged 5 commits into
developfrom
feat/telemetry-config

Conversation

@vicheey

Copy link
Copy Markdown
Contributor

Issue #, if available

N/A — Feature paritfor AWS::Serverless::CapacityProvider TelemetryConfig support following AWS::Lambda::CapacityProvider CapacityProviderTelemetryConfig - AWS CloudFormation

Description of changes

Add LoggingConfig property to AWS::Serverless::CapacityProvider. SAM flattens CFN's TelemetryConfig.LoggingConfig wrapper to a top-level LoggingConfig property, consistent with how AWS::Serverless::Function already exposes LoggingConfig.

Customer experience:

MyCP:
Type: AWS::Serverless::CapacityProviderProperties:
LoggingConfig:
LogGroup: !Ref ScalingLogsSystemLogLevel: DEBUG

CFN output:

"TelemetryConfig": {
"LoggingConfig": {
"LogGroup": {"Ref": "ScalingLogs"},
"SystemLogLevel": "DEBUG"
}
}

Changes:

  • Schema source: LoggingConfig Pydantic model with PassThroughProperty fields (supports !Ref)
  • Translator model: LoggingConfig property on SamCapacityProvider
  • Generator: wraps LoggingConfig into {"TelemetryConfig": {"LoggingConfig": ...}}
  • Globals: LoggingConfig added to CapacityProvider globals (supports deep merge inheritance)
  • CFN resource: TelemetryConfig property on LambdaCapacityProvider

Description of how you validated changes

  • make schema — regenerated JSON schemas from Pydantic models
  • make format — all files formatted
  • python3 -m pytest tests/translator/test_translator.py -k "capacity_provider_telemetry_config" — 3 passed (aws, aws-cn, aws-us-gov partitions)
  • python3 -m pytest tests/schema/test_validate_schema.py -k "capacity_provider_telemetry" — 1 passed (schema validation of input template)
  • ruff check — all checks passed
  • mypy --strict — no issues in 177 files
  • cfn-lint — clean
  • Full test suite: 4506 passed, 6 pre-existing failures (SAR plugin timing + region config)

Checklist

Examples?

Please reach out in the comments if you want to add an example. Examples will be
added to sam init through aws/aws-sam-cli-app-templates.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.


SAM flattens CFN's TelemetryConfig.LoggingConfig to a top-level
LoggingConfig property, matching Function's existing pattern.
Generator wraps into {TelemetryConfig: {LoggingConfig: ...}} for CFN.
@vicheey
vicheey marked this pull request as ready for review June 19, 2026 22:40
@vicheey
vicheey requested a review from a team as a code ownerJune 19, 2026 22:40
Comment threadsamtranslator/internal/schema_source/sam-docs.json
Comment threadsamtranslator/internal/schema_source/aws_serverless_capacity_provider.py Outdated
Comment threadsamtranslator/schema/schema.json
…tom class
Updated cloudformation.schema.json to include TelemetryConfig definition.
LoggingConfig now references AWS::Lambda::CapacityProvider.CapacityProviderLoggingConfig
directly from the CFN schema, resolving schema naming ambiguity with Function's LoggingConfig.
@vicheey

Copy link
Copy Markdown
ContributorAuthor

DO NOT MERGE YET.

aws-sam-tooling-bot[bot]

This comment was marked as resolved.

@aws-sam-tooling-botaws-sam-tooling-botBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Results

Reviewed: ab044ba..e60af86
Files: 12 (skipped 5 large auto-generated schema/docs files that mirror the primary output)
Comments: 1


Comments on lines outside the diff:

[tests/translator/output/error_global_capacity_provider_unsupported.json:8][BUG] Both the errorMessage string (line 8) and the corresponding _autoGeneratedBreakdownErrorMessage array element (line 7) have a malformed value list — the closing single quote before the ] is missing:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags]

It should be:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags']

This value is produced by an f-string in samtranslator/plugins/globals/globals.py (line 326: f"Must be one of the following values - {supported_displayed}") where supported_displayed is a Python list of strings — str(list) would always emit balanced quotes, so the expected output cannot legitimately contain an unclosed '. tests/translator/test_translator.py::test_transform_invalid_document does an exact == comparison against expected["errorMessage"] (line 524), so this file will not match the actual translator output. The prior bot comment about inconsistency between line 7 and line 8 was addressed by copying the same typo to both lines rather than fixing it. Please restore the closing quote in both places (re-running the transform-test-error-json-format.py formatter after fixing errorMessage will regenerate the breakdown correctly).

@vicheey
vicheey enabled auto-merge (squash) July 22, 2026 19:33
@vicheey
vicheey merged commit c43bcbf into developJul 22, 2026
9 checks passed
@vicheey
vicheey deleted the feat/telemetry-config branch July 22, 2026 19:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vicheey@seshubaws@licjun
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider by vicheey · Pull Request #3943 · aws/serverless-application-model · GitHub
Skip to content

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider - #3943

Merged
vicheey merged 5 commits into
developfrom
feat/telemetry-config
Jul 22, 2026
Merged

feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider#3943
vicheey merged 5 commits into
developfrom
feat/telemetry-config

Conversation

@vicheey

Copy link
Copy Markdown
Contributor

Issue #, if available

N/A — Feature paritfor AWS::Serverless::CapacityProvider TelemetryConfig support following AWS::Lambda::CapacityProvider CapacityProviderTelemetryConfig - AWS CloudFormation

Description of changes

Add LoggingConfig property to AWS::Serverless::CapacityProvider. SAM flattens CFN's TelemetryConfig.LoggingConfig wrapper to a top-level LoggingConfig property, consistent with how AWS::Serverless::Function already exposes LoggingConfig.

Customer experience:

MyCP:
Type: AWS::Serverless::CapacityProviderProperties:
LoggingConfig:
LogGroup: !Ref ScalingLogsSystemLogLevel: DEBUG

CFN output:

"TelemetryConfig": {
"LoggingConfig": {
"LogGroup": {"Ref": "ScalingLogs"},
"SystemLogLevel": "DEBUG"
}
}

Changes:

  • Schema source: LoggingConfig Pydantic model with PassThroughProperty fields (supports !Ref)
  • Translator model: LoggingConfig property on SamCapacityProvider
  • Generator: wraps LoggingConfig into {"TelemetryConfig": {"LoggingConfig": ...}}
  • Globals: LoggingConfig added to CapacityProvider globals (supports deep merge inheritance)
  • CFN resource: TelemetryConfig property on LambdaCapacityProvider

Description of how you validated changes

  • make schema — regenerated JSON schemas from Pydantic models
  • make format — all files formatted
  • python3 -m pytest tests/translator/test_translator.py -k "capacity_provider_telemetry_config" — 3 passed (aws, aws-cn, aws-us-gov partitions)
  • python3 -m pytest tests/schema/test_validate_schema.py -k "capacity_provider_telemetry" — 1 passed (schema validation of input template)
  • ruff check — all checks passed
  • mypy --strict — no issues in 177 files
  • cfn-lint — clean
  • Full test suite: 4506 passed, 6 pre-existing failures (SAR plugin timing + region config)

Checklist

Examples?

Please reach out in the comments if you want to add an example. Examples will be
added to sam init through aws/aws-sam-cli-app-templates.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.


SAM flattens CFN's TelemetryConfig.LoggingConfig to a top-level
LoggingConfig property, matching Function's existing pattern.
Generator wraps into {TelemetryConfig: {LoggingConfig: ...}} for CFN.
@vicheey
vicheey marked this pull request as ready for review June 19, 2026 22:40
@vicheey
vicheey requested a review from a team as a code ownerJune 19, 2026 22:40
Comment threadsamtranslator/internal/schema_source/sam-docs.json
Comment threadsamtranslator/internal/schema_source/aws_serverless_capacity_provider.py Outdated
Comment threadsamtranslator/schema/schema.json
…tom class
Updated cloudformation.schema.json to include TelemetryConfig definition.
LoggingConfig now references AWS::Lambda::CapacityProvider.CapacityProviderLoggingConfig
directly from the CFN schema, resolving schema naming ambiguity with Function's LoggingConfig.
@vicheey

Copy link
Copy Markdown
ContributorAuthor

DO NOT MERGE YET.

aws-sam-tooling-bot[bot]

This comment was marked as resolved.

@aws-sam-tooling-botaws-sam-tooling-botBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Results

Reviewed: ab044ba..e60af86
Files: 12 (skipped 5 large auto-generated schema/docs files that mirror the primary output)
Comments: 1


Comments on lines outside the diff:

[tests/translator/output/error_global_capacity_provider_unsupported.json:8][BUG] Both the errorMessage string (line 8) and the corresponding _autoGeneratedBreakdownErrorMessage array element (line 7) have a malformed value list — the closing single quote before the ] is missing:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags]

It should be:

... 'PropagateTags', 'LoggingConfig', 'ManagedResourceTags']

This value is produced by an f-string in samtranslator/plugins/globals/globals.py (line 326: f"Must be one of the following values - {supported_displayed}") where supported_displayed is a Python list of strings — str(list) would always emit balanced quotes, so the expected output cannot legitimately contain an unclosed '. tests/translator/test_translator.py::test_transform_invalid_document does an exact == comparison against expected["errorMessage"] (line 524), so this file will not match the actual translator output. The prior bot comment about inconsistency between line 7 and line 8 was addressed by copying the same typo to both lines rather than fixing it. Please restore the closing quote in both places (re-running the transform-test-error-json-format.py formatter after fixing errorMessage will regenerate the breakdown correctly).

@vicheey
vicheey enabled auto-merge (squash) July 22, 2026 19:33
@vicheey
vicheey merged commit c43bcbf into developJul 22, 2026
9 checks passed
@vicheey
vicheey deleted the feat/telemetry-config branch July 22, 2026 19:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vicheey@seshubaws@licjun