Uh oh!
There was an error while loading. Please reload this page.
feat(capacity-provider): add LoggingConfig for AWS::Serverless::CapacityProvider - #3943
Conversation
SAM flattens CFN's TelemetryConfig.LoggingConfig to a top-level
LoggingConfig property, matching Function's existing pattern.
Generator wraps into {TelemetryConfig: {LoggingConfig: ...}} for CFN.Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…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
commented
Jun 23, 2026
DO NOT MERGE YET. |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
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).
Uh oh!
There was an error while loading. Please reload this page.
Issue #, if available
N/A — Feature paritfor
AWS::Serverless::CapacityProviderTelemetryConfig support following AWS::Lambda::CapacityProvider CapacityProviderTelemetryConfig - AWS CloudFormationDescription of changes
Add
LoggingConfigproperty toAWS::Serverless::CapacityProvider. SAM flattens CFN'sTelemetryConfig.LoggingConfigwrapper to a top-levelLoggingConfigproperty, consistent with howAWS::Serverless::Functionalready exposesLoggingConfig.Customer experience:
CFN output:
Changes:
LoggingConfigPydantic model withPassThroughPropertyfields (supports!Ref)LoggingConfigproperty onSamCapacityProviderLoggingConfiginto{"TelemetryConfig": {"LoggingConfig": ...}}LoggingConfigadded to CapacityProvider globals (supports deep merge inheritance)TelemetryConfigproperty onLambdaCapacityProviderDescription of how you validated changes
make schema— regenerated JSON schemas from Pydantic modelsmake format— all files formattedpython3 -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 passedmypy --strict— no issues in 177 filescfn-lint— cleanChecklist
Examples?
Please reach out in the comments if you want to add an example. Examples will be
added to
sam initthrough 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.