Amazon Connect
Protocol: REST-JSON
Endpoint: http://localhost:4566/instance (SigV4 service connect)
Supported Actions
| Action | Description |
|---|---|
CreateInstance |
Create an instance; returns Id and Arn, ACTIVE immediately |
DescribeInstance |
Get the full instance including tags |
DeleteInstance |
Delete an instance and its storage config associations |
ListInstances |
List instance summaries |
UpdateInstanceAttribute |
Set one InstanceAttributeType |
DescribeInstanceAttribute |
Read one InstanceAttributeType |
ListInstanceAttributes |
List every attribute on an instance |
AssociateInstanceStorageConfig |
Attach a storage config for a resource type |
DescribeInstanceStorageConfig |
Read a storage config by association id |
UpdateInstanceStorageConfig |
Replace a storage config |
DisassociateInstanceStorageConfig |
Remove a storage config |
ListInstanceStorageConfigs |
List storage configs for one resource type |
ListTagsForResource |
List instance tags (GET /tags/{resourceArn}) |
TagResource |
Tag an instance (POST /tags/{resourceArn}) |
UntagResource |
Remove instance tags (DELETE /tags/{resourceArn}?tagKeys=) |
InstanceStatus is ACTIVE from the first read, so aws_connect_instance's status
poll completes without a transition. CreateInstance returns only Id and Arn —
the full Instance shape, tags included, comes back from DescribeInstance.
InstanceSummary has no Tags member in the AWS model, so ListInstances omits it.
Every InstanceAttributeType in the AWS model is seeded when an instance is created:
INBOUND_CALLS and OUTBOUND_CALLS take their values from the create request, the
rest default to false. This keeps DescribeInstanceAttribute from returning a
404 for a valid attribute type, which aws_connect_instance reads on every refresh.
Storage configs are keyed by instance, resource type and association id, so the same
instance can hold separate configurations for CHAT_TRANSCRIPTS, CALL_RECORDINGS
and the rest. ResourceType is required on every read and write, as AWS requires it.
Both a bare instance id and a full instance ARN are accepted wherever the API takes
an InstanceId.
Not implemented
These return a clean UnknownOperationException rather than a stub success. The
telephony and contact surfaces of Connect depend on real voice, chat and agent
traffic, which the emulator has no way to model:
- Phone numbers (
ClaimPhoneNumber,SearchAvailablePhoneNumbers, ...) — these allocate real numbers from carrier inventory. - Contacts (
StartOutboundVoiceContact,StopContact,GetContactAttributes, ...) — these require a live contact. - Agent status, user hierarchy and routing profiles bound to live agents.
- Real-time and historical metrics (
GetCurrentMetricData,GetMetricDataV2, ...) — these aggregate real traffic. - Queues, hours of operation, contact flows and quick connects — not yet modelled.
Configuration
| Variable | Default | Description |
|---|---|---|
FLOCI_SERVICES_CONNECT_ENABLED |
true |
Enable or disable the service |
Examples
export AWS_ENDPOINT_URL=http://localhost:4566
aws connect create-instance \
--identity-management-type CONNECT_MANAGED \
--instance-alias my-contact-center \
--no-inbound-calls-enabled \
--outbound-calls-enabled
aws connect describe-instance --instance-id <id>
aws connect update-instance-attribute \
--instance-id <id> --attribute-type CONTACTFLOW_LOGS --value true
aws connect associate-instance-storage-config \
--instance-id <id> --resource-type CHAT_TRANSCRIPTS \
--storage-config '{"StorageType":"S3","S3Config":{"BucketName":"b","BucketPrefix":"chat/"}}'
aws connect delete-instance --instance-id <id>