"get-messages"
**************

* Description

* Usage

* Required Parameters

* Optional Parameters

* Global Parameters

* Example using required parameter


Description
===========

Consumes messages from the queue. You must use the messages endpoint
to consume messages. The messages endpoint may be different for
different queues. Use >>``<<GetQueue` <https://docs.cloud.oracle.com/
api/#/en/queue/latest/Queue/GetQueue/>`__ to find the queue’s
*messagesEndpoint*. GetMessages accepts optional channelFilter query
parameter that can filter source channels of the messages. When
channelFilter is present, service will return available messages from
the channel which ID exactly matched the filter. When filter is not
specified, messages will be returned from a random non-empty channel
within a queue.


Usage
=====

   oci queue messages get-messages [OPTIONS]


Required Parameters
===================

--queue-id [text]

The unique queue identifier.


Optional Parameters
===================

--channel-filter [text]

Optional parameter to filter the channels.

--from-json [text]

Provide input to this command as a JSON document from a file using the
file://path-to/file syntax.

The "--generate-full-command-json-input" option can be used to
generate a sample json file to be used with this command option. The
key names are pre-populated and match the command option names
(converted to camelCase format, e.g. compartment-id –> compartmentId),
while the values of the keys need to be populated by the user before
using the sample file as an input to this command. For any command
option that accepts multiple values, the value of the key can be a
JSON array.

Options can still be provided on the command line. If an option exists
in both the JSON document and the command line then the command line
specified value will be used.

For examples on usage of this option, please see our “using CLI with
advanced JSON options” link: https://docs.cloud.oracle.com/iaas/Conte
nt/API/SDKDocs/cliusing.htm#AdvancedJSONOptions

--limit [integer]

The limit parameter controls how many messages is returned at-most.

--timeout-in-seconds [integer]

If the *timeoutInSeconds parameter* isn’t set or it is set to a value
greater than 0, the request is using the long-polling mode and will
only return when a message is available for consumption (it does not
wait for limit messages but still only returns at-most limit messages)
or after *timeoutInSeconds* seconds (in which case it will return an
empty response), whichever comes first.

If the parameter is set to 0, the request is using the short-polling
mode and immediately returns whether messages have been retrieved or
not. In same rare-cases a long-polling request could be interrupted
(returned with empty response) before the end of the timeout.

--visibility-in-seconds [integer]

If the *visibilityInSeconds* parameter is set, messages will be hidden
for *visibilityInSeconds* seconds and won’t be consumable by other
consumers during that time. If it isn’t set it defaults to the value
set at the queue level.

Using a *visibilityInSeconds* value of 0 effectively acts as a peek
functionality. Messages retrieved that way aren’t meant to be deleted
because they will most likely be delivered to another consumer as
their visibility won’t change, but will still increase the delivery
count by one.


Global Parameters
=================

Use "oci --help" for help on global parameters.

"--auth-purpose", "--auth", "--cert-bundle", "--cli-auto-prompt", "--
cli-rc-file", "--config-file", "--connection-timeout", "--debug", "--
defaults-file", "--endpoint", "--generate-full-command-json-input", "
--generate-param-json-input", "--help", "--latest-version", "--max-
retries", "--no-retry", "--opc-client-request-id", "--opc-request-id",
"--output", "--profile", "--proxy", "--query", "--raw-output", "--
read-timeout", "--realm-specific-endpoint", "--region", "--release-
info", "--request-id", "--version", "-?", "-d", "-h", "-i", "-v"


Example using required parameter
================================

Copy the following CLI commands into a file named example.sh. Run the
command by typing “bash example.sh” and replacing the example
parameters with your own.

Please note this sample will only work in the POSIX-compliant bash-
like shell. You need to set up the OCI configuration and appropriate
security policies before trying the examples.

       export compartment_id=<substitute-value-of-compartment_id> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/queue/queue-admin/queue/create.html#cmdoption-compartment-id
       export display_name=<substitute-value-of-display_name> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/queue/queue-admin/queue/create.html#cmdoption-display-name

       queue_id=$(oci queue queue-admin queue create --compartment-id $compartment_id --display-name $display_name --query data.id --raw-output)

       oci queue messages get-messages --queue-id $queue_id
