-
Notifications
You must be signed in to change notification settings - Fork 450
refactor(parser): Improve SNS models with examples and descriptions #7287
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
refactor(parser): Improve SNS models with examples and descriptions #7287
Conversation
Enhances the SNS parser models with field descriptions and examples using Pydantic's Field() functionality. This improvement provides better documentation and metadata for SNS event parsing, following the pattern established in PR aws-powertools#7100. All field descriptions are based on official AWS SNS documentation and include realistic examples from actual test events. Closes aws-powertools#7117
Hey @dcabib please run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me! Please run make format
to fix the CI before we merge.
Fix CI formatting issues as requested by leandrodamascena
Not all issues are linked correctly. Please link each issue to the PR either manually or using a closing keyword in the format If mentioning more than one issue, separate them with commas: i.e. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @dcabib there are some lines that is over 120 characters and Ruff is complaining. You can break lines like we did in ALB/Kinesis models.
Can you pls fix it?
Break long lines over 120 characters following ALB/Kinesis pattern as requested by leandrodamascena. Use parentheses for multi-line strings and break long URL examples.
Please retry analysis of this Pull-Request directly on SonarQube Cloud |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for working on this @dcabib! APPROVED.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #7287 +/- ##
========================================
Coverage 96.35% 96.35%
========================================
Files 275 275
Lines 12980 12980
Branches 965 965
========================================
Hits 12507 12507
Misses 366 366
Partials 107 107 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Awesome work, congrats on your first merged pull request and thank you for helping improve everyone's experience! |
Issue number: #7117
Summary
Enhances the SNS parser models with field descriptions and examples using Pydantic's Field() functionality. This improvement provides better documentation and metadata for SNS event parsing, following the pattern established in PR #7100.
Changes
Added Field() descriptions and examples to all SNS parser model classes:
SnsMsgAttributeModel
- User-defined message attributes with type informationSnsNotificationModel
- Core SNS notification with comprehensive field documentationSnsRecordModel
- Individual SNS record structure with detailed explanationsSnsModel
- Root SNS event model with proper sequence documentationAll field descriptions are based on official AWS SNS documentation
Examples sourced from actual test events (snsEvent.json) and AWS documentation
Maintains 100% backward compatibility - no breaking changes to type annotations or validation logic
Preserves existing model validator for SQS protocol differences
User experience
Customers will be able to see examples and descriptions when using SNS parser models, providing:
Checklist
Is this a breaking change? No
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.
Closes #7117