Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking changes in CloudFormation schema for ApiGatewayV2 Integration #1680

Closed
flostadler opened this issue Aug 23, 2024 · 4 comments
Closed
Assignees
Labels
kind/engineering Work that is not visible to an external user resolution/fixed This issue was fixed

Comments

@flostadler
Copy link
Contributor

The CloudFormation schema downloaded from https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip started to have substantial changes for the AWS::ApiGatewayV2::Integration resource since August 23rd. None of these changes are represented in the CloudFormation docs here: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-responseparameters.

In detail:

  • The ResponseParameter and ResponseParameterList definitions are no longer present. Instead the ResponseParameters property is simply of type object now.
  • The RequestParameters and RequestTemplates properties also lost their patternProperties and are simply of type object now as well.
  • The IntegrationId property has been renamed to Id.
  • The ApiId property is no longer a primary identifier

This would be a breaking change for users of aws-native. We opened an issue with AWS to see if those changes are expected: aws-cloudformation/cloudformation-coverage-roadmap#2114.

@flostadler flostadler added the kind/engineering Work that is not visible to an external user label Aug 23, 2024
@pulumi-bot pulumi-bot added the needs-triage Needs attention from the triage team label Aug 23, 2024
@flostadler flostadler removed the needs-triage Needs attention from the triage team label Aug 23, 2024
@flostadler
Copy link
Contributor Author

flostadler commented Aug 23, 2024

For aws-native:apigatewayv2:Integration the responseParameters, requestParameters and requestTemplates properties are changing to be of type Any.

  • The type of requestParameters and requestTemplates is {[key: string]: string} right now.
  • For responseParameters it's {[key: string]: IntegrationResponseParameterArgs[]}, but we'd be completely loosing the IntegrationResponseParameter type.

For aws-native:apigatewayv2:getIntegration we'd be loosing the apiId input and integrationId gets renamed to id.

@flostadler
Copy link
Contributor Author

flostadler commented Aug 23, 2024

This appears to have been a rollback. It was introduced here ~1w ago ca05204.

What's weird though is that it was marked as supported ~2 months ago: https://github.com/pulumi/pulumi-aws-native/commit/bd6319a165e95a4fb3606d0381fe4cc35009c1aa#diff-1ac835cc58d7899e9299c[…]f1bd53fe25fd4189b72e168eR40
But when trying to use it you got:

An error occurred (UnsupportedActionException) when calling the ListResources operation: The resource AWS::ApiGatewayV2::Integration is not yet supported via Cloud Control API

The above is caused by the resource being marked as supported in us-west-2, but not supported in us-east-1.

us-west-2 takes precedence over us-east-1 in our codegen setup, which IMO makes sense because changes will first be introduced in the smaller regions before hitting us-east-1. This way new updates are available to our users quicker.

To prevent breaking changes causing to much churn for users in the future we might need to introduce so sort of resource freezing mechanism.

@flostadler flostadler added the resolution/fixed This issue was fixed label Aug 26, 2024
@flostadler flostadler self-assigned this Aug 26, 2024
@flostadler
Copy link
Contributor Author

Update from AWS: aws-cloudformation/cloudformation-coverage-roadmap#2114 (comment)

tl;dr
They rolled it back because of the breaking change, they'll roll it out again in the next 1-2 weeks. But this time with backwards compatibility. Given that the resource wasn't really usable I don't expect this to have any effects on pulumi users.

@flostadler
Copy link
Contributor Author

Problems like this could be prevent by having some sort of type freezing mechanism: #1684

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/engineering Work that is not visible to an external user resolution/fixed This issue was fixed
Projects
None yet
Development

No branches or pull requests

2 participants