Skip to content

Commit dbcb7f1

Browse files
committed
feat: Add AWS SQS module with eventing infrastructure
- Introduced `SqsEventBus` for publishing events to AWS SQS queues. - Implemented `SqsMessageDispatcher` for routing incoming SQS messages to typed handlers. - Created `SqsConfiguration` for dependency injection and service registration. - Added `SqsPublisherOptions` and `SqsSubscriptionOptions` for message type mappings. - Registered necessary NuGet packages: `AWSSDK.SQS`, `AWSSDK.Extensions.NETCore.Setup`, `Amazon.Lambda.SQSEvents`, and `Amazon.Lambda.Core`. - Provided LocalStack support for local development. - Documented features and usage in README.md and release notes.
1 parent 56c9bd9 commit dbcb7f1

20 files changed

+1105
-8
lines changed

Modules/Intent.Modules.Aws.Sqs/Intent.Aws.Sqs.imodspec

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,48 @@
33
<id>Intent.Aws.Sqs</id>
44
<version>1.0.0-pre.0</version>
55
<supportedClientVersions>[4.4.0-a,5.0.0)</supportedClientVersions>
6-
<summary>A custom module for Intent.Modules.NET</summary>
7-
<description>A custom module for Intent.Modules.NET</description>
8-
<authors>Intent.Modules.NET</authors>
6+
<summary>Provides AWS SQS eventing infrastructure for publishing and consuming messages.</summary>
7+
<description>Core module for AWS SQS integration. Provides IEventBus implementation, message dispatcher, and configuration for SQS-based eventing patterns. Lambda function generation is handled by the companion Intent.AwsLambda.Sqs module.</description>
8+
<authors>Intent Architect</authors>
99
<iconUrl>data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyAgdmlld0JveD0iMCAwIDgwIDgwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA2NCAoOTM1MzcpIC0gaHR0cHM6Ly9za2V0Y2guY29tIC0tPgogICAgPHRpdGxlPkljb24tQXJjaGl0ZWN0dXJlLzY0L0FyY2hfQVdTLVNpbXBsZS1RdWV1ZS1TZXJ2aWNlXzY0PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSIwJSIgeTE9IjEwMCUiIHgyPSIxMDAlIiB5Mj0iMCUiIGlkPSJsaW5lYXJHcmFkaWVudC0xIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0IwMDg0RCIgb2Zmc2V0PSIwJSI+PC9zdG9wPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjRkY0RjhCIiBvZmZzZXQ9IjEwMCUiPjwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGcgaWQ9Ikljb24tQXJjaGl0ZWN0dXJlLzY0L0FyY2hfQVdTLVNpbXBsZS1RdWV1ZS1TZXJ2aWNlXzY0IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iSWNvbi1BcmNoaXRlY3R1cmUtQkcvNjQvQXBwbGljYXRpb24tSW50ZWdyYXRpb24iIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPgogICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlIiB4PSIwIiB5PSIwIiB3aWR0aD0iODAiIGhlaWdodD0iODAiPjwvcmVjdD4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTI4LjcxNjk5NjYsNDMuNjg3Njc1NiBMMzEuNzE4OTI2NSw0MC43MjE4MjYgQzMxLjkwNzA0NzQsNDAuNTM1OTAxMSAzMi4wMTMxMTU2LDQwLjI4MzM2MTQgMzIuMDE0MTIzMyw0MC4wMTk4ODUgQzMyLjAxNTExNjksMzkuNzU2NDA4NiAzMS45MTAwNDkzLDM5LjUwMjg3NDcgMzEuNzIyOTI5LDM5LjMxNTk1NTYgTDI4LjcyMDk5OTIsMzYuMzE2MzAxNCBMMjcuMzAyMDg3MSwzNy43MTgxOTQ4IEwyOC41ODk5MTQ5LDM5LjAwNTc0OTQgTDI0LjAwODk3MDEsMzkuMDA1NzQ5NCBMMjQuMDA4OTcwMSw0MC45OTQyNTA2IEwyOC42MDU5MjUyLDQwLjk5NDI1MDYgTDI3LjMwNjA4OTYsNDIuMjc3ODI4MiBMMjguNzE2OTk2Niw0My42ODc2NzU2IFogTTUxLjYyNzcyNSw0My43NzgxNTI0IEw1NS42MzAyOTgsNDAuNzkzNDEyIEM1NS44ODA0NTg5LDQwLjYwNTQ5ODYgNTYuMDI5NTU0Nyw0MC4zMTEyMDA0IDU2LjAyOTU1NDcsMzkuOTk5MDA1NyBDNTYuMDI5NTU0NywzOS42ODU4MTY4IDU1Ljg4MDQ1ODksMzkuMzkwNTI0NCA1NS42MjkyOTc0LDM5LjIwMjYxMSBMNTEuNjI2NzI0MywzNi4yMjE4NDc2IEw1MC40MjU5NTI0LDM3LjgxMjY0ODYgTDUyLjAyNjk4MTYsMzkuMDA1NzQ5NCBMNDguMDI0NDA4NSwzOS4wMDU3NDk0IEw0OC4wMjQ0MDg1LDQwLjk5NDI1MDYgTDUyLjAyNTk4MSw0MC45OTQyNTA2IEw1MC40MjQ5NTE4LDQyLjE4NzM1MTQgTDUxLjYyNzcyNSw0My43NzgxNTI0IFogTTM1LjIwODE2OTUsNDAgQzM1LjIwODE2OTUsNDIuMTEwNzk0MSAzNC44NDI5MzQ3LDQ0LjEwMTI4MzkgMzQuMTYwNDk2LDQ1LjgzMzI2ODUgQzM1Ljk2MDY1MzMsNDUuMTQxMjcgMzcuOTkwOTU4NSw0NC43OTUyNzA4IDQwLjAxOTI2MjQsNDQuNzk1MjcwOCBDNDIuMDQ3NTY2Myw0NC43OTUyNzA4IDQ0LjA3Nzg3MTUsNDUuMTQxMjcgNDUuODc3MDI4MSw0NS44MzMyNjg1IEM0NS4xOTU1OSw0NC4xMDEyODM5IDQ0LjgzMDM1NTIsNDIuMTEwNzk0MSA0NC44MzAzNTUyLDQwIEM0NC44MzAzNTUyLDM3Ljg4OTIwNTkgNDUuMTk1NTksMzUuODk5NzEwNCA0NS44NzcwMjgxLDM0LjE2NjczMTUgQzQyLjI3NzcxNDIsMzUuNTQ5NzM0MSAzNy43NjA4MTA1LDM1LjU0OTczNDEgMzQuMTYwNDk2LDM0LjE2NjczMTUgQzM0Ljg0MjkzNDcsMzUuODk5NzEwNCAzNS4yMDgxNjk1LDM3Ljg4OTIwNTkgMzUuMjA4MTY5NSw0MCBMMzUuMjA4MTY5NSw0MCBaIE0zMC4zMDYwMTgyLDQ5LjY1MTE5MDkgQzMwLjExMDg5MjcsNDkuNDU3MzEyMSAzMC4wMTI4Mjk3LDQ5LjIwMjc4MzkgMzAuMDEyODI5Nyw0OC45NDgyNTU3IEMzMC4wMTI4Mjk3LDQ4LjY5MzcyNzYgMzAuMTEwODkyNyw0OC40MzkxOTk0IDMwLjMwNjAxODIsNDguMjQ1MzIwNSBDMzIuMTIyMTg1Nyw0Ni40NDA3NTU2IDMzLjIwNjg4Myw0My4zNTc1ODQ0IDMzLjIwNjg4Myw0MCBDMzMuMjA2ODgzLDM2LjY0MjQxNTYgMzIuMTIyMTg1NywzMy41NTkyNDQ0IDMwLjMwNjAxODIsMzEuNzU0Njc5NSBDMzAuMTEwODkyNywzMS41NjA4MDA2IDMwLjAxMjgyOTcsMzEuMzA2MjcyNCAzMC4wMTI4Mjk3LDMxLjA1MTc0NDMgQzMwLjAxMjgyOTcsMzAuNzk3MjE2MSAzMC4xMTA4OTI3LDMwLjU0MjY4NzkgMzAuMzA2MDE4MiwzMC4zNDg4MDkxIEMzMC42OTcyNjk3LDI5Ljk2MDA1NzEgMzEuMzI5Njc2MiwyOS45NjAwNTcxIDMxLjcyMDkyNzcsMzAuMzQ4ODA5MSBDMzUuNTk4NDIwNCwzNC4yMDE1MzAzIDQ0LjQ0MDEwNDQsMzQuMjAxNTMwMyA0OC4zMTc1OTcsMzAuMzQ4ODA5MSBDNDguNzA4ODQ4NSwyOS45NjAwNTcxIDQ5LjM0MTI1NTEsMjkuOTYwMDU3MSA0OS43MzI1MDY2LDMwLjM0ODgwOTEgQzQ5LjkyNzYzMiwzMC41NDI2ODc5IDUwLjAyNTY5NTEsMzAuNzk3MjE2MSA1MC4wMjU2OTUxLDMxLjA1MTc0NDMgQzUwLjAyNTY5NTEsMzEuMzA2MjcyNCA0OS45Mjc2MzIsMzEuNTYwODAwNiA0OS43MzI1MDY2LDMxLjc1NDY3OTUgQzQ3LjkxNjMzOTEsMzMuNTU5MjQ0NCA0Ni44MzE2NDE4LDM2LjY0MjQxNTYgNDYuODMxNjQxOCw0MCBDNDYuODMxNjQxOCw0My4zNTc1ODQ0IDQ3LjkxNjMzOTEsNDYuNDQwNzU1NiA0OS43MzI1MDY2LDQ4LjI0NTMyMDUgQzQ5LjkyNzYzMiw0OC40MzkxOTk0IDUwLjAyNTY5NTEsNDguNjkzNzI3NiA1MC4wMjU2OTUxLDQ4Ljk0ODI1NTcgQzUwLjAyNTY5NTEsNDkuMjAyNzgzOSA0OS45Mjc2MzIsNDkuNDU3MzEyMSA0OS43MzI1MDY2LDQ5LjY1MTE5MDkgQzQ5LjUzNzM4MTIsNDkuODQ1MDY5OCA0OS4yODEyMTY1LDQ5Ljk0MjUwNjQgNDkuMDI1MDUxOCw0OS45NDI1MDY0IEM0OC43Njg4ODcxLDQ5Ljk0MjUwNjQgNDguNTEyNzIyNSw0OS44NDUwNjk4IDQ4LjMxNzU5Nyw0OS42NTExOTA5IEM0NC40NDAxMDQ0LDQ1Ljc5ODQ2OTcgMzUuNTk4NDIwNCw0NS43OTg0Njk3IDMxLjcyMDkyNzcsNDkuNjUxMTkwOSBDMzEuMzI5Njc2Miw1MC4wMzk5NDI5IDMwLjY5NzI2OTcsNTAuMDM5OTQyOSAzMC4zMDYwMTgyLDQ5LjY1MTE5MDkgTDMwLjMwNjAxODIsNDkuNjUxMTkwOSBaIE02Ni4wMDA5NjQ5LDQwLjAwNDk3MTMgQzY2LjAwMDk2NDksMzkuMDc4MzI5NyA2NS42Mzc3MzE0LDM4LjIwNzM2NjEgNjQuOTc4MzA3NSwzNy41NTIxNTQ5IEM2NC4yOTc4NzAxLDM2Ljg3NTA3MDIgNjMuNDAzMjk1LDM2LjUzODAxOTMgNjIuNTA5NzIwNSwzNi41MzgwMTkzIEM2MS42MTYxNDYxLDM2LjUzODAxOTMgNjAuNzIxNTcxLDM2Ljg3NTA3MDIgNjAuMDQxMTMzNiwzNy41NTIxNTQ5IEM1OC42NzkyNTgxLDM4LjkwNDMzNTggNTguNjc5MjU4MSw0MS4xMDQ2MTI1IDYwLjA0MTEzMzYsNDIuNDU3Nzg3NiBDNjEuNDAyMDA4NCw0My44MDk5Njg0IDYzLjYxNTQzMTMsNDMuODEwOTYyNyA2NC45NzgzMDc1LDQyLjQ1Nzc4NzYgQzY1LjYzNzczMTQsNDEuODAyNTc2NCA2Ni4wMDA5NjQ5LDQwLjkzMTYxMjggNjYuMDAwOTY0OSw0MC4wMDQ5NzEzIEw2Ni4wMDA5NjQ5LDQwLjAwNDk3MTMgWiBNNjYuMzkzMjE3MSw0My44NjM2NTggQzY1LjMyMjUyODgsNDQuOTI3NTA2MiA2My45MTY2MjUsNDUuNDU5NDMwMyA2Mi41MDk3MjA1LDQ1LjQ1OTQzMDMgQzYxLjEwMjgxNjEsNDUuNDU5NDMwMyA1OS42OTY5MTIzLDQ0LjkyNzUwNjIgNTguNjI2MjI0LDQzLjg2MzY1OCBDNTYuNDgzODQ2OCw0MS43MzU5NjE2IDU2LjQ4Mzg0NjgsMzguMjczOTgwOSA1OC42MjYyMjQsMzYuMTQ2Mjg0NSBDNjAuNzY4NjAxMiwzNC4wMTY1OTk3IDY0LjI1Mjg0MTEsMzQuMDE4NTg4MiA2Ni4zOTMyMTcxLDM2LjE0NjI4NDUgQzY4LjUzNTU5NDMsMzguMjczOTgwOSA2OC41MzU1OTQzLDQxLjczNTk2MTYgNjYuMzkzMjE3MSw0My44NjM2NTggTDY2LjM5MzIxNzEsNDMuODYzNjU4IFogTTIwLjk4MDAyMjksNDAuMDI3ODM5IEMyMC45ODAwMjI5LDM5LjEwMTE5NzQgMjAuNjE2Nzg5NCwzOC4yMzAyMzM5IDE5Ljk1NzM2NTQsMzcuNTc1MDIyNyBDMTkuMjk3OTQxNSwzNi45MTk4MTE1IDE4LjQyMTM3OCwzNi41NTg4OTg1IDE3LjQ4ODc3ODUsMzYuNTU4ODk4NSBDMTYuNTU3MTc5NiwzNi41NTg4OTg1IDE1LjY4MDYxNjEsMzYuOTE5ODExNSAxNS4wMjAxOTE2LDM3LjU3NTAyMjcgQzE0LjM2MDc2NzYsMzguMjMwMjMzOSAxMy45OTg1MzQ4LDM5LjEwMTE5NzQgMTMuOTk4NTM0OCw0MC4wMjc4MzkgQzEzLjk5ODUzNDgsNDAuOTUzNDg2NCAxNC4zNjA3Njc2LDQxLjgyNDQ0OTkgMTUuMDIwMTkxNiw0Mi40ODA2NTUzIEMxNi4zNDAwNCw0My43OTAwODM0IDE4LjYzODUxNzYsNDMuNzkwMDgzNCAxOS45NTczNjU0LDQyLjQ4MDY1NTMgQzIwLjYxNjc4OTQsNDEuODI0NDQ5OSAyMC45ODAwMjI5LDQwLjk1MzQ4NjQgMjAuOTgwMDIyOSw0MC4wMjc4MzkgTDIwLjk4MDAyMjksNDAuMDI3ODM5IFogTTIxLjM3MjI3NSw0My44ODY1MjU3IEMyMC4zMDE1ODY3LDQ0Ljk1MDM3MzkgMTguODk1NjgyOSw0NS40ODIyOTggMTcuNDg4Nzc4NSw0NS40ODIyOTggQzE2LjA4Mjg3NDcsNDUuNDgyMjk4IDE0LjY3Njk3MDksNDQuOTUwMzczOSAxMy42MDUyODIsNDMuODg2NTI1NyBDMTEuNDY0OTA2LDQxLjc1ODgyOTQgMTEuNDY0OTA2LDM4LjI5Njg0ODcgMTMuNjA1MjgyLDM2LjE2OTE1MjMgQzE1Ljc0NzY1OTIsMzQuMDQxNDU1OSAxOS4yMzA4OTg0LDM0LjA0MTQ1NTkgMjEuMzcyMjc1LDM2LjE2OTE1MjMgQzIzLjUxMzY1MTYsMzguMjk2ODQ4NyAyMy41MTM2NTE2LDQxLjc1ODgyOTQgMjEuMzcyMjc1LDQzLjg4NjUyNTcgTDIxLjM3MjI3NSw0My44ODY1MjU3IFogTTU0Ljg5NTgyNTksNTQuODU2MDkzIEM1MC45MDEyNTgsNTguODI2MTM1OCA0NS41ODg4NDI4LDYxLjAxMTQ5ODcgMzkuOTM5MjEwOSw2MS4wMTE0OTg3IEMzNC4yODc1Nzc3LDYxLjAxMTQ5ODcgMjguOTc2MTYzMiw1OC44MjYxMzU4IDI0Ljk4MTU5NTMsNTQuODU2MDkzIEMyMi4yNDE4MzQsNTIuMTM0ODI5IDIwLjczMzg2NDYsNDguODgyNjM1MiAxOS45NTEzNjE2LDQ2LjYzNDYzNDUgTDE4LjA2MDE0NTgsNDcuMjg0ODc0NCBDMTguOTExNjkzMiw0OS43MzA3MzEgMjAuNTU3NzUxNCw1My4yNzMyNDYgMjMuNTY2Njg1Nyw1Ni4yNjE5NjM0IEMyNy45Mzk0OTY4LDYwLjYwNzgzMyAzMy43NTMyMzQyLDYzIDM5LjkzOTIxMDksNjMgQzQ2LjEyNDE4Nyw2MyA1MS45Mzc5MjQ0LDYwLjYwNzgzMyA1Ni4zMTA3MzU1LDU2LjI2MTk2MzQgQzU4LjgzNzM1OTcsNTMuNzUzNDY5MSA2MC44NDk2NTMzLDUwLjU2MzkxMyA2MS45NzkzNzk2LDQ3LjI4MTg5MTcgTDYwLjA4NjE2MjUsNDYuNjM3NjE3MyBDNTkuMDUzNDk4Nyw0OS42MzgyNjU3IDU3LjIxMDMxMzgsNTIuNTU3Mzg1NiA1NC44OTU4MjU5LDU0Ljg1NjA5MyBMNTQuODk1ODI1OSw1NC44NTYwOTMgWiBNMTkuOTUwMzYwOSwzMy4zNjYzNTk3IEwxOC4wNjExNDY1LDMyLjcxNDEzMTMgQzE5LjI3MTkyNDgsMjkuMjUwMTYyMSAyMS4yMjkxODMsMjYuMDYwNjA2MSAyMy41NzI2ODk2LDIzLjczMzA2NTMgQzI3Ljk0MzQ5OTQsMTkuMzkxMTcyOCAzMy43NTUyMzU1LDE3IDM5LjkzOTIxMDksMTcgQzQ2LjEyMzE4NjMsMTcgNTEuOTM0OTIyNSwxOS4zOTExNzI4IDU2LjMwNDczMTYsMjMuNzMzMDY1MyBDNTguNzcxMzE3MywyNi4xODM4OTMxIDYwLjgzOTY0NjksMjkuNDU2OTY2MiA2MS45NzczNzgzLDMyLjcxNDEzMTMgTDYwLjA4ODE2MzgsMzMuMzY2MzU5NyBDNTkuMDQ0NDkyOSwzMC4zODM2MDc4IDU3LjE1MDI3NTIsMjcuMzg0OTQ3OSA1NC44ODk4MjIsMjUuMTM4OTM1NyBDNTAuODk4MjU2LDIxLjE3MTg3NTcgNDUuNTg3ODQyMiwxOC45ODg1MDEzIDM5LjkzOTIxMDksMTguOTg4NTAxMyBDMzQuMjg5NTc5LDE4Ljk4ODUwMTMgMjguOTgwMTY1OCwyMS4xNzE4NzU3IDI0Ljk4NzU5OTIsMjUuMTM4OTM1NyBDMjIuODU0MjI3NywyNy4yNTk2NzIzIDIxLjA2NTA3NzUsMzAuMTgxNzc1IDE5Ljk1MDM2MDksMzMuMzY2MzU5NyBMMTkuOTUwMzYwOSwzMy4zNjYzNTk3IFoiIGlkPSJBV1MtU2ltcGxlLVF1ZXVlLVNlcnZpY2VfSWNvbl82NF9TcXVpZCIgZmlsbD0iI0ZGRkZGRiI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4=</iconUrl>
10-
<templates></templates>
10+
<templates>
11+
<template id="Intent.Aws.Sqs.SqsEventBus" externalReference="16b8ebe3-5b89-4a6b-bbd2-e04c6d0ef4ed">
12+
<role>Infrastructure.Eventing.SqsEventBus</role>
13+
<location>Eventing</location>
14+
</template>
15+
<template id="Intent.Aws.Sqs.SqsMessageDispatcher" externalReference="a7c9c9a3-3f5a-4e8a-a1d1-8b5e3f7c9a1d">
16+
<role>Infrastructure.Eventing.SqsMessageDispatcher</role>
17+
<location>Eventing</location>
18+
</template>
19+
<template id="Intent.Aws.Sqs.SqsMessageDispatcherInterface" externalReference="2e8f5b7a-9c4d-4a1b-b5e3-7f8a9c1d2e3f">
20+
<role>Infrastructure.Eventing.ISqsMessageDispatcher</role>
21+
<location>Eventing</location>
22+
</template>
23+
<template id="Intent.Aws.Sqs.SqsConfiguration" externalReference="4a7c5e9b-1d3f-4b8a-c5e7-9f1a3c5e7b9d">
24+
<role>Infrastructure.DependencyInjection.Sqs</role>
25+
<location>Configuration</location>
26+
</template>
27+
<template id="Intent.Aws.Sqs.SqsPublisherOptions" externalReference="6c9e1f3a-5b7d-4c8e-a9f1-3b5d7c9e1f3a">
28+
<role>Infrastructure.Eventing.SqsPublisherOptions</role>
29+
<location>Configuration</location>
30+
</template>
31+
<template id="Intent.Aws.Sqs.SqsSubscriptionOptions" externalReference="8e1f3a5c-7d9b-4e8f-c1a3-5d7e9b1f3a5c">
32+
<role>Infrastructure.Eventing.SqsSubscriptionOptions</role>
33+
<location>Configuration</location>
34+
</template>
35+
</templates>
1136
<decorators></decorators>
1237
<factoryExtensions></factoryExtensions>
1338
<moduleSettings></moduleSettings>
1439
<dependencies>
15-
<dependency id="Intent.Common" version="3.7.2" />
40+
<dependency id="Intent.Common" version="3.9.0" />
41+
<dependency id="Intent.Common.CSharp" version="3.8.3" />
1642
<dependency id="Intent.Common.Types" version="3.4.0" />
43+
<dependency id="Intent.Eventing.Contracts" version="5.2.0" />
1744
<dependency id="Intent.Modelers.Eventing" version="6.0.2" />
45+
<dependency id="Intent.Modelers.Services" version="3.9.3" />
46+
<dependency id="Intent.Modelers.Services.EventInteractions" version="1.2.1" />
47+
<dependency id="Intent.OutputManager.RoslynWeaver" version="4.9.10" />
1848
</dependencies>
1949
<files>
2050
<file src="$outDir$/$id$.dll" />

