Queue
OCI Queue — API version 20210201. Control plane and data plane are both served on
port 4599; the queue's messagesEndpoint points back at the emulator.
Supported operations
| Area | Operations |
|---|---|
| Queues | CreateQueue, GetQueue, ListQueues, UpdateQueue, DeleteQueue, ChangeCompartment, PurgeQueue |
| Messages | PutMessages, GetMessages, DeleteMessage(s), UpdateMessage(s) |
| Observability | GetStats, ListChannels |
| Work requests | Get, List, errors, logs (/20210201/workRequests) |
Wire notes
- Every control-plane mutation is work-request driven:
202with anopc-work-request-idheader and no body. PollGetWorkRequest— the emulator records the queue OCID inresources[]and setstimeFinishedimmediately, which is what Terraform's retry predicate requires. - Lists are wrapped —
{"items":[…]}— unlike Identity's bare arrays. sortByvalues are camelCase (timeCreated,displayName), not the SCREAMING_CASE KMS uses.retentionInSecondsis set at create time and is not updatable.
Message semantics
visibilityInSecondsdefaults to the queue's setting;0is a peek — the message stays visible but itsdeliveryCountstill increments.timeoutInSeconds > 0long-polls until a message arrives (capped at 10s in the emulator);0short-polls.- With
deadLetterQueueDeliveryCount > 0, over-delivered messages move to the DLQ and show up underdlqinGetStats. - Messages expire after
retentionInSeconds.
Quickstart
E="--endpoint http://localhost:4599"
TENANCY=ocid1.tenancy.oc1..flocilocaltenancy0000000000000000000000000000000000000000
oci queue queue create $E --compartment-id "$TENANCY" --display-name demo
oci queue messages put-messages $E --queue-id <queueId> \
--messages '[{"content":"hello queue"}]'
oci queue messages get-messages $E --queue-id <queueId>
Notes & limitations
Consumer groups, channel consumption limits and per-channel purge filters beyond
channelIds are not implemented.