AWS Security ChangesHomeSearch

AWS sms-voice documentation change

Service: sms-voice · 2026-04-04 · Documentation low

File: sms-voice/latest/userguide/rcs-getting-started.md

Summary

Updated RCS setup documentation with detailed AI agent prompt, corrected CLI commands, and clarified registration requirements including mandatory fields like privacy policy URL and terms and conditions URL

Security assessment

The changes are primarily documentation improvements for RCS setup procedures, clarifying correct CLI commands and registration requirements. While the documentation now includes required fields like privacy policy URL and terms and conditions URL (which are compliance-related), there is no evidence this addresses a specific security vulnerability or weakness. The changes appear to be routine documentation updates to improve accuracy and user guidance.

Diff

diff --git a/sms-voice/latest/userguide/rcs-getting-started.md b/sms-voice/latest/userguide/rcs-getting-started.md
index e0d8e985f..2c5e57618 100644
--- a//sms-voice/latest/userguide/rcs-getting-started.md
+++ b//sms-voice/latest/userguide/rcs-getting-started.md
@@ -5 +5 @@
-Setting up and testing RCS
+Setting up and testing RCSAI agent prompt for RCS setup
@@ -252 +252 @@ Your testing environment is now ready. Here are ways to integrate RCS messaging
-### AI agent prompt for RCS setup
+## AI agent prompt for RCS setup
@@ -264 +264,2 @@ Copy the following prompt and paste it into your AI agent or coding assistant:
-    I need to:
+    The service is `pinpoint-sms-voice-v2`. Walk me through each step with exact
+    CLI commands. Ask me for all required details before generating any commands.
@@ -266,19 +267,114 @@ Copy the following prompt and paste it into your AI agent or coding assistant:
-    1. **Create an AWS RCS Agent** with my brand assets (logo, banner, brand color,
-       display name, and description). Use the `create-rcs-agent` CLI command from
-       the `pinpoint-sms-voice-v2` service.
-    
-    2. **Submit a testing registration** for the agent so I can test RCS messaging
-       in a testing environment.
-    
-    3. **Add a test device** using the `create-verified-destination-number` command
-       with the `--rcs-agent-id` parameter. Remind me to wait at least 120 seconds
-       after agent creation before adding the test device.
-    
-    4. **Send a test RCS message** using the `send-text-message` command with my
-       AWS RCS Agent ARN as the origination identity.
-    
-    5. **Verify delivery** by checking the message status.
-    
-    Walk me through each step with the exact CLI commands I need to run. Ask me for
-    my brand details (display name, description, logo file path, banner file path,
-    brand color hex code) and test device phone number before generating the commands.
+    **Important rules for generating commands:**
+    - All commands use the `pinpoint-sms-voice-v2` service.
+    - Use `create-rcs-agent` exactly as spelled — NOT `create-r-c-s-agent`.
+    - Use the term "testing" — NOT "sandbox".
+    - There is NO `describe-messages` API. Do not generate it.
+    - `create-rcs-agent` does NOT accept brand asset parameters (no display name,
+      no logo, no banner, no color). Brand assets are registration fields only.
+    - `create-verified-destination-number` uses `--rcs-agent-id`, NOT
+      `--origination-identity`.
+    
+    ### Step 1: Create an RCS Agent
+    
+    Use `create-rcs-agent`. This creates the agent resource only.
+    Optional parameters: `--deletion-protection-enabled`, `--opt-out-list-name`,
+    `--tags`.
+    The response returns `RcsAgentId` and `RcsAgentArn` — save both.
+    
+    ### Step 2: Create and submit a testing registration
+    
+    This configures brand assets and submits for approval. It requires multiple
+    API calls in sequence:
+    
+    a. `create-registration --registration-type TEST_RCS_LAUNCH_REGISTRATION`
+       → returns `RegistrationId`. Save it.
+    
+    b. `create-registration-association --registration-id <id> --resource-id <agent-id>`
+       → links the registration to the agent.
+    
+    c. Upload images as attachments (two calls):
+       `create-registration-attachment --attachment-body fileb://<logo-path>`
+       `create-registration-attachment --attachment-body fileb://<banner-path>`
+       → each returns `RegistrationAttachmentId`. Save both.
+    
+    d. Set ALL required registration fields using `put-registration-field-value`
+       with `--registration-id`, `--field-path`, and the appropriate value flag
+       (`--text-value`, `--select-choices`, or `--registration-attachment-id`).
+    
+       Required fields (ALL must be set or registration will be DENIED):
+       - `agentDetails.brandName` (text, 2-65 chars)
+       - `agentDetails.serviceName` (text, 1-100 chars)
+       - `agentDetails.senderDisplayName` (text, 1-40 chars)
+       - `agentDetails.useCase` (select: OTP, TRANSACTIONAL, PROMOTIONAL, MULTI_USE)
+       - `agentDetails.agentDescription` (text, 1-100 chars)
+       - `agentDetails.logoImage` (attachment ID from step c, 224x224 PNG)
+       - `agentDetails.bannerImage` (attachment ID from step c, 1440x448 PNG/JPEG)
+       - `agentDetails.accentColor` (text, hex code e.g. #0066CC)
+       - `agentDetails.privacyPolicyUrl` (text, valid URL)
+       - `agentDetails.termsAndConditionsUrl` (text, valid URL)
+       - `agentDetails.averageMonthlyRcsFrequency` (select: 10, 100, 1000+)
+       - `agentDetails.monthlyRcsVolume` (text, 1-100000)
+       - At least ONE contact method WITH its label:
+         agentDetails.contactWebsite + agentDetails.contactWebsiteLabel, OR
+         agentDetails.contactPhoneNumber + agentDetails.contactPhoneLabel, OR
+         agentDetails.contactEmailAddress + agentDetails.contactEmailLabel
+    
+    e. Verify all fields: `describe-registration-field-values --registration-id <id>`
+       Any field showing `DeniedReason: MISSING_REQUIRED_FIELD` must be set.
+    
+    f. Submit: `submit-registration-version --registration-id <id>`
+    
+    g. Poll status: `describe-registrations --registration-ids <id>`
+       Wait for `RegistrationStatus: COMPLETE`.
+    
+    **Error recovery:** If registration is DENIED, you must:
+    1. `create-registration-version --registration-id <id>` (creates new draft)
+    2. Re-populate ALL fields from scratch (new versions do NOT inherit values)
+    3. Fix the issue noted in `DeniedReasons`
+    4. Re-submit
+    
+    ### Step 3: Add a test device
+    
+    **Prerequisite:** Step 2 must be COMPLETE and the agent's `TestingAgent.Status`
+    must be `ACTIVE` (check with `describe-rcs-agents`). Then wait at least 120
+    seconds after the agent becomes ACTIVE.
+    
+    Use `create-verified-destination-number --destination-phone-number <E.164>
+    --rcs-agent-id <agent-id>`.
+    
+    The device status will be `PENDING`. The user must accept the RCS tester
+    invitation on their physical device. Check status with
+    `describe-verified-destination-numbers` — wait for `VERIFIED`.
+    
+    ### Step 4: Send a test RCS message
+    
+    **Prerequisite:** Step 3 device must be `VERIFIED`.
+    
+    Use `send-text-message --destination-phone-number <E.164>
+    --origination-identity <agent-arn> --message-body "<text>"
+    --message-type TRANSACTIONAL`.
+    
+    Returns `MessageId`.
+    
+    ### Step 5: Verify delivery
+    
+    For testing: check the test device — the message appears from the branded
+    RCS agent.
+    
+    For production monitoring: set up event destinations BEFORE sending messages
+    using `create-event-destination` (SNS, CloudWatch Logs, or Firehose). Event
+    destinations do not retroactively capture events for already-sent messages.
+    CloudWatch metrics in the `AWS/SMSVoice` namespace provide aggregate stats.
+    
+    ---
+    
+    **Before generating commands, ask me for:**
+    - Brand name, service name, and sender display name
+    - Agent description (what the agent does, what messages users receive)
+    - Use case type: OTP, TRANSACTIONAL, PROMOTIONAL, or MULTI_USE
+    - Logo file path (224x224 PNG) and banner file path (1440x448 PNG/JPEG)
+    - Brand accent color hex code (e.g. #0066CC)
+    - Privacy policy URL and terms & conditions URL
+    - One contact method with label: website URL, phone number, or email
+    - Estimated monthly RCS volume and per-user message frequency
+    - Test device phone number in E.164 format (e.g. +12065550100)