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

@vicheey vicheey commented Jun 19, 2026

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::CapacityProvider
  Properties:
    LoggingConfig:
      LogGroup: !Ref ScalingLogs
      SystemLogLevel: 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 owner June 19, 2026 22:40
Comment thread samtranslator/internal/schema_source/sam-docs.json
Comment thread tests/translator/input/capacity_provider_telemetry_config.yaml
Comment thread samtranslator/internal/schema_source/aws_serverless_capacity_provider.py Outdated
Comment thread samtranslator/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

vicheey commented Jun 23, 2026

Copy link
Copy Markdown
Contributor Author

DO NOT MERGE YET.

aws-sam-tooling-bot[bot]

This comment was marked as resolved.

@aws-sam-tooling-bot aws-sam-tooling-bot Bot 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 develop Jul 22, 2026
9 checks passed
@vicheey
vicheey deleted the feat/telemetry-config branch July 22, 2026 19:41
Sign up for free to 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