# SNS compatibility, v0.0.1-alpha.44

> Compatibility test results for SNS in Overcast v0.0.1-alpha.44.

43 tests. Of the 287 results that measure Overcast, 210 pass (73.1%). 13 tests have a result Overcast has to act on, listed below with the evidence.

The overview, with every service, is at https://overcast.sh/compat/index.md.

## Tests Overcast does not yet pass

### CheckIfPhoneNumberIsOptedOut

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### GetDataProtectionPolicy

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### GetEndpointAttributes

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### GetPlatformApplicationAttributes

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### GetSMSAttributes

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### GetSMSSandboxAccountStatus

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### ListEndpointsByPlatformApplication

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### ListOriginationNumbers

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### ListPhoneNumbersOptedOut

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### ListPlatformApplications

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### ListSMSSandboxPhoneNumbers

Group `sns-gen-probe`.

- AWS CLI v2: Not emulated yet.
- AWS SDK for .NET: Not emulated yet.
- AWS SDK for Go v2: Not emulated yet.
- AWS SDK for Java 2.x: Not emulated yet.
- AWS SDK for JavaScript v3: Not emulated yet.
- AWS SDK for Python (boto3): Not emulated yet.
- AWS SDK for Rust: Not emulated yet.

### GetTopicAttributesAfterCreate (GetTopicAttributes)

Group `sns-gen-subscription`.

- AWS CLI v2: New test, still soaking. responseField equals at `$.Attributes.DisplayName`: expected "compat scenario topic", actual "oc-22ce13a6-cl-sns-gen-subscription-t".
- AWS SDK for .NET: New test, still soaking. responseField equals at `$.Attributes.DisplayName`: expected "compat scenario topic", actual "oc-45ab451a-dn-sns-gen-subscription-t".
- AWS SDK for Go v2: New test, still soaking. responseField equals at `$.Attributes.DisplayName`: expected "compat scenario topic", actual "oc-96df6583-go-sns-gen-subscription-t".
- AWS SDK for Java 2.x: New test, still soaking. responseField equals at `$.Attributes.DisplayName`: expected "compat scenario topic", actual "oc-cbe847d6-jv-sns-gen-subscription-t".
- AWS SDK for JavaScript v3: New test, still soaking. responseField at `$.Attributes.DisplayName`: expected "compat scenario topic", actual "oc-207c52a7-nj-sns-gen-subscription-t".
- AWS SDK for Python (boto3): New test, still soaking. responseField equals at `$.Attributes.DisplayName`: expected "compat scenario topic", actual "oc-d1820877-py-sns-gen-subscription-t".
- AWS SDK for Rust: New test, still soaking. responseField equals at `$.Attributes.DisplayName`: expected "compat scenario topic", actual "oc-8f8b66e6-rs-sns-gen-subscription-t".

### ConfirmSubscription

Group `sns-gen-topic`.

- AWS CLI v2: New test, still soaking. errorCode: expected error "InvalidParameterException" or "InvalidParameter", actual <no error>.
- AWS SDK for .NET: New test, still soaking. errorCode: expected error "InvalidParameterException" or "InvalidParameter", actual <no error>.
- AWS SDK for Go v2: New test, still soaking. errorCode: expected error "InvalidParameterException" or "InvalidParameter", actual <no error>.
- AWS SDK for Java 2.x: New test, still soaking. errorCode: expected error "InvalidParameterException" or "InvalidParameter", actual <no error>.
- AWS SDK for JavaScript v3: New test, still soaking. errorCode: expected an error (InvalidParameterException or InvalidParameter), actual <no error>.
- AWS SDK for Python (boto3): New test, still soaking. errorCode an: expected error whose code or type name is one of InvalidParameter, InvalidParameterException, actual <no error>.
- AWS SDK for Rust: New test, still soaking. errorCode: expected error "InvalidParameterException" or "InvalidParameter", actual <no error>.

## Not tested

Operations with no test. The generator declined to write one, for the reason given.

- AddPermission (`never-probe`): Adds a statement to a live topic's access policy, granting the named AWS accounts the named actions on it. Nothing in a probe group removes what it adds, and the result is another account holding rights over the caller's topic.
- CreatePlatformApplication (`never-probe`): Registers push credentials (an APNs certificate, an FCM server key) as a platform application in the caller's account. The credentials are stored, the application is billable to use, and nothing here deletes it.
- CreatePlatformEndpoint (`never-probe`): Registers a device token against a platform application, which is what makes a device a push target. A probe would enrol a device nobody asked to enrol.
- CreateSMSSandboxPhoneNumber (`never-probe`): Starts SMS-sandbox verification for a phone number, which sends a one-time password by SMS to whoever holds it. A probe would text a stranger.
- DeleteEndpoint (`never-probe`): Removes a platform endpoint, so the device behind it stops receiving push notifications. AWS documents the call as idempotent, which means it reports nothing when it has destroyed something.
- DeletePlatformApplication (`never-probe`): Deletes a platform application and every endpoint under it, so every device registered against it stops receiving notifications at once.
- DeleteSMSSandboxPhoneNumber (`never-probe`): Removes a verified destination number from the account's SMS sandbox, which stops the account being able to text it until somebody re-verifies it.
- OptInPhoneNumber (`never-probe`): Opts a phone number back in to receiving SMS from the account after its holder opted out. Opting somebody back in is the one SMS action whose whole purpose is to override a person's stated preference, and AWS allows it only once every 30 days.
- PutDataProtectionPolicy (`never-probe`): Replaces a live topic's data protection policy wholesale, so the redaction and blocking rules an owner relies on to keep PII out of a topic are gone the moment the call lands.
- RemovePermission (`never-probe`): Removes a statement from a live topic's access policy by label, so whichever account that statement was for loses its access immediately.
- SetEndpointAttributes (`never-probe`): Writes attributes onto a live platform endpoint — Enabled among them, which is what decides whether a device is sent anything at all.
- SetPlatformApplicationAttributes (`never-probe`): Writes attributes onto a live platform application, including the push credentials themselves and the event-notification topics AWS reports delivery failures to.
- SetSMSAttributes (`never-probe`): Sets the account-wide SMS preferences: the monthly spend limit, the default sender id, the delivery-status role. These are one set per account, so a probe would overwrite the caller's own settings and could not put them back.
- VerifySMSSandboxPhoneNumber (`never-probe`): Completes SMS-sandbox verification with a one-time password. It is a write against the account's sandbox, and a probe guessing a password is the shape of a brute-force attempt rather than of a read.
