Skip to content

CloudFormation Parameters Reference

This is a complete reference of all LMA CloudFormation stack parameters. These values are set when creating or updating your stack. For the most current and complete list, see the CloudFormation template parameters when creating or updating your stack.

ParameterDescriptionDefaultAllowed Values
AdminEmailAdmin user email address. A temporary password is sent to this address.(required)Valid email address
AuthorizedAccountEmailDomainComma-separated email domains allowed for self-registration(none)Comma-separated domain names
MeetingRecordExpirationInDaysNumber of days to retain meeting data before automatic deletion90Positive integer
CloudWatchLogsExpirationInDaysNumber of days to retain CloudWatch Logs(varies)Standard CloudWatch retention values
EnableDataRetentionOnDeleteRetain DynamoDB tables, S3 buckets, and KMS keys when the stack is deleted(false)true, false
ParameterDescriptionDefaultAllowed Values
MeetingAssistServiceMeeting assistant service typeSTRANDS_BEDROCKSTRANDS_BEDROCK, STRANDS_BEDROCK_WITH_KB (Create), STRANDS_BEDROCK_WITH_KB (Use Existing)
MeetingAssistServiceBedrockModelIDLLM model used by the meeting assistantClaude Haiku 4.5Supported Bedrock model IDs
MeetingAssistWakePhraseRegular expression pattern that activates the meeting assistantOK AssistantValid regex pattern
TavilyApiKeyAPI key for the Tavily web search tool(none)Valid API key string
BedrockGuardrailIdOptional Bedrock guardrail identifier(none)Valid guardrail ID
BedrockGuardrailVersionVersion of the Bedrock guardrail to use(none)Valid guardrail version
ParameterDescriptionDefaultAllowed Values
BedrockKnowledgeBaseIdExisting Bedrock Knowledge Base ID (for Use Existing mode)(none)Valid KB ID
BedrockKnowledgeBaseS3BucketNameS3 bucket containing documents for the Knowledge Base (for Create mode)(none)Valid S3 bucket name
BedrockKnowledgeBaseS3PrefixS3 key prefixes for Knowledge Base documents(none)Comma-separated prefixes
TranscriptKnowledgeBaseServiceWhether to create a Knowledge Base from meeting transcriptsDISABLEDBEDROCK_KNOWLEDGE_BASE (Create), DISABLED
ParameterDescriptionDefaultAllowed Values
TranscribeLanguageCodeLanguage code for Amazon Transcribeen-USen-US, identify-language, identify-multiple-languages, and other supported language codes
TranscriptionCustomVocabularyNameName of a custom vocabulary in Amazon Transcribe(none)Valid custom vocabulary name
TranscriptionCustomLanguageModelNameName of a custom language model in Amazon Transcribe(none)Valid custom language model name
IsContentRedactionEnabledEnable automatic PII redaction in transcriptionsfalsetrue, false
TranscribeContentRedactionTypeType of content redactionPIIPII
ContentRedactionLanguagesLanguages that support content redactionen-USen-US, en-AU, en-GB, es-US
ShowSpeakerLabelDefault for per-channel speaker partitioning (diarization) on WebSocket streaming sessions — the Stream Audio tab and the Desktop Capture App. Applies to both channels when used. Clients that send their own per-channel choice take precedence, so leave this false unless you want it on for clients that do not. See Transcription & Translation.falsetrue, false

On-demand ASR and Diarization (MicroVM) — EXPERIMENTAL

Section titled “On-demand ASR and Diarization (MicroVM) — EXPERIMENTAL”

EXPERIMENTAL — not production ready. Transcript quality is below Amazon Transcribe’s, speaker labels depend on a calibrated operating point, and defaults may change between releases. Amazon Transcribe remains the recommended engine for production meetings.

Alternative streaming engine to Amazon Transcribe, giving per-voice speaker labels. Off by default. A meeting transcribed by this engine does not go through Amazon Transcribe, so the redaction, custom vocabulary, custom language model and language identification parameters above do not apply to it. Requires a region where AWS Lambda MicroVMs is available. See On-demand ASR & Speaker Diarization.

