aws-cloudformation / aws-cloudformation/cloudformation-coverage-roadmap

[AWS::ServiceCatalogAppRegistry::Application] - [BUG] - Updating tags with CloudControl fails always

Open
#2,128 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
No language data
Stars
1.1k
Forks
62
PR merge metrics
No merged PRs in 30d

Description

### Name of the resource

AWS::ServiceCatalogAppRegistry::Application

### Resource Name

_No response_

### Issue Description

Updates to the tags of the `AWS::ServiceCatalogAppRegistry::Application` resource always fail with CloudControl because it includes AWS reserved tags in the request to the underlying service.
When creating a `AWS::ServiceCatalogAppRegistry::Application` the ServiceCatalogAppRegistry service automatically adds a tag with the name `aws:servicecatalog:applicationName` to the resource.

The update requests are failing with this error message:
`An error occurred (ValidationException) when calling the UpdateResource operation: aws: prefixed tag key names are not allowed for external use`.

### Expected Behavior

```sh
~ aws cloudcontrol create-resource --type-name AWS::ServiceCatalogAppRegistry::Application \
--desired-state '{"Name": "Repro", "Tags": { "my-key": "my-val" }}'

~ aws cloudcontrol get-resource --type-name AWS::ServiceCatalogAppRegistry::Application \
--identifier Repro | jq '(.ResourceDescription.Properties | fromjson).Tags'
{
"my-key": "my-val",
"aws:servicecatalog:applicationName": "Repro"
}

~ aws cloudcontrol update-resource --type-name AWS::ServiceCatalogAppRegistry::Application --identifier Repro \
--patch-document '[{"op": "replace", "path": "Tags", "value": { "my-key": "other-val" }}]'

~ aws cloudcontrol get-resource --type-name AWS::ServiceCatalogAppRegistry::Application \
--identifier Repro | jq '(.ResourceDescription.Properties | fromjson).Tags'
{
"my-key": "other-val", # <-- only the specified key changes
"aws:servicecatalog:applicationName": "Repro"
}
```

### Observed Behavior

```sh
~ aws cloudcontrol create-resource --type-name AWS::ServiceCatalogAppRegistry::Application \
--desired-state '{"Name": "Repro", "Tags": { "my-key": "my-val" }}'

~ aws cloudcontrol get-resource --type-name AWS::ServiceCatalogAppRegistry::Application \
--identifier Repro | jq '(.ResourceDescription.Properties | fromjson).Tags'
{
"my-key": "my-val",
"aws:servicecatalog:applicationName": "Repro"
}

~ aws cloudcontrol update-resource --type-name AWS::ServiceCatalogAppRegistry::Application --identifier Repro \
--patch-document '[{"op": "replace", "path": "Tags", "value": { "my-key": "other-val" }}]'
An error occurred (ValidationException) when calling the UpdateResource operation: aws: prefixed tag key names are not allowed for external use.
```

### Test Cases

See expected behavior above.

### Other Details

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.