// this file is @generated
package com.svix.api;

import com.svix.models.MessageStatus;
import com.svix.models.StatusCodeClass;

import lombok.Data;

import java.time.OffsetDateTime;
import java.util.Set;

@Data
public class MessageAttemptListByEndpointOptions {
    /** Limit the number of returned items */
    Long limit;

    /** The iterator returned from a prior invocation */
    String iterator;

    /**
     * Filter response based on the status of the attempt: Success (0), Pending (1), Failed (2),
     * Sending (3), or Canceled (4)
     */
    MessageStatus status;

    /** Filter response based on the HTTP status code */
    StatusCodeClass statusCodeClass;

    /** Filter response based on the channel */
    String channel;

    /** Filter response based on the tag */
    String tag;

    /** Only include items created before a certain date */
    OffsetDateTime before;

    /** Only include items created after a certain date */
    OffsetDateTime after;

    /**
     * When `true` attempt content is included in the response.
     *
     * <p>Defaults to `false` in v2+ of the Svix SDKs, `true` in v1 or when manually making a
     * request without specifying this parameter.
     */
    Boolean withContent;

    /**
     * When `true`, the message information is included in the response
     *
     * <p>Note that message payloads are never included in the response, regardless of this flag.
     */
    Boolean withMsg;

    /**
     * When `true`, return the Canceled (4) status in attempts.
     *
     * <p>If `false`, canceled attempts are returned as Success (0) for backwards compatibility.
     */
    Boolean expandedStatuses;

    /** Filter response based on the event type */
    Set<String> eventTypes;
}
