SNS operations
Every SNS operation Overcast declares — 22 of 30 implemented — with status, behaviour notes and a link to the AWS API reference for each.
22 of 30 listed operations are implemented. Back to SNS.
Summary
| Category | ✅ Supported | ⚠️ Partial | ❌ Unsupported |
|---|---|---|---|
| Topics | 8 | ||
| Subscriptions | 7 | ||
| Publishing | 5 | 1 | |
| Platform applications (mobile push) | 5 | ||
| SMS | 1 | 3 |
Endpoints
Topics
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreateTopic | ✅ Supported | Idempotent; attributes stored; inline Tags applied at creation and left untouched by a repeat call | docs |
DeleteTopic | ✅ Supported | docs | |
GetTopicAttributes | ✅ Supported | docs | |
SetTopicAttributes | ✅ Supported | docs | |
ListTopics | ✅ Supported | docs | |
TagResource | ✅ Supported | Tags are stored on the topic; member-indexed form encoding | docs |
UntagResource | ✅ Supported | docs | |
ListTagsForResource | ✅ Supported | docs |
Subscriptions
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
Subscribe | ✅ Supported | Protocols: sqs, sms, email, email-json, http, https, lambda. application and firehose return 400. | docs |
ConfirmSubscription | ✅ Supported | Emulator auto-confirms; any token accepted | docs |
Unsubscribe | ✅ Supported | docs | |
ListSubscriptions | ✅ Supported | docs | |
ListSubscriptionsByTopic | ✅ Supported | docs | |
GetSubscriptionAttributes | ✅ Supported | Returns SubscriptionArn, TopicArn, Protocol, Endpoint, Owner + custom attributes | docs |
SetSubscriptionAttributes | ✅ Supported | Stores any attribute; FilterPolicy drives message filtering, RedrivePolicy the subscription dead-letter queue | docs |
Publishing
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
Publish | ✅ Supported | TopicArn/PhoneNumber/TargetArn destination selection (exactly one required); MessageStructure=json per-protocol payload selection; Message (256 KB) and Subject (<100 chars, no control/line-break chars) validation; async fan-out to sqs, lambda, email, email-json, http, https, and sms subscribers; records AWS/SNS CloudWatch metrics NumberOfMessagesPublished and PublishSize on accept, and NumberOfNotificationsDelivered/NumberOfNotificationsFailed per subscription delivery attempt — a delivery whose protocol dependency was never wired into this instance (nil enqueuer/mailer/smsSender/outbound) is treated as a delivery failure like any other protocol’s: failDelivery runs (recording NumberOfNotificationsFailed, redirecting to the subscription’s DLQ when configured), with a one-time Warn per (topic, protocol) telling the operator what to wire (#1306) | docs |
PublishBatch | ✅ Supported | Up to 10 messages; each entry independently validated (Message/Subject/MessageStructure=json), a bad entry fails without aborting the batch; records NumberOfMessagesPublished/PublishSize per successful entry | docs |
Message filtering (subscription filter policy) | ✅ Supported | String/Number attribute value matching via FilterPolicy on SetSubscriptionAttributes | docs |
Lambda subscription delivery | ✅ Supported | Publish invokes the subscribed function asynchronously with the AWS Records[].Sns event; RawMessageDelivery does not apply to lambda, matching AWS | docs |
Subscription dead-letter queue (RedrivePolicy) | ✅ Supported | A delivery that fails is redirected to the SQS queue named by the subscription’s RedrivePolicy | docs |
FIFO topic Publish parameters | ⚠️ Partial | MessageGroupId/MessageDeduplicationId are required and validated for a topic named *.fifo (or ContentBasedDeduplication substitutes for the dedup ID); actual FIFO ordering, deduplication, and SequenceNumber generation remain unimplemented | docs |
Platform applications (mobile push)
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreatePlatformApplication | ❌ Unsupported | APNs, GCM/FCM, ADM | docs |
DeletePlatformApplication | ❌ Unsupported | docs | |
ListPlatformApplications | ❌ Unsupported | docs | |
CreatePlatformEndpoint | ❌ Unsupported | Device registration | docs |
PublishToEndpoint | ❌ Unsupported | via Publish with TargetArn; returns 400 InvalidParameter explicitly rather than a generic missing-TopicArn error | docs |
SMS
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
SMS publish | ✅ Supported | via sms subscription on Publish, or directly via Publish with PhoneNumber (no topic involved); captured in the Inbox with kind=sms | docs |
CheckIfPhoneNumberIsOptedOut | ❌ Unsupported | docs | |
ListPhoneNumbersOptedOut | ❌ Unsupported | docs | |
OptInPhoneNumber | ❌ Unsupported | docs |
Related
- SNS — quick start, what works, and the differences from AWS
- All service pages