ParameterDescriptionDefaultAllowed Values
TranscriptionEngineDeploys the on-demand ASR + diarization stack. Meetings still use Amazon Transcribe unless a client opts inAmazonTranscribeAmazonTranscribe, MicrovmAsr

TranscriptionEngine is the only deploy-time question for this engine. Its tuning knobs — the model bundle, MicroVM lifetime ceiling, speaker cap, turn-cut behaviour and maximum open row duration — used to be parameters (AsrModelBundle, AsrMaxMeetingSeconds, AsrMaxSpeakers, AsrLiveTurnCut, AsrMaxOpenSegmentMs) and are now fixed in the AsrDefaults mapping in lma-main.yaml, at the same values the parameters defaulted to. They were withdrawn because the engine is experimental and its defaults are still moving, so asking five unanswerable questions at deploy time was worse than picking known-good values.

Most of them were never deploy-time decisions anyway: maximum speakers per channel, live turn cut and maximum open row duration are all overridable at runtime from the ASR Config page in the LMA UI, taking effect on the next meeting with no stack update. Only the model bundle and the lifetime ceiling need a redeploy — edit the mapping. Changing the bundle rebuilds the MicroVM image (~20 minutes).

Why a bundle instead of three model parameters

Section titled “Why a bundle instead of three model parameters”

The similarity threshold is not a property of the embedder alone — utterance length moves it as much as the model does (CAM++ measured 0.30 on 1–2 s utterances and 0.68 on 5–20 s ones). So an operating point is only meaningful for a stated pairing, and choosing the three models separately let a deployment assemble a combination nobody had measured. It also produced a concrete bug: the threshold parameter defaulted to 0.2 while the catalog’s measured value for the default embedder was 0.4, nothing reconciled them, and the deployment merged two speakers into one.

A bundle now carries its own calibrated threshold and utterance floor, baked into the ASR image, so a deployment gets a working configuration without knowing any numbers.

BundleCalibratedRedistributableNotes
nemotron-titanet-smallYes (0.4)No — NVIDIA OMLDefault, validated on real meetings
permissive-zipformer-campplusYes (0.68)Yes — Apache-2.0 + MITWorse on spontaneous speech (ASR trained on read speech)
transcription-onlyn/aNo — NVIDIA OMLNo diarization; labelled by audio channel
permissive-fastconformer-titanet-largeNoYes — CC-BY-4.0 + MITBest redistributable option: same architecture as the default, trained on conversational speech, quarter the size
nemotron-titanet-largeNoNo — NVIDIA OMLThe default with a larger embedder, aimed at under-splitting
apache-only-zipformer-3dspeakerNoYes — Apache-2.0 + MITFor deployments that cannot accept CC-BY-4.0 attribution
accurate-parakeet-titanet-largeNoYes — CC-BY-4.0 + MITOffline: highest accuracy, but no interim text while speaking, and may not hold real time — unmeasured

An uncalibrated bundle produces no speaker labels until the deployment runs a calibration from the ASR Config page — a threshold borrowed from another pairing fragments or merges speakers, so no number is shipped rather than a wrong one.

There are deliberately no parameters for supplying a model URL: every model is a curated entry in the ASR stack’s catalog.json, with its checksum pinned and (for a speaker model) its operating point measured. Runtime tuning stays available on the ASR Config admin page without a stack update. See On-demand ASR & Speaker Diarization.

ParameterDescriptionDefaultAllowed Values
EndOfCallTranscriptSummaryMethod used to generate end-of-call summariesBEDROCKBEDROCK, LAMBDA
BedrockModelIdBedrock model used for summarizationClaude Haiku 4.5Supported Bedrock model IDs
EndOfCallLambdaHookFunctionArnARN of a custom Lambda function for summarization (when using LAMBDA mode)(none)Valid Lambda ARN
ParameterDescriptionDefaultAllowed Values
VPLaunchTypeCompute launch type for Virtual Participant tasks. MICROVM (default) runs each VP in an AWS Lambda MicroVM (Firecracker) instead of an ECS task — see MicroVM launch type for requirements and trade-offs.MICROVMEC2, FARGATE, MICROVM
VPInstanceTypeEC2 instance type for Virtual Participant. t3.medium (default) runs 1 voice + avatar VP (container capped at 3500 MB); the capacity-provider auto-scaler launches additional hosts when concurrent demand exceeds capacity. Bump to t3.large or a c5.*/m5.* instance for more concurrent VPs per host.t3.mediumt3.medium, t3.large, t3.xlarge, c5.large, c5.xlarge, c5.2xlarge, m5.large, m5.xlarge
VPMinInstancesMinimum warm EC2 instances always running. Set to 0 to fully scale down when idle (cold-start adds ~60-90s to the first VP).10-10
VPMaxInstancesMaximum EC2 instances. Capacity-provider managed scaling launches new hosts up to this cap when concurrent demand exceeds the current cluster’s capacity.101-100

