Open stevehogdahl opened 2 years ago
Thanks for reporting this in! Please allow us some time to investigate the feasibility of the request! Again thanks for the input!
Facing the same issue
Facing Same Issue, Any update on above request.
Marking this as type/bug
as users are having issues with defining API models for implicit API resource generated by SAM Function.
I took a deep dive into this problem. Unfortunately I believe this is expected behaviour and we've clearly documented this behaviour here.
The workaround would have to define an explicit AWS::Serverless::Api
resource that specifies the Models property. Explicitly set the RestApiId
field. We apologize for any inconvenience. Leaving this issue open as a feature request.
Description:
The Models Validation doesn't check the implicitly created
AWS::Serverless::Api
resource. When creating a new model there's no way to set it to the implicitlyAWS::Serverless::Api resource
withoutsam validate
failing. Models isn't a valid global parameter so it can't be set there. Creating a AWS::ApiGateway::Model resource setting RestApiId toServerlessRestApi
the following validation error is thrown...the related API does not define any Models
. This means the only way to add a Model is to explicitly create the Api resource, add the Models to it, and then set RestApiId on the other resources. This is a pain point for us because we have 75 Function resources in the template that now need to explicitly set RestApiId.Steps to reproduce:
Observed result:
Error: [InvalidResourceException('CreateAccountFunction', 'Event with id [CreateAccount] is invalid. Unable to set RequestModel [CreateAccountsModel] on API method [post] for path [/accounts] because the related API does not define any Models.')] ('CreateAccountFunction', 'Event with id [CreateAccount] is invalid. Unable to set RequestModel [CreateAccountsModel] on API method [post] for path [/accounts] because the related API does not define any Models.')
Expected result:
I would expect the validation to check if any models exist on the implicitly created Api resource.