Modules/Intent.Modules.Aws.Sqs/Intent.Modules.Aws.Sqs.csproj

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,18 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="Intent.Modules.Common" Version="3.7.2" />
10-
<PackageReference Include="Intent.Modules.Common.CSharp" Version="3.8.1" />
9+
<PackageReference Include="Intent.Modules.Common" Version="3.9.0" />
10+
<PackageReference Include="Intent.Modules.Common.CSharp" Version="3.8.3" />
11+
<PackageReference Include="Intent.Modules.Eventing.Contracts" Version="5.2.0" />
12+
<PackageReference Include="Intent.Modules.Modelers.Eventing" Version="6.0.2" />
13+
<PackageReference Include="Intent.Modules.Modelers.Services" Version="3.9.3" />
14+
<PackageReference Include="Intent.Modules.Modelers.Services.EventInteractions" Version="1.2.1" />
1115
<PackageReference Include="Intent.Packager" Version="3.6.0">
1216
<PrivateAssets>all</PrivateAssets>
1317
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1418
</PackageReference>
1519
<PackageReference Include="Intent.RoslynWeaver.Attributes" Version="3.0.0" />
16-
<PackageReference Include="Intent.SoftwareFactory.SDK" Version="3.7.0" />
20+
<PackageReference Include="Intent.SoftwareFactory.SDK" Version="3.10.0-pre.2" />
1721
</ItemGroup>
1822

