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.
…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.
|
DO NOT MERGE YET. |
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).
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.