# BounceV1Request

!!! info
    This page was generated by extracting information from a JSON Schema
    data file for the API.  It may be missing some information, or otherwise
    suggest approximate or placeholder values based on information in the
    schema file; this is due to limitations on how that data is extracted
    from the underlying Rust code and into the JSON Schema, and then again
    from there and into these docs.

Describes which messages should be bounced.
The criteria apply to the scheduled queue associated
with a given message.

!!! danger
    If you specify none of `domain`, `campaign`, `tenant`,
    `routing_domain` or `queue`, then **ALL** queues will
    be bounced.

    With great power comes great responsibility!


This is an object value, with the following properties:


  * `campaign` - optional nullable `string`. The campaign name to match. If omitted, any campaign will match.

  * `domain` - optional nullable `string`. The domain name to match. If omitted, any domain will match.

  * `duration` - optional nullable `string`. Defaults to "5m". Specifies how long this bounce directive remains active.
    While active, newly injected messages that match the bounce criteria
    will also be bounced.

  * `expires` - optional nullable `string` (`date-time`). instead of specifying the duration, you can set an explicit
    expiration timestamp

  * `queue_names` - optional array of `string`. If present, queue_names takes precedence over `campaign`,
    `tenant`, and `domain` and specifies the exact set of
    scheduled queue names to which the bounce applies.

  * `reason` - required `string`. Reason to log in the delivery log. Each matching message will be bounced
    with an AdminBounce record unless you suppress logging.
    The reason will also be shown in the list of currently active admin
    bounces.

  * `routing_domain` - optional nullable `string`. The routing_domain name to match. If omitted, any routing_domain will match.
    {{since('2023.08.22-4d895015', inline=True)}}

  * `suppress_logging` - optional `boolean`. If true, do not generate AdminBounce delivery logs for matching
    messages.

  * `tenant` - optional nullable `string`. The tenant to match. If omitted, any tenant will match.

### Examples
```json
{
  "campaign": "campaign_name",
  "domain": "example.com",
  "duration": "20m",
  "expires": "1990-12-31T23:59:60Z",
  "queue_names": [
    "campaign_name:tenant_name@example.com"
  ],
  "reason": "Cleaning up a bad send",
  "routing_domain": "routing_domain.com",
  "suppress_logging": false,
  "tenant": "tenant_name"
}
```