1923
</Project>
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
using System;
2+
using Intent.Engine;
3+
using Intent.Modules.Common.CSharp.Nuget;
4+
using Intent.Modules.Common.VisualStudio;
5+
using Intent.RoslynWeaver.Attributes;
6+
7+
[assembly: DefaultIntentManaged(Mode.Fully)]
8+
[assembly: IntentTemplate("Intent.ModuleBuilder.CSharp.Templates.NugetPackages", Version = "1.0")]
9+
10+
namespace Intent.Modules.Aws.Sqs
11+
{
12+
public class NugetPackages : INugetPackages
13+
{
14+
public const string AwsSdkSqsPackageName = "AWSSDK.SQS";
15+
public const string AwsSdkExtensionsNetCoreSetupPackageName = "AWSSDK.Extensions.NETCore.Setup";
16+
public const string AmazonLambdaSqsEventsPackageName = "Amazon.Lambda.SQSEvents";
17+
public const string AmazonLambdaCorePackageName = "Amazon.Lambda.Core";
18+
19+
public void RegisterPackages()
20+
{
21+
// AWSSDK.SQS
22+
NugetRegistry.Register(AwsSdkSqsPackageName,
23+
(framework) => (framework.Major, framework.Minor) switch
24+
{
25+
( >= 8, >= 0) => new PackageVersion("3.7.400.61")
26+
.WithNugetDependency("AWSSDK.Core", "3.7.400.61"),
27+
( >= 6, >= 0) => new PackageVersion("3.7.400.61")
28+
.WithNugetDependency("AWSSDK.Core", "3.7.400.61"),
29+
_ => throw new Exception($"Unsupported Framework `{framework.Major}` for NuGet package '{AwsSdkSqsPackageName}'"),
30+
}
31+
);
32+
33+
// AWSSDK.Extensions.NETCore.Setup
34+
NugetRegistry.Register(AwsSdkExtensionsNetCoreSetupPackageName,
35+
(framework) => (framework.Major, framework.Minor) switch
36+
{
37+
( >= 8, >= 0) => new PackageVersion("3.7.301")
38+
.WithNugetDependency("AWSSDK.Core", "3.7.400.61")
39+
.WithNugetDependency("Microsoft.Extensions.Configuration.Abstractions", "8.0.0")
40+
.WithNugetDependency("Microsoft.Extensions.DependencyInjection.Abstractions", "8.0.2")
41+
.WithNugetDependency("Microsoft.Extensions.Logging.Abstractions", "8.0.2"),
42+
( >= 6, >= 0) => new PackageVersion("3.7.301")
43+
.WithNugetDependency("AWSSDK.Core", "3.7.400.61")
44+
.WithNugetDependency("Microsoft.Extensions.Configuration.Abstractions", "6.0.0")
45+
.WithNugetDependency("Microsoft.Extensions.DependencyInjection.Abstractions", "6.0.0")
46+
.WithNugetDependency("Microsoft.Extensions.Logging.Abstractions", "6.0.0"),
47+
_ => throw new Exception($"Unsupported Framework `{framework.Major}` for NuGet package '{AwsSdkExtensionsNetCoreSetupPackageName}'"),
48+
}
49+
);
50+
51+
// Amazon.Lambda.SQSEvents
52+
NugetRegistry.Register(AmazonLambdaSqsEventsPackageName,
53+
(framework) => (framework.Major, framework.Minor) switch
54+
{
55+
( >= 6, >= 0) => new PackageVersion("2.2.0")
56+
.WithNugetDependency("Amazon.Lambda.Core", "2.2.0"),
57+
_ => throw new Exception($"Unsupported Framework `{framework.Major}` for NuGet package '{AmazonLambdaSqsEventsPackageName}'"),
58+
}
59+
);
60+
61+
// Amazon.Lambda.Core
62+
NugetRegistry.Register(AmazonLambdaCorePackageName,
63+
(framework) => (framework.Major, framework.Minor) switch
64+
{
65+
( >= 6, >= 0) => new PackageVersion("2.2.0"),
66+
_ => throw new Exception($"Unsupported Framework `{framework.Major}` for NuGet package '{AmazonLambdaCorePackageName}'"),
67+
}
68+
);
69+
}
70+
71+
public static NugetPackageInfo AwsSdkSqs(IOutputTarget outputTarget)
72+
=> NugetRegistry.GetVersion(AwsSdkSqsPackageName, outputTarget.GetMaxNetAppVersion());
73+
74+
public static NugetPackageInfo AwsSdkExtensionsNetCoreSetup(IOutputTarget outputTarget)
75+
=> NugetRegistry.GetVersion(AwsSdkExtensionsNetCoreSetupPackageName, outputTarget.GetMaxNetAppVersion());
76+
77+
public static NugetPackageInfo AmazonLambdaSqsEvents(IOutputTarget outputTarget)
78+
=> NugetRegistry.GetVersion(AmazonLambdaSqsEventsPackageName, outputTarget.GetMaxNetAppVersion());
79+
80+
public static NugetPackageInfo AmazonLambdaCore(IOutputTarget outputTarget)
81+
=> NugetRegistry.GetVersion(AmazonLambdaCorePackageName, outputTarget.GetMaxNetAppVersion());
82+
}
83+
}

0 commit comments

Comments
 (0)