VPInstanceType, VPMinInstances and VPMaxInstances apply only to VPLaunchType=EC2. Under MICROVM there are no hosts to size or scale — each meeting gets its own MicroVM, billed for its lifetime.

The VP stack also creates these infrastructure resources used by the auto-scaling, AI DOM resolver, and per-user persistent Chromium profile features:

  • VPCapacityProvider ECS capacity provider — wires the EC2 ASG into ECS managed scaling (TargetCapacity=100, step size 1-2, instance warmup 90s, ManagedTerminationProtection=ENABLED). RunTask drives CapacityProviderStrategy instead of LaunchType=EC2, so when the cluster is full ECS automatically launches new hosts up to VPMaxInstances. The launching VP shows status WAITING_FOR_CAPACITY while the auto-scaler provisions a new host.
  • DomSelectorCache DynamoDB table — caches AI-discovered selectors across all VP tasks (30-day TTL on lastUsedAt). KMS-encrypted, PAY_PER_REQUEST.
  • VPProfilesBucket S3 bucket — stores per-user persistent Chromium profiles (cookies, “trusted device” markers) keyed by Cognito sub. KMS-encrypted, public access blocked, versioned.

None of these requires user configuration. The AI fallback resolver model is configured via the task-definition env var BEDROCK_DOM_RESOLVER_MODEL_ID (default us.anthropic.claude-haiku-4-5-20251001-v1:0); set to empty string in the task definition to disable the fallback. See Virtual Participant → Auto-Scaling and Zoom Sign-in & Join Reliability for details.

ParameterDescriptionDefaultAllowed Values
VoiceAssistantProviderVoice assistant providernonenone, elevenlabs, amazon_nova_sonic
VoiceAssistantActivationModeHow the voice assistant is activatedalways_activealways_active, wake_phrase
VoiceAssistantWakePhraseComma-separated wake phrases for the voice assistant(none)e.g., “hey alex,ok alex”
VoiceAssistantActivationDurationDuration (in seconds) the voice assistant stays active after wake phrase305-300
ElevenLabsApiKeyAPI key for ElevenLabs voice assistant(none)Valid API key string
ElevenLabsAgentIdElevenLabs conversational agent ID(none)Valid agent ID
ParameterDescriptionDefaultAllowed Values
SimliApiKeyAPI key for Simli avatar service(none)Valid API key string
SimliFaceIdSimli face ID for avatar appearance(none)Valid face ID
SimliTransportModeTransport mode for Simli avatar videolivekitlivekit, p2p
ParameterDescriptionDefaultAllowed Values
ShouldRecordCallEnable audio recording of meetingstruetrue, false
RecordingDisclaimerDisclaimer text displayed to users when recording is enabled(none)Free-form text
ParameterDescriptionDefaultAllowed Values
TranscriptLambdaHookFunctionArnARN of a Lambda function for custom transcript segment processing(none)Valid Lambda ARN
TranscriptLambdaHookFunctionNonPartialOnlyProcess only final (non-partial) transcript segmentstruetrue, false
ParameterDescriptionDefaultAllowed Values
InstallationPermissionsBoundaryArnOptional IAM permissions boundary ARN applied to all created roles(none)Valid IAM policy ARN
CloudFrontPriceClassCloudFront distribution price classPriceClass_100PriceClass_100, PriceClass_200, PriceClass_All
CloudFrontGeoRestrictionsComma-separated ISO 3166-1 country codes for geographic access restrictions(none)ISO 3166-1 alpha-2 codes

Note: This is a representative list of parameters. For the most current and complete list, see the CloudFormation template parameters when creating or updating your stack.