<?php

/**
 * This file is auto-generated by Saloon SDK Generator
 * Generator: Crescat\SaloonSdkGenerator\Generators\DtoGenerator
 * Do not modify it directly.
 */

declare(strict_types=1);

namespace SellingPartnerApi\Seller\NotificationsV1\Dto;

use SellingPartnerApi\Dto;

final class EventFilter extends Dto
{
    /**
     * @param  string  $eventFilterType  An `eventFilterType` value that is supported by the specific `notificationType`. This is used by the subscription service to determine the type of event filter. Refer to [Notification Type Values](https://developer-docs.amazon.com/sp-api/docs/notification-type-values) to determine if an `eventFilterType` is supported.
     * @param  ?AggregationSettings  $aggregationSettings  A container that holds all of the necessary properties to configure the aggregation of notifications.
     * @param  ?string[]  $marketplaceIds  A list of marketplace identifiers to subscribe to (for example: ATVPDKIKX0DER). To receive notifications in every marketplace, do not provide this list.
     * @param  ?string[]  $orderChangeTypes  A list of order change types to subscribe to (for example: `BuyerRequestedChange`). To receive notifications of all change types, do not provide this list.
     */
    public function __construct(
        public readonly string $eventFilterType,
        public readonly ?AggregationSettings $aggregationSettings = null,
        public readonly ?array $marketplaceIds = null,
        public readonly ?array $orderChangeTypes = null,
    ) {}
}
