Skip to content

Add apiConfig to aws.api#tagEnabled for renamed tagging operations#3130

Open
taylorlo-aws wants to merge 3 commits into
smithy-lang:mainfrom
taylorlo-aws:tag-enabled-apiconfig
Open

Add apiConfig to aws.api#tagEnabled for renamed tagging operations#3130
taylorlo-aws wants to merge 3 commits into
smithy-lang:mainfrom
taylorlo-aws:tag-enabled-apiconfig

Conversation

@taylorlo-aws
Copy link
Copy Markdown

Background

  • What do these changes do?

Allow services that model tagging via non-default operation names (e.g., AddTagsToResource instead of TagResource) to keep validation and tag discovery on. The new TaggableServiceApiConfig structure has three optional ShapeID slots (tagApi, untagApi, listTagsApi); each unset slot falls back to the default-named operation. Resource-level apiConfig still wins over service-level for resource-bound resolution.

AwsTagIndex now resolves the per-service tagging op slots via the service-level apiConfig before falling back to default-named lookups. A new TagEnabledServiceValidator check warns when an apiConfig override coexists with the default-named operation in the service operations list, so modelers either drop the override or remove the dead op.

  • Why are they important?

Services like RDS use service level tagging operations that are not named the default. This change allows the usage of tagEnabled to semantically associate these non-standard tagging APIs in the model so that consumers can find them while still applying the existing validation.

Testing

  • How did you test these changes?

All existing model test cases pass; this change is backwards compatible. New model test cases were added to validate the new override + fallback behavior.

Links

  • Links to additional context, if necessary

N/A

  • Issue #, if applicable (see here for a list of keywords to use for linking issues)

N/A


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

Allow services that model tagging via non-default operation names (e.g.,
AddTagsToResource instead of TagResource) to keep validation and tag
discovery on. The new TaggableServiceApiConfig structure has three
optional ShapeID slots (tagApi, untagApi, listTagsApi); each unset slot
falls back to the default-named operation. Resource-level apiConfig
still wins over service-level for resource-bound resolution.

AwsTagIndex now resolves the per-service tagging op slots via the
service-level apiConfig before falling back to default-named lookups.
A new TagEnabledServiceValidator check warns when an apiConfig override
coexists with the default-named operation in the service operations
list, so modelers either drop the override or remove the dead op.
@taylorlo-aws taylorlo-aws requested a review from a team as a code owner May 15, 2026 18:39
@taylorlo-aws taylorlo-aws requested a review from yefrig May 15, 2026 18:39
…e402c1e5.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Comment thread .changes/next-release/feature-d0d9dd98dfc2595a63c97eca17c24604e402c1e5.json Outdated
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.

2 participants