@@ -31,17 +31,14 @@ following client pseudocode:
3131``smithy.waiters#waitable `` trait
3232=================================
3333
34- Waiters are defined on :ref: `operations <operation >` using the
35- ``smithy.waiters#waitable `` trait.
36-
37- Trait summary
34+ Summary
3835 Indicates that an operation has various named "waiters" that can be used
3936 to poll a resource until it enters a desired state.
4037Trait selector
4138 ``operation :not(-[input, output]-> structure > member > union[trait|streaming]) ``
4239
4340 (Operations that do not use :ref: `event streams <event-streams >` in their input or output)
44- Trait value
41+ Value type
4542 A ``map `` of :ref: `waiter names <waiter-names >` to
4643 :ref: `Waiter structures <waiter-structure >`.
4744
@@ -53,6 +50,8 @@ exists:
5350
5451 namespace com.amazonaws.s3
5552
53+ use smithy.waiters#waitable
54+
5655 @waitable(
5756 BucketExists: {
5857 documentation: "Wait until a bucket exists",
@@ -139,7 +138,7 @@ waiter implementations perform the following steps:
139138 3. Stop waiting if the acceptor transitions the waiter to the ``success ``
140139 or ``failure `` state.
141140
142- 4. If none of the acceptors are matched and an error was encountered while
141+ 4. If none of the acceptors are matched * and * an error was encountered while
143142 calling the operation, then transition to the ``failure `` state and stop
144143 waiting.
1451445. Transition the waiter to the ``retry `` state, follow the process
@@ -155,7 +154,7 @@ Waiter implementations MUST delay for a period of time before attempting a
155154retry. The amount of time a waiter delays between retries is computed using
156155`exponential backoff `_ through the following algorithm:
157156
158- * Let ``attempt `` be the number retry attempts.
157+ * Let ``attempt `` be the number of retry attempts.
159158* Let ``minDelay `` be the minimum amount of time to delay between retries in
160159 seconds, specified by the ``minDelay `` property of a
161160 :ref: `waiter <waiter-structure >` with a default of 2.
@@ -182,8 +181,8 @@ or equal to ``minDelay``, then set ``delay`` to ``remainingTime`` minus
182181needlessly only to exceed ``maxWaitTime `` before issuing a final request.
183182
184183Using the default ``minDelay `` of 2, ``maxDelay `` of 120, a ``maxWaitTime ``
185- of 300 (or 5 minutes), and assuming that requests complete in 0 seconds
186- (for example purposes only), delays are computed as followed :
184+ of 300 (5 minutes), and assuming that requests complete in 0 seconds
185+ (for example purposes only), delays are computed as follows :
187186
188187.. list-table ::
189188 :header-rows: 1
@@ -335,8 +334,8 @@ members MUST be set:
335334 - Matches on both the input and output of an operation using a JMESPath _
336335 expression. Input parameters are available through the top-level
337336 ``input `` field, and output data is available through the top-level
338- ``output `` field. This matcher can only be used on operations that
339- define both input and output. This matcher is checked only if an
337+ ``output `` field. This matcher MUST NOT be used on operations that
338+ do not define input or output. This matcher is checked only if an
340339 operation completes successfully.
341340 * - success
342341 - ``boolean ``
@@ -488,9 +487,10 @@ comparator can be set to any of the following values:
488487 that is equal to an expected string.
489488 - ``string ``
490489 * - booleanEquals
491- - Matches if the return value of a JMESPath expression is a boolean.
492- The ``expected `` value of a ``PathMatcher `` MUST be set to "true"
493- or "false" to match the corresponding boolean value.
490+ - Matches if the return value of a JMESPath expression is a boolean
491+ that is equal to an expected boolean. The ``expected `` value of a
492+ ``PathMatcher `` MUST be set to "true" or "false" to match the
493+ corresponding boolean value.
494494 - ``boolean ``
495495 * - allStringEquals
496496 - Matches if the return value of a JMESPath expression is an array and
@@ -650,7 +650,7 @@ Implicit acceptors are unnecessary and can quickly become incomplete as new
650650resource states and errors are added. Waiters have 2 implicit
651651:ref: `acceptors <waiter-acceptor >`:
652652
653- * (Step 4) - If none of the acceptors are matched and an error was
653+ * (Step 4) - If none of the acceptors are matched * and * an error was
654654 encountered while calling the operation, then transition to the
655655 ``failure `` state and stop waiting.
656656* (Step 5) - Transition the waiter to the ``retry `` state, follow the
0 commit comments